IPSec概述(轉)

IPSec概述

本章將詳細介紹secpath防火牆ipsec功能的配置,此時的secpath完全可以等同爲路由器來看待,在文中我們將沿用路由器方面的術語和標識來描述secpath,即本章所提及的路由器均可使用secpath來取代。

1.1    ipsec
協議簡介

   ipsec
ip security)協議族是ietf制定的一系列協議,它爲ip數據報提供了高質量的、可互操作的、基於密碼學的安全性。特定的通信方之間在ip層通過加密與數據源驗證等方式,來保證數據報在網絡上傳輸時的私有性、完整性、真實性和防重放。

私有性(confidentiality)指對用戶數據進行加密保護,用密文的形式傳送。

完整性(data integrity)指對接收的數據進行驗證,以判定報文是否被篡改。

真實性(data authentication)指驗證數據源,以保證數據來自真實的發送者。

防重放(anti-replay)指防止惡意用戶通過重複發送捕獲到的數據包所進行的***,即接收方會拒絕舊的或重複的數據包。

   ipsec
通過ahauthentication header,認證頭)和espencapsulating securitypayload,封裝安全載荷)兩個安全協議實現了上述目標。爲簡化ipsec的使用和管理,ipsec還可以通過ikeinternet key exchange,因特網密鑰交換協議)進行自動協商交換密鑰、建立和維護安全聯盟的服務,以簡化ipsec的使用和管理。

   (1)ah
協議

   ah
是報文頭驗證協議,主要提供的功能有數據源驗證、數據完整性校驗和防報文重放功能;然而,ah並不加密所保護的數據報。

   (2)esp
協議

   esp
是封裝安全載荷協議。它除提供ah協議的所有功能外(但其數據完整性校驗不包括ip頭),還可提供對ip報文的加密功能。

   ah
esp可以單獨使用,也可以同時使用。對於ahesp,都有兩種操作模式:傳輸模式和隧道模式。工作模式將在後文介紹。

   (3)ike
協議

   ike
協議用於自動協商ahesp所使用的密碼算法,並將算法所需的必備密鑰放到恰當位置。

   ike
協商並不是必須的,ipsec所使用的策略和算法等也可以手工協商。關於兩種協商方式的比較,將在後文介紹。

1. 2  ike
協議簡介

   1. ike
協議

   ipsec
的安全聯盟可以通過手工配置的方式建立,但是當網絡中節點增多時,手工配置將非常困難,而且難以保證安全性。這時就要使用ikeinternet key exchange,因特網密鑰交換)自動地進行安全聯盟建立與密鑰交換的過程。

   ike
協議是建立在由internet安全聯盟和密鑰管理協議isakmpinternet securityassociation and key management protocol)定義的框架上。它能夠爲ipsec提供了自動協商交換密鑰、建立安全聯盟的服務,以簡化ipsec的使用和管理。

   ike
具有一套自保護機制,可以在不安全的網絡上安全地分發密鑰、驗證身份、建立ipsec安全聯盟。

   2. ike
的安全機制

   dh
diffie-hellman)交換及密鑰分發。diffie-hellman算法是一種公共密鑰算法。通信雙方在不傳送密鑰的情況下通過交換一些數據,計算出共享的密鑰。加密的前提是交換加密數據的雙方必須要有共享的密鑰。ike的精髓在於它永遠不在不安全的網絡上直接傳送密鑰,而是通過一系列數據的交換,最終計算出雙方共享的密鑰。即使第三者(如***)截獲了雙方用於計算密鑰的所有交換數據,也不足以計算出真正的密鑰。

完善的前向安全性(perfect forward secrecypfs)。pfs是一種安全特性,指一個密鑰被破解,並不影響其他密鑰的安全性,因爲這些密鑰間沒有派生關係。pfs是由dh算法保障的。

身份驗證。身份驗證確認通信雙方的身份。對於pre-shared key驗證方法,驗證字用來作爲一個輸入產生密鑰,驗證字不同是不可能在雙方產生相同的密鑰的。驗證字是驗證雙方身份的關鍵。

身份保護。身份數據在密鑰產生之後加密傳送,實現了對身份數據的保護。

   3. ike
的交換階段

   ike
使用了兩個階段爲ipsec進行密鑰協商並建立安全聯盟:第一階段,通信各方彼此間建立了一個已通過身份驗證和安全保護的通道,此階段的交換建立了一個isakmp安全聯盟,即isakmp sa(也可稱ike sa);第二階段,用在第一階段建立的安全通道爲ipsec協商安全服務,即爲ipsec協商具體的安全聯盟,建立ipsec saipsec sa用於最終的ip數據安全傳送。



   (1)
