摘 要: 介紹了第一代密鑰交換協(xié)議,并分析了它的缺點(diǎn)。同時(shí)介紹了第二代交換協(xié)議IKEv2和JFK,并做了對(duì)比。
關(guān)鍵詞: IPSec 密鑰交換協(xié)議 JFK 安全關(guān)聯(lián) 拒絕服務(wù)
TCP/IP互聯(lián)網(wǎng)的先天缺陷主要源自IP協(xié)議的無(wú)連接、完全開(kāi)放、無(wú)任何安全措施等特性上,所以必須對(duì)IP協(xié)議進(jìn)行安全處理。在此背景下,1992年年底,IETF針對(duì)Internet的安全問(wèn)題,成立了IP安全小組,著手對(duì)IP安全協(xié)議(IPSec)和Internet密鑰管理協(xié)議(IKMP)進(jìn)行標(biāo)準(zhǔn)化。1998年IETF對(duì)IPSec進(jìn)行了復(fù)審,并將其納入下一代IP即IPv6中。從此IPSec協(xié)議作為IP安全標(biāo)準(zhǔn)規(guī)范被確定下來(lái)。IPSec作為一種協(xié)議套件可以“無(wú)縫”地為IP引入安全特性,并提供數(shù)據(jù)源/目的身份鑒別、數(shù)據(jù)完整性檢查以及機(jī)密性保護(hù)機(jī)制,保證協(xié)議和數(shù)據(jù)的安全。
由于IPSec提供的安全服務(wù)如源認(rèn)證和完整性等都需要用到共享密鑰,所以協(xié)議還強(qiáng)制了一種機(jī)制,即能夠?yàn)檫@些服務(wù)手工地添加密鑰。同時(shí),還定義了一種添加密鑰的標(biāo)準(zhǔn)方式,用來(lái)動(dòng)態(tài)地鑒別IPSec通信參與方的身份和協(xié)商所需的安全服務(wù)以及生成共享密鑰。這種密鑰管理協(xié)議稱為IKE(Internet密鑰交換協(xié)議)。
1 第一代密鑰交換協(xié)議
現(xiàn)有的IPsec中采用的第一代密鑰交換協(xié)議IKE,即RFC2409-IKEv1。ESP、AH協(xié)議根據(jù)SA規(guī)定的參數(shù)為IP數(shù)據(jù)報(bào)提供安全服務(wù)。IKE就是IPsec規(guī)定的用來(lái)自動(dòng)管理SA的協(xié)議,包括建立、協(xié)商、修改和刪除SA等。
1.1 IKE的交換模式
IKE使用了兩個(gè)階段的ISAKMP。第一階段建立IKE安全關(guān)聯(lián),第二階段利用這個(gè)安全關(guān)聯(lián),為IPSec協(xié)商具體的安全關(guān)聯(lián)。有兩種階段1交換、一種階段2交換以及一個(gè)新組交換(用于對(duì)安全關(guān)聯(lián)的正確維護(hù))。對(duì)階段1交換來(lái)說(shuō),IKE采用的是身份保護(hù)交換,以及根據(jù)基本ISAKMP文檔制定的野蠻交換。對(duì)此,分別叫做“主模式”和“野蠻模式”。對(duì)階段2來(lái)說(shuō),IKE則定義了一種快速交換模式,其作用是為除IKE之外的其他協(xié)議協(xié)商安全服務(wù)(特別是IPSec)。
為了最終建立IKE SA,主模式有三個(gè)往返(共使用六條消息),分別是模式協(xié)商、一次Diffie-Hellman交換和nonce交換以及對(duì)對(duì)方身份的鑒別。主模式的特點(diǎn)包括身份保護(hù)和對(duì)ISAKMP協(xié)商能力的完全利用。由于在Diffie-Hellman交換之后,雙方建立了一個(gè)共享的密鑰,只是沒(méi)有通過(guò)驗(yàn)證,因此必須對(duì)共享的密鑰進(jìn)行認(rèn)證。IKE規(guī)定了四種認(rèn)證方式:基于數(shù)字簽名的認(rèn)證、基于公開(kāi)密鑰的認(rèn)證、基于修正過(guò)的公開(kāi)密鑰的認(rèn)證以及預(yù)共享認(rèn)證。所以就有四種類型的主模式交換。
野蠻模式只需用到主模式一半的步驟。由于對(duì)消息的數(shù)量進(jìn)行了限制,野蠻模式同時(shí)也限制了它的協(xié)商能力,而且不提供身份保護(hù)功能。
當(dāng)通過(guò)階段1建立好IKE SA之后,可以用快速模式為其他安全協(xié)議(如IPSec)生成相應(yīng)的SA,并將其填入SADB。對(duì)一次快速模式交換來(lái)說(shuō),它是在以前建立好的IKE SA的保護(hù)下完成的,這些保護(hù)包括對(duì)快速模式交換的加密和對(duì)交換的鑒別。
1.2 IKEv1的缺點(diǎn)
IKEv1的主要缺點(diǎn)是:
(1)算法復(fù)雜。(2)往返消息數(shù)目太多(多達(dá)9條消息),不安全。(3)易受DoS攻擊。這是因?yàn)轫憫?yīng)者具有有限的內(nèi)存和計(jì)算能力。攻擊者可以通過(guò)隨機(jī)IP地址發(fā)送虛假連接請(qǐng)求,用盡響應(yīng)者進(jìn)程中用于連接的內(nèi)存,以及用于加密的計(jì)算能力。這樣響應(yīng)者就無(wú)法為合法的用戶提供服務(wù)。
2 下一代IKE協(xié)議
IKE協(xié)議用于交換和管理密鑰,但是IETF安全專家擔(dān)心IKEv1過(guò)于復(fù)雜,以至于難以證明它是安全的。因此推薦新的協(xié)議來(lái)代替IKEv1,并將其稱為下一代IKE(Son of IKE)。現(xiàn)在專家正在研究的有IKEv2和JFK(Just Fast Keying)。
2.1 IKEv2
IKEv2是在IKEv1的基礎(chǔ)之上進(jìn)行改進(jìn)的結(jié)果。它保留了版本1中的大部分特性,如身份隱藏、PFS、兩個(gè)階段協(xié)商,同時(shí)重新設(shè)計(jì)了強(qiáng)壯性、高效性、安全性。
2.1.1 IKEv2的特點(diǎn)
IKEv2的特點(diǎn)包括:(1)簡(jiǎn)單性?;贗KEv1的協(xié)議復(fù)雜度及安全性而提出。取消了階段1中的野蠻模式。(2)減少了潛伏期。階段1交換只需要2個(gè)往返的消息對(duì),如圖1所示。建立IPsec SA不是通過(guò)階段2來(lái)協(xié)商,而是搭載階段1的消息而建立。(3)允許無(wú)狀態(tài)cookie。這樣可以預(yù)防DoS的攻擊,響應(yīng)者在沒(méi)有接收到合法的cookie之前,將不保留cookie的任何狀態(tài),也不做任何耗時(shí)的計(jì)算。(4)增強(qiáng)了靈活性。增加了選擇符TS和“緊要”比特的概念。
2.1.2 IKEv2協(xié)議
階段1交換是4條消息的交換(兩個(gè)請(qǐng)求/響應(yīng)對(duì))。第一對(duì)消息,交換協(xié)商加密算法、(可選的)指示信任的CA名字、交換的nonce和Diffie-Hellman交換。如果響應(yīng)者指示沒(méi)有一個(gè)機(jī)密建議是可以接受的,或者發(fā)起者選擇的Diffie-Hellman 組不是響應(yīng)者選擇的組,或者當(dāng)響應(yīng)者正在遭受攻擊并且將用只包含一個(gè)合法的cookie值來(lái)響應(yīng)IKE-SA請(qǐng)求時(shí),這對(duì)消息可以重發(fā)。
第二對(duì)消息,認(rèn)證先前的消息,交換鑒定符和證書(shū)并且建立第一個(gè)IPsec SA。這對(duì)消息是通過(guò)第一對(duì)交換的密鑰來(lái)加密,因此可隱藏身份以防止偷聽(tīng)。
階段2是一個(gè)請(qǐng)求/響應(yīng)對(duì),如圖2,它可以用來(lái)創(chuàng)建或刪除一個(gè)IPsec SA,刪除或重新分配IKE-SA,檢查IKE-SA的存活性,或者傳遞諸如錯(cuò)誤條件的信息等。在創(chuàng)建IKE-SA過(guò)程中,使用協(xié)商的密鑰來(lái)加密并對(duì)完整性加以保護(hù)。任何一方都可以發(fā)起階段2交換,在階段2中添加了提供ID的能力,這樣可以建立進(jìn)程到進(jìn)程的IPsec SA。允許端口號(hào)不為500,因此協(xié)議可以通過(guò)NAT工作。
2.2 JFK
盡管可以通過(guò)對(duì)原來(lái)的協(xié)議打補(bǔ)丁的方式修正存在的問(wèn)題,但是一些人仍傾向于用其他的協(xié)議來(lái)替代IKE,以避免IKE中的棘手問(wèn)題。由于這樣的想法,從而起草了新的密鑰管理協(xié)議,稱為JFK(Just Fast Keying)。
2.2.1 JFK的特點(diǎn)
JFK的特點(diǎn)包括:(1)簡(jiǎn)單性。取消了兩個(gè)階段分發(fā)密鑰的概念,整個(gè)過(guò)程只有2個(gè)往返,4條消息交換。這樣可能同時(shí)提高了效率。另外還取消了協(xié)商,因?yàn)橐粋€(gè)局部的安全關(guān)聯(lián)協(xié)商是在消耗資源,容易遭受DoS攻擊。(2)響應(yīng)者的身份在消息2中是顯露的。這樣同時(shí)避免了發(fā)起者受到主動(dòng)的身份揭露攻擊。(3)會(huì)話密鑰(KE)和應(yīng)用密鑰從g^xy、Ni、Nr派生得出。(4)增強(qiáng)了安全性。提出了兩種協(xié)議:JFKi和JFKr。二者在許多方面很相似,但有兩個(gè)主要的區(qū)別。JFKi為發(fā)起者提供主動(dòng)的身份保護(hù),而不對(duì)響應(yīng)者提供任何身份保護(hù)。同時(shí)JFKi還包含了一個(gè)分期簽名。而JFKr為響應(yīng)者提供主動(dòng)的身份保護(hù)并為發(fā)起者提供被動(dòng)的身份保護(hù)。
2.2.2 JFK協(xié)議
為了節(jié)約篇幅,這里僅介紹JFKr協(xié)議,如圖3所示。
消息1很簡(jiǎn)單,假定發(fā)起者知道響應(yīng)者可以接受的一個(gè)組。它包含了一個(gè)組信息(Diffie-Hellman值)和一個(gè)nonce。這里,nonce有兩個(gè)作用。一方面允許在不同會(huì)話間使用同一個(gè)值,從而確保會(huì)話密鑰是不同的,另一方面可以區(qū)分不同的并行會(huì)話。
消息2對(duì)響應(yīng)者的工作量要求很小。惟一的花費(fèi)是單一的認(rèn)證,同時(shí)響應(yīng)者不需要產(chǎn)生任何狀態(tài),因?yàn)榇藭r(shí)不知道發(fā)起者是否為一個(gè)合法的通信者。這樣可以抵抗DoS攻擊。 消息3包含了發(fā)起者的身份、服務(wù)請(qǐng)求以及在nonce和響應(yīng)者身份上的簽名。JFK中參與者使用共享密鑰加密身份,這樣保證雙方身份不被竊聽(tīng)。首先顯示身份的是發(fā)起者,響應(yīng)者在查證了發(fā)起者的身份之后才顯示身份,這樣保護(hù)了響應(yīng)者的身份不受主動(dòng)的攻擊。
消息4包含應(yīng)用設(shè)置的信息(例如響應(yīng)者的SPI)、雙方nonce和冪上的簽名。與消息3一樣,消息4也使用消息認(rèn)證代碼保護(hù)。
2.3 三種密鑰交換協(xié)議的對(duì)比
三種密鑰交換協(xié)議的對(duì)比如表1~表3所示。
IKEv2是在IKEv1的基礎(chǔ)上發(fā)展而來(lái),因此不可避免地具有了IKEv1的一些固有的特征,如兩個(gè)階段交換等。同時(shí)上邊列出的數(shù)據(jù)還顯示IKEv1和IKEv2在身份隱藏和參數(shù)協(xié)商上具有相似性。惟一的區(qū)別在于對(duì)消息的控制,IKEv2減少了消息的往返次數(shù)。
IKEv2的階段2交換,頻繁地重新交換密鑰將消耗掉Diffie-Hellman密鑰的熵,因此應(yīng)該限制階段2的次數(shù)。另一個(gè)問(wèn)題是它的安全性極大依賴于Diffie-Hellman冪的隨機(jī)性。所以要保證它的安全性必須有一個(gè)很大的隨機(jī)發(fā)生器或者合適的偽隨機(jī)源。
而JFK是一個(gè)新的協(xié)議,JFK消除了協(xié)商機(jī)制。響應(yīng)者提供了一種服務(wù),有權(quán)利設(shè)置自己的服務(wù)需求,任何由響應(yīng)者提到的原始的機(jī)密是可以接受的。同樣消除了響應(yīng)者要保持的狀態(tài),發(fā)起者可以接受響應(yīng)者的請(qǐng)求或者重新啟動(dòng)協(xié)議。
JFK拋棄了兩個(gè)不同階段的概念。由于快速模式的作用是十分有限的,而且頻繁的重新交換密鑰是沒(méi)有必要的,所以正確的方法應(yīng)該是重新替換密鑰。
JFK以上兩點(diǎn)的特性,使其效率有很大程度的提高。另外,通過(guò)分析協(xié)議安全性的方法分析,證明了JFKi和JFKr的安全性。
3 結(jié)束語(yǔ)
IKEv2具有IKE中的特征,因此提供商開(kāi)發(fā)時(shí)可以先使用IKE過(guò)渡到IKEV2的實(shí)現(xiàn)。同時(shí)JFK核心小,并且改進(jìn)了正式的安全分析。JFK是如此簡(jiǎn)單以至于提供商能夠相當(dāng)快速地開(kāi)發(fā)出來(lái)。JFK具有更強(qiáng)的抵制DoS攻擊的能力。為了保護(hù)交換的消息,JFK取消了PFS,一種方法確保一個(gè)密碼破解的時(shí)候不會(huì)危及到其他數(shù)據(jù)。所以,JFK要優(yōu)于IKEv2。
在我們的實(shí)驗(yàn)中,采用JFK來(lái)替代IKE。JFK在安全路由器中已經(jīng)實(shí)現(xiàn),其功能能夠和IPsec無(wú)縫地協(xié)作,實(shí)現(xiàn)了數(shù)據(jù)包的安全傳輸,并且運(yùn)行穩(wěn)定可靠。
參考文獻(xiàn)
1 Aiello W,Steven M,Matt B et al.http://www.ietf.org/internet-drafts/draft-ietf-ipsec-jfk-04.txt,2002
2 Harkins D.http://www.ietf.org/internet-drafts/draft-ietfipsec-ikev2-rationale-00.txt,2002
3 Dan Harkins Charlie Kaufman.http://www.ietf.org/internet-drafts/draft-ietf-ipsec-ikev2-02.txt,2002
4 Harkins D,Carrel D.The Internet Key Exchange (IKE,RFC2409).http://www.ietf.org,1998
5 Perlman R.Analysis of the IPsec Key Exchange Standard. In:Proceedings of the 10th IEEE International Workshops on Enabling Technologies:Infrastructure for Collaborative Enterprises,2001