欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)據(jù)處理、加密、完整性校驗方法及身份鑒別方法及系統(tǒng)與流程

文檔序號:12493867閱讀:987來源:國知局
數(shù)據(jù)處理、加密、完整性校驗方法及身份鑒別方法及系統(tǒng)與流程

本發(fā)明涉及信息安全技術(shù)領(lǐng)域,具體而言,涉及一種數(shù)據(jù)處理、加密、完整性校驗方法及身份鑒別方法及系統(tǒng)。



背景技術(shù):

加密技術(shù)自古代就已開始研究,信息的保護(hù)無論是軍事、政府還是商業(yè)乃至個人,都是非常重要的。一些部門及組織,對加密強度有著極高的需求。如果加密信息被破譯,其后果可能是非常嚴(yán)重的。隨著人類社會進(jìn)入計算時代、商業(yè)時代,大數(shù)據(jù)加密成為一種重要需求,如數(shù)據(jù)庫加密、磁盤加密、云加密等。在信息安全領(lǐng)域,現(xiàn)有的加密技術(shù)通常包括公鑰算法、對稱分組算法、數(shù)字摘要算法(哈希函數(shù))。

目前客戶端和服務(wù)器之間在進(jìn)行身份鑒別、數(shù)據(jù)交換的時候,數(shù)據(jù)大多數(shù)時候需要在網(wǎng)絡(luò)中傳輸。而數(shù)據(jù)在網(wǎng)絡(luò)上進(jìn)行傳輸?shù)臅r候,很容易被非法竊取,而大多數(shù)用戶習(xí)慣使用弱密碼,對于一個弱密碼,通過字典型強力破解,攻擊者很容易獲得密碼的原文,因而造成用戶密碼的泄露,因此一種較為可靠的數(shù)據(jù)網(wǎng)絡(luò)傳輸方法以及安全的身份鑒別技術(shù)成為目前亟待解決的問題。



技術(shù)實現(xiàn)要素:

有鑒于此,本發(fā)明實施例的目的在于提供一種數(shù)據(jù)處理、加密、完整性校驗方法及身份鑒別方法及系統(tǒng),能夠更加可靠的實現(xiàn)客戶端和服務(wù)器之間數(shù)據(jù)的傳輸。

第一方面,本發(fā)明實施例提供了一種數(shù)據(jù)處理方法,包括:

預(yù)先設(shè)置黑箱秘鑰,所述的黑箱秘鑰是一個隨機數(shù),其長度大于等于64字節(jié);

對參與處理的輸入數(shù)據(jù),使用所述的黑箱密鑰進(jìn)行混雜運算,獲得中間值數(shù)據(jù);

使用預(yù)設(shè)的哈希函數(shù),對所述中間值數(shù)據(jù)進(jìn)行單向散列運算,獲得所述中間值數(shù)據(jù)的Hash結(jié)果。

第二方面,本發(fā)明實施例還提供一種數(shù)據(jù)加密方法,包括:獲取待處理信息;所述待處理信息中包括多個待加密字段,以及多個非加密字段;

將所述多個非加密字段進(jìn)行拼接,形成字符串格式的秘鑰明文鍵值;

將所述秘鑰明文鍵值作為輸入數(shù)據(jù),使用如上述權(quán)利要求1所述的方法對所述的秘鑰明文鍵值數(shù)據(jù)進(jìn)行處理,獲取與所述秘鑰明文鍵值對應(yīng)的Hash結(jié)果;

將所述秘鑰明文鍵值對應(yīng)的Hash結(jié)果作為對稱加密算法的密鑰,對待加密字段進(jìn)行加密和/或解密。

第三方面,本本發(fā)明實施例還提供一種數(shù)據(jù)完整性校驗方法,包括:

獲取完整性校驗數(shù)據(jù);

將所述完整性校驗數(shù)據(jù)與預(yù)存的完整性校驗值進(jìn)行比對校驗;

其中,所述完整性校驗數(shù)據(jù)以及所述完整性校驗值均通過下述方式獲得:

獲取數(shù)據(jù)表,并將所述數(shù)據(jù)表中所有的字段值,逐項連接成為一個字符串格式的待校驗數(shù)據(jù);

將所述待校驗數(shù)據(jù)作為輸入數(shù)據(jù),使用如上述權(quán)利要求1所述的方法進(jìn)行處理,獲取與所述待校驗數(shù)據(jù)對應(yīng)的Hash結(jié)果;

將與所述待校驗數(shù)據(jù)對應(yīng)的Hash結(jié)果作為完整性校驗值進(jìn)行保存,和/或,作為所述待完整性校驗數(shù)據(jù)。

第四方面,本發(fā)明實施例提供一種身份鑒別方法,應(yīng)用于包括客戶端以及服務(wù)器的系統(tǒng)中,所述服務(wù)器創(chuàng)建至少一個RSA秘鑰對,所述秘鑰對中的私鑰在所述服務(wù)器端通過上述權(quán)利要求2所提供的方法進(jìn)行加密存儲;所述公鑰在所述服務(wù)器明文存儲;

所述身份鑒別方法包括:

客戶端生成認(rèn)證服務(wù)請求信息,并使用隨機秘鑰以及公鑰對所述服務(wù)請求信息進(jìn)行加密,生成公鑰保護(hù)信息發(fā)送至所述服務(wù)器;所述公鑰保護(hù)信息包括:使用隨機秘鑰加密的服務(wù)請求信息,以及使用公鑰加密的所述隨機秘鑰;

所述服務(wù)器使用與所述公鑰對應(yīng)的私鑰對所述公鑰保護(hù)信息進(jìn)行解密,獲取所述隨機秘鑰以及所述服務(wù)請求信息;

所述服務(wù)器根據(jù)所述服務(wù)器請求信息,生成反饋信息,并使用所述隨機秘鑰將所述反饋信息加密后,發(fā)送至客戶端;所述反饋信息中攜帶有密碼挑戰(zhàn)數(shù)據(jù);

所述客戶端根據(jù)所述密碼挑戰(zhàn)數(shù)據(jù)以及用戶的密碼信息,生成第二次認(rèn)證請求信息,并使用所述公鑰加密后,發(fā)送至服務(wù)器;

所述服務(wù)器使用與所述公鑰對應(yīng)的私鑰對所述第二次認(rèn)證請求信息進(jìn)行解密,并根據(jù)所述第二次認(rèn)證請求信息中所攜帶的密碼運算數(shù)據(jù),對用戶進(jìn)行身份鑒別。

