IPSECVPN連線建立(IKE)詳解

科技小能手發表於2017-11-12
IPSEC構建站點到站點連線的基本過程

對於站點到站點的會話,構建連線的基本過程如下:

一個VPN閘道器對等體發起了到另外一個遠端的VPN閘道器對等體的會話(觸發流量)

如果沒有存在VPN的連線,那麼ISAKMP/IKE階段1開始,兩個對等體協商如何保護管理連線。

Diffie-hellman用於為管理連線中的加密演算法和HMAC功能來安全的共享金鑰。

在安全管理連線中來執行裝置驗證。

ISAKMP/IKE階段1結束,階段2開始;對等體協商引數和金鑰資訊用來保護資料連線(這是在安全管理連線下實現的,或者你也可以選擇性的再次使用Diffie hellman)

資料連線被建立,階段2結束,VPN閘道器現在可以通過資料連線來保護使用者流量。

最終,管理連線和資料連線將會超時,並重新構建連線

ISAKMP/IKE階段1中的工作模式分為主模式和積極模式(或野蠻模式)

ISAKMP/IKE階段1:

一.管理連線在階段1建立,它是一個雙向的過程。源和目標都是使用的UDP 500

二.在ISAKMP/IKE階段1將會發生三件事情:建立雙向的ISAKMP SA

      1.安全關聯建立和安全引數協商(加密演算法,HASH演算法,DH組,身份認證)。

       2.DH演算法(金鑰交換)

       3.對等體認證(pre-shared,rsa-sig,加密隨即數)

三.ISAKMP/IKE階段1基本上負責建立一個安全的管理連線,然後,執行這

3個步驟有兩種模式:

        1.主模式;(Main mode)

        2.積極模式,或者被稱為侵略模式(Aggressive mode)

主模式

執行3步雙向交換過程,總共6 個資料包

主模式的好處:裝置驗證的步驟發生在安全的管理連線中,因為這個連線是在前兩個步驟中構建的,因此,兩個對等體需要傳送給對方的任何實體資訊都可以免受攻擊。

站點到站點和使用證書做裝置驗證的遠端訪問使用的預設模式

主模式管理連線的狀態:

狀態               解釋

MM_NO-STATE 處於階段1的主模式過程中,SP未協商好,SA未建立好

MM_SA_SETUP 處於主模式中,SP協商好,初始化SA建立好

MM_KEY-EXCH 處於主模式中,發生了DH交換,計算金鑰KDH,並生成許多金鑰

MM_KEY_AUTH 處於主模式中,成功完成對等體的身份認證,階段1完成,階段二開始了;

注意:這裡的第5個包應該是IDi不是IDr。X、Y就是互動的公鑰N是隨機數 

1:發起者send一個cookie Ci 和SA負載(SAI:encryption algorithm,hash algorithm,authentication method,lifetime ,and so on)用來協商引數

 

2:響應者傳送一個SAr(已經挑選的安全引數)和cookie Cr: 如果沒有可以挑選的引數,響應者會返回一個負載拒絕;(return a notify payload rejecting proposals)

3和4: 互相交換生成KEY的材料(公鑰和一些隨機資料),一旦KEY材料被交換,將會產生四個不同   的KEY;

     1:  KDH=DH演算法(用自己的私鑰+對方公鑰)

     2:  SKEYID=hash (pre-shared key ,Ni | Nr) 

     3:  SKEYIDd=hash(SKEYID, KDH| Ci | Cr | 0 ) 作為階段2生成KEY的材料

     4: SKEYIDa = hash(SKEYID, SKEYIDd |  KDH| Ci | Cr | 1) 用來ISAKMP包完整性用的key

     5: SKEYIDe=hash(SKEYID,SKEYIDa |  KDH| Ci | Cr | 2 ) 用來加密ISAKMP包的key

5和6:完成裝置認證,使用SKEYIDe進行加密,SKEYIDa 進行HASH認證(HASH_i,HASH_r)所涉及的演算法都是最前面兩個包協商出來的;最重要的是在這次交換中還有個ID交換(IDi,IDr);

              6.HASHi = hash(SKEYID, X|Y|Ci|Cr|SAr|IDi) 

              7.HASHr = hash(SKEYID, X|Y|Cr|Ci|SAi|IDr) 

總結:主模式=1個雙向ISAKMP SA+2次加密+3次交換+4個狀態+5個KEY+6個包+7步運算

IKE積極模式

