張曉敏
陜西省行政學(xué)院 陜西 710068
伴隨著自組織網(wǎng)絡(luò)、移動(dòng)網(wǎng)絡(luò)和普適計(jì)算等現(xiàn)代通信環(huán)境的快速發(fā)展,在跨域的環(huán)境下構(gòu)造安全的端到端信道成為必然。跨域認(rèn)證密鑰協(xié)商協(xié)議主要是解決此類(lèi)問(wèn)題的,為處于不同域中的用戶(hù)建立安全信道??诹钜蚱淙菀子洃洠子谶x取,節(jié)省存儲(chǔ)空間,適合實(shí)際應(yīng)用等特點(diǎn)成為最簡(jiǎn)單的認(rèn)證方法。跨域的端到端的口令認(rèn)證密鑰協(xié)商協(xié)議(C2C-PAKA)的主要目的是使分布在不同域中持有不同口令的兩個(gè)客戶(hù)端可以在各自服務(wù)器的協(xié)助下實(shí)現(xiàn)相互認(rèn)證并協(xié)商出共同的會(huì)話(huà)密鑰。
2002 年,Byun等人提出了第一個(gè)跨域的端到端的認(rèn)證密鑰協(xié)商協(xié)議。然而,文獻(xiàn)[2]指出該協(xié)議不能抵抗字典攻擊。隨后,對(duì)此協(xié)議的其它類(lèi)型的攻擊或效率改進(jìn)以及協(xié)議的變形在文獻(xiàn)[3-6]中被相繼提出。但是,這些協(xié)議的變形都僅提供了啟發(fā)式的安全分析。在文獻(xiàn)[7]中,Byun等人首次提出了跨域的端到端的口令認(rèn)證密鑰協(xié)商協(xié)議的形式化證明方法并給出了一個(gè)具有安全性證明的協(xié)議。其后,王等人指出如果服務(wù)器之間共享的密鑰泄露,文獻(xiàn)[7]中的協(xié)議易遭受口令泄露模仿攻擊和中間人攻擊。在文獻(xiàn)[9]中,Phan等人展示了如何對(duì)文獻(xiàn)[7]的協(xié)議進(jìn)行在線不可測(cè)字典攻擊。此外,文獻(xiàn)[10]指出Byun等人的安全模型中的缺點(diǎn)并在改進(jìn)后的模型中證明了一個(gè)新的跨域的端到端認(rèn)證的密鑰協(xié)商協(xié)議的安全性。然而,文獻(xiàn)[10]存在使用計(jì)算負(fù)載高的公鑰加密、協(xié)議的輪數(shù)沒(méi)有達(dá)到最優(yōu)并且改進(jìn)的安全模型刻畫(huà)的安全性質(zhì)較少等問(wèn)題。
以上的方案中用戶(hù)從對(duì)應(yīng)服務(wù)器獲得認(rèn)證所需信息,而后直接通信以建立會(huì)話(huà)密鑰,這種方式稱(chēng)為直接通信架構(gòu)。此外,用戶(hù)還可以采用間接通信架構(gòu),通過(guò)相應(yīng)的服務(wù)器來(lái)建立會(huì)話(huà)密鑰,這樣就減少了用戶(hù)交互輪數(shù)。在文獻(xiàn)[11]中,Ota等人采用了間接通信架構(gòu)提出可普遍組合的C2C-PAKA方案,但需要的輪數(shù)較多。文獻(xiàn)[12-13]提出了采用間接通信架構(gòu)的跨域認(rèn)證方案。但是在這兩種方案中,用戶(hù)和服務(wù)器之間共享的秘密信息僅有口令,因此,方案難以抵御密鑰泄露模仿攻擊和不可測(cè)在線字典攻擊等復(fù)雜攻擊。吳等人采用公鑰加密技術(shù)提出了一種認(rèn)證方案,可以抵御不可測(cè)在線字典攻擊、未知密鑰共享攻擊和密鑰泄露模仿攻擊等,并且輪效率較高。Yoneyama等人引入服務(wù)器的公私鑰對(duì)抵抗此類(lèi)攻擊。 但是,這兩個(gè)方案采用模冪運(yùn)算或?qū)\(yùn)算等復(fù)雜運(yùn)算,通信代價(jià)和計(jì)算代價(jià)都偏高,不易于實(shí)現(xiàn)。
本文中,我們基于橢圓曲線上的離散對(duì)數(shù)問(wèn)題,在直接通信架構(gòu)下給出一個(gè)跨域的口令認(rèn)證的密鑰協(xié)商協(xié)議。該協(xié)議中,誠(chéng)實(shí)的服務(wù)器是不能獲取任何關(guān)于會(huì)話(huà)密鑰的值。域內(nèi)服務(wù)器通過(guò)口令實(shí)現(xiàn)和用戶(hù)的相互認(rèn)證,不同域的服務(wù)器之間通過(guò)公私鑰對(duì)實(shí)現(xiàn)對(duì)對(duì)方的認(rèn)證,而用戶(hù)之間借助于各自域中的服務(wù)器的協(xié)助實(shí)現(xiàn)相互認(rèn)證。與同類(lèi)協(xié)議比較,該協(xié)議具有較小的通信負(fù)擔(dān)和計(jì)算負(fù)擔(dān),更易于實(shí)現(xiàn)。此外,協(xié)議還能夠抵抗字典攻擊、口令泄露模仿攻擊和未知會(huì)話(huà)密鑰共享攻擊等通用攻擊類(lèi)型,同時(shí)能夠?qū)崿F(xiàn)前向安全、無(wú)密鑰控制和已知會(huì)話(huà)密鑰安全等安全屬性。
p是有限域Fp的元素個(gè)數(shù),其中p是大素?cái)?shù)(長(zhǎng)度大于160,或p=2m,m為正整數(shù)) 。定義Fp上的橢圓曲線E:y2=x3+ax+b ,當(dāng)p>3;或y2+xy=x3+ax2+b,當(dāng)p=2。P是E(Fp)中階為q的一個(gè)基點(diǎn),q為大素?cái)?shù)。
G是由點(diǎn)P生成的循環(huán)加群,給定Q,找到正整數(shù)n,使得Q=nP。
A選擇隨機(jī)數(shù)a∈Fq并計(jì)算PA=aP發(fā)送給B;B選擇隨機(jī)數(shù)b∈Fq并計(jì)算PB=bP發(fā)送給A。A和B分別計(jì)算aPB,bPA從而得到共同的會(huì)話(huà)密鑰K=(ab)P。
P是q階循環(huán)加群G的生成元, H:{0,1}*→{0,1}l是哈希函數(shù);A,B是用戶(hù),pwA,pwB是用戶(hù)相應(yīng)的口令;VA和VB分別是用戶(hù)A和B分別與對(duì)應(yīng)的服務(wù)器SA和SB共享的信息。此外,服務(wù)器SA和SB分別持有公私鑰對(duì)(PrSA,PKSA)和(PrSB,PKSB)。
本部分中,我們將給出一個(gè)安全高效的C2C-PAKA協(xié)議NC2C-PAKA。該協(xié)議中有四個(gè)參與方,分別為A,SA,B和SB,其中A和B分別處于SA和SB的域中。
初始化階段:客戶(hù)端A、B和相應(yīng)的服務(wù)器共享利用算法gpw獲取的口令pw,SA和SB分別存儲(chǔ)A、B的驗(yàn)證元:VA=H(IDSA,IDA,pwA)P ,VB=H(IDSB,IDB,pwB)P 。此外,初始化階段還定義了一系列的密碼學(xué)函數(shù)和參數(shù),例如Hash函數(shù)等。
算法gpw口令生成算法:從口令字典中隨機(jī)選取口令pw給客戶(hù)端。
算法?注冊(cè)算法:客戶(hù)端將其口令pw與其服務(wù)器共享,服務(wù)器同時(shí)將其選取的公開(kāi)參數(shù)發(fā)送給客戶(hù)端。
協(xié)議描述 NC2C-PAKA協(xié)議的具體描述見(jiàn)下文,協(xié)議運(yùn)行的一個(gè)實(shí)例如圖1所示。
(1) A選取隨機(jī)值rA∈Zq*,計(jì)算TA=rAPKSA+H(IDA,pwA)P 和RA=rAP。隨后,A利用TA加密消息{IDA,IDB,IDSA,IDSB,RA},然后將加密結(jié)果和RA一起發(fā)送給SA。
(2) 收到消息后,SA先利用RA計(jì)算TA′=PrSARA+VA,然后用TA′解密收到的消息,將解密后的消息和接收到的消息進(jìn)行對(duì)比。如果各項(xiàng)數(shù)值不一致,則協(xié)議終止。如果驗(yàn)證成功,SA選取sA∈Zq*,計(jì)算,然后利用KAB加密消息{IDA,IDB,IDSA,IDSB,R*A} ,并將加密結(jié)果發(fā)送至SB。
(3) 與此同時(shí),B和SB同樣執(zhí)行步驟(1)(2)中相應(yīng)的操作。
(4) SA收到加密消息{IDB,IDA,IDSB,IDSA,RB*}后,用KAB解密消息,對(duì)比各參與方的身份信息。如果驗(yàn)證沒(méi)有通過(guò),協(xié)議中止。否則,SA計(jì)算,然后將消息發(fā)送給A。
(5) 同時(shí),SB將會(huì)收到加密消息{IDA,IDB,IDSA,IDSB,R*A},用KAB解密消息,對(duì)比各參與方的身份信息。如果驗(yàn)證沒(méi)有
通過(guò),協(xié)議終止。否則,SB計(jì)算,然后將消息發(fā)送給B。
(6) A收到SA的消息后,利用接收到的計(jì)算并驗(yàn)證α′=?α。如果驗(yàn)證失敗,則協(xié)議終止。否則,A按如下方式計(jì)算最終的會(huì)話(huà)密鑰:
(7) B執(zhí)行和A在第五步中類(lèi)似的操作,通過(guò)驗(yàn)證收到的消息β來(lái)驗(yàn)證的合法性。如果驗(yàn)證通過(guò),則按如下方式計(jì)算和A的共同會(huì)話(huà)密鑰:
正確性:如下所述,誠(chéng)實(shí)執(zhí)行協(xié)議后,各用戶(hù)能夠計(jì)算獲得相同的會(huì)話(huà)密鑰。
圖1 NC2C-PAKA協(xié)議運(yùn)行實(shí)例
我們分析協(xié)議的通信、計(jì)算和輪復(fù)雜度以及存儲(chǔ)開(kāi)銷(xiāo)和實(shí)現(xiàn)成本。我們的協(xié)議中,用戶(hù)A和服務(wù)器SA與用戶(hù)B和服務(wù)器SB各自之間的交互是同步進(jìn)行的。此外,服務(wù)器SA和SB之間的信息傳遞也是并行的。因此,我們減少了通信步驟,降低了通信代價(jià)。與同類(lèi)協(xié)議比較,我們的協(xié)議避免了消耗較高的模冪運(yùn)算和對(duì)運(yùn)算。具體比較結(jié)果如表1所示。為了比較計(jì)算復(fù)雜度,我們使用了下列符號(hào)表示消耗的時(shí)間以及采用如下對(duì)比關(guān)系: TS表示一次對(duì)稱(chēng)加密所需時(shí)間;TPa表示一次對(duì)運(yùn)算所需時(shí)間;TMul表示一次點(diǎn)乘運(yùn)算所需時(shí)間;TExp表示一次模冪運(yùn)算所需時(shí)間,并且1TExp?240TMul;TEC Mul表示一次橢圓曲線上的點(diǎn)乘運(yùn)算所需的時(shí)間,1TECMul?29TMul;由于哈希運(yùn)算所需時(shí)間較少,在此我們將其忽略。
表1 效率比較
(1) 抵抗字典攻擊。首先,在離線字典攻擊中,攻擊者利用其截獲的信息驗(yàn)證猜測(cè)的口令是否正確。該協(xié)議中,以用戶(hù)A為例,協(xié)議中傳遞的信息與口令相關(guān)的僅有以TA′作為部分輸入的和以TA加密的消息{IDA,IDB,IDSA,IDSB,RA}。攻擊者在各輪中通信中截獲這些信息,由于TA′=PrSARA+VA和TA=rAPKSA+H(IDA,pwA)P,這里,PrSA是服務(wù)器SA的私鑰,rA是用戶(hù)選取的隨機(jī)數(shù),公開(kāi)信道上傳遞是其橢圓曲線上的離散對(duì)數(shù)形式RA。因此,敵手沒(méi)有足夠的信息來(lái)驗(yàn)證其猜測(cè)的口令是否正確。離線字典攻擊可以避免。其次,本協(xié)議可以抵抗在線字典攻擊,因?yàn)榉?wù)器A在解密消息后需要驗(yàn)證被加密的信息是否和自己掌握的信息一致,以此來(lái)確定用戶(hù)是否真正知道口令。一旦驗(yàn)證失敗,服務(wù)器就會(huì)意識(shí)到是誰(shuí)的口令已經(jīng)作為在線字典攻擊的目標(biāo)了。如果失敗的次數(shù)超過(guò)預(yù)定的門(mén)限值,服務(wù)器A就會(huì)通知該用戶(hù)停止使用該口令并啟用新的口令。
(2) 抵抗口令泄露模仿攻擊??诹钚孤赌7鹿羰侵溉绻粋€(gè)用戶(hù)的口令泄露,敵手可以偽裝成其它用戶(hù)來(lái)和該用戶(hù)進(jìn)行交互協(xié)商會(huì)話(huà)密鑰,以達(dá)到其攻擊目的。本協(xié)議中,假設(shè)用戶(hù)A(B)的口令泄露,敵手可以利用該口令計(jì)算口令信息VA=H(IDSA,IDA,pwA)P 或 (VB=H(IDSB,IDB,pwB)P ),但敵手仍然無(wú)法獲取服務(wù)器SA(SB)的私鑰信息PrSA(PrSB)。因此,敵手仍然不能計(jì)算有效的驗(yàn)證信息α(β),也就是說(shuō),敵手不能成功偽裝為服務(wù)器與用戶(hù)進(jìn)行交互。我們的協(xié)議能夠抵抗口令泄露模仿攻擊。
(3) 抵抗未知會(huì)話(huà)密鑰共享攻擊。未知會(huì)話(huà)密鑰共享攻擊是指敵手致使用戶(hù)A認(rèn)為自己與用戶(hù)B共享了一個(gè)會(huì)話(huà)密鑰,實(shí)際上這個(gè)會(huì)話(huà)密鑰是用戶(hù)A和敵手共享的。產(chǎn)生此類(lèi)攻擊的根本原因是協(xié)議執(zhí)行時(shí)用戶(hù)身份信息被替換,同時(shí)其它參與方?jīng)]有發(fā)現(xiàn)。我們的協(xié)議中, 協(xié)議所有參與方的身份信息均和協(xié)議運(yùn)行的其它信息一起經(jīng)過(guò)只有通信雙方才能產(chǎn)生的密鑰加密傳遞的,接收方可以驗(yàn)證發(fā)送方的消息是否被篡改。因此,我們的協(xié)議從根本上避免了此類(lèi)問(wèn)題的發(fā)生,協(xié)議能夠抵抗未知會(huì)話(huà)密鑰共享攻擊。
(4) 前向安全性。由于最終的會(huì)話(huà)密鑰是由隨機(jī)數(shù)構(gòu)成的,而隨機(jī)數(shù)是由各參與方隨機(jī)選取的,在協(xié)議交互過(guò)程中,傳遞的信息是隨機(jī)數(shù)所對(duì)應(yīng)的離散對(duì)數(shù)形式。由于離散對(duì)數(shù)問(wèn)題的困難性,攻擊者即使獲得用戶(hù)與服務(wù)器的長(zhǎng)期密鑰,仍然無(wú)法獲得隨機(jī)數(shù),因此不能計(jì)算出會(huì)話(huà)密鑰。所以協(xié)議提供前向安全性。
(5) 無(wú)密鑰控制。協(xié)議使用Diffie-Hellman密鑰交換協(xié)議的思想?yún)f(xié)商會(huì)話(huà)密鑰,此外rA是由用戶(hù)A隨機(jī)選取的,sA是由服務(wù)器SA隨機(jī)選取的,rB是由用戶(hù)B隨機(jī)選取的,sB是由服務(wù)器SB隨機(jī)選取的。因此,任何一方不能單獨(dú)控制會(huì)話(huà)密鑰的選擇,達(dá)到了協(xié)議無(wú)密鑰控制的目的。
(6) 已知會(huì)話(huà)密鑰安全。攻擊者攻破一次通信的會(huì)話(huà)密鑰,無(wú)助于攻破另一次通信的會(huì)話(huà)密鑰。這是因?yàn)橥ㄐ烹p方最終得到的會(huì)話(huà)密鑰是由隨機(jī)數(shù)構(gòu)成,由于兩次通信使用的是不同的隨機(jī)數(shù),這種隨機(jī)數(shù)的不相關(guān)性使得攻擊者即使攻破了一個(gè)會(huì)話(huà)密鑰也無(wú)法利用該信息攻破另一次通信的會(huì)話(huà)密鑰,以此實(shí)現(xiàn)已知密鑰安全。
[1] Byun J.,Jeong I.,Lee D.,et al.Springer Berlin/Heidelberg.2002.
[2] Chen L. A weakness of the password-authenticated key agreement between clients with different passwords scheme.ISO/IEC JTC 1/SC27 N3716.
[3] Kim J.,Kim S.,Kwak J. et al.Springer Berlin/Heidelberg.2004.
[4] Byun J.W.,Jeong I.R., Lee D.H.,et al.assword-Authenticated Key Exchange between Clients with Different Passwords.In Proceedings of Proceedings of the 4th International Conference on Information and Communications Security.2002.
[5] Phan R.,Goi B.M.Springer Berlin/Heidelberg.2005.
[6] Wang S.,Wang J.,Xu M.Springer Berlin/Heide lberg. 2004.
[7] Byun J.W.,Lee D.H.,Lim J.I.EC2C-PAKA:An efficient client-to-client password-authenticated key agreement[J].Information Science.2007.
[8] J. Wang, Y.Z.Cryptanalysis of a client-to-client password--authenticated key agreement protocol.2008.
[9] Phan R., Goi B.M.Springer Berlin/Heidelberg.2006.
[10] Feng D.G.,Xu J.Springer Berlin/Heidelberg.2009.
[11] Ota,.,Yoneyama,K.,Kiyomoto,S.,Tanak,T.,Ohta,K.Universal ly Compos-able Client-to-Client General Authenticated Key Exchange[J]. IPSJ Journal.2007.
[12] Yin,Y.,Bao, L.Secure Cross-Realm C2C-PAKE Protocol.In:Batten,L.M.,Safavi-Naini,R.(eds.) ACISP 2006.LNCS,4058,Springer,Heidelberg (2006).
[13] Wang,F.,Zhang,Y.A New Security Model for Cross-Realm C2C-PAKE Protocol.In: Cryptology ePrint Archive:2007/342(2007).
[14] Wu, S.,Zhu, Y.Password-Authenticated Key Exchange between Clients in a Cross-Realm Setting.In: Cao,J.,Li,M.,Wu,M.-Y.,Chen, J.(eds.) NPC 2008. LNCS,vol.5245, pp. 94-104.Springer, Heidelberg (2008).
[15] Kazuki Yoneyama, Haruki Ota, Kazuo Ohta. Secure cross-realm client-to-client password-based authenticated key exchange against undetectable on-line dictionary attacks.Proceedings of the 17th international conference on Applied algebra, algebraic algorithms and error-correcting codes,Bangalore, India, 257-266, Springer-Verlag(2007).
網(wǎng)絡(luò)安全技術(shù)與應(yīng)用2012年8期