第五方面,本發(fā)明實施例還提供一種數(shù)據(jù)加密系統(tǒng),包括:包括客戶端以及服務(wù)器,所述服務(wù)器創(chuàng)建至少一個RSA秘鑰對,所述秘鑰對中的私鑰在所述服務(wù)器端通過上述權(quán)利要求2所提供的數(shù)據(jù)加密方法進(jìn)行加密后存儲;所述公鑰在所述服務(wù)器明文存儲;所述身份鑒別系統(tǒng)包括:

客戶端生成認(rèn)證服務(wù)請求信息,并使用隨機秘鑰以及公鑰對所述服務(wù)請求信息進(jìn)行雙重加密后,生成公鑰保護(hù)信息發(fā)送至所述服務(wù)器;所述公鑰保護(hù)信息包括:使用隨機秘鑰加密的服務(wù)請求信息,以及使用公鑰加密的所述隨機秘鑰;

所述服務(wù)器使用與所述公鑰對應(yīng)的私鑰對所述公鑰保護(hù)信息進(jìn)行解密,獲取所述隨機秘鑰以及所述服務(wù)請求信息;

所述服務(wù)器根據(jù)所述服務(wù)請求信息,生成反饋信息,并使用所述隨機秘鑰將所述反饋信息加密后,發(fā)送至客戶端;所述反饋信息中攜帶有密碼挑戰(zhàn)數(shù)據(jù);

所述客戶端根據(jù)所述密碼挑戰(zhàn)數(shù)據(jù)以及用戶的密碼信息,生成第二次認(rèn)證請求信息,并使用所述公鑰加密后,發(fā)送至服務(wù)器;

所述服務(wù)器使用與所述公鑰對應(yīng)的私鑰對所述第二次認(rèn)證請求信息進(jìn)行解密,并根據(jù)所述第二次認(rèn)證請求信息中所攜帶的密碼運算數(shù)據(jù),對用戶進(jìn)行身份鑒別。

本發(fā)明實施例所提供的數(shù)據(jù)處理、加密、完整性校驗方法及身份鑒別方法及系統(tǒng),能夠更加可靠的實現(xiàn)客戶端和服務(wù)器之間數(shù)據(jù)的傳輸。

為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附附圖,作詳細(xì)說明如下。

附圖說明

為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實施例,因此不應(yīng)被看作是對范圍的限定,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。

圖1示出了本發(fā)明實施例所提供的一種數(shù)據(jù)處理方法的流程圖;

圖2示出了本發(fā)明實施例所提供的一種數(shù)據(jù)加密方法的流程圖;

圖3示出了本發(fā)明實施例所提供的一種數(shù)據(jù)完整性校驗方法的流程圖;

圖4示出了本發(fā)明實施例所提供的一種身份鑒別方法的流程圖;

圖5示出了本發(fā)明實施例所提供的身份鑒別方法中,密碼挑戰(zhàn)數(shù)據(jù)在服務(wù)端的算法流程圖;

圖6示出了本發(fā)明實施例所提供的身份鑒別方法中,客戶端根據(jù)所述密碼挑戰(zhàn)數(shù)據(jù)以及用戶密碼,生成第二次認(rèn)證請求信息的具體方法流程圖;

圖7示出了本發(fā)明實施例所提供的一種身份鑒別系統(tǒng)的結(jié)構(gòu)示意圖。

具體實施方式

為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。通常在此處附圖中描述和示出的本發(fā)明實施例的組件可以以各種不同的配置來布置和設(shè)計。因此,以下對在附圖中提供的本發(fā)明的實施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實施例。基于本發(fā)明的實施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。

目前客戶端和服務(wù)器之間相互發(fā)送的數(shù)據(jù)包在網(wǎng)絡(luò)上進(jìn)行傳輸?shù)臅r候,容易被非法劫持,而大多數(shù)用戶習(xí)慣使用弱密碼,對于一個弱密碼,通過字典型強力破解,攻擊者很容易獲得的密碼原文,因而造成用戶密碼的泄露,因此一種較為可靠的數(shù)據(jù)處理方法成為目前亟待解決的問題?;诖?,本申請?zhí)峁┮环N數(shù)據(jù)處理、加密、完整性校驗方法及身份鑒別方法及系統(tǒng),可以實現(xiàn)客戶端和服務(wù)器之間的數(shù)據(jù)更加可靠的傳輸。

為便于對本實施例進(jìn)行理解,首先對本發(fā)明實施例所公開的一種數(shù)據(jù)處理方法進(jìn)行詳細(xì)介紹,該方法可以應(yīng)用于多種領(lǐng)域,例如實現(xiàn)一次一密的對稱算法,用于數(shù)據(jù)庫的加密以及數(shù)據(jù)完整性校驗、實現(xiàn)分散性安全數(shù)據(jù)庫、實現(xiàn)用戶身份鑒別等多種用途。

參見圖1所示,本發(fā)明實施例所提供的數(shù)據(jù)處理方法,具體包括:

S101:預(yù)先設(shè)置黑箱秘鑰,所述的黑箱秘鑰是一個隨機數(shù),其長度大于等于64字節(jié);

S102:對參與處理的輸入數(shù)據(jù),使用所述的黑箱密鑰進(jìn)行混雜運算,獲得中間值數(shù)據(jù);

S103:使用預(yù)設(shè)的哈希函數(shù),對所述中間值數(shù)據(jù)進(jìn)行單向散列運算,獲得所述中間值數(shù)據(jù)的Hash結(jié)果。

在具體實現(xiàn)的時候,該數(shù)據(jù)處理方法,又稱為黑箱加密算法,或稱黑箱算法,該黑箱加密算法包括四個要素:算法(A)、黑箱秘鑰(K)、黑箱輸入(Bm)、黑箱輸出(Bh,即中間值數(shù)據(jù)的Hash結(jié)果)。四要素的關(guān)系可以表述為以下公式:

Bh=A(K,Bm)

黑箱算法具有以下特征:

(1)K是一個固定長度的真隨機數(shù),其典型長度為1kB字節(jié)(8192位),最小長度為64字節(jié)。在一個實際的黑箱算法應(yīng)用系統(tǒng)中,K值是嚴(yán)格保密的。K通常稱為黑箱秘鑰。

(2)Bm是一個任意長度信息值,即參與處理的輸入數(shù)據(jù)。

(3)Bh是一個固定長度的偽隨機數(shù),其典型長度為16字節(jié)(128位),還可以根據(jù)實際需要選擇其他長度。

(4)在A,K確定的情況下,Bm和Bh具有單向?qū)?yīng)關(guān)系,也就是說,確定的Bm輸入可以計算出唯一的Bh輸出。

(5)計算過程是不可逆的,也就是說,通過Bh值不可能獲取K和Bm的任何信息特征。同時也意味著,如果想找出一個Bm輸入值,使其Bh輸出是某個特定數(shù)值,唯一的可行方法就是窮舉Bm輸入,直到其Bh輸出符合給定數(shù)值。而這種窮舉計算,在K值未知的情況下,是無法實施的。

