1. 程式人生 > >思科VPN——IPSec VPN 中的 IKEv1 與 IKEv2

思科VPN——IPSec VPN 中的 IKEv1 與 IKEv2

系統 main font kmp 交換 margin dead p s 禁用

IKE(Internet Key Exchange)- 互聯網密鑰交換


為了後面介紹基於IKEv2的FlexVPN,本文先介紹一下IKEv1和IKEv2區別。

在開始介紹之前,先來看看IKEv1在IPSec VPN中的應用及工作流程。

在IPSec VPN中,IKE用於協商IPSec SA。此過程要求IPSec首先進行相互驗證並建立ISAKMP共享密鑰。一個SA是指描述兩個或多個對等體之間使用何種安全服務進行安全通信。

這個過程分兩個階段進行:

IKE-階段1:進行IPSec對等體身份認證,並在對等體之間建立安全通道用於密鑰交換。

階段1主要進行以下工作:

    1. 進行IPSec對等體的身份驗證;
    2. 在對等體之間協商能匹配的IKE SA策略,以保護IKE密鑰交換;
    3. 使用已驗證的Diffie-Hellman交換“密鑰材料”,最終生成匹配的共享密鑰;
    4. 建立安全隧道,用於協商IKE第2階段參數。

階段1有兩種工作模式(main mode 和 aggressive mode)

main mode(主模式):在對等體間進行三次雙向交換(由6條消息組成),協商匹配對等體間的IKE SA值,為後續ISAKMP交換提供受保護的通道。(每個對等體的IKE SA都是雙向的

  • 第1次交換:協商用於保護IKE通信的哈希算法,確保每個對等體的IKE SA策略能夠匹配一致;
  • 第2次交換:通過使用Diffie-Hellman在對等體間交換密鑰生成材料後,各對等體可以生成一樣的共享密鑰;(真正的共享密鑰不會通過DH交換
  • 第3次交換:驗證對等體身份,其中身份信息是加密形式的對等體IP地址。

aggressive mode(野蠻模式):僅進行一次雙向交換,對等體雙方都將協商所需的一切(如:DH公鑰、身份信息等)放在IKE SA中,一次性的發送給對端。也就是說野蠻模式在建立安全通信通道之前,就已經進行了信息交換。雖然提高了通信效率,但是降低了安全性。

IKE-階段2:協商IPSec SA,建立IPSec隧道。

階段2主要進行以下工作:

    1. 在階段1的IKE SA保護下,進行IPSec SA的參數協商;
    2. 建立IPSec SA;
    3. 定期重新協商IPSec SA,以確保安全;
    4. 進行額外的Diffie-Hellman交換(可選)。

階段2只有一種工作模式:quick mode

quick mode(快速模式):在階段1建立了安全隧道後,進入快速模式,協商共享的安全策略,派生出用於IPSec安全算法的共享密鑰材料,建立IPSec SA。每個對等體在協商後,至少會產生兩個單向的IPSec SA(一個入站和一個出站)。

通過上面的介紹,我們已經了解了IKEv1在IPSec VPN中的工作流程。現在我們再來看看IKEv2是如何做的。(不管是IKEv1還是IKEv2,它們在IPSec VPN中扮演的角色是一樣的,只是負責IPSec加解密所需的密鑰協商和交換工作。因此,下面僅介紹IKEv2工作過程)

在IKEv2的工作過程中,對等體協商由3個交換來完成,消息可分為4類:IKE_SA_INIT、IKE_AUTH、CREATE_CHILD_SA和Infomational,其中IKE_SA_INIT和IKE_AUTH為初始交換,CREATE_CHILD_SA為建立子SA交換,Informational為信息交換。

  • IKE_SA_INIT:對應IKEv1中的第1階段,負責協商IKE SA策略,並生成密鑰材料。此過程共交換2個消息。在單個策略中,允許以“OR”的方式指定多個“加密/完整性/PRF/DH組”。
  • IKE_AUTH:在IKE_SA_INIT生成密鑰材料後,通過IKE_AUTH執行相互驗證,這個過程需要交換2個消息,所交換的消息將使用IKE_SA_INIT產生的密鑰進行加密;
  • CREAT_CHILD_SA:對應IKEv1中的第2階段,此過程交換2個消息。在初始交換完成後,可以由任何一方發起,使用初始交換中協商好的加密和認證算法對消息進行保護;
  • Informational:對等體在密鑰協商期間,一方可能希望向對方發送控制信息,用於通知某些錯誤或事件的發生。信息交換就是為了實現這個功能的。由於在信息交換中,接收方必須對消息進行響應,因此,發送方可以通過這個方式判斷對方是否存活。

由此可見,在IKEv2中,不再存在主模式/野蠻模式/快速模式。IKEv2交換的消息更少,因此效率更高。

上面簡單介紹了IKEv2不同於IKEv1的工作過程,下面看看它們還有哪些不同的特性:

  1. IKEv2是IKEv1的“升級版”,但是它並不向下兼容。也就是說在IKEv1和IKEv2同時存在的環境中,你必須要同時配置IKEv1和IKEv2;
  2. IKEv2不占用IKEv1資源,也就是說它們可以同時運行在一臺設備上;
  3. IKEv2支持EAP認證,而IKEv1則不支持;
  4. IKEv2支持MOBIKE,而IKEv1則不支持;(MOBIKE允許IKEv2用於移動平臺,如手機等)
  5. IKEv2已內置了NAT穿越功能,而IKEv1則需通過擴展協議支持;
  6. IKEv2可以檢測隧道存活狀態,而IKEv1僅能使用DPD(Dead Peer Detection)。而DPD在IKEv2中已成為標準的內建功能。但思科IOS系統默認該功能是禁用的,可在IKEv2的配置文件下配置;
  7. IKEv2具有可靠性檢測,消息需被確認並排序。而在IKEv1中消息是沒有被確認的;
  8. IKEv2通過反堵塞cookie,來實現反DOS攻擊。而IKEv1則不具備該特性;
  9. IKEv2可以在一個策略中配置多套選擇器。因此,多個網絡可以在一個交換過程中進行協商;
  10. IKEv2允許兩個加密引擎分別處理IPv4和IPv6流量;
  11. IKEv2允許非對稱驗證方式,而IKEv1則只能對稱驗證;(即對等體間使用相同的認證方式)
  12. IKEv2與IKEv1一樣,使用UDP-500端口,如需NAT,則起始端口號為UDP-4500。

綜上所述,IKEv2具備更好的兼容性(跨平臺、跨廠商),更多的新特性(如內建NAT、反DOS攻擊和隧道存活狀態檢測等)。

思科VPN——IPSec VPN 中的 IKEv1 與 IKEv2