當一個報文從某接口外出時,如果此接口應用了ipsec,會進行安全策略的匹配。

   (2)
如果找到匹配的安全策略,會查找相應的安全聯盟。如果安全聯盟還沒有建立,則觸發ike進行協商。ike首先建立階段1的安全聯盟,即ike sa

   (3)
在階段1安全聯盟的保護下協商階段2的安全聯盟,即ipsec sa

   (4)
使用ipsec sa保護通訊數據。

   4. ike
的協商模式

rfc2409the internet keyexchange)中規定,ike第一階段的協商可以採用兩種模式:主模式(main mode)和野蠻模式(aggressive mode)。

主模式被設計成將密鑰交換信息與身份、認證信息相分離。這種分離保護了身份信息;交換的身份信息受已生成的diffie-hellman共享密鑰的保護。但這增加了3條消息的開銷。

野蠻模式則允許同時傳送與sa、密鑰交換和認證相關的載荷。將這些載荷組合到一條消息中減少了消息的往返次數,但是就無法提供身份保護了。

雖然野蠻模式存在一些功能限制,但可以滿足某些特定的網絡環境需求。例如:遠程訪問時,如果響應者(服務器端)無法預先知道發起者(終端用戶)的地址、或者發起者的地址總在變化,而雙方都希望採用預共享密鑰驗證方法來創建ike sa,那麼,不進行身份保護的野蠻模式就是唯一可行的交換方法;另外,如果發起者已知響應者的策略,或者對響應者的策略有全面的瞭解,採用野蠻模式能夠更快地創建ike sa

1.3 ipsec
基本概念

   1.
安全聯盟

   ipsec
在兩個端點之間提供安全通信,端點被稱爲ipsec對等體。

   ipsec
能夠允許系統、網絡的用戶或管理員控制對等體間安全服務的粒度。例如,某個組織的安全策略可能規定來自特定子網的數據流應同時使用ahesp 進行保護,並使用3destriple data encryptionstandard,三重數據加密標準)進行加密;另一方面,策略可能規定來自另一個站點的數據流只使用esp保護,並僅使用des加密。通過sa security association,安全聯盟),ipsec能夠對不同的數據流提供不同級別的安全保護。

安全聯盟是ipsec的基礎,也是ipsec的本質。sa是通信對等體間對某些要素的約定,例如,使用哪種協議(ahesp還是兩者結合使用)、協議的操作模式(傳輸模式和隧道模式)、加密算法(des3des)、特定流中保護數據的共享密鑰以及密鑰的生存週期等。

安全聯盟是單向的,在兩個對等體之間的雙向通信,最少需要兩個安全聯盟來分別對兩個方向的數據流進行安全保護。同時,如果希望同時使用ahesp來保護對等體間的數據流,則分別需要兩個sa,一個用於ah,另一個用於esp

安全聯盟由一個三元組來唯一標識,這個三元組包括spisecurity parameter index,安全參數索引)、目的ip地址、安全協議號(ahesp)。spi是爲唯一標識sa而生成的一個32比特的數值,它在ahesp頭中傳輸。

安全聯盟具有生存週期。生存週期的計算包括兩種方式:

以時間爲限制,每隔指定長度的時間就進行更新;

以流量爲限制,每傳輸指定的數據量(字節)就進行更新。

   2.
安全聯盟的協商方式

可以有兩種協商方式建立安全聯盟,一種是手工方式(manual),一種是ike自動協商(isakmp)方式。前者配置比較複雜,創建安全聯盟所需的全部信息都必須手工配置,而且ipsec的一些高級特性(例如定時更新密鑰)不被支持,但優點是可以不依賴ike而單獨實現ipsec功能。而後者則相對比較簡單,只需要配置好ike協商安全策略的信息,由ike自動協商來創建和維護安全聯盟。

當與之進行通信的對等體設備數量較少時,或是在小型靜態環境中,手工配置安全聯盟是可行的。對於中、大型的動態網絡環境中,推薦使用ike協商建立安全聯盟

   3. ipsec
協議的操作模式

   ipsec
協議有兩種操作模式:傳輸模式和隧道模式。sa中指定了協議的操作模式。

在傳輸模式下,ahesp被插入到ip頭之後但在所有傳輸層協議之前,或所有其他ipsec協議之前。在隧道模式下,ahesp插在原始ip頭之前,另外生成一個新頭放到ahesp之前。不同安全協議在傳輸模式和隧道模式下的數據封裝形式(傳輸協議以tcp爲例)如下圖所示:

