黃朝陽,趙玉超
(廈門海洋學院信息工程學院 福建 廈門 361100)
在信息安全的“木桶理論”中,作為“桶底”的身份認證的重要性不言而喻。近年來,加密技術和身份認證技術發展突飛猛進,各種具有不同安全性能和運算復雜度的密碼體制不斷涌現;從單一口令認證到結合智能卡、生物特征的多種因素身份認證技術層出不窮。但由于網絡環境的開放性和多種不可靠因素的迭代,身份認證協議面臨各種形式多樣的攻擊威脅[1],從而導致身份認證協議的分析和設計存在客觀的復雜性。而正是在這種安全技術攻防易手的進程中,不斷有新的更為安全高效的遠程身份認證方案展現出來。
智能卡具備方便安全的特性,生物特征有其特有的唯一性[2-3],結合智能卡及生物特征的多因素身份認證方案一直是身份認證技術研究的熱點,先后涌現出多種改良的多因素身份認證協議[4]。
2010 年,文獻[5]提出了一種只使用少量異或運算和雜湊運算的的智能卡多因素身份認證協議,并證明了該協議具有高效性。2011 年,文獻[6]分析并證明了上述協議存在的漏洞,并設計一種安全性更高的多因素身份認證協議。隨后,文獻[7]證明此協議也不能抵抗若干種已知攻擊,為修補所發現的缺陷,給出了改良的多因素身份認證協議。文獻[8]指出文獻[7]的運算復雜度較高,且存有多種安全漏洞,給出了更為安全高效的多因素身份認證協議。
本文首先分析了文獻[8]提出的身份認證協議,指出該協議存在的安全漏洞,然后給出一種新的三因素遠程身份認證協議。新協議引入標準的挑戰/應答機制,使用橢圓曲線點乘運算替換文獻[8]協議中的模冪運算,由Hash 函數的單向性、橢圓曲線離散對數難題和生物特征的安全特性保證協議具備更高的安全性能。經分析證明,新協議能抵御各種已知攻擊,并具備更高的運算效率,還支持協商生成認證雙方后續所需的一次性會話密鑰。
現有認證協議[8]的安全漏洞分析如下,協議中所用符號如表1 所示。

表1 符號標記與含義
MITM(man-in-the-middleattack)攻擊亦為中間人攻擊[10-11],指敵手阻攔截取并再次發送公共信息上的認證消息,同時令正常參與認證的雙方彼此都還以為是直接在與對方通信。假定現有一敵手Uatt,他有能力阻攔截取認證雙方的交互信息,那他就可能實現下述的MITM 攻擊。
1)Uatt阻攔截取Ui傳遞給S的認證消息Mess1={DIDi,A,Ci,T1},同 時 啟 動 一 個 新 的 與S間 的 會話,把偽認證消息Mess1'= {DIDi,A,Ci,T1}傳遞給S。

上節中敵手Uatt可成功頂替合法用戶的身份實現服務器欺騙,同時也實現假冒服務器身份實現用戶欺騙。所以文獻[8]的方案無法實現安全的遠程雙向身份認證。

圖1 針對文獻[8]協議MITM 攻擊的細節
本文采用橢圓曲線點乘運算改進文獻[8]協議中所使用的模冪運算,并將挑戰/應答機制引入其中,提出一種新的基于口令、智能卡和生物特征的三因素遠程身份認證及密鑰協商協議。協議通過下述步驟實現注冊、雙向認證和密鑰協商。協議中所用符號如表1 所示。
1) 用戶Ui選定某一高熵隨機數RUi,再結合帳號IDi、安全口令PWi,計算得出I= Hash(PWi||RUi),Ui發送注冊請求消息{IDi,I}。
2)S接收Ui發來的注冊消息{IDi,I}后,計算W=Hash(IDi||Kpri_s)⊕I,計算Y=Kpri_s·p,并公開發布Y。S將{W, Hash(·),p,g,Y}存儲到Ui的智能卡SCi中,并將SCi分發給Ui。
3)Ui接收智能卡SCi。Ui輸入自己的生物特征Bi,計算獲取Gen(Bi) = (δi,θi),E= Hash(δi)⊕RUi,V= Hash(IDi|| PWi||RUi);最后把{θi,E,V}存入SCi。圖2 為新協議的注冊階段細節。

