兩台IPSec計算機在交換數據之前,必須首先建立某種約定,這種約定,稱為"安全關聯",指雙方需要就如何保護信息、交換信息等公用的安全設置達成一致,更重要的是,必須有一種方法,使那兩台計算機安全地交換一套密鑰,以便在它們的連接中使用。
Internet工程任務組IETF制定的安全關聯標准法和密鑰交換解決方案 --IKE(Internet密鑰交換)負責這些任務,它提供一種方法供兩台計算機建立安全關聯 (SA)。SA 對兩台計算機之間的策略協議進行編碼,指定它們將使用哪些算法和什麼樣的密鑰長度,以及實際的密鑰本身。IKE主要完成兩個作用:
·安全關聯的集中化管理,減少連接時間
·密鑰的生成和管理
一、什麼是SA?
安全關聯SA(Security Association)是單向的,在兩個使用 IPSec的實體(主機或路由器)間建立的邏輯連接,定義了實體間如何使用安全服務(如加密)進行通信。它由下列元素組成:1)安全參數索引 SPI;2)IP目的地址;3)安全協議。
SA是一個單向的邏輯連接,也就是說,在一次通信中,IPSec需要建立兩個SA,一個用於入站通信,另一個用於出站通信。若某台主機,如文件服務器或遠 程訪問服務器,需要同時與多台客戶機通信,則該服務器需要與每台客戶機分別建立不同的SA。每個SA用唯一的SPI索引標識,當處理接收數據包時,服務器 根據SPI值來決定該使用哪種SA。
二、第一階段SA(主模式SA,為建立信道而進行的安全關聯)
IKE建立SA分兩個階段。第一階段,協商創建一個通信信道(IKE SA),並對該信道進行認證,為雙方進一步的IKE通信提供機密性、數據完整性以及數據源認證服務;第二階段,使用已建立的IKESA建立IPsec SA。分兩個階段來完成這些服務有助於提高密鑰交換的速度。 第一階段協商(主模式協商)步驟:
1.策略協商,在這一步中,就四個強制性參數值進行協商:
1)加密算法:選擇DES或3DES
2)hash算法:選擇MD5或SHA
3)認證方法:選擇證書認證、預置共享密鑰認證或Kerberos v5認證
4)Diffie-Hellman組的選擇
2.DH交換
雖然名為"密鑰交換",但事實上在任何時候,兩台通信主機之間都不會交換真正的密鑰,它們之間交換的只是一些DH算法生成共享密鑰所需要的基本材料信息。 DH交換,可以是公開的,也可以受保護。在彼此交換過密鑰生成"材料"後,兩端主機可以各自生成出完全一樣的共享"主密鑰",保護緊接其後的認證過程。
3.認證 DH交換需要得到進一步認證,如果認證不成功,通信將無法繼續下去。"主密鑰"結合在第一步中確定的協商算法,對通信實體和通信信道進行認證。在這一步 中,整個待認證的實體載荷,包括實體類型、端口號和協議,均由前一步生成的"主密鑰"提供機密性和完整性保證。
三、第二階段SA(快速模式SA,為數據傳輸而建立的安全關聯)
這一階段協商建立IPsec SA,為數據交換提供IPSec服務。第二階段協商消息受第一階段SA保護,任何沒有第一階段SA保護的消息將被拒收。
第二階段協商(快速模式協商)步驟:
1.策略協商,雙方交換保護需求:
·使用哪種IPSec協議:AH或ESP
·使用哪種hash算法:MD5或SHA
·是否要求加密,若是,選擇加密算法:3DES或DES 在上述三方面達成一致後,將建立起兩個SA,分別用於入站和出站通信。
2.會話密鑰"材料"刷新或交換
在這一步中,將生成加密IP數據包的"會話密鑰"。生成"會話密鑰"所使用的"材料"可以和生成第一階段SA中"主密鑰"的相同,也可以不同。如果不做特 殊要求,只需要刷新"材料"後,生成新密鑰即可。若要求使用不同的"材料",則在密鑰生成之前,首先進行第二輪的DH交換。
3.SA和密鑰連同SPI,遞交給IPSec驅動程序。
第二階段協商過程與第一階段協商過程類似,不同之處在於:在第二階段中,如果響應超時,則自動嘗試重新進行第一階段SA協商。
第一階段SA建立起安全通信信道後保存在高速緩存中,在此基礎上可以建立多個第二階段SA協商,從而提高整個建立SA過程的速度。只要第一階段SA不超時,就不必重復第一階段的協商和認證。允許建立的第二階段SA的個數由IPSec策略屬性決定。