湖南中醫(yī)藥高等??茖W校計算機教研室 唐 聞
密碼驗證協(xié)定(PAKE關(guān)鍵交換)協(xié)議,是指用戶和服務(wù)器之間共享口令或口令的驗證值,服務(wù)器借此對用戶進行身份的認證,并協(xié)助用戶完成會話密鑰的生成。目的是通過各通信方的交互,建立共同的會話密鑰,從而能夠?qū)崿F(xiàn)在不安全信道上的安全通信。設(shè)計一個安全的PAKE面臨這樣一個問題,由密碼是從一個比較小的范圍中選取的,這樣的協(xié)議很容易受到字典攻擊。Bellovin and Merritt[1]在此基礎(chǔ)上,首次提出了兩方的基于口令的密鑰交換協(xié)議(2PAKE)解決了通信雙方如何在不預(yù)先共享秘密的情況下協(xié)商會話密鑰的問題,開辟了公鑰密鑰學的新方向。加密的關(guān)鍵是通訊雙方共同協(xié)商一個共享會話密鑰,然后使用該會話密鑰來加密所傳送的消息。自此,基于口令的認證方式成為使用最普遍也最方便的加密方式。[9-11][2-3]但是2PAKE協(xié)議也存在弊端,由于2PAKE使用的是“用戶一服務(wù)器”模型,用戶所需要記憶的口令數(shù)會隨著與它通信的用戶數(shù)的增加而增加,這限制了協(xié)議在實際中的應(yīng)用。例如在大型通信環(huán)境中采用2PAKE將導(dǎo)致“用戶—用戶”之間的密鑰管理非常的復(fù)雜。為了解決這個問題,一些第三方密鑰驗證協(xié)議(3PAKE)[4-7]隨即被提出。在一個3PAKE,每個用戶只需要與一個可信的服務(wù)器(TS)共享一個簡單口令,可信服務(wù)器認證通信雙方并幫助持有不同口令的通信方生成會話密鑰。1995年,Steiner等[1]開發(fā)出一種基于Diffie-Hellman(DH)密匙交換概念的3PAKE協(xié)議,與Bellovin和Merrit的協(xié)議相比,其交互輪數(shù)與驗證元數(shù)目都有效的減少,系統(tǒng)的運算效率更高。之后,Ding和Horster[5]等。指出Steiner等的協(xié)議無法檢測出在線猜測密碼攻擊,并提出了一種改進的方案來解決這個安全漏洞。Lin等在文獻[6]證明Steiner等的協(xié)議無法抵御連續(xù)的惡意程序調(diào)用離線猜測密碼攻擊。為解決這個的缺陷,Lin等使用公共密鑰加密技術(shù)來構(gòu)建他們的補救措施,以提高密鑰協(xié)議的安全性。然而,公共密鑰技術(shù)無論是通信開銷或是計算開銷都很大。為了提高協(xié)議性能,文獻[7]中,作者提出了不使用公鑰加密的3PAKE協(xié)議,但也需要使用到一個密碼作為驗證密碼。
在本文中,我們提出了一個簡便的3PAKE[8]。與以前的3PAKE協(xié)議相比,我們的協(xié)議是更加高效、便捷的自協(xié)議且不需要加密密碼。
在本節(jié)中,提出了一種新的簡便的3PAKE協(xié)議。接下來我們介紹一下論文中使用到的參數(shù)與符號。首先,系統(tǒng)選用兩個大素數(shù)p,q并找到一個整數(shù)g,g是屬于GF(p)和GF(q)的原始元素。GF(p)是q階循環(huán)加群GF(q)是q階循環(huán)乘群。為了闡明這個協(xié)議我們需要使用到一些公式與運算符,現(xiàn)將使用到的符號含義介紹如下:
p,q:表示兩個大素數(shù)
g:表示一個屬于GF(p)和GF(q)的原始元素
TS:表示可信的服務(wù)器

由于沒有避免在線詞典遭受攻擊[7]機制,因此不能確保一個受信任的服務(wù)器的客戶端是否是個有效的用戶。為了抵抗這樣的襲擊,我們將為TS認證客戶。我們的協(xié)議中,每一個客戶分享一個humanmemorable密碼與可信賴的服務(wù)器(TS)。當兩個客戶想要建立一個共同的會話密鑰,他們采取了彼此信任的服務(wù)器為鑒定。細節(jié)為下列步驟:
Setp1:用戶選擇一個隨機數(shù)x并發(fā)送(IDA,gx)給B。
Setp2:用戶也選擇一個隨機數(shù)y并發(fā)送(IDA,gx,IDB,gy)給TS。
Setp3:當收到(IDA,gx,IDB,gy)之后,由TS分別選擇兩個隨機數(shù)字aandb,結(jié)合共享口令 和 ,帶入公式ZA=g(x+pwA)a,ZB=g(y+pwB)b,分別計算出(ZA,ZB)之后,然后由TS分別指派(ZA,ZB)給A,B。
Step4:當接收到TS傳遞過來的ZA。由A按照公式ga=g(x+pwA)a(x+pwA)-1推算出ga。User A按照公式KA=h(ga)計算結(jié)果,然后由A將計算出來的結(jié)果KA送到TS,由TS進行自我校驗。
Step5:當接收到TS傳遞過來的ZB。由B按照公式gb=g(x+pwB)b(x+pwB)-1推算出gb。User A按照公式KB=h(gb)計算結(jié)果,然后由B將計算出來的結(jié)果KB送到TS,由TS進行自我校驗。
Step6:一旦接收到KAandKB,TS按照 =h(ga)和 =h(gb)計算結(jié)果然后,分別檢測KA與 、KB與 是否匹配。如果不匹配,TS將會中斷會話并且認定當前用戶不是合法用戶。如果匹配,TS分別按照公式 和
計算出結(jié)果。之后,TS將AuthTA和AuthTB分別送給A,B。Step7:當A,B從TS接收到(AuthTAAuthTB),B按照
計算結(jié)果并且檢測 與AuthTB是否匹配。如果匹配,B按照公式K=gxy和AuthBA=h2(gxy)計算結(jié)果,之后將AuthBA和AuthTA發(fā)送到A;否則,B終止協(xié)議。

