楊 洋,花 欣,秦培斌,李希源
(1.西南交通大學(xué)信息科學(xué)與技術(shù)學(xué)院,四川成都610031;2.邁普通信技術(shù)股份有限公司,四川成都610041)
對(duì)IKE協(xié)議中弱密鑰的研究*
楊 洋1,花 欣2,秦培斌1,李希源1
(1.西南交通大學(xué)信息科學(xué)與技術(shù)學(xué)院,四川成都610031;2.邁普通信技術(shù)股份有限公司,四川成都610041)
文中介紹了IKE中密鑰的產(chǎn)生過程,明確該過程可能產(chǎn)生對(duì)系統(tǒng)安全不利的弱密鑰。對(duì)于IKE部署中是否需要進(jìn)行弱密鑰過濾的問題,IKE相關(guān)的多個(gè)標(biāo)準(zhǔn)文檔中并未給出一致的結(jié)論,亦未給出充分的依據(jù)。在此背景下,對(duì)IKE標(biāo)準(zhǔn)文檔中要求必須使用的密碼算法、部分建議使用的密碼算法的弱密鑰進(jìn)行了研究。結(jié)合IKE的實(shí)際使用情況,包括密鑰生存周期、IKE/IPsec報(bào)文格式等,分析了弱密鑰對(duì)IKE系統(tǒng)的影響,明確給出了目前涉及的密碼算法都不需要進(jìn)行弱密鑰過濾的結(jié)論。
IKE 弱密鑰 過濾
IETF(因特網(wǎng)工程任務(wù)組)于1998年發(fā)布了安全協(xié)議標(biāo)準(zhǔn)IPsec,該協(xié)議隨后成為互聯(lián)網(wǎng)安全的基石之一。IPsec的基礎(chǔ)是安全關(guān)聯(lián)SA(Security Association),SA即通信雙方協(xié)商的、IPsec所需的相關(guān)信息:如加密算法、驗(yàn)證算法、工作密鑰等[1]。SA可通過手工配置、使用密鑰交換協(xié)議兩種方式生成,實(shí)際中主要采用第二種。IPsec默認(rèn)的密鑰交換協(xié)議是IKE(Internet Key Exchange)[2]。IKEv1協(xié)議由《RFC2409》定義,并于2005年被《RFC4306:Internet Key Exchange(IKEv2)Protocol》定義的IKEv2所替代。但由于IKEv1與IKEv2事實(shí)上的共存,本文將兩個(gè)協(xié)議同時(shí)納入研究,若無特別注明,統(tǒng)稱為IKE。
現(xiàn)代密碼學(xué)重要的原則是“一切秘密寓于密鑰之中”,即算法的安全性基于密鑰的安全性,而不是算法的保密[3];又由于IPsec被廣泛的應(yīng)用于政府、軍隊(duì)、銀行等敏感組織的網(wǎng)絡(luò)系統(tǒng),因此IKE產(chǎn)生的密鑰的安全性非常重要。
在密碼學(xué)中,弱密鑰是指這樣一類密鑰:使用它們進(jìn)行加密,會(huì)降低密文的安全強(qiáng)度。因此研究IKE中的弱密鑰,并提出明確的處理方法是非常有必要的。
IKE協(xié)議要求通信雙方協(xié)商prf(pseudo random function),即偽隨機(jī)數(shù)產(chǎn)生器。將通信雙方協(xié)商的參數(shù)如Diffie-Hellman共享秘密等作為prf的輸入, prf的輸出則作為密鑰種子。密鑰種子經(jīng)過一定的變換和截取,作為最終的工作密鑰。
以IKEv2的密鑰產(chǎn)生具體過程為例:
SKEYSEED=prf(Ni|Nr,g^ir)
{SK_d|SK_ai|SK_ar|SK_ei|SK_er|SK_ pi|SK_pr}=prf+
(SKEYSEED,Ni|Nr|SPIi|SPIr)
SKEYSEED為密鑰種子,Ni、Nr分別為發(fā)送端和響應(yīng)端的Nonce字段,g^ir為Diffie-Hellman共享秘密。SPIi、SPIr分別為發(fā)送端和響應(yīng)端的SPI。SK _ai、SK_ar、SK_ei、SK_er、SK_pi、SK_pr為IKE的工作密鑰。prf+表示用以下方式對(duì)prf的輸出結(jié)果進(jìn)行擴(kuò)展:
prf+(K,S)=T1|T2|T3|T4|...
T1=prf(K,S|0x01)
T2=prf(K,T1|S|0x02)
T3=prf(K,T2|S|0x03)
T4=prf(K,T3|S|0x04)
得到SK_d后,用以下方式生成KEYMAT,IPsec的工作密鑰在KEYMAT中截取。
KEYMAT=prf+(SK_d,Ni|Nr)KEYMAT= prf+(SK_d,g^ir(new)|Ni|Nr)
可見不管經(jīng)過多么復(fù)雜的中間變換,工作密鑰實(shí)際上就是偽隨機(jī)數(shù)產(chǎn)生器產(chǎn)生的一串隨機(jī)數(shù)。既然是隨機(jī)數(shù),就可能取到密鑰樣本空間中的任一樣本,包括弱密鑰(若該密鑰樣本空間存在弱密鑰)。
要研究IKE的弱密鑰,首先要確定IKE使用的密碼算法的種類。為了保證互用性,IKE標(biāo)準(zhǔn)文檔規(guī)定了部署時(shí)必須支持的密碼算法;同時(shí)對(duì)另外一些密碼算法作出了明確的描述,可理解為建議部署。
IKEv1必須支持的密碼算法為:CBC模式的DES、MD5、SHA。
IKEv2必須支持的密碼算法:3DES、PRF_HMAC _SHA1、AUTH_HMAC_SHA1_96[4]。
IKEv1相關(guān)標(biāo)準(zhǔn)明確描述的密碼算法:DES、3DES、RC5、IDEA、CAST、BLOWFISH、3IDEA、RC4[5]。
IKEv2相關(guān)標(biāo)準(zhǔn)明確描述的密碼算法:DES、3DES、RC5、IDEA、CAST、BLOWFISH、3IDEA、AES[6]。
同時(shí)考慮到思科以及國內(nèi)一些網(wǎng)絡(luò)設(shè)備廠商對(duì)IKE密碼算法的使用情況,本文將研究聚焦于以下算法:DES、3DES、RC5、CAST、BLOWFISH、AES、HMAC_SHA1。
2.1 DES
數(shù)據(jù)加密標(biāo)準(zhǔn)(Data Encryption Standard,DES)是在二十世紀(jì)七十年代由美國國家標(biāo)準(zhǔn)局發(fā)布實(shí)施,并得到ISO認(rèn)可的一種密碼算法。雖然隨著計(jì)算機(jī)能力的提高,DES已不再足夠安全,但其加解密速度快,仍被廣泛使用。
DES的密鑰共64位,不考慮每個(gè)字節(jié)第8位的奇偶校檢位,則為56位,在DES的每一輪加密中,從56位密鑰生出不同的48位子密鑰。生成方法為:56位密鑰被分成兩部分,每部分28位[7]。然后根據(jù)輪數(shù),這兩部分分別循環(huán)左移1位或2位。若密鑰的兩部分的所有位都是0或1,那么每一輪使用的子密鑰都是相同的。這些就是DES的弱密鑰。
該弱密鑰降低了密文的“混淆”程度(擴(kuò)散和混淆是密碼算法設(shè)計(jì)的基本方法),也就降低了密碼算法的安全強(qiáng)度。另外DES還存在60個(gè)半弱密鑰,類似于弱密鑰——存在著重復(fù)的子密鑰,但子密鑰不全相同。
2.2 3DES
3DES是DES的變形,3DES共有4種不同模式,RFC標(biāo)準(zhǔn)中使用的是DES-EDE3模式[8]。該模式對(duì)一個(gè)明文塊使用3個(gè)互不相同的密鑰,依次使用加密-解密-加密算法。加解密過程如圖1所示。
圖1 DES-EDE3Fig.1 DES-EDE3
《RFC2451》中闡述:DES-EDE3沒有必要針對(duì)弱密鑰或補(bǔ)密鑰作特殊處理。但當(dāng)K1=K2,或者K2=K3時(shí),DES-EDE3退化為DES。
當(dāng)退化為DES,DES-EDE3實(shí)際上存在著和DES相同的弱密鑰和半弱密鑰。
2.3 BLOWFISH
BLOWFISH是1993年由Bruce Schneider設(shè)計(jì)的一種分組密碼算法,能夠保證很好的加密速度,得到較為廣泛的應(yīng)用[9]。
BLOWFISH的弱密鑰有兩種。
第一種是S-盒中有兩個(gè)及以上的相同元素。對(duì)已知S-盒、加密輪數(shù)為r的BLOWFISH算法使用差分攻擊,需要28r+1個(gè)選擇明文來得到密鑰;但對(duì)于弱密鑰產(chǎn)生的S-盒,所需選擇明文降低為24r+1。如果S-盒未知,差分攻擊能探測出是否使用了弱密鑰,但不能求出S-盒和密鑰。而且此攻擊僅對(duì)輪數(shù)小于16輪的BLOWFISH有效。
第二種叫做“反射型弱密鑰”,BLOWFISH有大約2k+32-16r個(gè)反射型弱密鑰。其中k為密鑰長度,r為輪數(shù)。通過234個(gè)選擇明文可確定未知密鑰是否為反射型弱密鑰。若已知密鑰為反射型弱密鑰,則最快可通過r·2k-11次密文運(yùn)算推算出密鑰[10]。
2.4 RC5
RC5是1994年由Ronald L.Rivest設(shè)計(jì)的一種參數(shù)可變的分組密碼算法,3個(gè)可變參數(shù)是:分組大小、密鑰大小、加密輪數(shù)。
即使在多輪加密的RC5算法中,依然存在著一類會(huì)在線性攻擊下暴露出來的弱密鑰[11]。
記RC5弱密鑰為WKm,其中m代表該類弱密鑰能夠壓縮的加密輪數(shù)。如加密輪數(shù)為12的RC5的弱密鑰WK5,表示該弱密鑰使該RC5的強(qiáng)度和加密輪數(shù)為7的RC5相同。給定WKm,則破解該RC5所需的已知明文塊數(shù)目Np確定。
設(shè)密鑰隨機(jī)產(chǎn)生,則產(chǎn)生WKm的幾率為:
此時(shí)破解所需的已知明文塊數(shù)目為:
其中1<m<r-1,ω表示明文塊的一半的比特?cái)?shù)。
2.5 CAST、AES、HMAC_SHA1
CAST、AES、HMAC_SHA1暫不存在弱密鑰[12-13]。
經(jīng)上節(jié)分析,由于弱密鑰或半弱密鑰降低了密碼算法的安全強(qiáng)度,理論上使用密碼算法之前應(yīng)該檢查密鑰是否為弱密鑰或半弱密鑰,并拋棄弱密鑰或半弱密鑰?!禦FC2409》正是這樣規(guī)定:在使用DES時(shí),應(yīng)該過濾掉弱密鑰和半弱密鑰?!禦FC2451》亦闡述:應(yīng)該進(jìn)行弱密鑰檢查。如果找到這樣的密鑰,應(yīng)該將其丟棄并重新建立SA。
但在《RFC3602》中有如下闡述:當(dāng)使用動(dòng)態(tài)密鑰管理協(xié)議,如IKE時(shí),不應(yīng)部署弱密鑰檢測,因?yàn)檫@會(huì)增加系統(tǒng)復(fù)雜度而且會(huì)弱化系統(tǒng)的安全度。而在IKEv2的標(biāo)準(zhǔn)文檔《RFC4306》中未提弱密鑰檢測或過濾的問題。
相關(guān)RFC在給出上述結(jié)論時(shí),未同時(shí)給出充分的依據(jù)。下文將結(jié)合實(shí)際情況對(duì)各個(gè)算法進(jìn)行分析,給出所涉及的加密算法不需要進(jìn)行過濾的明確結(jié)論。在分析之前需明確一個(gè)前提:弱密鑰的過濾將增加IKE系統(tǒng)的復(fù)雜度。因此本文中判斷是否應(yīng)進(jìn)行弱密鑰過濾的依據(jù)不是弱密鑰過濾是否帶來安全性的收益,而是這種收益是否顯著到值得付出額外的系統(tǒng)復(fù)雜度。
3.1 IKE工作密鑰的使用期限
在IKEv1的標(biāo)準(zhǔn)文檔《RFC2409》、IKEv2的標(biāo)準(zhǔn)文檔《RFC4306》中未規(guī)定SA的使用期限。但在《RFC4308》中規(guī)定“建議使用的IKEv1配置套件”(包括SA)的使用期限為24小時(shí)(第一階段)、8小時(shí)(第二階段)。對(duì)于IKEv2,以思科某新型路由器為例,ISAKMP SA的默認(rèn)使用期限為24小時(shí),ipsecSA的默認(rèn)使用期限為460 800 kb流量或1小時(shí)。
由于SA包括工作密鑰,因此SA的使用期限即工作密鑰的使用期限。
由于流量不便于估算,下文將使用時(shí)間期限最短的ipsec SA作為參照,即設(shè)工作密鑰的使用期限為1小時(shí)。
3.2 DES
產(chǎn)生弱密鑰及半弱密鑰的概率為弱密鑰及半弱密鑰的總數(shù)除以密鑰總數(shù),即64/254=1/248。出現(xiàn)一個(gè)使用弱密鑰或者半弱密鑰的SA的期望時(shí)間為:
顯然,即使攻擊者能夠快速破解使用弱密鑰或半弱密鑰的DES,去等待使用弱密鑰或者半弱密鑰的SA的出現(xiàn)是毫無意義的。因此在IKE中不需進(jìn)行DES弱密鑰或半弱密鑰的過濾。
3.3 3DES
當(dāng)K1=K2,或者K2=K3時(shí),DES-EDE3退化為DES??紤]到DES密鑰的有效長度為56比特,則隨機(jī)產(chǎn)生DES-EDE3的密鑰,K1=K2或者K2=K3的概率為:
在此基礎(chǔ)上,產(chǎn)生弱密鑰或半弱密鑰的概率為:
根據(jù)3.2節(jié)的結(jié)論,此概率小到可忽略。因此,在IKE中不需要進(jìn)行3DES弱密鑰或半弱密鑰的過濾。
3.4 BLOWFISH
IKE所使用的BLOWFISH默認(rèn)加密輪數(shù)為16輪,默認(rèn)密鑰長度為128比特。
如2.3節(jié)所述,加密輪數(shù)為16的BLOWFISH可抵御針對(duì)于S-盒中有兩個(gè)及以上相同元素的弱密鑰的攻擊。
對(duì)于反射攻擊,BLOWFISH有大約2k+32-16r個(gè)反射型弱密鑰,當(dāng)k=128,加密輪數(shù)r=16:
即IKE所使用的BLOWFISH算法約含有0個(gè)反射型弱密鑰。
因此IKE中不需要進(jìn)行BLOWFISH弱密鑰過濾。
3.5 RC5
IKE中所使用的RC5默認(rèn)輪數(shù)為16輪,默認(rèn)密鑰長度為128比特,明文塊長度為64比特。即r= 16,ω=25。則:
可知,弱密鑰能夠壓縮的加密輪數(shù)和該類弱密鑰產(chǎn)生的幾率成反比。取破解所需明文塊最少的極端情況:
然后估算攻擊者可得到多少個(gè)已知明文。在IKE主模式中最后兩個(gè)報(bào)文被加密。其中ISAKMP頭部格式如下,每個(gè)字段的明文均可被攻擊者獲取,一共224≈28比特。
圖2 ISAKMP頭部Fig.2 ISAKMP header
攻擊者無法獲取IKE加密報(bào)文的其余部分對(duì)應(yīng)的明文。
在IPsec的ESP報(bào)文中,在隧道模式下,攻擊者可獲得IP報(bào)頭中的版本字段的明文,僅22比特。在傳輸模式下,攻擊者無法獲得任何明文。
可見攻擊者所能獲得的明文比特?cái)?shù)遠(yuǎn)小于理想情況下所需的最小明文比特?cái)?shù)。
因此RC5不需要進(jìn)行弱密鑰過濾。
3.6 CAST、AES、HMAC_SHA1
因暫無弱密鑰,因此不需要進(jìn)行弱密鑰過濾。
本文對(duì)IKE及IKEv2協(xié)議所使用的密碼算法的弱密鑰進(jìn)行了逐個(gè)分析,結(jié)合它們的實(shí)際應(yīng)用,得出了在上述協(xié)議中都不需要進(jìn)行弱密鑰過濾的結(jié)論。根據(jù)此結(jié)論,在網(wǎng)絡(luò)設(shè)備中實(shí)現(xiàn)IKE或IKEv2協(xié)議時(shí),無需實(shí)現(xiàn)弱密鑰過濾的功能,而不會(huì)降低系統(tǒng)的安全性。但需要注意的是,隨著研究的深入,已有密碼算法可能暴露出新的弱密鑰。另外,IKE協(xié)議本身處于演進(jìn)過程之中,未來可能使用新的密碼算法。這些新老密碼算法可能出現(xiàn)的新的弱密鑰會(huì)具有怎樣的性質(zhì)、需不需要進(jìn)行弱密鑰過濾有待后續(xù)的研究。
[1] KENT S.,ATKINSON R..RFC2401,Security Architecture for the Internet Protocol[S].American:IETF:10-11 [2014].http://www.rfc-editor.org/rfc/rfc2401.txt.
[2] HARKINS D.,CARREL D..RFC2409,The Internet Key Exchange(IKE)[S].American:IETF:5-8[2014].http://www.rfc-editor.org/rfc/rfc2409.txt.
[3] 張仕斌,萬武南,張金全,孫宣東.應(yīng)用密碼學(xué)[M].第一版.西安:西安電子科技大學(xué)出版社,2009:15.
ZHANG Shi-bin,WAN Wu-nan,ZHANG Jin-quan, SUN Xuan-dong.Applied Cryptography[M].1sted.. Xian:Xidian University Press,2009:15.
[4] SCHILLER J..RFC4307,Cryptographic Alogrithms for Use in the Internet Key Exchange Version 2(IKEv2) [S].American:IETF:2-3[2014].http://www.rfc-editor.org/rfc/rfc4307.txt.
[5] PIPER D..RFC2407,The Internet IP Security Domain of Interpretation for ISAKMP[S].UK:IETF:9[2014].http://www.rfc-editor.org/rfc/rfc2407.txt.
[6] KAUFMAN C..RFC4306,Internet Key Exchange(IKEv2) Protocol[S].American:IETF:49-50[2014].http://www. rfc-editor.org/rfc/rfc4306.txt.
[7] 王善躍,何小海,羅代升,寧國強(qiáng).通信信息加/解密研究進(jìn)展[J].通信技術(shù),2010,43(04):101-103.
WANG Shan-yue,HE Xiao-hai,LUO Dai-sheng,NING Guo-qiang.Study Progress for Encryption/Decryption of Communication Information[J].Communications Technology,2010,43(04):101-103.
[8] PEREIRA R..RFC2451,The ESP CBC-Mode Cipher Algorithms[S].American:IETF:4[2014].http://www.rfc -editor.org/rfc/rfc2451.txt.
[9] SCHNEIER Bruce.Applied Cryptography,Protocols,Algorithms,and Source Code in C[M].2nd ed.Beijing: China Machine Press,2001:237-240.
[10] KARA Orhun,MANAP Cevat.A New Class of Weak Keys for Blowfish[C]//Fast Software Encryption.Luxembourg:Springer,2007:167-180.
[11] HEYS H.M..Linearly Weak Keys of RC5[J].IEE E-lectronics Letters.1997(33):836-838.
[12] FRANKEL S..RFC3602,The AES-CBC Cipher Algorithm and Its Use with IPsec[S].American:IETF:3 [2014].http://www.rfc-editor.org/rfc/rfc3602.txt.
[13] MADSON C..RFC2404,The Use of HMAC-SHA-1-96 within ESP and AH[S].American:IETF:2[2014].http://www.rfc-editor.org/rfc/rfc2404.txt.
YANG Yang(1988-),male,graduate student,majoring in computer network security.
花 欣(1956—),男,碩士,教授,主要研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò);
HUA Xin(1956-),male,M.Sci.,professor,mainly working at computer network.
秦培斌(1989—),男,碩士研究生,主要研究方向?yàn)榍度胧杰浖_發(fā);
QIN Pei-bin(1989-),male,graduate student,majoring in embedded software engineering.
李希源(1988—),男,碩士研究生,主要研究方向?yàn)榍度胧杰浖_發(fā)。
LI Xi-yuan(1988-),male,graduate student,majoring in embedded software engineering.
Weak Keys in IKE Procotol
YANG Yang1,HUA Xin2,QIN Pei-bin1,LI Xi-yuan1
(1.School of Information Science and Technology,Southwest Jiaotong University,Chengdu Sichuan 610031,China; 2.Maipu Communication Technology Co.,Ltd,Chengdu Sichuan 610041,China)
This paper describes key generating process of IKE,explains that this process may generates weak keys and this could reduce the security of the system.Related RFCs of IKE give no coincident conclusions on whether the weak keys in IKE deployment should be filtered,and no convincible arguments.In this context, this paper discusses the weak keys of ciphering algorithms labeled as MUST and some other ciphering algorithms labeled as SHOULD or MAY in related RFCS.Then the effect of weak keys based on practical use is analyzed,including life time of keys,message format of IKE/IPsec,etc.Finally,this paper explictly draws the conclusion that there is no need to filter weak keys of the currently-involved ciphering algorithms.
IKE;weak key;filter
TN918
A
1002-0802(2014)10-1198-05
10.3969/j.issn.1002-0802.2014.10.018
楊 洋(1988—),男,碩士研究生,主要研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)安全;
2014-06-17;
2014-08-26 Received date:2014-06-17;Revised date:2014-08-26