圖2 新協議的注冊階段細節
用戶Ui和服務器S通過下列步驟實現雙向認證和密鑰協商。




圖3 新協議的登錄和認證階段細節
用戶Ui隨時可以在沒有S參與的前提下通過以下步驟完成口令更新操作。

Ui的智能卡被盜或丟失時,可以通過下列步驟撤銷并重新獲取合法的智能卡SCinew。
1)Ui選定另一高熵隨機數RUi*、另一帳號IDi*以及新的口令PWi*,據此計算得到I* =Hash(PWi* ||RUi* );將新的注冊消息{I* , IDi* }經過可靠信道發給S。
2)S接收Ui發來的注冊消息{IDi*,I* }后,重新計算W* = Hash(IDi* ||Kpri_s)⊕I*。S將{W*, Hash(·),p,g,Y}存 儲 到Ui的 智 能 卡SCinew中,并 將SCinew分發給Ui。
3)Ui接收智能卡SCinew。Ui輸入自己的生物特征Bi,計算獲取Gen(Bi) = (δi,θi),E* = Hash(δi)⊕RUi*,V* = Hash(IDi* || PWi* ||RUi* );最后把{θi,E*,V* }存入SCinew。

本文協議能抵御多種已知攻擊,具有較高的安全性能,同時支持協商生成認證雙方后續所需的一次性會話密鑰,分別在命題1~12 中加以證明。
命題1 協議能保障智能卡遺失時的安全性
證明:假設敵手Uatt獲取用戶Ui的智能卡SCi,并通過公共信道非法獲取認證雙方的所有消息,通過差分能量攻擊[12]從中成功提取W= Hash(IDi||Kpri_s)⊕Hash(PWi||RUi),E= Hash(δi)⊕RUi,V= Hash(IDi|| PWi||RUi)。但本協議把智能卡中所存儲的信息設計為上述的非明文形式,基于Hash函數的單向安全性,且因為用戶生物特征Bi存在唯一性而不可偽造,同時因Uatt并未掌握S的私鑰Kpri_s,Uatt想通過口令猜測攻擊取得PWi無法實現,所以協議能保障智能卡遺失時的安全性。
命題2 協議能抵御假冒攻擊
證明:本協議所設計的登錄請求消息格式為Mess_request = {DIDi,D,Ci},Uatt若 要 假 冒Ui獲取S的成功認證,就必需同時掌握Ui的生物特征Bi、帳號IDi和口令PWi信息,才能生成Mess_request的組成要件Ci= Hash(IDi||M||D||F)并向S發送正確的登錄請求消息,這一假設明顯不成立,所以Uatt無法假冒用戶Ui騙取服務器S的認證。
命題3 協議能抵御冒充服務器攻擊
證明:本協議所設計的服務器挑戰信息為挑戰消息Mess_challenge = {realm, Auth_S,H},敵手因不能掌握S的Kpri_s,無法生成Auth_S合法的組成要件F'=Kpri_s·D,在用戶對服務器的認證階段必然被發現。因此敵手無法實現冒充服務器攻擊。
命題4 協議能抵御知識竊取類內部威脅
證明:本協議設計為在服務器的數據庫中并未存儲協議參與方任何的相關信息,因此知識竊取類內部威脅對本協議無效。
命題5 協議能抵御篡改攻擊

