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協議ide

n 算法和方法ui

1. 安全關聯(SA) this

安全關聯(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中規定的是否相符。

clip_p_w_picpath002

圖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密鑰交換或者密鑰許可算法來建立一個惟1、共享的的加密密鑰,這個密鑰是做爲產生身份認證和加密所需的密鑰材料。例如,一個共享加密密鑰能夠看成DES加密算法所需的密鑰材料。Diffie-Hellman交換可使用一個用來定義爲在密鑰交換過程當中使用而建立的基礎主號碼長度的組號。號碼越長,加密能力越強。典型的Diffie-Hellman組包括組1(密鑰長度爲768位)、組2(密鑰長度爲1024位)和組14(密鑰長度爲2048位)。圖8-14顯示了Oakley協議、Diffie-Hellman算法和有名的Diffie-Hellman密鑰交換組之間的關係。

clip_p_w_picpath004clip_p_w_picpath006

圖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。具體這兩個協議的包格式將在本章後面介紹。

clip_p_w_picpath008

圖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協議和這三種身份認證方法之間的關係。

clip_p_w_picpath010clip_p_w_picpath012

圖8-16 IPSec協議及與身份認證、加密算法和安全協議之間的關係 圖8-17 IKE與身份認證方法之間的關係

相關文章
相關標籤/搜索