(6)Bh具有隨機數(shù)統(tǒng)計特性(散列性),也就是說,無論給定何種有規(guī)律或者無規(guī)律的多個Bm輸入序列,其對應(yīng)的Bh輸出序列始終符合隨機數(shù)分布特性。

對參與處理的數(shù)據(jù)以及預(yù)設(shè)的黑箱密鑰進(jìn)行混雜運算,實際上就是針對黑箱輸入Bm和黑箱秘鑰K,采用預(yù)先設(shè)定的算法進(jìn)行混雜運算。所述的混雜算法可以是多種多樣的,可以根據(jù)安全需求和速度需求進(jìn)行綜合考量,選擇某種具體計算過程,例如:

Bh=MD5(K+Bm);

該方案就是將K值和Bm按字節(jié)順序合并,再計算合并信息的MD5值。更為復(fù)雜的方案可以將K值和Bm的混雜運算設(shè)計為交替加密、解密,或者按照一定規(guī)律將K和Bm的字節(jié)進(jìn)行有序或者無序的字節(jié)混雜過程。只要能滿足第(4)條要求,K值和Bm進(jìn)行任何混雜都是允許的。

在上述S103中,預(yù)設(shè)的哈希函數(shù)可以是MD5、SHA等算法,這些算法經(jīng)過海量的驗證和研究,具有較高的安全性,即便S102中的混雜運算很簡單,最終經(jīng)過S103的計算后,也可以保證算法整體具有足夠的安全性。

黑箱算法可以看作一種變異的哈希算法,具有不可逆性,因此不能獨立作為加密/解密算法。黑箱算法與某種對稱算法結(jié)合使用,則可以實現(xiàn)一次一密的密碼體制。方案如下:

通訊雙方(Alice,Bob)必須使用相同黑箱AK,相同黑箱的含義就是算法A和秘鑰K都相同。Alice和Bob可以事先約定某種Bm輸入序列,當(dāng)然他們也可以隨時變換約定。雙方的這種約定無需任何保密,最簡單的約定可以使用每天的日期值作為一種序列。他們的每次通訊,都按順序使用約定序列中的元素,該元素作為Bm輸入黑箱AK,得到對應(yīng)的Bh輸出值,Bh值再作為通訊數(shù)據(jù)的加/解密秘鑰值。

上述方案也可以實現(xiàn)為一種自動鏈路加密機,在一條數(shù)據(jù)鏈路的兩端,使用相同黑箱AK,鏈路的每個數(shù)據(jù)報需要增加一個簡短明文報頭,包含著Bm值,而數(shù)據(jù)報本身則使用對應(yīng)的Bh值加密。根據(jù)黑箱算法的特征,只要Bm值不出現(xiàn)重復(fù)使用,Bh值將符合隨機數(shù)統(tǒng)計規(guī)律,完全滿足了一次一密的密碼體制。

參見圖2所示,本發(fā)明實施例還體統(tǒng)一種數(shù)據(jù)加密方法,在上述實施例的基礎(chǔ)上,該數(shù)據(jù)加密方法具體包括:

S201:獲取待處理信息;所述待處理信息中包括多個待加密字段,以及多個非加密字段;

S202:將所述多個非加密字段進(jìn)行拼接,形成字符串格式的秘鑰明文鍵值;

S203:將所述秘鑰明文鍵值作為輸入數(shù)據(jù),使用如上述實施例的黑箱算法對所述的秘鑰明文鍵值數(shù)據(jù)進(jìn)行處理,獲取與所述秘鑰明文鍵值對應(yīng)的Hash結(jié)果;

S204:將所述秘鑰明文鍵值對應(yīng)的Hash結(jié)果作為對稱加密算法的密鑰,對待加密字段進(jìn)行加密和/或解密。

在具體實現(xiàn)的時候,該數(shù)據(jù)加密方法用于對包含有多個待加密字段以及多個非加密字段的待處理信息進(jìn)行加密處理。例如,該待處理信息可以是某公司員工的身份信息以及工資信息。員工的身份信息不需要進(jìn)行加密處理,將其作為非加密字段,而員工的工資信息需要進(jìn)行加密,將其作為待加密字段。待加密字段可能有一個,也可能有多個,非加密字段可能有一個,也可能有多個。在進(jìn)行加密的時候,會將多個非加密字段進(jìn)行拼接,具體的拼接順序可以根據(jù)用戶的實際需求進(jìn)行具體的設(shè)定。由于非加密字段在存儲的時候也是明文存儲的,因此可以將拼接后所形成的字符串作為加密時的密鑰明文鍵值。將該密鑰明文鍵值作為輸入數(shù)據(jù),使用如上述圖1對應(yīng)的實施例的方法進(jìn)行處理,獲取與密鑰明文鍵值對應(yīng)的Hash結(jié)果,將與密鑰明文鍵值對應(yīng)的Hash結(jié)果作為對稱加密算法的密鑰,對待加密字段進(jìn)行加密。當(dāng)需要對加密后的數(shù)據(jù)進(jìn)行解密的時候,只需要再次將非加密字段進(jìn)行拼接,形成字符串格式的密鑰明文鍵值,然后使用與上述圖1對應(yīng)的實施例的方法對密鑰明文鍵值進(jìn)行處理,再次獲得密鑰明文鍵值對應(yīng)的Hash結(jié)果,完成解密。在整個過程中,實際上黑箱密鑰是一直處于保密狀態(tài),針對不同的待處理信息,由于非加密字段都不一樣,因此,最終所形成的對稱加密算法的密鑰必然有所區(qū)別,最終能夠獲得的加密數(shù)據(jù)也有所區(qū)別。

在整個方法中黑箱密鑰一直是處于保密狀態(tài),輸入數(shù)據(jù)輸入黑箱后,再由黑箱輸出中間值數(shù)據(jù)的Hash結(jié)果,不管是在數(shù)據(jù)傳輸?shù)臅r候,還是在與其他通訊主體進(jìn)行通訊的過程中,所傳輸?shù)臄?shù)據(jù)中均不會攜帶黑箱密鑰,而黑箱密鑰和輸入數(shù)據(jù)進(jìn)行混雜運算后,還要使用預(yù)設(shè)的哈希函數(shù)對中間值數(shù)據(jù)進(jìn)行單向散列運算,因此也就無從對黑箱密鑰進(jìn)行破解。提高了加密的可靠性。

例如:某個數(shù)據(jù)表由四個字段構(gòu)成,第1和第2字段不需要加密,第3和第4字段需要加密,數(shù)據(jù)表中的明文內(nèi)容為:

a1,a2,a3,a4;

b1,b2,b3,b3;

c1,c2,c3,c4;

……

加密過程:(a1+a2)作為黑箱的輸入數(shù)據(jù),得到ha,ha則用來加密或解密a3和a4,因此第1個數(shù)據(jù)記錄的實際存儲結(jié)果為:

a1,a2,Cf(a3),Cf(a4)

其中,Cf(a3)是a3用ha加密后是密文值,Cf(a4)是a4用ha加密后的密文值。后續(xù)數(shù)據(jù)記錄以此類推,前兩項都是明文值存儲,后兩項都是密文值存儲。

以上算法的安全性在于,在沒有黑箱秘鑰的情況下,將無法計算每條數(shù)據(jù)記錄的加/解密秘鑰值。換言之,在沒有黑箱的情況下,僅僅通過a1和a2不可能恢復(fù)出a3和a4的明文數(shù)值。

以上算法的適用范圍并不僅僅局限于數(shù)據(jù)庫的數(shù)據(jù)表,任何在數(shù)據(jù)結(jié)構(gòu)上可以解析為數(shù)據(jù)表模式的場景都可以應(yīng)用此算法。

參見圖3所示,本發(fā)明實施例還提供一種數(shù)據(jù)完整性校驗方法,該方法包括:

S301:獲取完整性校驗數(shù)據(jù);

S302:將所述完整性校驗數(shù)據(jù)與預(yù)存的完整性校驗值進(jìn)行比對校驗;

其中,所述完整性校驗數(shù)據(jù)以及所述完整性校驗值均通過下述方式獲得:

獲取數(shù)據(jù)表,并將所述數(shù)據(jù)表中所有的字段值,逐項連接成為一個字符串格式的待校驗數(shù)據(jù);

將所述待校驗數(shù)據(jù)作為輸入數(shù)據(jù),使用如上述權(quán)利要求1所述的方法進(jìn)行處理,獲取與所述待校驗數(shù)據(jù)對應(yīng)的Hash結(jié)果;

將與所述待校驗數(shù)據(jù)對應(yīng)的Hash結(jié)果作為完整性校驗值進(jìn)行保存,和/或,作為所述待完整性校驗數(shù)據(jù)。

在具體實現(xiàn)的時候,在對數(shù)據(jù)的完整性進(jìn)行校驗的之前,需要先獲取待校驗的數(shù)據(jù)表,然后將數(shù)據(jù)表中所有的字段值逐項連接成為一個字符串格式的待校驗數(shù)據(jù),然后將該待校驗數(shù)據(jù)作為輸入數(shù)據(jù),使用預(yù)先設(shè)置的黑箱密鑰對其進(jìn)行混雜運算,獲取待校驗數(shù)據(jù)對應(yīng)的中間值數(shù)據(jù),然后使用預(yù)設(shè)的哈希函數(shù),對該待校驗數(shù)據(jù)的中間值數(shù)據(jù)進(jìn)行單向散列運算,獲得該中間值數(shù)據(jù)的Hash結(jié)果,并將該Hash結(jié)果作為完整性校驗值進(jìn)行保存。在用戶需要對數(shù)據(jù)表的完整性進(jìn)行校驗的時候,可以將其所獲取的數(shù)據(jù)表中所有的字段值逐項連接成一個字符串格式的待校驗數(shù)據(jù),執(zhí)行與獲取完整性校驗值相同的操作,將最終所獲取的Hash結(jié)果作為待完整性校驗數(shù)據(jù),然后使用該待完整性校驗數(shù)據(jù)與之前預(yù)先存儲的完整性校驗值進(jìn)行比對,如果兩者一致,則認(rèn)為數(shù)據(jù)是完整的,如果兩者不一致,則認(rèn)為數(shù)據(jù)不完整。

具體地,假設(shè)一個數(shù)據(jù)表包含若干字段,該數(shù)據(jù)表在使用時,需要檢查每項記錄是否保持完整,所謂保持完整就是指記錄數(shù)據(jù)沒有被修改過。為實現(xiàn)此目的,需要給數(shù)據(jù)表增加一個額外字段,用來存儲完整性校驗值。所述完整性校驗值的計算方法為,把一個記錄中的所有字段值,但是不包括所述額外字段,逐項連接為一個字符串格式數(shù)據(jù),作為圖1所對應(yīng)的實施例所提供的數(shù)據(jù)處理方法的輸入數(shù)據(jù),得到對應(yīng)的Hash結(jié)果,該結(jié)果即為本條數(shù)據(jù)記錄的完整性校驗值,存放到額外字段中。

校驗方法和計算方法基本一致,區(qū)別在于,校驗時,得到的hash結(jié)果要與存放在額外字段中的數(shù)值進(jìn)行比對,如果比對相等,說明數(shù)據(jù)完整性沒有被破壞,如果比對不相等,說明數(shù)據(jù)完整性受到破壞。

用數(shù)據(jù)表舉例如下:

a1,a2,a3,a4,chk-a;

b1,b2,b3,b3,chk-b;

c1,c2,c3,c4,chk-c;

……

以上數(shù)據(jù)表,增加一個額外字段,用來存儲chk-a、chk-b、chk-c……。chk-a,就是a1+a2+a3+a4連接格式數(shù)據(jù),再經(jīng)過黑箱運算的hash輸出值,chk-b,chk-c……以此類推。

以上算法的安全性在于,在沒有黑箱秘鑰的情況下,篡改任何一個數(shù)據(jù)值,都無法重新計算對應(yīng)的校驗值。換言之,任何數(shù)據(jù)篡改都可以被黑箱算法察覺出來。

以上算法的適用范圍并不僅僅局限于數(shù)據(jù)庫的數(shù)據(jù)表,任何在數(shù)據(jù)結(jié)構(gòu)上可以解析為數(shù)據(jù)表模式的場景都可以應(yīng)用此算法。

參見圖4所示,本發(fā)明實施例還提供一種身份鑒別方法,該方法主要應(yīng)用于包括客戶端以及服務(wù)器的系統(tǒng)中,所述服務(wù)器創(chuàng)建至少一個RSA秘鑰對,所述秘鑰對中的私鑰在所述服務(wù)器端通過上述圖2所對應(yīng)的實施例的數(shù)據(jù)加密方法處理后存儲;所述公鑰在所述服務(wù)器明文存儲;具體包括:

S401:客戶端生成認(rèn)證服務(wù)請求信息,并使用隨機秘鑰以及公鑰對所述服務(wù)請求信息進(jìn)行加密后,生成公鑰保護(hù)信息發(fā)送至所述服務(wù)器;所述公鑰保護(hù)信息包括:使用隨機秘鑰加密的服務(wù)請求信息,以及使用公鑰加密的所述隨機秘鑰;