命題6 協議能抵御離線口令猜測攻擊
證明:假定敵手在公共信道上截取認證過程的所有交互消息,同時取得Ui的SCi,并且利用差分能量攻 擊從中成功提取W= Hash(IDi||Kpri_s)⊕Hash(PWi||RUi),E= Hash(δi)⊕RUi,V= Hash(IDi||PWi||RUi)。由以上本協議所設計的在公共信道上所傳輸的消息格式可知,離線口令猜測過程中若要驗證所猜測的口令值是否正確,則必須用到RUi。但是RUi= Hash(δi)⊕E,必須擁有Ui的唯一生物特征Bi才可以提取并獲得δi= Rep(Bi,θi),而敵手并未掌握Ui的生物特征Bi,所以敵手的離線口令猜測攻擊必將失敗。
命題7 協議能抵御重播攻擊
/
證明:在本協議所設計的挑戰 應答模式的整體框架下,能對Ui的請求消息Mess_request ={DIDi,D,Ci}給出正確回復的只能是合法的S。同時,能對S的挑戰消息Mess_challenge = {realm,Auth_S,H}給出正確應答的也只能是Ui本身。所以重播攻擊對本協議無效。


字符串連接操作和異或運算的運算量很小,與協議中的其他運算相比可以忽略不計。這里主要考量協議在登錄、認證和密鑰協商過程中的模冪運算、點乘運算和Hash 運算的運算量。協議的口令更新和智能卡撤銷為偶然性操作,其運算量也不在認證過程運算復雜度考量范圍之內。表2 給出了文獻[8]等協議和本文協議的主要運算量比較。表中,Te 為模冪運算,Ts 為點乘運算,Th 為Hash運算。
從表2 可以看出文獻[8]等協議和本文協議在運算次數上并沒有顯著差別。但文獻[13-15]顯示,在相同的密碼安全強度下,橢圓曲線所需的密鑰量比RSA 所需的密鑰量低得多。兩者安全密鑰位的比較如表3 所示。

表2 各協議的主要運算量比較

表3 相同安全性能下RSA 和ECC密鑰位的比較
遠程身份認證協議的服務器通常需要同時處理多個登錄認證請求,因此服務器的運算量對整個協議的效率影響最大[16]。如表2 所示,文獻[8]協議的登錄和認證過程在服務器端所需運算量為3Ts+4Th,而本文協議相應過程在服務器端所需運算量為3Ts+5Th。在運行平臺Windows 7、Intel i7 2.8 GHz、RAM 16 G,Matlab 環境中,仿真這兩種協議的登錄和認證過程在服務器端的主要運算耗時,結果圖4 所示。

圖4 兩種協議在服務器端的主要運算耗時測試結果
在提供相同安全強度的前提下,本文協議使用的橢圓曲線點乘運算與文獻[8]等協議中所使用的模冪運算相比較,具備速度更快的優勢。而且,隨著密鑰長度的增加,這一優勢將更為明顯。
綜上所述,本文協議具備更高的運算效率。
對于采用“一次一密”思路的遠程身份認證體系來說,最大的困難不只是大量密鑰的生成和管理,如何低成本地安全傳遞密鑰才是關鍵問題。本文方案可以自動協商產生后續一次性會話密鑰,且會話密鑰由認證雙方根據認證過程信息自動生成,無需再次通過安全通道傳遞,可以有效解決上述問題。
一種遠程身份認證方案的安全性能越高,所要求的運算量、帶寬要求、應用成本等各種認證開銷也越高。如何找到在認證安全性能與認證開銷之間達到符合認證安全實際需求的平衡點至關重要。本文協議是基于口令、智能卡和生物特征的三因素身份認證方案,其在認證安全性能與認證開銷之間獲得了一個較好的平衡點,可以應用于高等級的安全部門認證場景,如電子銀行、電子證券、電子商務、電子政務、智能電網的遠程身份認證。
本文針對文獻[8]提出的多因素認證協議展開研究,證明其存在的安全缺陷。然后,將標準的挑戰/應答機制引入其中,并采用橢圓曲線點乘運算改進文獻[8]協議中所使用的模冪運算,提出了新的基于口令、智能卡和生物特征的三因素遠程身份認證方案。通過多種非形式化的安全分析證明,新的三因素遠程身份認證方案對于假冒攻擊、篡改攻擊、服務器偽裝攻擊、口令猜測攻擊、重播攻擊、Denning-Sacco 攻擊和MITM 攻擊等多種常見攻擊是安全的。新方案在提供雙向認證的同時還支持認證雙方后續會話所使用的一次性密鑰協商,仿真實驗證明了本文方案具有更高的運算效率。