黃朝陽,湯碧玉
(1.廈門海洋學(xué)院 信息技術(shù)系,福建 廈門361100;2.廈門大學(xué) 信息科學(xué)與技術(shù)學(xué)院,福建 廈門361005)
身份認(rèn)證技術(shù)從單口令認(rèn)證的原始形態(tài),已逐一結(jié)合各種物理因素、生物特征等多種安全技術(shù)。隨著密碼學(xué)研究的不斷進(jìn)展,各種高性能密碼體制相繼出現(xiàn)在各種認(rèn)證協(xié)議中。
橢圓曲線上的雙線性對運算具有同等安全強(qiáng)度下密鑰短、計算量小的優(yōu)點,在密碼學(xué)應(yīng)用中受到廣泛關(guān)注,2001年Boneh等首次將它引入基于身份的密碼系統(tǒng)中。2006年Das等完整地提出雙線性上的智能卡口令認(rèn)證協(xié)議,此后Jeon等在此協(xié)議框架基礎(chǔ)上不斷進(jìn)行漏洞分析并提出各種改進(jìn)方案。Vo等[1]使用乘法逆元法成功對Jeon等的方案進(jìn)行冒充攻擊。Pathan等[2]詳細(xì)分析了之前各種方案的弊端并提出一個改進(jìn)的方案,并聲稱是安全的,但仍可能通過鄰近窮舉法破解登錄時間T,繼而對此方案發(fā)起有效攻擊。
前述各種協(xié)議或多或少存在不能抵御各種形式的冒充攻擊、離線攻擊、口令猜測攻擊、反射攻擊、智能卡破解攻擊的弊端[3,4],同時還存在口令更改缺陷、單向認(rèn)證和一次性會話密鑰協(xié)商空白等不足。針對前述協(xié)議中存的各種問題,本文設(shè)計了一個基于雙線性對的雙向認(rèn)證密鑰交換協(xié)議,協(xié)議中綜合運用多種安全技術(shù),分析驗證了該協(xié)議有較好的性能。
協(xié)議的安全性基于雜湊函數(shù)的不可逆性、橢圓曲線上的離散對數(shù)難題 (elliptic curve discrete logarithm problem,ECDLP)和雙線性對數(shù)學(xué)難題,由系統(tǒng)初始化、注冊、登錄、認(rèn)證、會話密鑰協(xié)商階段、口令更新6個階段組成。與文獻(xiàn) [5]相比較,整個認(rèn)證過程無需可信第三方的參與,認(rèn)證架構(gòu)較為簡單。
約定本文所用符號如下:Ui-用戶i;AS-遠(yuǎn)程服務(wù)器;IDi、PWi、Fi-用戶i的賬號、密碼及指紋特征值;Kas-AS的密鑰;Pubas-AS的公鑰;H(*)-單向雜湊函數(shù);ê-雙線性對映射;Ru-用戶生成的隨機(jī)數(shù);Tu-用戶的時間戳;Tas-服務(wù)器的時間戳;||-字符串連接;-X與Y第k次登錄認(rèn)證成功后的一次性會話密鑰。
(1)AS選定一個q階的加法循環(huán)群G1、q階乘法循環(huán)群G2、安全雜湊函數(shù)H(*)。其中P為G1的生成元,在G1和G2間存在雙線性映射ê:G1×G1→G2;
(2)AS選定自己的安全密鑰Kas,并計算出公開密鑰Pubas=Kas·P;
AS對外公開參數(shù) {G1,G2,ê,q,P,Pubas,H(*)}
Ui首先在終端上輸入IDi、PWi和指紋;生物特征提取器計算指紋生物特征信息值Fi,隨后Ui計算出H(Fi)和Ci=H (PWi⊕Fi)。
Ui通過可信信道向AS發(fā)送注冊消息 {IDi,H(Fi),Ci}。
AS收到Ui的注冊申請后,執(zhí)行下述驗證注冊步驟:①計算:RMi=Kas·H(IDi),Bi=RMi+Ci;②將 {IDi,Bi,H(Fi),H(*)}存儲到新的智能卡,將此智能卡通過安全信道發(fā)給注冊用戶Ui。
Ui插卡,輸入IDi、PWi及指紋信息Fi,智能卡執(zhí)行下述操作:
步驟1 驗證輸入的IDi與智能卡中存儲信息的一致性;
步驟2 計算H (Fi)’,并驗證計算結(jié)果是否與智能卡中存儲的匹配;
步驟3 計算RMi’=Bi-H(PWi⊕Fi),驗證等式ê(RMi’,P)=ê (H(IDi),Pubas);
只有合法用戶Ui持有有效智能卡的同時,還具備正確的IDi和生物特征信息情況下,上述驗證式才會成立,從而實現(xiàn)對Ui及其所持有智能卡的合法性檢驗。
步驟4 選取隨機(jī)數(shù)Ru,根據(jù)當(dāng)前時間戳Tu計算M1=Ru·P,M2=H(M1)·RMi’+Tu·Ru·Pubas;
Ui通過公共信道向AS發(fā)送登錄請求消息 {IDi,M1,M2,Tu}。
(1)用戶Ui的合法性認(rèn)證
假定AS在Tas時刻收到Ui登錄請求,將執(zhí)行以下操作來完成登錄認(rèn)證:
步驟1 驗證IDi和時間戳:如IDi存在且Tas≠Tu、Tas-Tu≤ΔT成立則繼續(xù),否則拒絕;
步驟2 計算驗證式ê(M2-Tu·Kas·M1,P)=ê(H(IDi),Pubas)H(M1);
如果等式成立則通過Ui合法性認(rèn)證,并執(zhí)行以下交互認(rèn)證步驟。
步驟3 計算M3=Tas’·Kas·H(IDi)+Kas·M1,Tas’為AS當(dāng)前的時間戳;
步驟4 通過公共信道發(fā)送交互認(rèn)證消息 {M3,Tas’}給Ui。
(2)AS的合法性認(rèn)證
Ui在Tu’時刻收到交互認(rèn)證消息后,執(zhí)行下列步驟對AS認(rèn)證:
步驟1 驗證時間戳:若Tu≠Tas’且Tu’-Tas’≤ΔT則繼續(xù),否則拒絕;
步驟2 計算驗證式ê(M3-Ru·Pubas,P)=ê(H(IDi),Pubas)Tas′:
如等式成立則通過AS合法性認(rèn)證。圖1給出了上述協(xié)議的注冊、登錄和認(rèn)證細(xì)節(jié)。
第k次認(rèn)證成功以后Ui以SKkUAS=H(RMi’||Tu||Tas’||Ru·Pubas)作為此次登錄認(rèn)證后從Ui到AS一次性安全會話密鑰,AS方則以SKkASU=H(RMi||Tu||Tas’||M1·Kas)作為第k次成功認(rèn)證后的從AS到Ui一次性安全會話密鑰,=的證明見2.1。
口令更新不需要AS協(xié)助,Ui想更改口令時,只需插入智能卡并按照提示輸入IDi、原有口令PWi以及新選口令,并輸入Fi。智能卡后續(xù)更新操作如下:
(1)驗證輸入的IDi與智能卡中存儲信息的一致性;
(2)計算H(Fi)’,并驗證計算結(jié)果是否與智能卡中存儲的H(Fi)匹配;
(3)計算RMi’=Bi-H(PWi⊕Fi),驗證等式ê(RMi’,P)=ê(H(IDi),Pubas),等式正確性證明同上;
(4)計算B*i=Bi-H(PWi⊕Fi)+H(PW*i⊕Fi),并用B*i替代智能卡中原有的Bi。至此口令更新完成。
(1)登錄認(rèn)證階段步驟3的等式正確性證明:
命題1:協(xié)議能抵御口令猜測攻擊
證明:在線口令猜測攻擊只需通過設(shè)置登錄閾值的安全機(jī)制,當(dāng)連續(xù)錯誤超過限定次數(shù)將被拒絕登錄,因此在線口令猜測攻擊無法實現(xiàn)。離線口令猜測攻擊分以下幾種情景:
情景1:AS內(nèi)部授權(quán)人員獲取用戶相關(guān)信息 H(Fi)和Ci=H(PWi⊕Fi)后無法發(fā)起的口令猜測攻擊。
因為用戶的生物特征信息是以雜湊值的形式出現(xiàn),密鑰PWi更是與Fi先異或再雜湊的值出現(xiàn),基于雜湊函數(shù)的單向安全性,授權(quán)的內(nèi)部人員根本無法獲得用戶的PWi和Fi信息,從而能抵御內(nèi)部攻擊。
情景2:由于AS上沒有保存用戶的任何原始信息,如PWi、Fi,所以攻擊者即使攻破服務(wù)器后也無法進(jìn)行離線口令猜測攻擊。
情景3:攻擊者盜取用戶的智能卡后,首先智能卡芯片的安全機(jī)制為卡內(nèi)信息提供了第一重保護(hù);即使攻擊者暴力破解獲得卡內(nèi)信息IDi、H(Fi)、Bi=RMi+Ci,但攻擊者欲離線計算出Fi、PWi和Kas值的時候,將面臨著雜湊函數(shù)不可逆難題和橢圓曲線上的離散對數(shù)難題ECDLP。
命題2:協(xié)議能抵御冒充攻擊
證明:冒充攻擊的前提是成功偽造認(rèn)證消息M1,M2或M3。
情景1:直接偽造認(rèn)證消息不可行。構(gòu)造M2的關(guān)鍵值為RMi’=Bi-H(PWi⊕Fi)=Kas·H(IDi),構(gòu)造 M3的關(guān)鍵值為Kas。攻擊者無法直接獲得Kas;而通過Pubas求取Kas則面臨ECDLP難題;Kas為長安全密鑰,具有無規(guī)律且隨機(jī)的安全特性,對其進(jìn)行離線口令猜測不可行。另一途徑,通過Bi計算RMi’需要PWi、Fi,但PWi、Fi或H(PWi⊕Fi)并不在公共信道上傳輸,無法經(jīng)由竊聽獲得,從而無法偽造認(rèn)證消息實現(xiàn)冒充攻擊。
情景2:攻擊者截獲合法認(rèn)證消息后,采用時間戳乘法逆元的方式[1]偽造認(rèn)證消息M2’不可行。因為驗證式ê(M2-Tu·Kas·M1,P)的構(gòu)造中及時將M2后半部的時間戳信息Tu·Ru·Pubas通過-Tu·Kas·M1去除,而M2的前半部分信息構(gòu)成:H(M1)·RMi’并不包含任何時間戳信息。所以用時間戳乘法逆元來偽造M2’不成功。
命題3:協(xié)議能抵御重播攻擊
證明:構(gòu)造認(rèn)證消息M2和M3過程中均引入時間戳機(jī)制,而且采用認(rèn)證時間與其它消息混合運算及部分嵌入的方式,從而大大提高了時間戳所帶來的安全性。消息的接收方不僅進(jìn)行時間間隔閾值檢查,也進(jìn)行雙方時間戳一致性檢查。所以重播攻擊無法成功。
命題4:協(xié)議能抵御反射攻擊
證明:認(rèn)證消息M2和M3在結(jié)構(gòu)上完全不對稱,而且兩者在構(gòu)成上亦無章可循,因此反射攻擊無法成功。
命題5:協(xié)議提供了雙向認(rèn)證性
證明:只有合法的Ui和AS才可能在認(rèn)證階段構(gòu)造出所有正確的認(rèn)證消息M1,M2和M3,接收方通過雙線性對上的運算來驗證消息的正確性,實現(xiàn)雙方相互認(rèn)證。
命題6:協(xié)議協(xié)商了安全的一次性會話密鑰
證明:會話密鑰中包含 {Kas,IDi,PWi,F(xiàn)i,Tu,Tas’,Ru}多種信息,既包含Ui的編號、密碼等軟信息,又包含了用戶生物特征信息,也涵蓋了AS的秘密密鑰,同時還設(shè)計有一次性隨機(jī)數(shù)和雙方認(rèn)證時的時間戳信息,即使是同一對用戶與服務(wù)器間的兩次不同認(rèn)證過程,這些一次性信息亦各不相同。除Tu,Tas’外,會話密鑰的其它組成部分均不以原始信息的方式出現(xiàn)在公共信道上,可實現(xiàn)真正安全的一次一密。
本文所提出的認(rèn)證協(xié)議無需可信第三方的參與。從圖1觀察通信交互次數(shù),本協(xié)議的整個登錄和認(rèn)證過程僅需認(rèn)證雙方共2次的信息交換,通信代價明顯低于文獻(xiàn) [5,6]的信息交換次數(shù)。
本協(xié)議所需計算量見表1。其中,P:雙線性對運算;E:冪運算;S:倍乘運算;H:雜湊運算;A:加法運算;XOR:異或運算。
表1 本文協(xié)議的計算量
研究結(jié)果表明,160位和210位的橢圓曲線密碼學(xué)(elliptic curve cryptography,ECC)密鑰長度分別與1024位和2048位的RSA密鑰長度所達(dá)到的密碼安全強(qiáng)度相當(dāng)[7]。本文協(xié)議所采用的橢圓曲線密碼體制具有安全性高、計算量小、存儲空間小的優(yōu)點[8],比Pathan et al.方案[2]及方案[9]中所使用的其它公鑰密碼體制計算難度小、速度快。在同等安全強(qiáng)度下,與RSA等其它非對稱加密算法所使用的數(shù)學(xué)運算相比較[10],計算代價較少。
而雙線性對運算是已知最復(fù)雜的密碼操作,運行一次雙線性所需的時間至少是橢圓曲線上點乘操作的20倍以上[11]。遠(yuǎn)程身份認(rèn)證協(xié)議的服務(wù)器通常要同時處理多個登錄認(rèn)證請求,因此AS端的計算量對整個協(xié)議的效率影響最大。雖然本協(xié)議的雙向認(rèn)證過程總共使用了3次雙線性對運算,但是在AS端只產(chǎn)生一次雙線性對運算,從而保證了本協(xié)議的高效性。
本文引入橢圓曲線密碼和雙線性對來改良基于生物特征的智能卡口令身份認(rèn)證協(xié)議,實現(xiàn)雙向認(rèn)證的同時完成一次性密鑰協(xié)商,該協(xié)議具有良好的安全性和實用性。整個認(rèn)證過程不需可信第三方的參與,協(xié)議的安全性建立在ECDLP和雙線性對難題基礎(chǔ)上,能有效抵制各種已知的攻擊,認(rèn)證安全性高;協(xié)議只設(shè)計了2次的信息交互來實現(xiàn)雙向認(rèn)證,通信代價較低;認(rèn)證過程僅使用少量簡單雜湊運算、異或運算和雙線性對運算,同等安全強(qiáng)度下相比其它非對稱加密算法具有較高的效率和可行性。后續(xù)的工作重心是優(yōu)化服務(wù)器算法,進(jìn)一步減輕服務(wù)器的計算量。
[1]Vo DL,Kim K.Security enhancement of a remote user authentication scheme using bilinear pairings and ECC [C]//IFIP International Conference on Network and Parallel Computing Workshops,2007:144-147.
[2]Pathan ASK,Hong CS.Bilinear-pairing-based remote user authentication schemes using smart cards [C]//Proceedings of the 3rd International Conference on Ubiquitous Information Management and Communication,2009:366-371.
[3]KONG Mengrong,ZHU Guohua.Remote authentication scheme based on smart card [J].Computer Engineering and Design,2008,29 (3):606-608 (in Chinese).[孔夢榮,朱國華.基于智能卡的遠(yuǎn)程認(rèn)證體制 [J].計算機(jī)工程與設(shè)計,2008,29 (3):606-608.]
[4]XU Chunxiang,TANG Anyang.A remote user authentication scheme with smart cards using bilinear pairings [J].Journal of University of Electronic Science and Technology of China,2008,37 (5):733-736 (in Chinese).[許春香,唐安陽.使用雙線性對構(gòu)造的智能卡口令認(rèn)證方案 [J].電子科技大學(xué)學(xué)報,2008,37 (5):733-736.]
[5]TANG Hongbin,LIU Xinsong.Enhanced smart card based remote user authentication scheme [J].Computer Engineering and Applications,2012,48 (19):61-65 (in Chinese).[唐宏斌,劉心松.增強(qiáng)的基于智能卡的遠(yuǎn)程用戶認(rèn)證協(xié)議 [J].計算機(jī)工程與應(yīng)用,2012,48 (19):61-65.]
[6]Li Chunta,Huang Minshiang.An efficient biometrics-based remote user authentication scheme using smart cards [J].Journal of Network and Computer Applications,2010,33 (1):1-5.
[7]CHANG Qing,ZHANG Yongping, QIN Linlin.Pairingbased node authentication protocol for WSN [J].Network & Computer Security,2010,10 (12):9-11 (in Chinese).[常晴,張永平,秦琳琳.基于雙線性對的WSN節(jié)點認(rèn)證協(xié)議[J].計算機(jī)安全,2010,10 (12):9-11.]
[8]SHANG Yanhong,HOU Jinfeng.Analysis and forecast of elliptic curve cryptosystem [J].Journal of Tangshan Teachers College,2012,34 (5):44-46 (in Chinese).[商艷紅,候金鳳.橢圓曲線密碼體制的分析和展望 [J].唐山師范學(xué)院學(xué)報,2012,34 (5):44-46.]
[9]ZHOU Huihua.A two-party authenticated key exchange protocol based on TTP [J].Computer Engineering & Science,2012,34 (10):38-42 (in Chinese).[周慧華.一種基于TTP的兩方認(rèn)證密鑰交換協(xié)議 [J].計算機(jī)工程與科學(xué),2012,34 (10):38-42.]
[10]YANG Tonghao,YU Bin.Identity-based authentication scheme for ZigBee nodes [J].Computer Engineering and De-sign,2012,33 (11):4127-4130 (in Chinese).[楊同豪,郁濱.基于身份的ZigBee節(jié)點認(rèn)證方案 [J].計算機(jī)工程與設(shè)計,2012,33 (11):4127-4130.]
[11]Chen L,Cheng Z,Smart N P.Identity-based key agreement protocols from pairings [J].International Journal of Information Security,2007,6 (4):213-241.