S402:所述服務(wù)器使用與所述公鑰對應(yīng)的私鑰對所述公鑰保護(hù)信息進(jìn)行解密,獲取所述隨機秘鑰以及所述服務(wù)請求信息;

S403:所述服務(wù)器根據(jù)所述服務(wù)器請求信息,生成反饋信息,并使用所述隨機秘鑰將所述反饋信息加密后,發(fā)送至客戶端;所述反饋信息中攜帶有密碼挑戰(zhàn)數(shù)據(jù);

RSA秘鑰對的存儲以及加密方案,具體包括:

RSA秘鑰對的存儲數(shù)據(jù)表的定義為(符合MySQL5.6的定義語法):

CREATE TABLE IF NOT EXISTS SKI_List

(PK_ID INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,

XTimeStamp datetime default CURRENT_TIMESTAMP(),

nSTR VARCHAR(600),

eSTR VARCHAR(600),

dSTR VARCHAR(600),

pSTR VARCHAR(600),

qSTR VARCHAR(600),

uSTR VARCHAR(600),

e1STR VARCHAR(600),

e2STR VARCHAR(600));

以上數(shù)據(jù)表定義了10個數(shù)據(jù)字段,PK_ID(序列號),XTimeStamp(時間戳),nSTR(公鑰數(shù)值n),eSTR(公鑰數(shù)值e)這四個數(shù)據(jù)字段,屬于不需要加密的明文字段,其余的六個字段屬于私鑰數(shù)值,需要加密。數(shù)據(jù)表的特征符合權(quán)利要求3的算法特征。也就是說,PK_ID、XTimeStamp、nSTR、eSTR是明文直接存儲,其他字段則是密文存儲,加密和解密秘鑰就是(PK_ID+XTimeStamp+nSTR+eSTR)經(jīng)過黑箱運算后得出的hash值。

另外,在具體實現(xiàn)的時候,客戶端可以通過直接查詢、間接查詢等方法,獲取服務(wù)器的某個RSA公鑰。對于每個呼應(yīng)過程,客戶端所發(fā)出的報文用一個隨機秘鑰R進(jìn)行加密,R本身再用應(yīng)答服務(wù)器的公鑰進(jìn)行加密。服務(wù)器在收到報文后,從數(shù)據(jù)庫中檢索對應(yīng)的私鑰,使用私鑰對R進(jìn)行解密還原,再使用所得到的R值還原報文數(shù)據(jù)。而服務(wù)器在向客戶端發(fā)送反饋結(jié)果數(shù)據(jù)時,使用R進(jìn)行加密,最終客戶端在收到加密的反饋結(jié)果數(shù)據(jù)報文后,能夠再使用R對其進(jìn)行解密。上述過程實現(xiàn)了兩個目的:首先是實現(xiàn)了網(wǎng)絡(luò)數(shù)據(jù)報的加密保護(hù),可以確保通訊數(shù)據(jù)在鏈路環(huán)節(jié)不可被竊取。其次,基于RSA算法的特性,可以確保服務(wù)器的真實性,杜絕了假冒服務(wù)器的攻擊。

上述S401-S403實際上是第一個呼應(yīng)過程。該過程實現(xiàn)的目的,就是客戶端從服務(wù)器獲取密碼挑戰(zhàn)數(shù)據(jù)。所述呼應(yīng)過程,就是指客戶端向服務(wù)器發(fā)送一段完整的數(shù)據(jù)報文(呼叫),服務(wù)器完整接收,再根據(jù)報文內(nèi)容執(zhí)行相應(yīng)的程序步驟,并得出一段結(jié)果數(shù)據(jù),服務(wù)器再將結(jié)果數(shù)據(jù)完整反饋給客戶端(應(yīng)答)。

S404:所述客戶端根據(jù)所述密碼挑戰(zhàn)數(shù)據(jù)以及用戶的密碼信息,生成第二次認(rèn)證請求信息,并使用所述公鑰加密后,發(fā)送至服務(wù)器;

S405:所述服務(wù)器使用與所述公鑰對應(yīng)的私鑰對所述第二次認(rèn)證請求信息進(jìn)行解密,并根據(jù)所述第二次認(rèn)證請求信息中所攜帶的密碼運算數(shù)據(jù),對用戶進(jìn)行身份鑒別。

在上述S404-S405中,實際上執(zhí)行的是第二個呼應(yīng)過程,在該呼應(yīng)過程中,客戶端會首先根據(jù)密碼挑戰(zhàn)數(shù)據(jù)以及用戶的密碼運算數(shù)據(jù),生成第二次認(rèn)證請求信息,在該認(rèn)證請求信息中,應(yīng)當(dāng)至少包括兩部分內(nèi)容:1、客戶端對服務(wù)器所發(fā)送的密碼挑戰(zhàn)數(shù)據(jù)的算法回應(yīng),在該回應(yīng)中混雜了用戶的密碼信息(或者稱為鑒別密碼、用戶口令或者賬號口令)。2、需要服務(wù)器執(zhí)行的功能請求命令。該功能請求命令在使用公鑰進(jìn)行加密之前,還使用另外一個二次加密秘鑰進(jìn)行加密,該二次加密秘鑰是在S404中,基于密碼挑戰(zhàn)數(shù)據(jù)和用戶密碼混雜計算得到。另外,如果認(rèn)證方式有多種,還可以在認(rèn)證請求中包含具體的認(rèn)證方式識別標(biāo)識。第二次呼應(yīng)過程,實際使用了雙重冗余加密方案,可以確保用戶密碼不會在通訊鏈路中被攻擊者破解出來。

本發(fā)明實施例還提供了一種通過兩次呼應(yīng)過程實現(xiàn)用戶身份認(rèn)證的實施步驟:

所述服務(wù)器,在數(shù)據(jù)庫存儲的3個關(guān)鍵數(shù)據(jù)項:

(1)UserName---用戶的標(biāo)識名稱,這是用戶的字符串標(biāo)識,也稱為賬號名,或者用戶名;

(2)PWD---用戶預(yù)先設(shè)定的身份鑒別密碼,簡稱用戶密碼,需要指出的是,PWD的存儲使用了黑箱算法,使用了權(quán)利2描述的加密方法。這就意味著,如果服務(wù)器的數(shù)據(jù)庫發(fā)生失泄密事件,但是黑箱秘鑰沒有泄露,此種情況下,用戶的PWD仍然處于高度安全狀態(tài),攻擊者無法解密出任何用戶的PWD,也不可能判斷出某兩個用戶是否使用了相同的PWD。

