王耀民,熊剛強(qiáng)(廣東醫(yī)學(xué)院信息工程學(xué)院,東莞 523808)
對一種基于口令的密鑰交換協(xié)議的分析和改進(jìn)
王耀民,熊剛強(qiáng)
(廣東醫(yī)學(xué)院信息工程學(xué)院,東莞 523808)
現(xiàn)今社會是一個信息社會,人們通過網(wǎng)絡(luò)進(jìn)行大量的數(shù)據(jù)交換。而網(wǎng)絡(luò)上的信息安全環(huán)境又是非常惡劣的。同時人們在交換信息時往往會涉及到銀行卡信息,身份證信息等一些對個人來說非常重要的信息。這些信息一旦被某些犯罪份子得到,會對信息所有人造成經(jīng)濟(jì)上或者精神上的損失。為了保證這些信息的安全,需要對通信雙方通過網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)進(jìn)行加密。最可行的辦法是通信雙方的發(fā)送方在通過網(wǎng)絡(luò)發(fā)送信息的時候使用一定的加密算法對雙方的通信信息進(jìn)行加密。接收方在收到發(fā)送方發(fā)送的信息之后使用相對應(yīng)的解密算法對接收到的信息進(jìn)行解密。為了達(dá)到這個目的,就需要通信雙方在通信之前,協(xié)商建立一個會話密鑰。口令具有方便記憶,操作簡便的特性。因此基于口令的秘鑰交換協(xié)議是目前使用最為廣泛的一種密鑰交換協(xié)議。為了方便記憶,人們往往選用生日、身份證號碼、電話號碼等信息作為自己的口令[1]。這些信息的信息熵非常的低,不能夠抵抗離線字典攻擊。為了增加口令的信息熵,一般采取以下兩種方法[2]。一種使用公鑰密碼算法或者對稱密碼法對用戶的口令進(jìn)行加密對用戶的口令進(jìn)行加密?;蛘呤峭瑫r使用公鑰密碼和對稱密碼算法對用戶的口令進(jìn)行加密。一種是既不使用公鑰密碼算法也不使用對稱密碼算法而是采取其他方法來增加用戶口令的信息熵。一個安全的基于口令的密鑰交換協(xié)議應(yīng)該具有以下特征[1,3-4]:
(1)雙向認(rèn)證,通信雙方必須能夠互相認(rèn)證彼此的身份。
(2)動態(tài)性,會話秘鑰必須是動態(tài)的,通信雙方所建立的會話秘鑰應(yīng)該不包含任何關(guān)于口令的信息。
(4)能夠抵抗中間人攻擊,一旦攻擊者發(fā)起中間人攻擊,能夠被通訊雙方的,任何一方及時發(fā)現(xiàn)。
(5)能夠抵抗重放攻擊,攻擊者不能夠利用所記錄的通信雙方之前的信息發(fā)起重放攻擊。
(6)能夠抵靠內(nèi)部人員攻擊:參加通信雙方的任意一方不能利用自己的口令得到其他協(xié)議參與方的口令。
2010年,Chang等人在文章一當(dāng)中提出一種基于口令的三方密鑰協(xié)商協(xié)議[5]。在Chang當(dāng)然所提出的密鑰協(xié)議當(dāng)中使用異或算法和單向哈希函數(shù)來代替公鑰密碼算法和對稱密碼算法對用戶的口令進(jìn)行加密。由于執(zhí)行異或算法和單向哈希函數(shù)對用戶的口令進(jìn)行加密,因此該協(xié)議具有非常高的計算效率。并且Chang等人在文章中使用“隨機(jī)預(yù)言機(jī)”對他們提出的協(xié)議進(jìn)行了證明,并據(jù)此聲稱他們的協(xié)議是可證明安全的。但是經(jīng)過我們進(jìn)行安全分析后發(fā)現(xiàn),Chang等人提出的協(xié)議不能夠抵抗離線字典攻擊,不是一種安全的基于口令的密鑰交換協(xié)議。
本文首先對Chang等人提出的協(xié)議進(jìn)行安全分析,寫出對Chang等人提出的協(xié)議進(jìn)行攻擊的模型。然后對Chang等人提出的協(xié)議進(jìn)行改進(jìn),克服其不能夠抵抗離線字典攻擊的缺點(diǎn)。并對本文提出的協(xié)議進(jìn)行安全分析指出其是一種安全的基于口令的三方密鑰交換協(xié)議。
1.1文中所用的符號介紹
A,B:進(jìn)行密鑰交換的通信雙方;
S:認(rèn)證服務(wù)器;
Pwx:通信方X的口令;
H():單向哈希函數(shù);
⊕:異或運(yùn)算;
Idx:通信方X的身份標(biāo)識;
A→B:通信方A向通信方B發(fā)送消息;
Zq:一個q階的乘法可交換群;
pkx:通信方X的公鑰;
skx:通信方X的私鑰;
E(I)x:使用密鑰X對信息I進(jìn)行加密;
D(I)x:使用密鑰X對信息I進(jìn)行解密;
1.2Chang等人提出的協(xié)議
在本節(jié)當(dāng)中,我們將對Chang等人在2010年提出的基于口令的三方密鑰交換協(xié)議進(jìn)行詳細(xì)的介紹,Chang等人提出的協(xié)議中,參與通信的用戶與認(rèn)證服務(wù)器共享口令。執(zhí)行如下步驟[5]:
(1)A→S:
A向認(rèn)證服務(wù)器S發(fā)送
(2)S→A:
S收到A發(fā)送的請求后,首先查找對應(yīng)用戶的口令 pwA、pwB并選擇兩個隨機(jī)數(shù)es1,es2∈Zq計算 Rs1= ges1mod p,Rs2=ges2mod p。然后利用Rs1、Rs2、pwA、pwB計算RS1⊕pwA,RS2⊕pwB并將其發(fā)送給A。
(3)A→B:
A在收到S發(fā)送的信息后,利用自己的口令pwA計算RS1⊕pwA⊕pwA得到RS1。選擇一個隨機(jī)數(shù)eA∈Zq,計算RA=geAmod p,RAS1=ReSA1mod p。將
(4)B→S:
B在收到A發(fā)送的信息后,使用自己的口令PWB計算RS2⊕pwB⊕pwB得到RS2。選擇一個隨機(jī)數(shù)eB∈Zq,計算RB=geBmod p,RBS2=Res2Bmod p,KB=ReABmod p。將
(5)S→A:
S在收到B發(fā)送的信息后,計算Rs1A=ReAs1mod p,驗(yàn)證h(RS1A,RS1,idA,idB)是否與h(RAS1,RS1,idA,idB)。如果相等則證明通信方A是合法用戶。計算RS1B=RBes2 mod p,驗(yàn)證h(RBS2,RS2,idA,idB)與h(RS2B,RS2,idA,idB)是否相等。如果相等則證明通信方B是合法用戶。將
(6)A→B:
(7)A在收到S發(fā)送的信息后,利用在第三步生成的RAS1和收到的RB計算h(RAS1,RB),然后與收到的h (RS1A',RB)比較,驗(yàn)證兩者是否相等。如果相等,則證明信息是由認(rèn)證服務(wù)器S發(fā)送的。計算KA=ReBAmod p,h (KA,RB),與收到的h(KB,RA)相比較,如果兩者相等,則證明通信方B是合法用戶,并且B有能力計算雙方的會話密鑰SK=h(geAeBmod p,idA,idB),最后將
1.3攻擊模型
Chang等人提出的密鑰交換協(xié)議是基于Diffie-Hellman問題的一種密鑰交換協(xié)議,Chang等人也給出了其在隨機(jī)預(yù)言機(jī)下的相關(guān)證明,宣稱其提出的密鑰交換協(xié)議是安全的。一個安全的密鑰交換協(xié)議應(yīng)該像前文提到的那樣,不僅能夠抵抗離線字典攻擊,而且應(yīng)該能夠抵抗離線字典攻擊。同時不能夠泄漏任何關(guān)于用戶口令的信息,Chang等人提出的密鑰交換協(xié)議經(jīng)過我們分析后,其不能夠抵抗離線字典攻擊。下面我們給出其具體的攻擊模型。
攻擊者對Chang等人提出的密鑰交換協(xié)議的攻擊可以分為如下兩個階段:
第一階段,竊聽攻擊:
(1)A向認(rèn)證服務(wù)器S發(fā)送通信請求,并將自己的idA和另一通信方的idB發(fā)送給服務(wù)器S。
(2)認(rèn)證服務(wù)器S在收到A發(fā)送的idA和idB后,選擇兩個隨機(jī)數(shù)es1,es2∈Zq。計算RS1⊕pwA,RS2⊕pwB并將其發(fā)送給A。由于攻擊者始終在監(jiān)聽網(wǎng)絡(luò)上的信息,所以服務(wù)器在發(fā)送RS1⊕pwA,RS2⊕pwB給合法用戶A的同時,攻擊者也同時可以監(jiān)聽到這條信息,并將其記錄下來。
第二階段,離線字典攻擊:
(1)假設(shè)PWI為一個口令集合,其包含了用戶所有可能選擇的口令。攻擊者在記錄服務(wù)器發(fā)送給A的RS1⊕pwA,RS2⊕pwB后,選擇任意一個pwi∈PWI,計算
PAi=(RS1⊕pwA⊕pwi)qmod p和 PBi=(RS2⊕pwB⊕pwi)qmod p。
(2)如果PAi和PBi不等于1,則攻擊者可以確定pwi不是用戶A或用戶B的口令。
攻擊者重復(fù)步驟1,2直到求出用戶A和用戶B的口令。因此Chang等人提出的協(xié)議不能夠抵抗離線字典攻擊。
通過第二節(jié)的分析,我們發(fā)現(xiàn)Chang等人提出的協(xié)議不能抵抗離線字典攻擊,而這個缺點(diǎn)在Chang等人給出的證明中并沒有發(fā)現(xiàn)。通過分析發(fā)現(xiàn),Chang等人提出的協(xié)議不能抵抗離線字典攻擊的主要原因是在協(xié)議的第二階段中,服務(wù)器發(fā)送的信息除了使用了異或操作對用戶口令進(jìn)行加密處理以外,沒有采取任何其他的方法對用戶的口令進(jìn)行加密處理。雖然只使用異或操作對用戶口令進(jìn)行加密,能夠從很大程度上提高整個協(xié)議的計算效率,但正是因?yàn)橹皇褂昧水惢虿僮鲗τ脩舻目诹钸M(jìn)行加密處理,使得攻擊者能夠發(fā)起像本文前面提的離線字典攻擊,從而得到用戶口令。而攻擊者在得到用戶的口令后,就可以冒充合法用戶與其他的合法用戶進(jìn)行通信。從而引起整個安全系統(tǒng)的崩潰。
因此為克服Chang等人提出的密鑰交換協(xié)議的缺點(diǎn),本文對Chang等人提出的協(xié)議的改進(jìn)主要集中克服Chang等人提出的協(xié)議只使用異或算法對用戶口令進(jìn)行加密的缺點(diǎn)。本文對Chang等提出的協(xié)議主要為以下兩點(diǎn):第一,引入公鑰加密算法對協(xié)議中的敏感信息進(jìn)行加密,以確保整個協(xié)議的安全性。第二,由于異或算法無法保證用戶口令的安全性,所以本文對Chang等人的第二個改進(jìn)就是去除協(xié)議中使用異或算法的部分改用指數(shù)算法對用戶口令進(jìn)行加密。本文提出的協(xié)議分為以下兩個階段:
初始化階段:
(1)用戶注冊:用戶選擇自己的id和口令,提交給認(rèn)證服務(wù)器S。認(rèn)證服務(wù)器S在收到用戶的注冊請求后保存用戶的id和口令。選擇自己的公私鑰對pkx和skx。公布自己的公鑰pkx,并保存私鑰skx,確保其無法被攻擊者獲得。
(2)認(rèn)證服務(wù)器選擇一定的公鑰加密算法,并選擇自己的公私鑰對pks和sks。公布自己的公鑰pks,并保存私鑰sks,確保其無法被攻擊者獲得。
會話密鑰建立階段:
(1)A→S:QA
A選擇一個隨機(jī)數(shù)NA,計算QA=E(idA,idB,NA)PKS,將QA發(fā)送給認(rèn)證服務(wù)器S。
(2)S→A:
認(rèn)證在服務(wù)器在收到A發(fā)送的QA后計算(idA,idB,NA)=D(idA,idB,NA)SKS,查找 idA,idB對應(yīng)的 pwA和pwB,選擇兩個隨機(jī)數(shù)es1,es2∈Zq,利用解密得到NA,計算RS1=ges1+pwA+NA,RS2=ges2+pwB+NA。將RS1和RS2發(fā)送給通信方A。
(3)A→B:
(4)A在收到S發(fā)送的信息后使用自己的口令和
(5)B→S:
(6)S→A:
認(rèn)證服務(wù)器S在收到通信方B發(fā)送的信息后,計算RS1A=mod p,驗(yàn)證h(RS1A',RS1,idA,idB)是否與h (RAS1,RS1,idA,idB)。如果相等則證明通信方A是合法用戶。計算RS2B=mod p,驗(yàn)證h(RS2B,RS2,idA,idB)與h (RBS2,RS2,idA,idB)是否相等。如果相等則證明通信方B是合法用戶。通信雙方驗(yàn)證通過后,將
(7)A→B:
A在收到S發(fā)送的信息后,利用在第三步生成的RAS1和收到的RB計算h(RAS1,RB),然后與收到的h(RS1A',RB)比較,驗(yàn)證兩者是否相等。如果相等,則證明信息是由認(rèn)證服務(wù)器S發(fā)送的。計算KA=mod p,h(KA,RB),與收到的h(KB,RA)相比較,如果兩者相等,則證明通信方B是合法用戶,并且B有能力計算雙方的會話密鑰 SK=h(geAeBmod p,idA,idB),最后將
本文所提出的密鑰交換主要是為了改進(jìn)Chang等人提出的協(xié)議不能夠抵抗離線字典攻擊的缺點(diǎn),針對所提出的協(xié)議的改進(jìn)進(jìn)行分析。
首先Chang等人提出的協(xié)議不能夠抵抗離線字典攻擊的主要原因是在協(xié)議的第二步中認(rèn)證服務(wù)器向通信方A發(fā)送的信息,僅僅使用了異或算法對用戶的口令進(jìn)行了加密,從而使得攻擊者可以用窮舉攻擊的方法得到用戶的口令。
本文對Chang等人提出的協(xié)議的主要的改進(jìn)在于在協(xié)議開始時由通信方A選擇一個隨機(jī)數(shù),并使用認(rèn)證服務(wù)器的公鑰對用用戶選擇的隨機(jī)數(shù)進(jìn)行加密。攻擊者在沒有有服務(wù)器私鑰的情況下無法獲得用戶選擇的隨機(jī)數(shù)。如果攻擊者想要獲得通信方A選擇的隨機(jī)數(shù),就必須攻破公鑰密碼算法。而到目前為止還沒有有效的針對公鑰密碼算法的攻擊方法。服務(wù)器在收到用戶發(fā)送的信息后,使用收到的通信方A選擇的隨機(jī)數(shù)對用戶口令進(jìn)行加密,并將Chang等提出的協(xié)議中的異或算法變?yōu)橹笖?shù)算法。服務(wù)器每次發(fā)送給通信方A的認(rèn)證數(shù)據(jù)都不同,使攻擊者無法對協(xié)議發(fā)起窮舉攻擊。因而本文所提出的協(xié)議是一種安全的可以抵抗離線字典攻擊的密鑰交換協(xié)議。
由于用戶在選擇口令時,往往會選擇容易記憶的信息(電話號碼、生日、門牌號等)。導(dǎo)致用戶口令的信息熵非常的低。非常容易被攻擊者使用離線字典攻擊得到。因此基于口令的三方密鑰交換協(xié)議最大的威脅是離線字典攻擊,本文對文獻(xiàn)提出的協(xié)議進(jìn)行了分析改進(jìn),使其能夠抵抗離線字典攻擊,是一種安全的基于口令的三方密鑰交換協(xié)議。
[1]Mohammad Sabzinejad Farash,Mahmoud Ahmadian Attari.An Efficient Client-Client Password-Based Authentication Scheme with Provable Security.J Supercomput 70:1002-1022.2014.
[2]Farash MS,Bayat M,AttariMA.Vulnerability of Two Multiple-Key Agreement Protocols.ComputElectr Eng 37(2):199-204.2011.
[3]Chung HR,Ku WC.Three Weaknesses in a Simple Three-Party Key ExChange Protocol.Inf Sci 178(1):220-229.2011.
[4]Yang H,Zhang Y,Zhou Y,Fu X,Liu H,Vasilakos AV.Provably Secure Three-Party Authenticated Key Agreement Protocol Using Smart Cards.Comput Netw 58:29-38.2014.
[5]Chang TY,Hwang MS,Yang WP.A Communication-Efficient Three-Party Password Authenticated Key Exchange Protocol.Inf Sci 181:217-226.2011.
Password;Information Security;Key Exchange
Security Analysis and Improvements of a Key Exchange Protocol Based on Password
WANG Rao-min,XIONG Gang-qiang
(School of Information Engineering,Guangdong Medical College,Dongguan 523808)
1007-1423(2016)06-0003-05
10.3969/j.issn.1007-1423.2016.06.001
王耀民(1981-),男,山東煙臺人,碩士,講師,研究方向?yàn)樾畔踩?/p>
2015-12-17
2016-02-10
最近幾年很多基于口令的三因素密鑰交換被提了出來。2010年Chang等人提出一種基于口令的三方密鑰交換協(xié)議,并對其進(jìn)行證明,宣稱其是一種安全高效的密鑰交換協(xié)議。對Chang等人提出的協(xié)議進(jìn)行介紹,并進(jìn)行安全分析,證明其不能抵抗離線典攻擊。然后對Chang等人提出的協(xié)議進(jìn)行改進(jìn),使其能夠抵抗離線字典攻擊。對改進(jìn)的協(xié)議進(jìn)行安全分析。
口令;信息安全;密鑰交換
廣東醫(yī)學(xué)院青年基金(No.XQ1355)、國家自然科學(xué)基金面上項目(No.61170320)
熊剛強(qiáng)(1967-),男,湖南常德人,博士,副教授,研究方向?yàn)橛嬎銠C(jī)圖形圖像
In recent years,a lot of three factor key exchange based on password is proposed.In 2010,Chang et al proposed a three party key exchange protocol based on password,which was proved to be a safe and efficient key exchange protocol.Introduce the protocol proposed by Chang et al.,and carries out security analysis.It is proved that it cannot resist the off code attack.Then the protocol of Chang et al is improved,which can resist the off-line dictionary attack.Presents the security analysis of the improved protocol.