圖1 part A

圖2 part B
Step8:當A接收到(AuthTAAuthBA),然后由A驗證AuthTA是不是想要的目標信息。如果是,那么表明TS是一個可信賴的服務(wù)器,之后檢測AuthBA是不是需要的目標信息,如果是,表明B可信賴的。至此,A和B交換共享密鑰K=gxy,該密鑰用作之后的通信。然后,A傳送AuthAB=h2(gxy)給B用作B的自我校驗。
Step9:一旦接收到AuthAB,B驗證該值是不是匹配。如果匹配,K作為有效的會話密鑰。
算法示意圖如下圖1,圖2所示。
在本節(jié)中,我們將分析,我們提出的協(xié)議是安全的。在這里,主要討論我們提出的3PAKE協(xié)議可以抵抗各種已知的攻擊。
(1)在線猜測攻擊
在我們的協(xié)議中,只有兩個通信實體都是合法用戶,TS才會繼續(xù)執(zhí)行協(xié)議。否則,協(xié)議終止。在第6步,如果驗證信息是無效的,TS將會把該目標的傳輸密碼視作字典攻擊。所以該協(xié)議可以抵抗在線猜測攻擊。
(2)離線猜測攻擊
在一個離線猜測攻擊中,攻擊者攻擊一個密碼,并證實他的猜測。然而,在我們的協(xié)議中沒有提供給離線用戶任何有用的信息來幫助驗證猜測口令的正確性。因此,我們的協(xié)議可以抵抗離線猜測攻擊。
(3)中間人攻擊
在我們的協(xié)議中,入侵者無法發(fā)起中間人攻擊,因為入侵者在不知道用戶口令的情況下無法獲知KA或KB。那么他在TS端就無法進行自我驗證。
第三方密鑰驗證協(xié)議(3PAKE)是目前一種最重要的通信協(xié)議。基于口令認證的三方密鑰交換協(xié)議。使通信雙方在認證服務(wù)器的幫助下能相互進行認證并建立一個會話密鑰。與前人提出的基于口令認證的三方密鑰交換協(xié)議相比,該協(xié)議在計算代價和通信代價上都較有效,因而更適用于資源受限的環(huán)境。在本文中,我們提出了一個簡單的3PAKE。比較以前的3PAKE,它只需通過增強密碼,而無需加密密碼,并且更加高效、便捷。
[1]Bellovin S M,Merritt M.Encrypted key exchange:Pass word-based protocols secure against dictionary attacks.Proceedings of the 1992 IEEE Computer Society Symposium on Research in security and Privacy.Oakland,California,USA,1992:72-84.
[2]D.Jablon.Strong Password-Only Authenticated Key Exchange.ACM Computer Communications Review,October 1996.
[3]S.M.Bellovin and M.erritt.Encrypted:Key Exchange:Password-Based Protocols against Dictionary attacks.Proceeding of the IEEE Symposium on Research in Security and Privacy.Oakland,May 1992.
[4]M.Steiner,G.Tsudik,M.Waidner.Ref i nement and Extension of Encrypted Key Exchange[J].ACM Operation Systems Review,1995,29(3):22-30.
[5]Y.Ding,P.Horster,Undetectable on-line password guessing attacks,ACM Operating Systems Review 29(4)(1995)77-86.
[6]C.L.Lin,H.M.Sun,T.Hwang,Three party-encrypted key exchange: attacks and a solution,ACM Operating Systems Review 34(4)(2000)12-20.
[7]C.L.Lin,H.M.Sun,M.S,et al.Three party Encrypted Key Exchange without Server Public Keys[J].IEEE Commnuications Letters,2001,5(12):497-499.
[8]T.Kwon.Authentication and Key Agreement via Memorable Password[EB/OL].Internet Society Network and Distributed System Security Symposium,2001.http://eprint.tacr.org/2000/026,2004.5.10.
[9]D.Jablon,Strong password-only authenticated key exchange,ACM Computer Communications Review,October 1996.
[10]V.Boyko,P.MacKenzie,and S.Patel,"Provably Secure Password Authenticated Key Exchange Using Diffie-Hellman",Advances in Cryptology-EUROCRYPT 2000.
[11]S.Bellovin and M.Merritt,"Augmented Encrypted Key Exchange:a Password-Based Protocol Secure Against Dictionary Attacks and Password File Compromise",ATT Labs Technical Report,1994.