(3)Auth.INC---身份鑒別協(xié)議使用的重放抵抗因子,這是一個無符號的整數(shù)值,用戶創(chuàng)建時系統(tǒng)自動完成初始化,在后續(xù)使用中只有單向步進(jìn)+1的操作。

1、所述身份鑒別的第一次呼應(yīng):

本次呼應(yīng),完成的協(xié)議功能就是客戶端獲得了一個挑戰(zhàn)變量。

(1)客戶端構(gòu)造數(shù)據(jù):pwd.challenge=hmy1970;

(2)以上數(shù)據(jù)中,“hmy1970”標(biāo)識一個用戶名;

(3)客戶端構(gòu)造一個隨機數(shù),稱為R,R值為16字節(jié);

(4)客戶端用R值加密“pwd.challenge=hmy1970”,加密結(jié)果稱為Cm;

(5)客戶端用服務(wù)器公鑰加密R值,加密算法為RSA,加密結(jié)果為Rp;

(6)客戶端把Rp和Cm發(fā)送到服務(wù)器;

(7)服務(wù)器首先要檢索私鑰,然后用私鑰解密Rp,解密結(jié)果必然是R;

(8)服務(wù)器用R值解密Cm,解密結(jié)果必然是“pwd.challenge=hmy1970”;

(9)服務(wù)器在數(shù)據(jù)庫中檢索用戶名“hmy1970”,獲得與之關(guān)聯(lián)的Auth.INC值;

(10)服務(wù)端回饋數(shù)據(jù):PWD=1131 32921BAB7BAD53E419B21

服務(wù)端回饋數(shù)據(jù)中包含了3個分項數(shù)據(jù),其算法含義為:

1131:此數(shù)值就是hmy1970用戶關(guān)聯(lián)的Auth.INC重放抵抗因子,每發(fā)生一次成功的PWD鑒別,該因子自動步進(jìn)+1。比如,本次鑒別如果執(zhí)行成功,下次再執(zhí)行此協(xié)議時,該值就是1132。

32921:這是一個定時滾動變量,可以稱為動態(tài)秘鑰索引碼,在服務(wù)端,此索引碼保存于一個數(shù)組隊列中,隊列的長度可以滿足5min之內(nèi)的滾動。服務(wù)端在回饋此變量時,始終使用隊尾的最新變量。也就是說,如果用戶執(zhí)行第2次呼應(yīng)的時間間隔超過5min,該索引碼就已經(jīng)自動失效(已經(jīng)滾出隊列),無法用于認(rèn)證計算了。該索引碼實際上還關(guān)聯(lián)了一個隨機數(shù),此隨機數(shù)和該變量同時滾進(jìn)滾出。實際上,該索引碼的核心用途就是用來檢索對應(yīng)的隨機數(shù)。

BAB7BAD53E419B21:這是8字節(jié)長度的隨機數(shù),該數(shù)值和32921有著直接關(guān)聯(lián)性。

圖5是密碼挑戰(zhàn)數(shù)據(jù)在服務(wù)端的算法流程圖。在圖5中,服務(wù)器回饋的A數(shù)據(jù)就是(Auth.INC存儲值+1),B數(shù)據(jù)則是最新N值的直接引用。C1數(shù)據(jù)則是和N關(guān)聯(lián)的隨機數(shù),固定長度為8字節(jié),它具有以下特征:

(1)C1數(shù)據(jù)來源于多用戶共享的隊列數(shù)據(jù)。因此,無論有多少客戶端同時發(fā)起挑戰(zhàn)請求,服務(wù)器都不會產(chǎn)生額外的內(nèi)存開銷。這對服務(wù)器響應(yīng)大量并發(fā)請求是非常有利的。

(2)C1數(shù)據(jù)具有時間限制性,只有B數(shù)據(jù)仍然處于隊列當(dāng)中時,服務(wù)器才能檢索到對應(yīng)的C1數(shù)據(jù)。如果B數(shù)據(jù)已經(jīng)滾出隊列,意味著C1數(shù)據(jù)也同時失效。

2、所述身份鑒別的第二次呼應(yīng):

客戶端通過第一次呼應(yīng)獲取挑戰(zhàn)數(shù)據(jù)之后,應(yīng)及時執(zhí)行第二次呼應(yīng),防止B數(shù)據(jù)和C1數(shù)據(jù)過期失效。

本次呼應(yīng),完成的協(xié)議功能就是客戶端基于用戶密碼響應(yīng)服務(wù)器回饋的挑戰(zhàn)數(shù)據(jù)。本次呼應(yīng)也使用了第一次呼應(yīng)所用的公鑰加密步驟,對其中的重復(fù)性內(nèi)容不再贅述,僅敘述有區(qū)別的程序步驟:

(1)客戶端發(fā)送數(shù)據(jù):

authentication=pwd

AuthStr=hmy1970 1131 32921 0F36E4677A6073DA0F55B015BD727C4A

ActionEnc=GGRxYAruEn3IrbcUlkRfaaWCc

(2)服務(wù)端回饋數(shù)據(jù):

