蔡龍飛,趙慧民,方艷梅
(1.廣東工程職業(yè)技術(shù)學(xué)院計算機(jī)信息系,廣東廣州 510520;2.廣東技術(shù)師范學(xué)院電子與信息學(xué)院,廣東廣州 510665;3.中山大學(xué)信息科學(xué)與技術(shù)學(xué)院,廣東廣州 510006)
認(rèn)證 (Authentication)又稱鑒別,是指對用戶身份的確定,它是防止非法人員對系統(tǒng)進(jìn)行主動攻擊的重要技術(shù)。認(rèn)證技術(shù)主要包括信息認(rèn)證與身份認(rèn)證兩個方面的內(nèi)容,信息認(rèn)證主要用于保證信息的完整性與抗否認(rèn)性,身份認(rèn)證則用于鑒別用戶身份,限制非法用戶和用戶非法使用網(wǎng)絡(luò)信息系統(tǒng)。
身份認(rèn)證常常被用于通信雙方相互確認(rèn)身份,以保證通信的安全。其基本思想是通過驗證被認(rèn)證對象的某一特殊屬性來達(dá)到確認(rèn)被認(rèn)證對象是否真實有效的目的。被認(rèn)證對象的屬性可以是口令、證書、數(shù)字簽名或者像指紋、聲音、視網(wǎng)膜這樣的生理特征。當(dāng)前,網(wǎng)絡(luò)上流行的身份認(rèn)證技術(shù)主要有基于口令的認(rèn)證方法、基于智能卡認(rèn)證、動態(tài)口令認(rèn)證、生物特性認(rèn)證、USB Key認(rèn)證等,這些認(rèn)證技術(shù)并非孤立或單獨(dú)使用,有很多認(rèn)證過程同時使用了多種認(rèn)證機(jī)制,結(jié)合各自特點(diǎn)達(dá)到更加安全可靠的目的[1-3]。
基于生物特征的用戶身份認(rèn)證技術(shù)是通過計算機(jī)利用人體所固有的生理特征或行為特征,如指紋、手形或視網(wǎng)膜等來進(jìn)行的個人身份鑒別。目前生物認(rèn)證技術(shù)己被廣泛使用,其中,指紋技術(shù)具有通用性、唯一性、持久性和易采集性等優(yōu)點(diǎn),相對于其它生物認(rèn)證技術(shù)更加便捷可靠。所以,它是目前基于生物特征的身份認(rèn)證方式中應(yīng)用最為廣泛的一種方法[4]。
但是,在大多數(shù)生物特征身份認(rèn)證技術(shù)中,認(rèn)證信息幾乎都是以明文的形式在網(wǎng)絡(luò)上傳播,很容易被篡改或受到重發(fā)攻擊,沒有達(dá)到認(rèn)證數(shù)據(jù)機(jī)密性和完整性的要求。主要存在問題如下:
1)傳輸指紋信息的過程中并不能保證指紋信息不被截獲,即使通過加密手段也很容易被非法第三方截獲后解析出來,一旦用戶指紋落入他人之手,后果則不堪設(shè)想。
2)存放生物特征數(shù)據(jù)的特征數(shù)據(jù)庫本身并不具有安全保密性,而且對于需要客戶端的系統(tǒng)來說,也不可能將整個數(shù)據(jù)庫都存放在每個終端當(dāng)中。指紋特征信息數(shù)據(jù)庫的安全性問題成為了進(jìn)一步提高系統(tǒng)安全性的瓶頸。
因此,要實現(xiàn)指紋識別認(rèn)證系統(tǒng)在現(xiàn)實中安全有效的應(yīng)用,必須引入一種針對于特定應(yīng)用環(huán)境下的認(rèn)證方案,既能完成錄入、對比、認(rèn)證等過程,又能有效的保護(hù)特征參考信息。
數(shù)字水印技術(shù)的發(fā)展為生物身份認(rèn)證技術(shù)提供了一種安全可靠的信息隱藏通信技術(shù)途徑。數(shù)字水印技術(shù)是將數(shù)字、序列號、文字、圖像標(biāo)志等版權(quán)信息嵌入到多媒體數(shù)據(jù)中,以起到版權(quán)保護(hù)、秘密通信、數(shù)據(jù)的真?zhèn)舞b別等作用[5-7]。然而,目前把數(shù)字水印應(yīng)用于身份認(rèn)證也存在有待解決的幾個問題:
1)水印信號的唯一性問題一直沒有得到很好地解決。Yeung和Pankanti提出了在指紋圖像模板中嵌入水印,以防止指紋模板被惡意篡改[8]。但是,水印以噪聲的形式嵌入指紋模板,必然會影響指紋的特征提取,從而影響系統(tǒng)判斷成功率,降低整個系統(tǒng)的可靠性。
2)水印信號與用戶身份并不具有嚴(yán)格的相關(guān)性。水印信號標(biāo)識并不能完全確定的代表與之相關(guān)的用戶身份。
為此,從提高身份認(rèn)證可靠性和安全性的角度出發(fā),本文將數(shù)字水印與指紋識別技術(shù)相結(jié)合,利用二者各自特點(diǎn),提出并建立了一種網(wǎng)絡(luò)身份認(rèn)證的新模型和新協(xié)議,用于實現(xiàn)對用戶身份的雙重認(rèn)證,防止非法用戶進(jìn)入系統(tǒng)盜取重要機(jī)密,防止合法用戶訪問非授權(quán)文件和文件夾,進(jìn)一步保障網(wǎng)絡(luò)信息的安全應(yīng)用[9-10]。
為了解決身份認(rèn)證的可靠性和安全性,將數(shù)字水印與指紋識別技術(shù)相結(jié)合,提出一種網(wǎng)絡(luò)身份認(rèn)證新模型,如下圖1所示。。這種模型采用兩個物理認(rèn)證因素:一個是用戶的ID和口令信息,另一個是用戶的指紋特征信息。這樣,就使得用戶身份認(rèn)證的確定性按指數(shù)級遞增,是一種強(qiáng)身份認(rèn)證方案??傮w來說,由指紋信息提取、水印生成、嵌入水印、傳輸載體信息、水印提取和檢測等部分組成。當(dāng)然,在系統(tǒng)對用戶身份認(rèn)證之前,服務(wù)端應(yīng)該具有用戶的注冊信息數(shù)據(jù)庫。系統(tǒng)客戶端一方在水印信息嵌入完成后將載有水印信息的載體信息通過某種協(xié)議方式安全傳送至服務(wù)端,服務(wù)端通過解密提取出水印信息后,與服務(wù)端的原有信息庫中信息比對,完成身份驗證的功能。
圖1 基于指紋作為水印的網(wǎng)絡(luò)身份認(rèn)證系統(tǒng)模型圖Fig.1 System model of network identity authentication based on fingerprint watermarking
基于指紋水印的網(wǎng)絡(luò)身份認(rèn)證系統(tǒng)工作流程分如下幾個步驟:
1)信息提取。此處所說的信息提取包括兩部分:對用戶ID和Password等基本信息的提取;同時,通過指紋采集設(shè)備和技術(shù)提取此用戶指紋特征信息A。將提取到的指紋信息與用戶ID建立對應(yīng)關(guān)系。
2)水印生成。將上述兩者信息結(jié)合來構(gòu)成對應(yīng)與此用戶的數(shù)字水印。然后對其進(jìn)行ASCII碼形式連續(xù)排列。
3)嵌入水印。根據(jù)載體特征和水印特征使用擴(kuò)頻載波調(diào)制的嵌入算法將用戶信息嵌入某個指定的載體[8]。
4)傳輸信息。用戶端將已經(jīng)嵌入水印的載體信息發(fā)送至服務(wù)器端。但此處的發(fā)送方式應(yīng)該通過一種安全有效的通信協(xié)議方式來完成 (這是為了防止非法第三方冒充客戶端或服務(wù)端)。
5)水印提取和匹配。服務(wù)端接受到信息后,通過密鑰對載體解密提取出用戶身份信息。此時,需要對提取出來的信息進(jìn)行雙層驗證。根據(jù)用戶ID和Password到服務(wù)器用戶數(shù)據(jù)庫中查找并比對,如果信息比對一致,則進(jìn)入第二層驗證過程,即根據(jù)用戶ID從服務(wù)器端的指紋特征庫中查找出相對應(yīng)的用戶指紋信息B,此時,根據(jù)某一特定匹配算法對特征信息 A和B進(jìn)行匹配。如果匹配成功,那么身份認(rèn)證成功,此用戶是具有合法性。
由系統(tǒng)實現(xiàn)步驟可見,所有的信息資源訪問權(quán)限都在身份認(rèn)證系統(tǒng) (服務(wù)器端)的管理之下,經(jīng)過兩個物理認(rèn)證因素的驗證,確保了信息資源訪問的合法性。這樣,將數(shù)字水印與指紋識別技術(shù)相結(jié)合,實現(xiàn)了用戶合法身份的雙重認(rèn)證:
·水印信息中的ID、口令—第一重認(rèn)證。服務(wù)器端從用戶端發(fā)送來的載體圖像中提取水印信息,該水印信息中包含用戶的ID、口令,若ID和口令不正確,則可判斷為非法用戶。
·指紋特征信息—第二重認(rèn)證。服務(wù)器端將從用戶端發(fā)送來的載體圖像中所提取的指紋特征信息A與存儲在指紋特征庫中的該用戶的原始指紋特征信息B進(jìn)行比較,再次驗證用戶的合法性。
在本文提出的基于數(shù)字水印和指紋識別技術(shù)的網(wǎng)絡(luò)雙重身份認(rèn)證過程中,由于水印信息量較少,一般在幾kb到十幾kb,通過控制嵌入強(qiáng)度和嵌入的水印信息量,可以將水印嵌入并且隱藏在載體圖像中,使得水印的嵌入不會對載體圖像構(gòu)成影響,人們也很難用肉眼觀察出載體圖像的失真,不易引起攻擊者的注意,起到了一定的保護(hù)作用。
圖2 基本物理平臺構(gòu)架圖Fig.2 The physical building platform of the identity authentication system
本文采用的雙重身份認(rèn)證方案一方面運(yùn)用公鑰基礎(chǔ)設(shè)施PKI提供的CA證書服務(wù)對系統(tǒng)交互雙方分發(fā)數(shù)字證書并相互進(jìn)行驗證,另一方面,在此基礎(chǔ)上將系統(tǒng)用戶生物指紋與用戶基本信息以及時間信息等一并作為數(shù)字水印嵌入到傳輸載體,通過安全的SSL協(xié)議通道發(fā)送至服務(wù)器端,實現(xiàn)對系統(tǒng)操作方的身份驗證。本文所提及的協(xié)議主要是根據(jù)方案設(shè)計建立在系統(tǒng)應(yīng)用層之上,它包括兩個階段:注冊階段和認(rèn)證階段。注冊過程發(fā)生在一個新用戶想要加入到認(rèn)證系統(tǒng)時,每個用戶只進(jìn)行一次注冊過程,實際注冊的內(nèi)容將在后面詳細(xì)描述。而認(rèn)證過程發(fā)生在用戶每次登陸系統(tǒng)和進(jìn)入系統(tǒng)后進(jìn)行關(guān)鍵性操作時,認(rèn)證的目的是數(shù)據(jù)交互雙方互相驗證對方身份合法性。
協(xié)議的參加方主要有:用戶 (客戶端)A、服務(wù)器端S、管理員M、CA認(rèn)證中心。其中,CA認(rèn)證中心用于產(chǎn)生根證書,并根據(jù)用戶、服務(wù)器和管理員的請求生成數(shù)字證書頒發(fā)給各請求方。管理員在參與方中充當(dāng)可信第三方的角色。在實際應(yīng)用系統(tǒng)中,一般CA認(rèn)證中心還需有RA注冊中心、KMC密鑰管理中心、證書庫/CRL發(fā)布與查詢系統(tǒng)等部分配合完成,它們綜合起來稱之為PKI公鑰基礎(chǔ)設(shè)施[11]。整個PKl基礎(chǔ)設(shè)施為用戶提供身份注冊,證書簽發(fā)、撤銷、查詢,證書撤銷列表CRL簽發(fā)、查詢,以及密鑰對的產(chǎn)生與備份等服務(wù)。基本物理平臺構(gòu)架如圖2。
協(xié)議要求從兩方面來考慮:首先,應(yīng)當(dāng)保證系統(tǒng)提供服務(wù)的安全性,合法的數(shù)據(jù)交互不受非法攻擊;其次,應(yīng)當(dāng)保證系統(tǒng)的高效性。從系統(tǒng)的安全性考慮,本系統(tǒng)認(rèn)證服務(wù)應(yīng)提供如下的功能:
1)參與方之間的相互認(rèn)證:包括管理員和客戶端用戶之間的雙向認(rèn)證,管理員和服務(wù)器端之間的雙向認(rèn)證,客戶端用戶和服務(wù)器端之間的雙向認(rèn)證。以上認(rèn)證都要防止非法攻擊。
2)數(shù)據(jù)傳輸?shù)臋C(jī)密性保證:數(shù)據(jù)以密文形式在網(wǎng)絡(luò)中傳輸并保存在數(shù)據(jù)庫中,以保證數(shù)據(jù)不會泄漏,只有數(shù)據(jù)接收方使用正確密鑰解密,才能獲取明文數(shù)據(jù)。
3)防止Stolen-verifier攻擊:防止攻擊者使用從認(rèn)證服務(wù)器中盜竊的用戶身份和指紋信息冒充合法用戶進(jìn)行系統(tǒng)登錄與訪問。
4)防止重發(fā)攻擊:防止非法用戶利用合法實體以前使用過的信息進(jìn)行非法的系統(tǒng)訪問。從用戶的角度來講,指紋是無需用戶記憶和攜帶的口令或密碼,而從系統(tǒng)的角度看,指紋僅僅是一個比特串,與任何其它的密鑰沒有什么不同。在網(wǎng)絡(luò)上,如果沒有任何保護(hù)措施,基于指紋的身份認(rèn)證系統(tǒng)同樣對重發(fā)攻擊沒有免疫力,攻擊者能夠簡單地繞過指紋采樣設(shè)備,直接將一個比特串發(fā)往認(rèn)證服務(wù)器,從而假冒合法用戶的身份訪問系統(tǒng)資源。因此,像密鑰一樣,指紋認(rèn)證中的指紋數(shù)據(jù)必須得到保護(hù)。
當(dāng)用戶注冊其指紋特征時,需要到管理員處,由管理員審核其指紋特征數(shù)據(jù)的真實性,并由管理員負(fù)責(zé)將用戶的指紋注冊到服務(wù)器S。圖3表示用戶注冊協(xié)議流程。注冊過程具體描述如下。
圖3 注冊協(xié)議數(shù)據(jù)交互實現(xiàn)流程Fig.3 Implementation process of data interaction for user registration
消息1:管理員M?服務(wù)器S:CertM,R,ID.
用戶在管理員處申請注冊用戶ID,由管理員M向服務(wù)器S發(fā)出一個注冊請求消息,消息包括管理員證書CertM、注冊請求隨機(jī)數(shù)R和用戶ID。服務(wù)器收到管理員的注冊請求后,首先通過PKI提供的證書驗證服務(wù)對CertM進(jìn)行驗證。如果驗證不正確,則認(rèn)為此管理員不合法,協(xié)議中斷;如果驗證正確,則從證書CertM中解析出服務(wù)器的公鑰Km,認(rèn)為它是某個合法管理員的公鑰。但此時,還不能確定CertM是否為被某一非法用戶竊取后進(jìn)行的冒名攻擊。之后,服務(wù)器生成消息2并發(fā)送至管理員M,管理員通過收到的消息2驗證服務(wù)器身份。
消息 2:服務(wù)器 S?管理員 M:Ep(Km;k),Es(k;CertS‖Ns‖Sig(Ks-1;Hash(Ns‖R))).
服務(wù)器生成一個隨機(jī)數(shù)Ns,將Ns與M發(fā)送來的R連接并對其哈希,而后用服務(wù)器私鑰Ks-1對此哈希值簽名,同時生成隨機(jī)數(shù)k作為對稱密鑰,用解析出的管理員公鑰Km對k機(jī)密,用k對服務(wù)器證書、隨機(jī)數(shù)Ns和簽名值進(jìn)行對稱加密,并發(fā)送至管理員M。
管理員M收到消息2后,用私鑰Km-1解密消息,獲得服務(wù)器證書CertS、隨機(jī)數(shù)Ns,此時,管理員通過PKI對CertS進(jìn)行驗證,如果不正確,則認(rèn)為服務(wù)器是非法的,協(xié)議就此中斷;如果正確,則從證書CertS中解析出服務(wù)器公鑰Ks,并認(rèn)為Ks為合法服務(wù)器的公鑰。而后,用服務(wù)器公鑰Ks對簽名值進(jìn)行Sig(Ks-1;Hash(Ns‖R))解密,得到哈希值Hash(Ns‖R)。此時,管理員M已經(jīng)得到服務(wù)器發(fā)送來的隨機(jī)數(shù) Ns,且擁有自己產(chǎn)生的隨機(jī)數(shù)R,管理員M用相同算法對Ns‖R進(jìn)行哈希運(yùn)算得到Hash'(Ns‖R)。這時,對比兩個哈希值,如果相等,說明交互對方服務(wù)器確實為合法服務(wù)器。這樣便有效防范了某個非法服務(wù)器在竊取合法服務(wù)器的證書CertS后進(jìn)行假冒攻擊。
消息3:管理員M?服務(wù)器S:Es(K;ID‖F(xiàn)a‖F(xiàn)s‖PW).
管理員收到消息2并對服務(wù)器身份驗證通過后,將解析所得的隨機(jī)數(shù)Ns與隨機(jī)數(shù)R異或得到新的對稱交互密碼K=Ns⊕R。由于Ns和R只有管理員M和服務(wù)器S知道,故對稱密鑰K是安全的。
而后,管理員M用對稱密鑰K對消息ID‖F(xiàn)a‖F(xiàn)s‖PW進(jìn)行加密,并發(fā)送至服務(wù)器端。其中,F(xiàn)a是管理員指紋特征數(shù)據(jù),F(xiàn)s是新用戶的指紋特征數(shù)據(jù),PW是用戶設(shè)置的密碼。
服務(wù)器收到消息3后,用本地計算出的K=Ns⊕R對其解密,獲得 ID、PW、Fa和Fs,并驗證此ID是否為消息1發(fā)送來的用戶ID,如果不一致,則認(rèn)為消息3為非法用戶所發(fā)送,協(xié)議中斷;如果一致,則說明消息3的發(fā)送方仍然是之前交互的合法新用戶。
服務(wù)器端將解密出的Fa與服務(wù)器端存儲的管理員指紋數(shù)據(jù)Fai(i=1,2,...)進(jìn)行1:N匹配,判斷是否有Fai≈F。如果不存在任一Fai與Fa匹配成功,則管理員的身份驗證不通過,用戶指紋不能注冊。否則,管理員指紋匹配成功,服務(wù)器端生成隨機(jī)數(shù) k作為對稱加密密鑰,將用戶 ID、PW、Ep(Ks;ki)、Es(ki;(Fs⊕i)‖F(xiàn)s)和認(rèn)證成功計數(shù)器n=1保存在后臺安全數(shù)據(jù)庫,作為用戶原始注冊數(shù)據(jù),其中i=n。
消息4:服務(wù)器S?管理員M:Register Success.
服務(wù)器M對用戶信息成功注冊后,向管理員M回送注冊成功消息4。
當(dāng)用戶A申請登錄系統(tǒng)時,觸發(fā)認(rèn)證協(xié)議。認(rèn)證協(xié)議分Time1和Time2兩個階段。Time1階段用于對普通用戶登錄時的身份認(rèn)證,認(rèn)證通過用戶進(jìn)入系統(tǒng),服務(wù)器根據(jù)用戶身份對其設(shè)定訪問權(quán)限,用戶可以進(jìn)行瀏覽、查看等普通操作;Time2階段用于用戶要實施關(guān)鍵性操作時對用戶身份再次進(jìn)行驗證,這次驗證通過判斷用戶的指紋特征是否與用戶聲稱身份相符的方式來實現(xiàn)。這樣,有效的防止了非法用戶在竊取合法用戶ID、密碼和數(shù)字證書等私有信息后進(jìn)入系統(tǒng)實施數(shù)據(jù)盜用和數(shù)據(jù)毀壞等非法操作。
協(xié)議描述 客戶端與服務(wù)器連接成功后,用戶A在客戶端向服務(wù)器S發(fā)送登錄請求,認(rèn)證協(xié)議被觸發(fā),認(rèn)證協(xié)議的第i(i≥1)次認(rèn)證過程如圖4所示。
用戶A的第i(i≥1)次認(rèn)證過程具體描述如下:
消息1:用戶A?服務(wù)器S:R‖ID‖Es(PW;ID‖CertA‖R).
用戶A請求登錄系統(tǒng)時觸發(fā)認(rèn)證協(xié)議,用戶端將用戶登錄口令PW作為對稱加密密鑰,對用戶ID、隨機(jī)數(shù)R和用戶數(shù)字證書進(jìn)行加密,并將加密后的數(shù)據(jù)與明文R和ID發(fā)送至服務(wù)器端。
服務(wù)器端接收到消息1,首先根據(jù)收到的ID查看數(shù)據(jù)庫,判斷該ID是否已注冊。如果此用戶并未注冊,則拒絕訪問,協(xié)議中斷;如果此ID已注冊,用數(shù)據(jù)庫中此ID對應(yīng)的口令PW對Es(PW;ID‖CertA‖R)解密,如果能正確解密出ID且與明文ID一致,且驗證證書CertA合法,則服務(wù)器S認(rèn)為消息1確是由擁有此ID和PW的用戶所發(fā)送,并且消息完整未被改動。否則,服務(wù)器 S認(rèn)為用戶A的ID被盜用或消息1在傳輸過程中被修改,協(xié)議中斷。
消息 2:服務(wù)器 S?用戶 A:OK‖Es(PW;CertS‖R).
服務(wù)器S同樣用此ID的口令PW作為對稱密鑰,對證書CertS和R加密,連同認(rèn)證通過消息OK發(fā)送給用戶。
用戶接收到消息2,用PW解密獲得服務(wù)器證書CertS和隨機(jī)數(shù)R,對證書驗證合法并且R與消息1中生成的隨機(jī)數(shù)R相同,則認(rèn)為消息2是合法服務(wù)器發(fā)來的數(shù)據(jù),用戶A確信服務(wù)器發(fā)來的認(rèn)證通過OK消息。
至此,用戶身份的第一層認(rèn)證結(jié)束,用戶可以進(jìn)入系統(tǒng)訪問應(yīng)用服務(wù)器,但用戶的操作權(quán)限受限,只能實施諸如瀏覽、查詢等普通操作。當(dāng)用戶要進(jìn)行關(guān)鍵性操作時,觸發(fā)以下第二層認(rèn)證協(xié)議。
圖4 認(rèn)證協(xié)議實現(xiàn)流程Fig.4 Implementation process of the authentication protocol
消息 3:用戶 A?服務(wù)器 S:ID‖Ep(Ks;S1‖ID).
用戶觸發(fā)第二層認(rèn)證協(xié)議,客戶端產(chǎn)生認(rèn)證請求隨機(jī)數(shù)S1,并用解析證書CertS得到的公鑰Ks對CertS和用戶ID進(jìn)行加密,連同明文ID發(fā)送給服務(wù)器S端。
服務(wù)器S收到消息3后,知道是具有此ID的用戶請求認(rèn)證,S用私鑰Ks-1解密得到S1和用戶ID,判斷解密所得ID是否與明文ID一致,如果不一致,則協(xié)議中斷;否則,服務(wù)器S認(rèn)為消息3可靠。S產(chǎn)生一隨機(jī)數(shù)S2,并對接收到的消息1中的CertA解析得到用戶公鑰Ka。
消息4:服務(wù)器S?用戶A:Es(Ka;k'),Es(k';ID‖S2‖i‖Sig(Ks-1;Hash(S1‖S2))).
服務(wù)器生成隨機(jī)數(shù)k'作為對稱密鑰,并用公鑰Ka對其加密,同時S對兩個隨機(jī)數(shù)的連接哈希得到一個散列值 Hash(S1‖S2),并用私鑰Ks-1對其簽名。然后,S將ID、S2、i和哈希值用k'對稱加密,并發(fā)送給用戶A,其中i是后臺安全數(shù)據(jù)庫中所存的此用戶的認(rèn)證成功計數(shù)器n的值。
用戶A接受到消息4后,用私鑰Ka-1解密。然后,使用用戶公鑰 Ks對簽名值 Sig(Ks-1;Hash(S1‖S2))解密,得到哈希值 Hash(S1‖S2)。此時,用戶已經(jīng)得到服務(wù)器S發(fā)送來的隨機(jī)數(shù)S2,且擁有自己產(chǎn)生的隨機(jī)數(shù)S1,用戶A用相同算法對S1‖S2進(jìn)行哈希運(yùn)算得到Hash'(S1‖S2)。這時,對比兩個哈希值,如果相等,說明交互對方服務(wù)器確實為合法服務(wù)器,這樣便有效防范了某個非法服務(wù)器的假冒攻擊。
消息5:用戶A?服務(wù)器S:Es(K;ID‖PIC(W)).
用戶根據(jù)S1、S2產(chǎn)生新的會話對稱密鑰K=S1⊕S2。同時,采集用戶指紋特征信息Fu,計算W=Es(K;(Fu⊕i)‖F(xiàn)u),使用密鑰K將W作為水印信息根據(jù)約定好的水印嵌入方法嵌入到載體圖像PIC中得到 PIC(W),將ID和PIC(W)用密鑰K加密,將載體圖像加密為密文發(fā)送至服務(wù)器S。
服務(wù)器S接收到消息5后,用密鑰K=S1⊕S2對消息解密得到ID和嵌有水印的圖像PIC(W),服務(wù)器端使用密鑰K提取出水印信息W=Es(K;(Fu⊕i)‖F(xiàn)u),同時判斷W是否等于數(shù)據(jù)庫中注冊的ID對應(yīng)的Es(k;(Fs⊕i)‖F(xiàn)s),如果不相等,協(xié)議中斷;否則,S解密W,得到Fu⊕i與Fu。此時,計算Fu⊕iu⊕n是否等于Fu,如果不相等,協(xié)議中斷;否則,對Fu和Fs進(jìn)行相似度匹配,如果匹配成功,即Fu≈Fs,則認(rèn)為用戶A的指紋特征數(shù)據(jù)合法,驗證通過。同時,將數(shù)據(jù)庫中的用戶注冊數(shù)據(jù)ID、PW、Ep(Ks;ki)Es(ki;(Fs⊕i)‖F(xiàn)s)、i=n 更新為 ID、PW、Ep(Ks;ki+1)、Es(ki+1;(Fu⊕(i+1))‖F(xiàn)u)、i=n,其中,n=n+1。如果匹配不成功,則用戶認(rèn)證失敗,協(xié)議中斷。
消息6:服務(wù)器S?用戶A:Es(K;M‖Sig(Ks-1;M‖S2).
服務(wù)器在確認(rèn)了用戶的合法身份后,產(chǎn)生指紋認(rèn)證成功的消息M,用私鑰對Ks-1M‖S2進(jìn)行數(shù)字簽名,然后用對稱密鑰K對M和簽名加密形成消息6發(fā)送給用戶。
用戶收到消息6后,使用密鑰K對消息解密,獲得指紋認(rèn)證成功消息M。但此時,用戶并不能確認(rèn)消息是否為某個非法認(rèn)證服務(wù)器的假冒攻擊,所以用服務(wù)器公鑰Ks對服務(wù)器簽名進(jìn)行驗證,若不正確,用戶認(rèn)為消息為假冒服務(wù)器所發(fā);若正確,用戶認(rèn)為對方服務(wù)器是合法的,指紋認(rèn)證成功消息可靠。
至此,用戶A與服務(wù)器S相互認(rèn)證完畢,用戶可以在系統(tǒng)中進(jìn)行關(guān)鍵性操作。
下面從指紋數(shù)據(jù)的保密性和真實性、Stolenverifier攻擊以及重放攻擊三方面對協(xié)議實現(xiàn)過程進(jìn)行分析。
在協(xié)議中,公鑰算法和對稱密碼算法分別使用RSA與AES,其中RSA的密鑰長度為1024 bit,AES算法的密鑰長度為128 bit,我們知道密鑰長度為1024 bit的RSA算法和密鑰長度為128bit的AES算法在計算上是安全的[11-12]。同時,對于用戶指紋敏感信息做了特殊處理,將其作為數(shù)字水印嵌入到載體圖像,對載體圖像以密文的形式傳送。這樣,攻擊者無法從中獲取用戶的指紋等敏感信息,保證了交互過程中數(shù)據(jù)的保密性。
由注冊協(xié)議分析可知,攻擊者假冒用戶A進(jìn)行指紋注冊不可行,故服務(wù)器后臺數(shù)據(jù)庫存放的都是合法用戶的真實指紋數(shù)據(jù)。在認(rèn)證階段,如用戶冒名以他人身份登錄系統(tǒng)并使用假冒指紋Fu'認(rèn)證,服務(wù)器端獲取Fu'與用戶所聲稱的ID對應(yīng)的數(shù)據(jù)庫中的指紋模版匹配,結(jié)果失敗,服務(wù)器可以認(rèn)為Fu'是假冒用戶所發(fā),認(rèn)證不通過,從而可以保證了用戶指紋數(shù)據(jù)的真實性。
Stolen-verifier是指攻擊者使用從認(rèn)證服務(wù)器中盜竊的用戶信息冒充合法用戶。假設(shè)攻擊者已經(jīng)盜竊了S中A的數(shù)據(jù),由于服務(wù)器存的指紋和用戶信息都是經(jīng)過雙方協(xié)商好的密鑰K加密的密文,攻擊者無法得到Fs或Fu,也就是說只有認(rèn)證服務(wù)器S才能知道Fs和Fu。如果攻擊者用盜竊來的Es(ki;(Fs⊕ i)‖F(xiàn)s)代替 A發(fā)送到 S的信息Es(Kn;(Fu⊕n)‖F(xiàn)u),然后將該消息發(fā)送到 S中。此時,用戶發(fā)送來的消息與服務(wù)器端數(shù)據(jù)庫保存的用戶信息完全一致,即Fs=Fu,但是實際上,用戶每次發(fā)來的指紋信息和密鑰K不可能與上次完全一致,故由協(xié)議流程可知,服務(wù)器決定拒絕該用戶的登錄請求;另一種情況,如果攻擊者盜用的是服務(wù)器數(shù)據(jù)庫早先存放的用戶指紋數(shù)據(jù),并非最近一次認(rèn)證信息所存的指紋數(shù)據(jù)。那么,F(xiàn)s≠Fu,但此時也可以對攻擊者控制。由于服務(wù)器端設(shè)置了用戶每次認(rèn)證通過的都修改的計數(shù)器n,所以服務(wù)器計算Fu⊕i⊕n≠Fs,由協(xié)議可知,該用戶的登錄請求被拒絕。這樣攻擊者利用Stolen-verifier問題發(fā)動的攻擊無法奏效。
假設(shè)攻擊者在用戶A進(jìn)行第i次身份認(rèn)證時,截獲到用戶A發(fā)送到服務(wù)器S的信息Es(ki;(Fu⊕i)‖F(xiàn)u)。在第i次身份認(rèn)證成功后,服務(wù)器S的認(rèn)證計數(shù)n加1,i值隨n值的同時變化,保存在數(shù)據(jù)庫中的用戶A的指紋相關(guān)信息更新為另一種形式Es(ki+1;(Fu⊕(i+1)‖F(xiàn)s)。之后,攻擊者冒充A將截獲到的Es(ki;(Fu⊕i)‖F(xiàn)u)發(fā)送給服務(wù)器S,S收到后,得到Fu⊕i⊕n≠Fu。由協(xié)議可知,服務(wù)器S拒絕攻擊者的登錄請求,攻擊者沒有機(jī)會利用重發(fā)攻擊假冒A的身份登錄服務(wù)系統(tǒng)。所以,協(xié)議有效的防范了攻擊者的重發(fā)攻擊。
基于公鑰密碼體制,提出了一種基于指紋特征作為數(shù)字水印的雙重網(wǎng)絡(luò)身份安全認(rèn)證協(xié)議。協(xié)議中使用公鑰和對稱密鑰技術(shù),將用戶私有信息和指紋特征數(shù)據(jù)作為數(shù)字水印隱藏在載體圖像中,將載體圖像作為普通數(shù)據(jù)來進(jìn)行加密解密處理。協(xié)議保證了注冊階段和認(rèn)證階段用戶指紋信息的真實性和保密性,并對重發(fā)攻擊和Stolen-verifier攻擊具有較高的安全性??紤]到客戶端的并發(fā)量對服務(wù)器的壓力較大,協(xié)議設(shè)計過程中將服務(wù)器的計算量盡量讓客戶端分擔(dān),從而大大減輕了服務(wù)器的負(fù)擔(dān)。
[1]周琳娜,數(shù)字圖像盲取證技術(shù)研究[D].北京:北京郵電大學(xué),2007.
[2]朱麗娟,須文波,劉淵.基于指紋的網(wǎng)絡(luò)身份認(rèn)證技術(shù)的研究與實現(xiàn)[J].計算機(jī)工程與應(yīng)用,2003,31:171-173.
[3]張龍軍,黃繼武.一個安全電子商務(wù)身份驗證協(xié)議[J].中山大學(xué)學(xué)報:自然科學(xué)版,2003,42(1):20 -23.
[4]張喜青.基于指紋特征的用戶身份認(rèn)證技術(shù)研究與開發(fā)[D].成都:電子科技大學(xué),2002.
[5]《中國商用密碼認(rèn)證體系結(jié)構(gòu)研究》課題組.數(shù)字證書應(yīng)用技術(shù)指南[M].北京:電子工業(yè)出版社,2008:21-52.
[6]HE H J,ZHANG J S ,CHEN F.Adjacent-block based statistical detection method for self-embedding watermarking techniques[J].Signal Processing,2009,89(3):1557-1566.
[7]WANG S S,TSAI S L.Automatic image authentication and recovery using fractal code embedding an image inpainting[J].Pattern Recognition,2008,41(2):701 -712.
[8]蔡龍飛,趙慧民.一種多級數(shù)據(jù)嵌入的信息隱藏方法研究[J].中山大學(xué)學(xué)報:自然科學(xué)版,2013,52(2):23-27.
[9]陳宏武,趙慧民.一種基于數(shù)字指紋在電子商務(wù)中的應(yīng)用方法研究[J].中山大學(xué)學(xué)報:自然科學(xué)版,2009,48(3):41-46.
[10]YANG H W,SHEN J J.Recover the tampered image based on VQ indexing[J].Signal Processing,2010,90(1):331-343.
[11]NIST.Advanced eneryption standard(AES)[S].Federal Information Processing Standards Publication,2007.
[12]張福泰,孫銀霞,張磊,等.無證書公鑰密碼體制研究[J].軟件學(xué)報,2011,22(6):1316-1332.