只進行3次交換以便協商金鑰和進行驗證.

優點:建立管理連線的時候速度快;

缺點;傳送的實體資訊都是明文的,犧牲了安全性;

Cisco遠端訪問VPN中裝置驗證用的是組預共享金鑰的話,那麼預設模式就是積極模式.

狀態 解釋

AG_NO_STATE 處於階段1的積極模式中,沒有建立管理SA,沒有協商引數AG_INIT_EXCH 對等體之間已經成功協商了IKE策略引數,發生了DH交換,並生成了共享金鑰KDH

AG_AUTH 處於積極模式中,成功完成對等體的身份認證,階段1完成

第三個包是加密的

1.在第一條訊息中,發起放傳送ISAKMP報頭,安全關聯,DH公開值,臨時值和身份ID

2.在第二條訊息中,應答方用選定提議的所有引數和DH公開值進行應答,該訊息被驗證,但沒有加密.

3第三條訊息由發起方發回給應答方,該訊息被驗證,讓應答方能夠確定其中的雜湊值是否與計算得到的雜湊值相同,進而確定訊息是否有問題.積極模式沒有主模式安全,因為身份是以明文方式傳輸的且不能協商DH引數

總結:積極模式=1個雙向ISAKMP SA+1次加密+3個步驟+3個包+3個狀態+5個KEY+7步運算

ISAKMP/IKE階段2

ISAKMP/IKE階段2只有一個模式:快速模式.它定義了受保護資料連線是如何在兩個IPSEC對等體之間構成的.快速模式有兩個主要的功能:

        1.協商安全引數來保護資料連線。

        2.週期性的對資料連線更新金鑰資訊.

階段2所關心的事:

    1.什麼流量需要被保護?(感興趣流量)

    2.應當使用什麼樣的安全協議來保護流量(AH,ESP)

    3.基於選擇的安全協議,資料流量是如何 被保護的?(例如使用什麼樣的HMAC功能)

    4.使用什麼樣的操作模式?(傳輸模式,隧道模式)

    5.當重新整理金鑰資訊的時候,是ISAKMP/IKE階段1的管理用來共享心的金鑰還是完美轉發金鑰用於重新整理金鑰?

    6.資料連線的生存週期是多少?

狀態:QM-IDLE 表示階段一已成功完成,階段2開始或結束

快速模式交換3條訊息。這些訊息都是使用IKE進行保護,這意味著將使用IKE phase1中匯出來的SKEYIDe和SKEYIDa對所有分組進行加密和驗證。

1.第1條訊息來自發起方,包括ISAKMP報頭和IPSec SA 有效負載,後者包含用於大量傳輸資料的所有提議和變換。在發起方和應答方之間將交換一個新的臨時值(Ni2),它用於生成新的金鑰資訊,還可能用於防範重放攻擊。所有的IPSec金鑰都是從SKEYIDd推匯出來的,因此如果知道這個SKEYIDd的攻擊者將能夠推匯出所有用於IPSec的當前和未來的金鑰。直到重新協商IKE為止,為加強對IPSec金鑰的保護,使用完善轉發安全性(PFS)來解除未來金鑰和當前金鑰的關係。啟用PFS後,將交換新的DH公開值(X和Y)並使用計算得到的共享金鑰K

來生成金鑰資訊

2.第2條訊息由應答方傳送給發起方,其中包含選定的提議以及ISAKMP報頭,臨時值(Nr2)和HASH(2)

3.第3條也是最後一條訊息中,發起方使用HASH(3)進行驗證。這是在傳輸IPSec資料流前驗證通訊通道的有效性

雙方進行以下計算,生成金鑰4個(橫向相同,縱向不同)

第一種情況

1.KEYMAT=HASH(SKEYIDd,安全協議/Ni2/Nr2/SPI)

按同樣的方法推匯出2、3、4

第二種情況(需重新發生公鑰交換,用DH生成KDH2

KEYMAT=HASH(DKEYIDd、安全協議/Ni2/Nr2/SPI/KDH2

按同樣的方法推匯出2、3、4

兩個金鑰為inbound另兩個為outbound

預設是使用第一種方法,要用第二種方法需啟用PFS功能。

總結:階段2=1個模式+1個狀態+2個單向的ipsec sa+3個包+4個金鑰



本文轉自 tangfangxiao 51CTO部落格,原文連結:http://blog.51cto.com/tangfangxiao/686822


相關文章