ActionRet=iyFMmMtr0yMj6gztLPf0B1qTHYA9O1Y7Rhc1fBWtR9mb5sM5gE MuFn6gopLCVkQmqO9bDOd1wPnhnS)EtwZDd4RPo8IXZQtd8jeXx3ummdYP8odtot YJHJ)9w4XaXMcvTvYY(UdVkHlfh2NwKy(oqQz9YgdV7p4kGGRxYAruam3Ib

客戶端發(fā)送數(shù)據(jù)的解釋:

authentication=pwd指明這是一個對挑戰(zhàn)變量的PWD響應(yīng)報文;

AuthStr=hmy1970 1131 32921 0F36E4677A6073DA0F55B015BD727C4A

AuthStr條目中,包含了四個數(shù)據(jù)項:U、A、B、C2。其中U是用戶名,A和B就是第一次呼應(yīng)回饋的A數(shù)據(jù)和B數(shù)據(jù)。C2數(shù)據(jù)則是基于用戶密碼參與的混雜運算結(jié)果。具體算法步驟為:

—進(jìn)行數(shù)據(jù)連接:A+第1次回饋的C1數(shù)據(jù)+用戶密碼;

—計算以上連接數(shù)據(jù)的MD5-hash值,此hash值即為C2數(shù)據(jù);

ActionEnc條目是加密之后的功能請求命令,加密算法使用了IDEA算法,加密秘鑰為Kp,Kp使用以下算法步驟:

—進(jìn)行數(shù)據(jù)連接,用戶名稱+第1次回饋的C1數(shù)據(jù)+A+用戶密碼;

—計算以上連接數(shù)據(jù)的MD5-hash值,此hash值即為Kp值;

—需要指出,Kp不會出現(xiàn)在網(wǎng)絡(luò)數(shù)據(jù)中;

服務(wù)端對報文數(shù)據(jù)的響應(yīng)流程:

(1)基于用戶名稱,檢索關(guān)聯(lián)的Auth.INC數(shù)據(jù),假設(shè)從數(shù)據(jù)庫讀取的數(shù)值為A’,則必須滿足A=A’+1,否則視為認(rèn)證無效,回饋錯誤信息;

(2)基于用戶名稱,檢索關(guān)聯(lián)的PWD數(shù)據(jù);

(3)基于B數(shù)據(jù),檢索關(guān)聯(lián)C1隨機數(shù),如果B數(shù)據(jù)無法檢索,視為認(rèn)證無效,回饋錯誤信息;

(4)基于以上數(shù)據(jù)項,服務(wù)器可以計算C2數(shù)據(jù),計算結(jié)果為C2’;

(5)如果C2和C2’不相等,視為認(rèn)證無效,回饋錯誤信息;

(6)對存儲的Auth.INC數(shù)據(jù)進(jìn)行步進(jìn)+1操作;

(7)基于以上數(shù)據(jù)項,服務(wù)器也可以計算Kp值,在C2值比對相等的情況下,服務(wù)端計算的Kp值必然和客戶端計算的Kp值相等;

(8)用Kp值解密ActionEnc條目數(shù)據(jù);

(9)根據(jù)指令文本執(zhí)行相應(yīng)動作;

(10)執(zhí)行結(jié)果用Kp值加密;

(11)ActionRet條目就是加密后的回饋結(jié)果;

上述的第(1)和第(6)步驟,是抵抗報文重放攻擊的關(guān)鍵點。由于Auth.INC的單調(diào)+1,使得當(dāng)前已經(jīng)響應(yīng)過的報文,如果再次重發(fā)給服務(wù)器,必然在第(1)步驟就被判定為認(rèn)證無效。

對該協(xié)議的最有效攻擊就是能夠直接寫操作服務(wù)器數(shù)據(jù)庫,將Auth.INC非法篡改,通常而言,這種攻擊很難實現(xiàn)。其次,由于C1的時間滾動特性,這種數(shù)據(jù)庫篡改操作也必須限制在C1沒有滾出隊列之前才能奏效,一旦C1滾出隊列,即使篡改Auth.INC也沒有意義了。

參見圖6所示,所述客戶端根據(jù)所述密碼挑戰(zhàn)數(shù)據(jù)以及用戶密碼,生成第二次認(rèn)證請求信息,具體包括:

S601用所述密碼挑戰(zhàn)數(shù)據(jù)以及用戶密碼進(jìn)行混雜計算,在混雜計算時,使用兩種不同的混雜計算過程,獲取兩個不同的秘鑰值,作為校驗秘鑰和加密秘鑰;所述的C2值就是校驗秘鑰,所述的Kp值就是加密秘鑰。

S602:將所述校驗秘鑰發(fā)送至服務(wù)器,以使所述服務(wù)器根據(jù)所述校驗密鑰,檢驗客戶端使用的用戶密碼是否正確,從而決策接受或者拒絕客戶端提出的功能請求命令;

S603:使用所述加密秘鑰加密所述的功能請求命令。

客戶端發(fā)送的ActionEnc條目和服務(wù)器回饋的ActionRet條目,都使用了IDEA加密保護(hù),加密秘鑰則是Kp,Kp的算法也已經(jīng)明確。

因此,用Kp加/解密ActionEnc和ActionRet視為第1重保護(hù)。有了這一重保護(hù),即使不用公鑰加密算法,協(xié)議也具備了基本的安全性。攻擊者不可能從網(wǎng)絡(luò)數(shù)據(jù)中直接獲取到用戶密碼的原值。必須對網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行字典強力攻擊,才可能猜測出用戶的密碼,如果用戶密碼有足夠的復(fù)雜度,字典攻擊也就無法奏效了。

雖然協(xié)議是安全的,但是大部分用戶往往喜歡使用很弱的密碼,字典強力攻擊對于猜測弱密碼是非常有效的。因此,協(xié)議過程實際上還啟用了第2重加密,即服務(wù)器公鑰加密。這就是所述的雙重冗余保護(hù)技術(shù)。

客戶端發(fā)出的數(shù)據(jù)報,使用服務(wù)器公鑰封裝保護(hù)后,就徹底阻斷了對用戶密碼進(jìn)行字典攻擊的可能性。

如果不使用公鑰保護(hù)步驟,攻擊者可以從網(wǎng)絡(luò)鏈路中截獲以下兩個協(xié)議數(shù)據(jù)項:

第一次呼應(yīng)的應(yīng)答數(shù)據(jù):

PWD=1131 32921BAB7BAD53E419B21

第二次呼應(yīng)的呼叫數(shù)據(jù):

AuthStr=hmy1970 1131 32921 0F36E4677A6073DA0F55B015BD727C4A

基于這兩個數(shù)據(jù)項,攻擊者就可以通過字典強力攻擊破解出用戶密碼。

而使用公鑰加密后,這兩個數(shù)據(jù)項也轉(zhuǎn)為加密數(shù)據(jù),在沒有服務(wù)器私鑰的情況下,攻擊者無法解密出原文,也就無法實施字典攻擊??梢钥闯?,對于弱密碼的情況,雙重冗余保護(hù)是很有必要的。

本發(fā)明實施例所提供的身份鑒別方法,客戶端和服務(wù)器之間進(jìn)行了兩次呼應(yīng)過程,在每一次呼應(yīng)過程中,客戶端所發(fā)出的數(shù)據(jù)都進(jìn)行了公鑰加密,首先是實現(xiàn)了網(wǎng)絡(luò)數(shù)據(jù)報的加密保護(hù),可以確保通訊數(shù)據(jù)在鏈路環(huán)節(jié)不可被竊取。其次,基于RSA算法的特性,可以確保服務(wù)器的真實性,杜絕了假冒服務(wù)器的攻擊。而在第一次呼應(yīng)之后,客戶端會收到服務(wù)器所反饋的密碼挑戰(zhàn)數(shù)據(jù),第二次呼應(yīng)是基于該密碼挑戰(zhàn)數(shù)據(jù)發(fā)起的,使得兩次呼應(yīng)之間緊密結(jié)合起來,能夠更加可靠的實現(xiàn)客戶端和服務(wù)器之間的鑒別。

在上述實施例中,所述密碼挑戰(zhàn)數(shù)據(jù)包括:與用戶關(guān)聯(lián)的抵抗報文重放變量以及隨機挑戰(zhàn)變量;

所述服務(wù)器驗證客戶端的用戶密碼是否正確;

如果密碼為正確,在發(fā)出所述反饋信息之前,所述抵抗報文重放變量步進(jìn)+1;

如果密碼驗證為錯誤,所述抵抗報文重放變量無步進(jìn)操作。

在具體實現(xiàn)的時候,該實施例使得該認(rèn)證方法具備了抵抗重放攻擊的能力,第1次呼應(yīng),服務(wù)器返回的隨機挑戰(zhàn)變量中包含了一個抵抗因子,該抵抗因子和用戶有綁定關(guān)系。在第二次呼應(yīng)中,如果用戶密碼被服務(wù)端判定為正確,服務(wù)端會自動將該因子步進(jìn)+1。所述的Auth.INC,所述的A變量,就是所述的重放抵抗變量,或稱抵抗因子。

另外需要注意的是,第一次呼應(yīng)的過程結(jié)束之后,客戶端應(yīng)當(dāng)在預(yù)設(shè)時間內(nèi)執(zhí)行第二次呼應(yīng)過程,兩次呼應(yīng)的間隔時間不能太久。如果超出預(yù)設(shè)時間,將導(dǎo)致身份鑒別的失敗。即:

所述服務(wù)器在發(fā)出所述反饋信息后,判斷是否在預(yù)設(shè)時間內(nèi)接收到客戶端所發(fā)送的第二次認(rèn)證請求信息;

如果否,則對所述密碼挑戰(zhàn)數(shù)據(jù)做失效處理。

可以看出,抵抗重放攻擊的單調(diào)因子,確保客戶端數(shù)據(jù)報在短時段內(nèi)重放無效;而隨機挑戰(zhàn)變量則確保客戶端數(shù)據(jù)報在長時段內(nèi)重放無效。這兩個因子的聯(lián)合作用,確保了任何客戶端數(shù)據(jù)報都無法實現(xiàn)重放攻擊。

另外,需要注意的是,每個用戶和服務(wù)端之間需要預(yù)設(shè)一個共享密碼,稱為用戶密碼或者用戶口令。所述的用戶密碼在服務(wù)端加密存儲于數(shù)據(jù)庫中,加密算法可以由圖2所對應(yīng)的實施例所提供的數(shù)據(jù)加密方法實現(xiàn)。所述的PWD,就是所述的用戶密碼。

另外,在本發(fā)明實施例中,所述服務(wù)器在對用戶進(jìn)行身份鑒別之后,還包括:根據(jù)鑒別結(jié)果,以及所述的功能請求命令,生成第二次反饋數(shù)據(jù);

將所述第二次反饋數(shù)據(jù)進(jìn)行雙重冗余加密后,發(fā)送至客戶端。

本發(fā)明又一實施例還提供一種身份鑒別系統(tǒng),參見圖7所示,包括客戶端以及服務(wù)器,所述服務(wù)器創(chuàng)建至少一個RSA秘鑰對,所述秘鑰對中的私鑰在所述服務(wù)器端通過上述圖2所對應(yīng)的實施例所提供的數(shù)據(jù)加密方法進(jìn)行加密后存儲;所述公鑰在所述服務(wù)器明文存儲;所述身份鑒別系統(tǒng)包括:

客戶端生成認(rèn)證服務(wù)請求信息,并使用隨機秘鑰以及公鑰對所述服務(wù)請求信息進(jìn)行雙重加密后,生成公鑰保護(hù)信息發(fā)送至所述服務(wù)器;所述公鑰保護(hù)信息包括:使用隨機秘鑰加密的服務(wù)請求信息,以及使用公鑰加密的所述隨機秘鑰;

所述服務(wù)器使用與所述公鑰對應(yīng)的私鑰對所述公鑰保護(hù)信息進(jìn)行解密,獲取所述隨機秘鑰以及所述服務(wù)請求信息;

所述服務(wù)器根據(jù)所述服務(wù)器請求信息,生成反饋信息,并使用所述隨機秘鑰將所述反饋信息加密后,發(fā)送至客戶端;所述反饋信息中攜帶有密碼挑戰(zhàn)數(shù)據(jù);

所述客戶端根據(jù)所述密碼挑戰(zhàn)數(shù)據(jù)以及用戶的密碼信息,生成第二次認(rèn)證請求信息,并使用所述公鑰加密后,發(fā)送至服務(wù)器;

所述服務(wù)器使用與所述公鑰對應(yīng)的私鑰對所述第二次認(rèn)證請求信息進(jìn)行解密,并根據(jù)所述第二次認(rèn)證請求信息中所攜帶的密碼運算數(shù)據(jù),對用戶進(jìn)行身份鑒別。

本實施例中,客戶端和服務(wù)器的具體功能和交互方式,可參見圖1-圖6對應(yīng)的實施例的記載,在此不再贅述。

另外,本發(fā)明實施例所提供的身份鑒別系統(tǒng)中,所述客戶端在根據(jù)所述密碼挑戰(zhàn)數(shù)據(jù)以及用戶的密碼信息,生成第二次認(rèn)證請求信息時,具體用于:

用所述密碼挑戰(zhàn)數(shù)據(jù)以及用戶密碼進(jìn)行混雜計算,在混雜計算時,使用兩種不同的混雜計算過程,獲取兩個不同的秘鑰值,作為校驗秘鑰和加密秘鑰;

將所述校驗秘鑰發(fā)送至服務(wù)器,以使所述服務(wù)器根據(jù)所述校驗密鑰,檢驗客戶端使用的用戶密碼是否正確,從而決策接受或者拒絕客戶端提出的功能請求命令;

使用所述加密秘鑰加密所述的功能請求命令。

本發(fā)明實施例所提供的數(shù)據(jù)處理、加密、完整性校驗以及身份鑒別方法及系統(tǒng)的計算機程序產(chǎn)品,包括存儲了程序代碼的計算機可讀存儲介質(zhì),所述程序代碼包括的指令可用于執(zhí)行前面方法實施例中所述的方法,具體實現(xiàn)可參見方法實施例,在此不再贅述。

所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng)和系統(tǒng)的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。

所述功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
庆元县| 沁阳市| 昭平县| 福州市| 铁岭县| 临泉县| 花莲市| 镇赉县| 霞浦县| 凉山| 龙州县| 金门县| 敦化市| 龙山县| 南漳县| 高平市| 凭祥市| 茌平县| 克拉玛依市| 宁蒗| 白银市| 河东区| 兴城市| 榆中县| 阳谷县| 丁青县| 从江县| 册亨县| 宜春市| 绩溪县| 图木舒克市| 南通市| 万源市| 通化市| 阿坝| 鹤壁市| 随州市| 麻江县| 林西县| 鸡泽县| 石河子市|