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