瞿 霞,華建祥
(福建林業(yè)職業(yè)技術(shù)學(xué)院,福建 南平 353000)
IPSec中密鑰交換協(xié)議IKE的安全性分析與改進(jìn)
瞿霞,華建祥
(福建林業(yè)職業(yè)技術(shù)學(xué)院,福建 南平 353000)
摘要:對IKE協(xié)議的交換過程進(jìn)行了安全性分析,針對Diffie-He11man密鑰交換算法易受“中間人”攻擊的問題,提出了一種使用動態(tài)口令對IKE協(xié)議進(jìn)行改進(jìn)的方案,實驗結(jié)果表明,該方案是可行的,有效的。
關(guān)鍵詞:動態(tài)口令;密鑰交換協(xié)議;IPSEC協(xié)議;IKE協(xié)議
IKE(Internet Key Exchange)協(xié)議是在1998年由IETF在RFC2409中制定的標(biāo)準(zhǔn),主要用于交換和管理在VPN中使用的加密密鑰。Internet密鑰交換協(xié)議(IKE)解決了在不安全的網(wǎng)絡(luò)環(huán)境中安全地建立或更新共享密鑰的問題,其不僅可為IPSEC協(xié)商安全關(guān)聯(lián),還可為SNMPv3、RIPv2、OSPFv2等任何要求保密的協(xié)議協(xié)商安全參數(shù),IKE作為IPSEC默認(rèn)的密鑰交換協(xié)議,在主機之間建立密鑰和相關(guān)的安全參數(shù),用于保護主機之間數(shù)據(jù)傳輸?shù)陌踩?,是IPSEC的重要組成部分。IKE協(xié)議的交換機制是建立在Diffie-He11man密鑰交換算法的基礎(chǔ)之上,但因D-H交換算法極易受到“中間人”攻擊,本身并不安全,為此,IKE引入了四種認(rèn)證機制,分別為預(yù)共享密鑰認(rèn)證、數(shù)字簽名認(rèn)證、標(biāo)準(zhǔn)公鑰加密認(rèn)證和修訂公鑰加密認(rèn)證。由相關(guān)研究表明[2-5],以上認(rèn)證方式均存在改進(jìn)的空間,本文針對IKE使用的D-H交換算法易受“中間人攻擊”的特點提出一種改進(jìn)方案,將動態(tài)口令引入到IKE協(xié)議中,在IKE的第一階段交換前添加動態(tài)口令認(rèn)證,實現(xiàn)對VPN通信客戶端身份的有效認(rèn)證,同時利用動態(tài)口令產(chǎn)生保護第一階段Diffie-He11man密鑰交換的隨機串,保證了雙方通信安全,不會帶來額外的開銷。
首先對標(biāo)準(zhǔn)IKE協(xié)議中引入的D-H密鑰交換算法進(jìn)行了分析,然后重點研究了D-H密鑰交換算法遭受“中間人攻擊”的過程,并簡要分析了IKE協(xié)議引入的認(rèn)證機制的安全缺陷,然后給出了基于動態(tài)口令認(rèn)證的IKE協(xié)議解決方案,并對該方案進(jìn)行了安全性分析。
基于原根的定義和性質(zhì),可以定義兩個全局公開的參數(shù),一個整數(shù)a和素數(shù)q,a是q的一個原根,假定A和C在公共信息上利用D-H算法建立共享密鑰,其過程如下所述:
(1)A生成隨機數(shù)x,計算Pa=aXmod q,A將Pa傳給C,X為Pa的保密數(shù)據(jù);
(2)C生成隨機數(shù)y,計算PC=aymod q,C將PC傳給A,y為Pc的保密數(shù)據(jù);
(3)A計算的共享密鑰為
(4)C計算的共享密鑰為
由于D-H密鑰交換算法的有效性依賴于計算離散對數(shù)的難度,而在素數(shù)q的范圍內(nèi)計算離散對數(shù)是不可能的,因此竊聽者即使獲取到了Pa、Pc、a和q,也無法計算出雙方共享的密鑰。
2.1D-H算法“中間人攻擊”過程分析
由文中第2部分描述可知,標(biāo)準(zhǔn)IKE協(xié)議中引入的密鑰交換算法Diffie-He11man,可以幫助通信雙方快速建立共享密鑰,但該算法本身存在缺陷,容易遭受“中間人”攻擊,其過程如圖1所示。
圖1中間人攻擊圖例
通過以上攻擊流程的分析可知,“中間人”這種攻擊方式之所以會在D-H密鑰交換算法中奏效,最大的原因是通信雙方都沒有驗證對方的身份,當(dāng)然也就無法辨別消息的真正來源。由于D-H密鑰交換算法這種缺陷,出于安全需要,使用D-H密鑰交換算法的IKE協(xié)議中引入了多種身份認(rèn)證方法,但由于協(xié)議設(shè)計的缺陷,IKE協(xié)議的交換過程中還容易受到變換載荷的攻擊。
IKE協(xié)議除了容易受到變換載荷的攻擊之外,還存在一個漏洞就是可能會泄漏通信雙方的身份。在實際網(wǎng)絡(luò)環(huán)境下,為避免惡意的第三方偽裝成合法用戶發(fā)起主動攻擊,隱藏協(xié)商雙方或某一方的身份是很有必要的。
對于公鑰加密及其改進(jìn)版本的認(rèn)證方式,攻擊者一般都較難獲取通信雙方的身份信息,除非是對應(yīng)私鑰泄漏,但這種安全保證是以增加協(xié)議的復(fù)雜性和運算量為代價的。另外兩種認(rèn)證方式:預(yù)共享密鑰認(rèn)證和數(shù)據(jù)簽名認(rèn)證方式,在野蠻模式交換中根本不提供身份保護,即使是主模式也無法避免通信身份的泄漏,從而導(dǎo)致惡意第三方的攻擊發(fā)生。
對于數(shù)字簽名認(rèn)證方式,在主模式下,攻擊者可以首先在D-H交換時,發(fā)起“中間人”攻擊,從而和協(xié)議交互雙方分別生成一個共享密鑰,假設(shè)為K1和K2,然后分別產(chǎn)生SKEYID1=prf(Ni_b,K1)和SKEYID2=prf (Ni_b|Nr_b,K2),從而最后生成了SKEYID_e。發(fā)起人發(fā)出的第5條消息是受SKEYID_e保護的,因此,攻擊人可以從該消息中獲得發(fā)起人的身份信息。不過攻擊人無法再進(jìn)行“中間人”攻擊,因為攻擊人無法修改該條消息中的數(shù)字簽名。
對于預(yù)共享密鑰認(rèn)證方式,雖然第5條和第6條消息中對身份信息進(jìn)行了加密,但是由于發(fā)起者必須根據(jù)共享密鑰計算SKEYID,所以必須首先知道對方的身份,因此IKE協(xié)議明確指出,此時只能使用IP地址作為身份標(biāo)識,也就是說,任何攻擊者都可以根據(jù)前面的消息交換獲得雙方IP地址,從而獲得雙方的身份信息,導(dǎo)致了信息的泄漏。
2.2基于動態(tài)口令認(rèn)證的IKE協(xié)議
為了將動態(tài)口令認(rèn)證機制引入到IKE協(xié)議中,本文對IKE協(xié)議的兩階段交換進(jìn)行了擴展,將其密鑰交換過程擴展為三個階段,如圖2所示。
圖2 改進(jìn)后的IKE協(xié)議
在IKE的第一階段交換前添加動態(tài)口令認(rèn)證交換是為了對VPN通信客戶端進(jìn)行有效的身份認(rèn)證,同時利用動態(tài)口令產(chǎn)生保護第一階段Diffie-He11man密鑰交換的隨機串,動態(tài)口令認(rèn)證的流程如圖3所示。
圖3 動態(tài)口令身份認(rèn)證技術(shù)的認(rèn)證過程
動態(tài)口令身份認(rèn)證過程中,認(rèn)證雙方共享秘密信息串S1、S2和D0,這里D0是用來產(chǎn)生動態(tài)口令DP的密鑰,當(dāng)用戶通過VPN輸入用戶名和動態(tài)口令時,客戶端程序會根據(jù)輸入生成Hash(S1+DPC)和Hash(ID),服務(wù)器端收到該認(rèn)證請求后,通過比較ID的Hash值確認(rèn)用戶ID,并計算該用戶ID的動態(tài)口令DPS,通過計算得到Hash(S1+DPS),該值若與客戶端傳上來的值相等則認(rèn)證成功,否則認(rèn)證失敗,當(dāng)認(rèn)證成功時雙方都可通過計算得到Hash(S2+DP),該值即為隨機保護串RanKey,該串將用于保護IKE第一階段Diffie-He11man的密鑰交換。
2.3改進(jìn)的IKE第一階段交換
改進(jìn)的IKE第一階段交換利用了上一階段生成的隨機保護串RanKey對DH的密鑰交換過程進(jìn)行保護和校驗,同時利用DH密鑰交換得到主模式的SA,經(jīng)過改進(jìn)后的IKE第一階段如圖4所示。
圖4 改進(jìn)后的IKE第一階段交換
與標(biāo)準(zhǔn)的IKE第一階段主模式交換相比,對圖4中的第3、4條消息進(jìn)行了修改,而刪除了第5、6條消息:
(1)在第三條消息中添加了一個參數(shù)HASH_i,該參數(shù)的計算公式如下:HASH_i=prf(RanKey,Kei|Ck_i|Ck_R|SAi_b|SAr_b) (2)在第四條消息中同樣添加了一個參數(shù)HASH_r,該參數(shù)的計算公式如下:
HASH_r=prf(RanKey,Ker|Ck_i|Ck_R|SAr_b)
標(biāo)準(zhǔn)IKE協(xié)議中,響應(yīng)端收到第三條消息之后并不對該消息的來源進(jìn)行確認(rèn),這也就是為何DH會受到中間人攻擊的原因,改進(jìn)后的協(xié)議中,當(dāng)響應(yīng)收到第三條消息后,要利用相同的算法計算HASH_i_Check=prf(RanKey,Kei|Ck_I|Ck_R|SAi_b| SAr_b),若HASH_i與HASH_i_Check一致,則校驗成功,否則說明中間人修改了Kei、SAi或者SAr,響應(yīng)者中止交換。
當(dāng)?shù)谒牟揭院?,雙方完成D-H交換,產(chǎn)生主密鑰Mastkey,通過該密鑰可衍生出SKEYID_e,下一階段的密鑰交換則在SKEYID_e的保護下進(jìn)行。
SKEYID_e的計算方式如下:
SKEYID=prf(RanKey,Ck_I|Ck_R) SKEYID_2=prf(SKEYID,MasterKey|Ck_I|Ck_R|0) SKEYID_a=prf(SKEYID,SKEYID_2|MasterKey| Ck_I|Ck_R|1)
SKEYID_e=prf(SKEYID,SKEYID_a|MasterKey| Ck_I|Ck_R|2)
2.4增加的消息和載荷類型
由于IKE協(xié)議進(jìn)行了修改,增加了部分消息以及參數(shù),因此需要增加這部分消息和載荷,下表1中定義了兩種消息類型,主要在動態(tài)口令認(rèn)證交換中使用。
表1 新增消息類型
增加的載荷統(tǒng)一使用圖5的結(jié)構(gòu),
圖5 增加的載荷結(jié)構(gòu)
本文新增了如表2所示的載荷類型,分別為USERID、DIDAUTH和RESULT,具體意義如下,三者均在動態(tài)口令身份認(rèn)證階段使用:
表2 新增載荷類型
引入動態(tài)口令身份認(rèn)證之后,IKE協(xié)議實現(xiàn)了一種輕量級認(rèn)證機制---動態(tài)口令認(rèn)證機制保護下的安全認(rèn)證和傳輸。由于IKE協(xié)議所使用的D-H交換最容易受到“中間人”攻擊,這里以該攻擊方式為例,分析改進(jìn)后的IKE協(xié)議的安全性。
在動態(tài)口令認(rèn)證階段,由2.2節(jié)可知,網(wǎng)絡(luò)上并未直接傳送用戶ID信息和動態(tài)口令,攻擊者若假扮用戶,并不能正確獲取到動態(tài)口令DP,因而也不能計算得到正確的AuthC值,沒有正確的AuthC值,服務(wù)器則可中斷協(xié)議,若攻擊者假冒服務(wù)器端,鑒于動態(tài)口令是服務(wù)器端單向驗證,此時用戶端暫時無法察覺受到了欺騙,但是由于假冒的服務(wù)器無法解析出正確的動態(tài)口令DP,因而也無法產(chǎn)生正確的隨機保護串RanKey。
在改進(jìn)后的第一階段D-H的生成過程中,無論攻擊者冒充用戶還是冒充服務(wù)器,一旦修改了KEi、KEr、SAi和SAr中的任何一個,由于不知道RanKey或者只知道一個錯誤的RanKey,就無法得到HASH_i 和HASH_r正確的值,借由此客戶端和服務(wù)器端均可判斷出是否遭受了“中間人”攻擊,一旦確定受到攻擊,通信任何一方即可中止協(xié)商。
由上分析可知,在動態(tài)口令認(rèn)證交換中,原只有服務(wù)器端對客戶端的單向身份認(rèn)證存在,而在改進(jìn)后的IKE第一階段交換過程中,客戶端和服務(wù)器端實現(xiàn)了雙向認(rèn)證,從分析結(jié)果看,該IKE的改進(jìn)方案是可行的,有效的。
通過對標(biāo)準(zhǔn)的IKE協(xié)議的安全性進(jìn)行了分析,研究了D-H算法遭受“中間人”攻擊的過程,通過在IKE協(xié)議中引入動態(tài)口令認(rèn)證的方法,有效解決了D-H算法易受“中間人”攻擊的問題,由于IKE協(xié)議本身非常復(fù)雜,對于IKE協(xié)議的安全性和改進(jìn)方面,仍存在不少問題有待進(jìn)一步研究,相信隨著對這些問題的逐步解決,IKE協(xié)議將更加完善。
參考文獻(xiàn):
[1]范紅.互聯(lián)網(wǎng)密鑰交換協(xié)議及其安全性分析[J].軟件學(xué)報, 2003,14(3):600-605.
[2] 何偉偉,季新生,劉彩霞.基于數(shù)字簽名認(rèn)證的IKE協(xié)議安全性分析及改進(jìn)[J].計算機應(yīng)用.2008,28(7):1808-1815.
[3] 武濤,鄭雪峰,姚宜霞,等.基于預(yù)共享密鑰認(rèn)證的IKE協(xié)議分析與改進(jìn)[J].計算機工程,2008,34(8):147-149.
[4] 付小青,丁俊民.基于公鑰簽名的IKE分析與改進(jìn)[J].華中科技大學(xué)學(xué)報:自然科學(xué)版.2003,31(10):51-53.
[5] 韓秀玲,王行愚.IPSEC中密鑰交換協(xié)議認(rèn)證過程的研究及協(xié)議的改進(jìn)[J].計算機工程與應(yīng)用,2002,38(18):29-32.
(責(zé)任編輯:葉麗娜)
中圖分類號:TP393.08
文獻(xiàn)標(biāo)識碼:A
文章編號:1674-2109(2015)12-0065-04
收稿日期:2015-06-19
作者簡介:瞿霞(1982-)女,漢族,講師,主要從事網(wǎng)絡(luò)安全研究。
Security Analysis and Improvements on IKE in IPSEC
QU Xia,HUA Jianxiang
(Fujian Forestry Vocationa1 Technica1 Co11ege,Nanping,Fujian 353000)
Abstract:The paper ana1yzes the security issue of the exchange process of IKE protoco1,revises IKE protoco1 of the program by dynamic passwords for the vu1nerabi1ity issue of Diffie-He11man key exchange a1gorithm.The program revised proves to be feasib1e and effective by the experiment carried out.
Key words:dynamic passwords;protoco1 of key exchange;IPSEC protoco1;IKE protoco1