IPSec逻辑体系架构
以下內容摘自業界唯一一本真正從全局視角介紹網絡安全系統設計的圖書——《網絡工程師必讀——網絡安全系統設計》一書。目前該書在卓越網上僅需要70折:http://www.amazon.cn/mn/detailApp?ref=DT_BG&uid=479-8465001-9671654&prodid=bkbk975360??
8.5.1 IPSec邏輯體系架構
有多個RFC定義了IPSec組件和體系架構。這些組件和它們之間的關系構成了IPSec體系架構。本部分主要討論IPSec邏輯體系架色的基本組成,以及這些組件在Windows Server 2003中是如何協同工作的。
遵照IETF對IPSec協議的定義,在Windows Server 2003系統中,IPSec體系架構主要包括以下幾個部分:
n 安全關聯(SA)
n SA和密鑰管理支持
n IPSec協議
n 算法和方法
1. 安全關聯(SA)
安全關聯(Security Associations,SA)是由互認策略、定義安全服務密鑰機制和在IPSec通信雙方保護安全通信的密鑰組成。每個SA是為所負責的通信提供單方向,或者單一連接的安全保護。
因為SA僅是單方向的定義,所以每個IPSec會話需要兩個SA。例如,如果IPSec協議的AH和ESP封裝方式同時在通信雙方的IPSec會話中應用,則需要4個SA。
IPSec安全通信的SA需要2個數據庫:1個安全策略數據庫(Security Policy Database,SPD),一個安全關聯數據庫(Security Association Database,SAD)。SPD保存SA建立所需的安全需求和策略需求。它被應用于出/入兩個方向的數據包處理期間。IPSec檢查出/入方向的數據包,以確保是符合安全策略需求。
SAD包括每個活動SA的參數。IKE協議是在SAD中自動封裝的。SA建立后,SA信息將被存儲在SAD中。圖8-12顯示了SA、SPD以及SAD之間的關系。對數據包進行IPsec處理時,要查詢SPD和SAD。為了提高速度,SPD的每一條記錄都應有指向SAD中相應記錄的指針,反之亦然。對于外出處理,先查詢SPD,獲得指向SA的指針,再在SAD查詢進行處理所需參數。如SA未建立,則應使用IKE協商,并建立SPD和SAD間的指針。對于進入處理,先查詢SAD,對IPsec包進行還原,取出指向SPD的指針,然后驗證該包應用的策略與SPD中規定的是否相符。
圖8-12 SA、SAD、SPD之間的邏輯關系
一個IPsec系統中SPD分為進入SPD和外出SPD,均處于內核中。系統初始化時,將策略庫中的每一條記錄分別裝入進入SPD和外出SPD中。為了確保SPD的有效性和安全性,應定期進行更新和刷新。SAD的每一條記錄對應一個SA。SA經IKE協商得到,并以有序散列鏈表的形式組織。而且,SAD也分為進入SAD和外出SAD,分別與進入散列鏈表和外出散列鏈表相對應。進入散列鏈表用SA中的IPsec源地址計算散列值,外出散列鏈表用SA中的IPsec目的地址計算散列值。
SA的維護視SA的建立方式而定。如采用自動方式協商SA,則根據SA生存期的狀態和序號計數器的溢出標志來決定SA的有效性。生存期分為軟生存期和硬生存期。軟生存期狀態決定發送方是否可用SA發送數據包,硬生存期狀態決定接收方是否可用SA來處理收到的數據包。當一個SA的軟生存期期滿時,發送方不能繼續用其來發送數據包,此時,可以啟動或觸發IKE再協商一個。使用軟、硬生存機制可保證通信的持續性。如采用手工方式建立SA,則不存在生存期,僅根據序號計數器的溢出標志來決定SA的有效性。如SPD或SAD過于龐大,則可將一部分置于用戶空間。
2. SA和密鑰管理
IPSec需要SA和密鑰管理支持。ISAKMP(Internet Security Association and Key Management Protocol,互聯網安全關聯和密鑰管理協議)通過協商、建立、修改和刪除SA過程定義了身份認證和密鑰交換框架。但它不定義實際的密鑰交換,只提供框架。
IPSec需要支持手動和自動兩種方式的SA和密鑰管理。IKE是IPSec默認的自動密鑰管理協議的。IKE是一種混合協議,合并了Oakley密鑰交換協議的一部分和SKEME密鑰技術協議。圖8-13顯示了ISAKMP、Oakley和SKEME協議之間的關系。
Oakley協議使用Diffie-Hellman密鑰交換或者密鑰許可算法來創建一個唯一、共享的的加密密鑰,這個密鑰是作為產生身份認證和加密所需的密鑰材料。例如,一個共享加密密鑰可以當作DES加密算法所需的密鑰材料。Diffie-Hellman交換可以使用一個用來定義為在密鑰交換過程中使用而創建的基礎主號碼長度的組號。號碼越長,加密能力越強。典型的Diffie-Hellman組包括組1(密鑰長度為768位)、組2(密鑰長度為1024位)和組14(密鑰長度為2048位)。圖8-14顯示了Oakley協議、Diffie-Hellman算法和有名的Diffie-Hellman密鑰交換組之間的關系。
圖8-13 ISAKMP與IKE,以及IKE與Oakley和SKEME協議之間的關系 圖8-14 Oakley與Diffie-Hellman算法和Diffie-Hellman組之間的關系
Oakley協議定義了多種密鑰交換過程模式。這些模式符合在ISAKMP協議中定義的兩個協商步驟。步驟1,Oakley協議定義兩種法則模式:主模式(Main mode)和***性模式(Aggressive mode)。Windows IPSec不采用***性模式。步驟2:Oakley協議只定義一個模式,即:快速模式(Quick mode)快速模式。
3. IPSec協議
為IP層(也即網絡層)提供安全保護,IPSec定義了兩個協議:身份認證頭(Authentication Header,AH)和封裝安全載荷(Encapsulating Security Payload,ESP)。這兩個協議為SA提供安全服務。每個SA是由SPI(Security Parameters Index,安全參數索引)、目的IP地址和安全協議(AH或者ESP)頭進行標識的。
在SA中,SPI是唯一的,用來在區別同一個接收請求計算機上的多個SA。例如,IPSec與兩臺計算機進行通信,則在每臺計算機上就需要兩個SA。一個SA服務于入方向的通信,一個SA服務于出方向的通信。因為對于這兩個SA來說,IPSec通信端的IP地址是一樣的,SPI就可以用于區別入方向和出方向SA。因為每個SA的加密密鑰不同,所以每個SA必須被唯一標識。
圖8-15顯示了SA、SPI、目標IP地址和安全協議(AH或者ESP)之間的關系,其實也是IPSec協議組成和SA體系架構。從圖中可以看出,在SA中包括了IP頭和AH或者ESP頭兩個大部分。而在IP頭中包括了IP地址,而AH或者ESP頭中包括了SPI。具體這兩個協議的包格式將在本章后面介紹。
圖8-15 IPSec協議和SA體系架構
4. 算法和方法
IPSec協議使用身份認證、加密和密鑰交換算法。在AH和ESP協議中,有兩種身份認證或者加密哈希算法:HMAC-MD5 (Hash Message Authentication Code with MD5,哈段消息認證代碼-消息摘要5) 和HMAC-SHA-1(Hashed Message Authentication code with Secure Hash Algoritm-1,帶有安全哈然算法1的哈希消息身份認證代碼)。在ESP中還可以使用DES和3DES(Triple DES)加密算法。圖8-16顯示了身份認證和加密算法,以及安全協議之間(AH或者ESP)的關系。
IPSec的身份認證方法是由IKE協議定義的,被分為三類:數字簽名、公鑰證書和預共享密鑰。圖8-17顯示了IKE協議和這三種身份認證方法之間的關系。
圖8-16 IPSec協議及與身份認證、加密算法和安全協議之間的關系 圖8-17 IKE與身份認證方法之間的關系
總結
以上是生活随笔為你收集整理的IPSec逻辑体系架构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LFS 安装笔记 (二)
- 下一篇: 如何删除有病毒的网站?