陳金木,黃朝陽
(廈門海洋職業(yè)技術學院 信息工程學院,福建 廈門 361102)
互聯網的高速發(fā)展加快了信息時代的前進步伐,手機、電腦的普及方便了人們對信息的獲取,人們對信息的時效性比以往也有著更高的要求?,F在越來越多的人都會隨時隨地通過手機等移動設備訪問不同類型的應用程序服務器。如:在線購物、電子商務、政務網站等領域,這些服務器的使用頻率就會相對較高。然而,在為用戶提供這些在線服務的同時,如何保護這些敏感數據是一個較為重要的問題。作為一種防范措施,認證密鑰協(xié)議被普遍應用于保護信息和抵御威脅上,幫助網絡用戶在確保個人信息安全的同時享用各種在線服務。密鑰協(xié)商是在用戶及服務商之間建立一個共同的會話密鑰,用來確保其在開放網絡中的通信安全。
早在1981 年,文獻[2]中就首次提出了基于口令的認證方案,但該方案無法提供密鑰協(xié)議、且需要維護用戶驗證列表,這反而為黑客遠程入侵造成了可乘之機。文獻[3-5]中提出了改進的基于口令和密鑰認證方案,但這些只采用口令的密鑰交換協(xié)議普遍存在一些共同缺點。如:弱口令、容易受到竊取驗證表攻擊等等。文獻[6-8]提出的基于口令和智能卡的身份認證方案,也存在口令被暴力破解、或者木馬竊取以及智能卡丟失的風險。文獻[9-10]中提出的基于混沌映射的認證密鑰協(xié)商協(xié)議,雖能在一定程度上提高密鑰的保密性,但卻缺乏實用性。
為進一步提升遠程身份認證協(xié)議的安全性能,本文提出了一種基于生物特征的身份認證和密鑰協(xié)商協(xié)議,通過在多服務器體系結構下執(zhí)行,在保證用戶享受網絡服務的同時,能確保敏感數據的安全性。
本文提出方案由服務器注冊、用戶注冊、登錄、認證、密碼更改和用戶撤銷/重新注冊等6 個階段組成。
抗碰撞哈希函數根據任意長度的二進制字符串輸出固定長度的二進制字符串,即():0,1→0,1。對于給定的輸入,求任意輸入≠使()()在計算上是不可行的?;谏锾卣餍畔⑼ㄟ^過程,輸出一個不可預測的二進制字符串∈{0,1}和一個輔助二進制字符串∈{0,1}。借助這個輔助二進制字符串和另一個生物特征信息,通過過程進行再生驗算。當()→〈,〉 和(,) ≤保持時,恢復一個對應的不可預測二進制串,用(,) →表示。方案中應用的符號及說明,見表1。
表1 符號說明Tab.1 Symbols description
1.2.1 服務器注冊
服務器S通過安全通道向注冊中心申請進行服務器注冊。當收到加入請求消息時,注冊中心授權服務器S,并根據安全信道,應用密鑰交換協(xié)議(IKEv2)向服務器S發(fā)送預共享密鑰和主密鑰。授權服務器S接收到預共享密鑰和主密鑰后,在認證階段采用這些共享數據(如和()),來驗證用戶U的合法性。
1.2.2 用戶注冊
用戶U通過安全通道向注冊中心提交用戶注冊信息。具體實現步驟如下:
用戶U通過傳感器輸入個人生物特征信息BIO,并利用傳感器內置設備繪制用戶U的生物特征BIO。從(BIO) →(R,P) 中提取(R,P),并將用戶U的輔助二進制字符串P存儲在存儲器中;接下來,用戶U選擇其身份ID和密碼PW,并計算RPW=h (R‖PW) ;最后用戶U通過安全通道,向注冊中心提交其注冊請求消息{ID,RPW}。
獲得注冊請求消息后,向其內部數據庫中添加一個新的條目〈ID,N=1〉。其中,N表示用戶U的注冊次數。然后,選擇隨機數u,并計算A=h (ID‖)、B=h()⊕u、C=h (‖u) ⊕ID以及V=h (ID‖RPW) 。最后,通過安全通道發(fā)送用戶U的智能卡SC,該SC包括{A,B,C,V,(·)}。
收到SC后,U計算E=B⊕(R),并用E代替B。此后,U將其輔助二進制字符串P存儲到SC中,并初始化登錄和身份驗證環(huán)境。
1.2.3 登錄
在登錄階段,智能卡SC能夠通過應用用戶U的身份、密碼和生物特征信息立即發(fā)現錯誤。具體實現步驟如下:
SC計算RPW=h (R‖PW),并驗證(ID‖RPW)=V是否有效。如果有效,則SC進一步計算K=h (SID‖(ID⊕C)) 。
SC產生隨機數,并計算⊕K、=ID⊕K、=RPW⊕K、B=E⊕(R)、D=h (‖RPW‖A‖T) 。其中,T是附加的時間戳。
SC通過開放通道,向S提交其登錄請求消息{,,,B,D,T}。
1.2.4 認證
在認證階段,服務器S確認登錄請求消息的來源并進行認證。具體實現步驟如下:
S收到用戶U的登錄請求消息后,檢查T -T≤。其中,表示時間間隔,是S收到用戶U登錄請求消息的時間。若條件成立,S繼續(xù)執(zhí)行以下步驟;否則,登錄請求將被拒絕。
S檢索u=B⊕()、 K=h (SID‖(‖u))、=K⊕、ID=K⊕、RPW=K⊕、 A=h (ID‖),以驗證(‖RPW‖A‖T)=D是否有效。
如果此驗證有效, S將生成另一個隨機數,并計算U和S之間的會話密鑰SK=h (ID‖SID‖‖) 。
S計算⊕(A‖RPW‖)和(SID‖‖‖ID),并通過一個開放通道將其身份驗證請求消息{,} 發(fā)送到用戶U。
當獲得S的認證請求消息時,SC檢索(A‖RPW‖) ⊕,并檢查(SID‖‖‖ID) 是否與一致。若一致,SC將計算 SK= h(ID‖SID‖‖)和(SK‖‖)。然后SC通過公共信道向S發(fā)送用戶的身份驗證答復{}。
S進一步驗證(SK‖‖)是否有效。如果有效,S在之后的通信中將采用此會話密鑰SK與用戶U通信;否則,認證將被中止。
方案中用戶注冊、登錄、認證各階段具體實現過程如圖1 所示。
圖1 用戶注冊、登錄、認證實現過程Fig.1 User registration phase,login phase and authentication phase
1.2.5 密碼更改
在密碼更改階段,用戶U可隨意更新個人密碼,而不需要服務器或注冊中心的任何幫助。具體實現步驟如下:
SC計算RPW=h (R‖PW),并驗證(ID‖RPW)=V是否有效。如果此驗證成立,SC將向用戶詢問新密碼;否則, SC將立即終止密碼更改。
1.2.6 用戶撤銷/重新注冊
當用戶的智能卡被盜或丟失時,用戶撤銷/重新注冊模塊將幫助用戶撤銷其權限或重新注冊,使該方案在功能上更加健壯。
當用戶需要撤銷其特權時,可通過安全通道向注冊中心發(fā)送撤銷請求消息、智能卡和驗證消息{RPW}。若注冊中心檢查用戶有效,則進一步設置〈ID,N=0〉 來修改相應條目。與用戶注冊功能類似,在通過安全信道獲得重新注冊請求消息后,注冊中心執(zhí)行1.2.2 節(jié)中提到的步驟,并將〈ID,N=N +1〉 替換為〈ID,N〉,幫助用戶U重新注冊。
方案中的認證和密鑰協(xié)商協(xié)議必須滿足安全性、功能性和高效率的要求。以下針對本文方案設計,分別從安全性、功能性和效率進行全面分析說明。
(1)抵抗重放攻擊。該方案利用時間戳和隨機數來抵抗重放攻擊。雖然攻擊者通過竊聽,得到用戶U先前的登錄請求消息{,,,B,D,T},并將其發(fā)送給服務器S,但服務器S可以通過式(1)驗證時間戳T的及時性和隨機數的正確性,來檢查該消息的合法性。公式(1)的數學表達見如下:
其中,時間戳T和隨機數對于每個會話都是不同的,因此攻擊者會被服務器S拒絕。
(2)抵抗拒絕服務攻擊。當攻擊者試圖通過竊聽和重復發(fā)送用戶以前的登錄請求消息,來削弱或消除服務器的能力時,服務器會驗證時間戳T的新鮮性,同時檢查D=h (‖RPW‖A‖T) 是否成立。此時,服務器會將攻擊者視為惡意黑客并終止此會話,以此抵抗拒絕成立服務攻擊。
(3)抵抗密碼猜測攻擊。攻擊者利用SPA 或DPA 等側通道攻擊,從用戶的智能卡中提取敏感數據A、C、E、V和P。但是,在沒有生物特征信息BIO、預共享密鑰、主密鑰和隨機數的情況下,無法驗證用戶的密碼PW是否正確。在該方案中,是由具有較高熵的不可預測的二進制字符串R保護用戶U的密碼PW。因此,本文協(xié)議對密碼猜測攻擊是安全的。
(4)抵抗智能卡攻擊。在沒有密碼PW或生物特征信息BIO的情況下,攻擊者發(fā)起智能卡攻擊,以收集存儲在智能卡SC中的一些敏感數據,并實現服務器S的身份驗證。在該方案中,攻擊者能夠通過SPA 或DPA 獲取用戶U中保存在智能卡SC中的敏感數據A、C、E、V和P。用戶U和服務器S之間的會話密鑰SK計算如下:
攻擊者通過一個公共信道獲取和是可行的。但是,檢索隨機數或是相當困難的。因此,本文協(xié)議能夠抵御智能卡攻擊。
(5)抵抗用戶模擬攻擊。在用戶模擬攻擊中,攻擊者試圖在沒有密碼PW或生物特征信息BIO的情況下模擬用戶U。在該方案中,攻擊者即使竊聽用戶U先前的登錄請求消息{,,,B,D,T} 也無法獲?。ǎ?。雖能通過SPA 或DPA從智能卡SC中提取用戶U的敏感數據,但不能檢索隨機數、或會話密鑰SK。因此,本文協(xié)議對用戶模擬攻擊是安全的。
(6)抵抗特權內部攻擊。假設攻擊者是惡意內部人員,具有訪問授權系統(tǒng)的特權,試圖模擬用戶U。為了達到這一目的,攻擊者收集用戶U的注冊請求消息{ID,RPW} 并竊取其智能卡SC,但是卻無法獲得() 和B。即使從用戶U的智能卡SC中提取敏感數據,攻擊者也無法傳遞正確的登錄請求消息{,,,B,D,T},并無法檢索密碼PW或生物特征信息BIO。因此,本文協(xié)議能夠抵抗特權內部攻擊。
(7)抵抗服務器欺騙攻擊。假設攻擊者是惡意的內部人員,并試圖偽裝成服務器S,通過收集敏感數據來欺騙用戶U。但是由于() 難以檢索,使得攻擊者無法被用戶U成功認證,并無法獲得隨機數和有效的身份驗證請求消息{,}。因此,本文協(xié)議能夠抵抗服務器欺騙攻擊。
(8)提供匿名性保護。在該方案登錄階段,用戶U生成其動態(tài)身份=ID⊕K。其中,K無法被攻擊者從任何請求或回復消息中檢索到。因此,攻擊者沒有能力獲取用戶U的身份ID。然而,當接收到用戶U的登錄請求消息時,授權服務器S計算u= B⊕(),并進一步計算 K=h (SID‖(‖u)),以便用戶U匿名地實現服務器S的認證。這表明,用戶U的真實身份ID不會被任何未經授權的參與者泄露。因此,本文協(xié)議能夠提供有效匿名性。
(9)具備前向保密性。在該方案中即使長期密鑰被檢索,仍具有前向保密性保護會話密鑰。生成會話密鑰SK的計算如下:
雖然攻擊者能夠計算出長期密鑰(),但卻無法計算一些敏感數據(如:RPW、K和等),且無法獲得隨機數或。另外,攻擊者也很難檢索用戶U和服務器S之間的會話密鑰SK。因此,本文協(xié)議能提供前向保密性。
(1)相互認證功能。方案中,用戶U和服務器S利用一些敏感數據(如,,K,T和SK)進行認證。特別是,服務器S檢 查(‖RPW‖A‖T)=D和(SK‖‖)是否有效。類似地,用戶U驗證(SID‖‖‖ID) 是否與一致,實現了相互認證功能。
(2)會話密鑰協(xié)商功能。在身份驗證階段,建立了服務器S和用戶U之間的會話密鑰SK=h (ID‖SID‖‖),以保護后續(xù)通信。由于、在每個認證階段都會發(fā)生變化,因此會話密鑰SK在每個會話期間都是不同的。對于攻擊者來說,這將很難檢索到會話密鑰SK。因此,本文協(xié)議具有會話密鑰一致性。
(3)用戶撤銷/重新注冊功能。方案中,注冊中心通過安全通道獲取到用戶的撤銷/重新注冊請求消息時,通過修改〈ID,N〉 幫助用戶實現用戶撤銷/重新注冊功能。
(4)生物特征信息保護功能。在傳統(tǒng)方案中,用戶U將生物特征信息BIO直接存儲在其智能卡SC中,而沒有適當的保護。因此,攻擊者能夠通過側通道進行攻擊,從丟失或被盜的智能卡SC中提取用戶U的生物特征BIO。由于不可預測的二進制字符串R可由抗碰撞哈希函數進行保護,文中利用抗碰撞哈希函數可保護不可預測的二進制字符串R這個特性機制,來保存用戶U的生物特征信息BIO。因此,攻擊者將無法提取用戶U的生物特征信息,使協(xié)議達到生物特征信息的保護功能。
本文方案在存儲需求、通信開銷和計算開銷方面的效率分析如下:
(1)存儲要求。對于存儲需求,可將這些存儲在用戶U的智能卡SC中的消息作為存儲開銷。如果采用SHA-1 算法,則和的字節(jié)長度都為20,用戶U的標識ID的字節(jié)長度為20,時間戳T的字節(jié)長度為2,抗碰撞哈希函數輸出的字節(jié)長度為20。因此就可以計算所提的方案中存儲數據的字節(jié)長度,所有保存的消息{A,C,E,V,P} 共需要20+20+20+20+20=100(bytes)。
(2)通信開銷。為估計通信開銷,需要在登錄階段將用戶U的登錄請求消息{,,,B,D,T} 提交給服務器S。根據上述假設,該消息的長度為20+20+20+20+20+2=102(bytes)。服務器S的認證請求消息{,} 和用戶U的認證應答{} 的通信開銷為20+20+20=60(bytes)。因此,本文協(xié)議的總通信開銷為102+60=162(bytes)。
(3)成本計算??紤]到計算復雜度,文中將抗碰撞哈希函數的頻率作為計算代價。在CPU 為3.7 GHz、RAM 為4 GB 的環(huán)境中,執(zhí)行抗碰撞哈希函數平均需要0.002 1 ms。在該方案中,分別在登錄和認證階段執(zhí)行了3 次和10 次抗碰撞哈希函數。最終本文協(xié)議共需要0.010 9+0.026 8=0.037 7 ms的計算開銷。
為了證明本文協(xié)議在相關方面均有良好的表現,特將本文方案與文獻[11-14]中各方案在安全性、功能性和效率等方面做了相關比較。比較結果見表2~表5。
表2 本協(xié)議與其他協(xié)議的安全性比較Tab.2 Security comparison between this agreement and other agreements
從表2 中可以看出,文獻[11]的方案無法抵抗拒絕服務攻擊、用戶模擬攻擊、特權內部攻擊、智能卡攻擊和服務器欺騙攻擊,其方案無法提供匿名性保護和前向保密性。文獻[12]的方案無法抵抗用戶模擬攻擊和服務器欺騙攻擊,方案不具有匿名性保護。文獻[13]的方案不能防止用戶模擬攻擊、特權內部攻擊和服務器欺騙攻擊,其方案也無法實現前向保密性。文獻[14]中提出的方案對拒絕服務攻擊是不安全的,并且不能提供前向保密性。結果表明,本文協(xié)議具有更高的安全性能。
從表3 中可見,文獻[11]、文獻[12]中提出的方案均不能提供用戶撤銷/重新注冊。結果表明,本文協(xié)議提供了更多的功能屬性。
表3 本協(xié)議與其他協(xié)議的功能性比較Tab.3 Functional comparison between this agreement and other agreements
由表4 可見,在相同的存儲需求下,本文協(xié)議在通信開銷上表現出了令人滿意的性能。
表4 本協(xié)議與其他協(xié)議的通信開銷與存儲需求比較Tab.4 Comparison of communication overhead and storage requirements between this protocol and other protocols bytes
表5 本協(xié)議與其他協(xié)議的計算成本比較Tab.5 Comparison of calculated costs between this agreement and other agreements
表5 中,T表示抗碰撞哈希函數的計算時間;T表示基于橢圓曲線的點乘計算時間;T表示對稱加/解密計算時間; T表示Chebyshev 混沌映射計算時間??傮w可見,本文協(xié)議所需的計算成本相對較低。
綜上所述,本文協(xié)議能抵抗多種常見網絡攻擊,同時能提供用戶匿名性與前向保密性。與其它方案相比,本文提出的方案能進一步降低計算復雜度,并以獨特的方式提供更多的功能。在通信開銷和存儲需求相同的情況下,本方案在計算復雜度方面具有明顯的優(yōu)勢。
本文在現有的基于口令及智能卡身份認證協(xié)議基礎上,通過應用抗碰撞哈希函數、二進制異或運算和級聯操作保障協(xié)議的安全性能,提出了一種基于生物特征的身份認證和密鑰協(xié)商協(xié)議,協(xié)議適用于多服務器體系結構及分布式網絡。經過與其它方案的安全與效率對比分析,證明本文方案能抵抗各種攻擊并且提供匿名性,更具有安全性和實用性。