傳輸模式

隧道模式

從安全性來講,隧道模式優於傳輸模式。它可以完全地對原始ip數據報進行驗證和加密;此外,可以使用ipsec對等體的ip地址來隱藏客戶機的ip地址。從性能來講,隧道模式比傳輸模式佔用更多帶寬,因爲它有一個額外的ip頭。因此,到底使用哪種模式需要在安全性和性能間進行權衡。

   4.
驗證算法與加密算法

   (1)
驗證算法

   ah
esp都能夠對ip報文的完整性進行驗證,以判別報文在傳輸過程中是否被篡改。驗證算法的實現主要是通過雜湊函數,雜湊函數是一種能夠接受任意長的消息輸入,併產生固定長度輸出的算法,該輸出稱爲消息摘要。ipsec對等體計算摘要,如果兩個摘要是相同的,則表示報文是完整未經篡改的。一般來說 ipsec使用兩種驗證算法:

   md5
md5通過輸入任意長度的消息,產生128bit的消息摘要。

   sha-1
sha-1通過輸入長度小於264次方比特的消息,產生160bit的消息摘要。

   sha-1
的摘要長於md5,因而是更安全的。

   (2)
加密算法

   esp
能夠對ip報文內容進行加密保護,防止報文內容在傳輸過程中被窺探。加密算法實現主要通過對稱密鑰系統,它使用相同的密鑰對數據進行加密和解密。一般來說ipsec使用兩種加密算法:

   des
:使用56bit的密鑰對一個64bit的明文塊進行加密。

   3des
:使用三個56bitdes密鑰(共168bit密鑰)對明文進行加密。

無疑,3des具有更高的安全性,但其加密數據的速度要比des慢得多。

  1.4 ipsec
nat穿越

   1. nat
