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

 

12-12 IPSec 安全政策資料庫

內容:

12-12-1安全政策 簡介

IPSec 協定上,係利用兩個資料庫來實現安全關聯的措施,一者為『安全政策資料庫』(Security Policy Database, SPD;另一者為『安全關聯資料庫』(Security Association Database, SAD。另外針對外出Outbound)與進入Inbound)訊務,兩種資料庫也分別以不同的資料庫系統來處理,即『外出資料庫』(Outbound Database)與『進入資料庫』(Inbound Database),分別處理進入與外出訊務。兩者資料庫係安裝在有處理 IPSec 協定的裝置上,可能是主機或安全閘門(Security Gateway)上。本節將介紹 SPD,至於 SAD 將會在下一小節介紹。

基本上,『安全政策資料庫』(SPD)是依照組織單位政策來建立,可選擇某些訊務(Traffic)是否給予安全機制的措施。因此,SPD 資料庫大多是利用人工輸入方式來建立,並且一般安全裝置都必須提供輸入 SPD 的介面。在 SPD 資料庫上,每一筆記錄都有相對應的指標到安全關聯資料庫的某一筆記錄,即索引到一個安全關聯(SA)。但是一個通訊訊務可能符合一個或多個安全政策,相對會搜尋到一筆或多筆安全關聯(或稱 SA Bundle),所以必須分別針對每一個安全關聯做處理(如 IPSec 協定包裝)。

12-12-2 外出處理(Outbound Processing

當安全閘門(或安全主機)收到一個外出的訊務時,必須針對這筆訊務做:啟動安全機制、直接轉送、或拋棄該訊務等三項之一的處理。至於應該給予何種處理,這必須由人工輸入建立各種規則,但我們在建立這些規則時,必須考慮到如何由該訊務上得到判斷的訊息,當然這些可判斷的訊息大多來自封包各欄位上的資料,我們也將這些訊息稱之為『選擇因素』(Selectors)。在 RFC 2401 列有下列選擇因素:

  • 目的 IP 位址(Destination IP Address):表示此封包的目的位址(IPv4 IPv6)。

  • 來源 IP 位址(Source IP Address):表示此封包的來源位址(IPv4 IPv6)。

  • 名稱(Name):表示發出此訊務的使用者或系統名稱,表示方法可以是網域名稱(Domain Name)或是以 X.500 DN。基本上,由 IP 封包是無法觀察出使用者或系統的名稱,這需仰賴其它安全機制系統才可以達成,譬如 Kerberos 管理系統。

  • 資料靈敏性層次(Data Sensitivity Level):表示此封包所承載資料的靈敏度,這可能需要其他系統來輔助。

  • 傳輸層協定(Transport layer protocol):表示此封包所承載的傳輸層協定(TCP UDP)。IPv4 封包是由 Protocol 欄位來判斷,而 IPv6 是以 Next Header 欄位。

  • 來源埠口(Source Port):此封包的來源傳輸埠口(TCP Port UDP Port)。

  • 目的埠口(Destination Port):此封包的目的傳輸埠口。

一般 Internet 網路上的應用系統都以傳輸埠口來分辨,譬如,Web Server 位於 80 埠口(TCP UDP),因此,選擇因素參考到 IP 封包上所承載資料的機會非常大,也就是說,安全裝置為了搜尋安全政策,會將 IP 封包拆解到 TCP/UDP 協定的層次。也就這樣,IPSec 協定不允許 IP 封包被中途再分段,所有分段動作必須在原發送端完成;然而接收端也必須接收完所有的分段封包,才可繼續做其他安全機制的處理。

12-12-3 進入處理(Inbound Processing

另一方面,一個安全性的訊務可能由多個 IPSec 封包所構成,安全閘門(或安全主機)是利用每一個 IPSec 封包標頭的目的位址、安全協定(AH ESP)、以及安全參數索引(SPI)等三個參數來分辨所屬的安全關聯;並且將該訊務所屬的 IP 分段組合回原 IP 封包。接下來,接收端的安全閘門再依照各種『選擇因素』(Selectors),搜尋 SPD 資料庫,是否符合相關安全政策,如果符合則接受此訊務;否則便將之拋棄。一個訊務所屬的安全政策也是經由許多安全關聯所構成,因此,可能需要多次的搜尋 SPD 資料庫才能完成。

12-12-4 安全關聯資料庫

『安全關聯資料庫』(Security Association Database, SAD記錄著每一筆安全關聯(SA)的相關參數,這些參數也許是經由人工輸入,或是通訊雙方經由 ISAKMP 協定建立而成。基本上,每一筆安全訊務都必須依照安全關聯的參數來製作;也就是說,在 SAD 資料庫上至少有一個以上的記錄(SA 記錄)。對於外出訊務而言,是利用『選擇參數』來搜尋 SPD 資料庫,而得到一個進入 SAD 資料庫的進入點(Entry),每一個進入點表示一個安全關聯,同時記錄著外出的相關安全參數;對於進入訊務而言,係利用 IPSec 封包上的目的位址、安全協定(AH ESP)以及安全參數索引(SPI)等三個參數,來搜尋 SAD 資料庫,以得到相關的安全參數。

至於 SAD 資料庫上有哪些欄位來描述各種安全參數,完全依廠商的實作有所不同,在 RFC 2401 上列出下列安全參數,可供各家廠商參考使用:

  • 序號計數器(Sequence Number Counter32 位元整數,是用來存放於 AH ESP 標頭上的序號欄位,每次該 SA 被參考使用時,便計數一次。此序號是做反重播使用。

  • 序號計數溢位(Sequence Counter Overflow):此為計數溢位的旗號。如果序號計數器已計數溢位時(表示 32 位元計數完),此旗號便會被設定,此時,系統必須經過稽核才可以繼續啟動序號計數器。

  • 反重播視窗(Anti-Replay Window):此為 32 位元計數器及位元對應(bit-map),是用來確認進入的 AH ESP 封包是否是重播的。

  • AH 認證(AH Authentication):包含 AH 認證演算法、秘密金鑰等等。

  • ESP 加密(ESP Encryption):包含 ESP 加密演算法、金鑰、IV 模式等等。

  • SA 壽命(Lifetime of SA):表示此筆 SA 的存活時間。在這存活時間內,此 SA 可連續重複使用。

  • IPSec 協定模式(IPSec Protocol Mode:此欄位是記錄此 SA 的安全協定(AH ESP)所採用的操作模式,可能是傳輸模式、通道模式、或任意。

  • 路徑的最大傳輸量(Path MTU):此欄位記錄著此 SA 的最大傳輸量(Maximum Transfer Unit, MTU)。如果 IP 封包的長度超過這個量,就必須經由分段傳輸。

其中 SA 壽命參數表示該筆 SA 的存活時間,這也表示並非每次通訊時都必須重新建立安全關聯(人工輸入或 ISAKMP 協定建立),在這有效期間內安全關聯是可以重複使用的。另一方面,當某一筆安全關聯被參考使用時,序號計數器便會增加計數,因此計數器除了接收端可以避免重複攻擊外,傳送端也可依此計數內容,了解安全關聯被使用的情況。

主講人:粘添壽博士

 

資訊與網路安全技術