資訊與網路安全技術 第 十二章 虛擬私有網路 - IPSec 上一頁  下一頁

 

12-7 IPSec AH 運作程序

內容:

  • 12-7-1 安全閘門與安全關聯

  • 12-7-1 送出 IPSec AH 封包運作程序

  • 12-7-2 接收 IPSec AH 封包運作程序

12-7-1 安全閘門與安全關聯

執行 IPSec AH 的裝置可能是主機或路由器,如果在路由器上執行 IPSec 的功能的話,就稱它為『安全閘門』(Security Gateway, SG。一般 VPN 網路都是透過安全閘門對外通訊。另外,外部漫遊主機為了要與 VPN 網路通訊,也可以在主機上安裝 IPSec 軟體。我們將 IPSec AH 的運作模式(主機或安全閘門)以圖 12-14 的流程圖表示。還未介紹其運作程序之前,我們必須強調 IPSec 運作完全依照雙方所協議『安全關聯』(SA)的安全參數而定,然而安全閘門則利用下列兩個資料庫來決定是否給予 IPSec 處理,以及 SA 相關安全參數,如下:

  • 『安全政策資料庫』(Security Policy Database, SPD):登錄那些通訊連線需要經過 IPSec 處理,因此它的搜尋關鍵字是由目的位址、通訊協定與通訊埠口等三個欄位所組成(又稱為連線識別,可表示連接何種應用系統)。至於 SPD 資料庫是如何建立而成?多半是由系統管理員依照安全政策以人工輸入而成。

  • 『安全關聯資料庫』(Security Association Database, SAD:登錄已協議完成的 SA,並儲存相關安全參數。然而,SAD 資料庫是由 ISAKMP 協定所建立而成。

以下分別以發送與接收的處理流程來介紹。

12-7-2 送出 IPSec AH 封包的運作程序

在防火牆架構的 VPN 網路上,當安全閘門(SG)收到一個往外送的封包,它必須決定是否給予該封包 IPSec 處理,直接通過或者過濾該封包不予通過。這裡我們暫不考慮防火牆功能,只針對 VPN 網路安全閘門的運作程序來介紹,如以下步驟:(如圖 12-14 (a) 所示)

  • 步驟 1當安全閘門(SG)收到一個外送封包,則利用該封包的訊息(如目的位址、通訊協定、通訊埠口)搜尋 SPD 資料庫,決定是否給予 IPSec 處理;倘若需要 IPSec 處理的話,則可查詢出相對應的『安全參數索引』(Security Parameter Index, SPI),並接下一步驟;否則直接轉送(或過濾)該封包。

  • 步驟 2SG 依照 SPD 上的索引值搜尋 SAD 資料庫,查閱是否有相對應的 SA。如果沒有或者該 SA 已經過期的話,則 SG 發動 ISAKMP 連線和接收端共同建立 SA 及相關參數(第十六章介紹);如存在或已建立完成則接下一步驟。

  • 步驟 3增加或起始 AH 序號(如圖 12-7 Sequence Number 欄位),以避免重播攻擊。

  • 步驟 4依照 SA 內的參數(如選擇哪些欄位驗證),計算 ICV 值。

  • 步驟 5建立 AH 認證標頭,並依照 SA 參數來包裝 IPSec 封包(傳輸或通道模式)。

  • 步驟 6發送 IPsec AH 封包(或分段發送)。

12-14 IPSec AH 的運作程序

12-7-3 接收 IPSec AH 封包的運作程序

基本上,IPSec 協定不允許封包在傳輸中途被分段,所有分段必須在發送端的安全閘門(SG)上完成,然而安全閘門傳送封包之前,並不瞭解網路狀態(譬如 MTU 大小),因此它必須經由測試才知道是否需要分段。測試分段方法如下:首先將封包標頭的 DF 旗號設定成『不允許分段』(Don’t Fragment,傳送封包當中遇到 MTU 較小的路徑,而需要分段時,則該路徑的路由器便會回應 ICMP Destination UnreachableType 3 Fragmentation Needed and DF SetCode 4)封包給原傳送端(即是安全閘門);安全閘門收到 ICMP 封包之後,便了解需要分段才能傳送封包,則分段該封包並分別傳送出去;並且將所有分段封包標頭上的 MFMore Fragment)設定為 1MF = 1),但最後分段封包設定為 0MF = 0)。倘若所有路徑都不需要分段的話,當然安全閘門就不會收到 ICMP 封包,亦表示傳送正常。

也就這樣,接收端收到 IPSec AH 封包後,必須由封包標頭上的 MF觀察是否有其他分段封包緊接在後,如果 MF=0,則表示本封包是最後分段或未經分段封包。IPSec AH 接收端運作程序如下:(如圖 12-14 (b) 所示)

  • 步驟 1判斷封包標頭的 MF 是否為零,若MF0則繼續接收封包;如果 MF=0,則表示已接收完封包,並將其組合回原封包格式,然後接下一步驟。

  • 步驟 2利用 IPSec AH 封包標頭的SPI、目的位址、以及 IPSec 協定(AH ESP)等欄位作為關鍵字,查詢 SAD 資料庫中的相關 SA,如果查詢得到便接下一步驟;否則拋棄該封包。其中 IPSec 協定是採用 IP 封包標頭上的『下一個標頭』(Next Header)欄位;倘若採用通道模式的話,則由『外部』(Outer)標頭上查詢。

  • 步驟 3利用所查詢出來的 SA 相關參數,以及封包所承載的 ICV,驗證封包標頭是否正確,如不正確,則拋棄該封包;否則接下一步驟。

  • 步驟 4利用封包內某些訊息(如目的位址、通訊協定、通訊埠口)為索引,查詢 SPD 資料庫,是否合乎相對應的安全政策,如果不符合,則拋棄該封包;否則接下一步驟。

  • 步驟 5查詢 AH 標頭內的序號(Sequence Number)是否在認證範圍內,如果已超出範圍則表示已認證過,即是重播封包,並拋棄該封包;否則接下一步驟。

  • 步驟 6恢復原來封包格式(IPv4 IPv6),並發送給接收工作站。

主講人:粘添壽博士

 

資訊與網路安全技術