穿越(nat traversal

   ipsec
的一個主要應用是建立***,但在實際組網應用中,有一種情況會對部署ipsec ***網絡造成障礙:如果發起者位於一個私網內部,而它希望在自己與遠端響應者之間直接建立一條ipsec隧道;這就涉及到ipsecnat的配合,主要問題在於,ike在協商過程中如何發現兩個端點之間存在nat網關,以及如何使esp報文正常穿越nat網關。

首先,建立ipsec隧道的兩端需要進行nat穿越能力協商,這是在ike協商的前兩個消息中進行的,通過vendor id載荷指明的一組數據來標識,該載荷數據的定義與所採用草案(draft)版本的不同而不同。

nat網關發現是通過nat-d載荷來實現的,該載荷用於兩個目的:在ike peer之間發現nat的存在;確定nat設備在peer的哪一側。nat側的peer作爲發起者,需要定期發送nat-keepalive報文,以使nat網關確保安全隧道處於激活狀態。

   2. ipsec
穿越nat的處理

   ipsec
穿越nat,簡單來說就是在原報文的ip頭和esp頭(不考慮ah方式)間增加一個標準的udp報頭。這樣,當esp報文穿越nat網關時, nat對該報文的外層ip頭和增加的udp報頭進行地址和端口號轉換;轉換後的報文到達ipsec隧道對端時,與普通ipsec處理方式相同,但在發送響應報文時也要在ip頭和esp頭之間增加一個udp報頭。

1.5 ipsec
secpath上的實現

   1. ipsec
secpath上的實現

   secpath
實現了上述所介紹的ipsec的全部內容。

其實現方式是基於下列思路:通過ipsec,對等體之間(此處是指secpath及其對端)能夠對不同的數據流實施不同的安全保護(驗證、加密或兩者同時使用)。其中數據流的區分通過配置acl來進行;安全保護所用到的安全協議、驗證算法和加密算法、操作模式等通過配置安全提議來進行;數據流和安全提議的關聯(即定義對何種數據流實施何種保護)、sa的協商方式、對等體ip地址的設置(即保護路徑的起/終點)、所需要的密鑰和sa的生存週期等通過配置安全策略來進行;最後在路由器接口上實施安全策略即完成了ipsec的配置。

具體介紹如下:

   (1)
定義被保護的數據流

數據流是一組流量(traffic)的集合,由源地址/掩碼、目的地址/掩碼、ip報文承載的協議號、源端口號、目的端口號等來規定。一個數據流用一個 acl來定義,所有匹配一個訪問控制列表規則的流量,在邏輯上作爲一個數據流。一個數據流可以小到是兩臺主機之間單一的tcp連接;也可以大到是兩個子網之間所有的流量。ipsec能夠對不同的數據流施加不同的安全保護,因此ipsec配置的第一步就是定義數據流。

   (2)
定義安全提議

安全提議規定了對要保護的數據流所採用的安全協議、驗證或加密算法、操作模式(即報文的封裝方式)等。

   secpath
支持的ahesp安全協議,兩者既可單獨使用,也可聯合使用。其中,ah支持md5sha-1驗證算法;esp協議支持md5sha-1驗證算法和des3des加密算法。secpath支持的操作模式包括傳輸模式和隧道模式。

對同一數據流,對等體兩端必須設置相同的協議、算法和操作模式。另外,對於兩個安全網關(例如路由器間)實施ipsec,建議採用隧道模式,以隱藏實際通信的源和目的ip地址。

因此,請先根據需要配置好一個安全提議,以便下一步將數據流和安全提議相關聯。

   (3)
定義安全策略或安全策略組

安全策略規定了對什麼樣的數據流採用什麼樣的安全提議。一條安全策略由名字順序號共同唯一確定。安全策略分爲手工安全策略和ike協商安全策略,前者需要用戶手工配置密鑰、spisa的生存週期等參數,在隧道模式下還需要手工配置安全隧道兩個端點的ip地址;後者則由ike自動協商生成這些參數。

安全策略組是所有具有相同名字、不同順序號的安全策略的集合。在同一個安全策略組中,順序號越小的安全策略,優先級越高。

   (4)
接口實施安全策略

在接口上應用安全策略組,安全策略組中的所有安全策略同時應用在這個接口上,從而實現對流經這個接口的不同的數據流進行不同的安全保護。

   2. ike
secpath上的實現

   secpath
支持ike的主模式和野蠻模式,並基於rfc2408rfc2409實現,能夠與大多數主流設備廠商互通。

目前,secpath上的ipsec,如果需要進行nat穿越,則ike第一階段協商應採用野蠻模式,對端id類型爲對端名稱,並在配置ipsec的安全提議時,安全協議採用esp,還需要以隧道模式(tunnel)封裝報文。

   secpath
ike的實現步驟如下:

設置ike交換過程中所使用的本地id

指定對端(ike peer)的一系列屬性(包括ike協商模式、預共享密鑰值、對端地址或對端id、是否需要進行nat穿越等屬性),以保證ike協商階段的正確性;

創建ike安全提議,以確定ike交換過程中算法的強度,即安全保護的強度(包括身份驗證方法、加密算法、驗證算法、dh組等):不同的算法的強度不同,強度越高的算法,受保護數據越難被破解,但消耗的計算資源越多。一般來說,密鑰越長的算法強度越高;

此外,除上述基本步驟外,ike還具有keepalive機制,可以判斷對端是否能夠正常通訊,因此還可配置keepalive“interval”“timeout”兩個參數。當配置了ipsecnat穿越時,還可配置發送nat更新報文的時間間隔。

當上述ike配置完畢後,需要在ipsec的安全策略視圖下引用ike peer,以完成了自動協商的ipsec的配置。(ipsec引用ike peer已經在上一章中介紹)

1.6 ipsec
在加密卡硬件上的實現

   1. ipsec
在加密卡硬件上的實現

   ipsec
加密卡在實現了上述全部功能的基礎上,還擴展了部分功能。

ipsec加密卡的加密算法,採用aes,即使用128bit的密鑰對明文進行加密。

上述特性涉及的配置命令完成的功能只在加密卡硬件存在時生效,對於無加密卡或者用戶指定使用純軟件處理ipsec特性時,不提供上述功能。

加密卡進行加密/解密的工作過程是:

   (1)
防火牆主機將需要加密/解密的數據發送給加密卡

   (2)
加密卡對數據進行加密/解密運算

   (3)
加密卡將完成加密/解密的數據發送回主機

   (4)
主機對加密卡處理後的數據進行後續處理

目前的加密卡,是即插即用型。當加密卡被拔出或失效後,便會自動切換回軟件處理加密/解密。

加密卡與vrp主體軟件ipsec模塊對數據的處理機制完全相同,區別僅僅在於加密卡是通過硬件實現加密/解密處理,而ipsec模塊是通過軟件實現加/解密處理。

   2. ike
在加密卡硬件上的實現

   ipsec
加密卡在實現軟件的所有功能基礎上,還擴展了部分功能。

   secpath
防火牆在ipsec高速加密卡中提供rsa加密nonce的身份驗證方法。

上述特性涉及的配置命令完成的功能只在加密卡硬件存在時生效,對於無加密卡或者用戶指定使用純軟件處理ipsec特性時,不提供上述功能。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章