ipsec协议(转)
IPSec 協議簡介??
IPSec?(IP Security)協議族是IETF?制定的一系列協議,它為?IP?數據報提供了高質量的、可互操作的、基于密碼學的安全性。特定的通信方之間在?IP?層通過加密與數據源驗證等方式,來保證數據報在網絡上傳輸時的私有性、完整性、真實性和防重放。? 說明: 私有性(Confidentiality )指對用戶數據進行加密保護,用密文的形式傳送。 完整性(Data integrity )指對接收的數據進行驗證,以判定報文是否被篡改。 真實性(Data authentication )指驗證數據源,以保證數據來自真實的發送者。 防重放(Anti-replay )指防止惡意用戶通過重復發送捕獲到的數據包所進行的攻擊,即接收方會拒絕舊的或重復的數據包。IPsec具有以下優點:
支持IKE(Internet Key Exchange,因特網密鑰交換),可實現密鑰的自動協商功能,減少了密鑰協商的開銷。可以通過IKE建立和維護SA的服務,簡化了IPsec的使用和管理。
所有使用IP協議進行數據傳輸的應用系統和服務都可以使用IPsec,而不必對這些應用系統和服務本身做任何修改。
對數據的加密是以數據包為單位的,而不是以整個數據流為單位,這不僅靈活而且有助于進一步提高IP數據包的安全性,可以有效防范網絡攻擊。?
?
IPsec的協議實現
?
IPSec?通過AH??(Authentication Header,認證頭)和ESP?(Encapsulating Security Payload,封裝安全載荷)兩個安全協議實現了上述目標。為簡化?IPSec??的使用和管理,IPSec?還可以通過?IKE(Internet? Key ?Exchange,因特網密鑰交換協議)進行自動協商交換密鑰、建立和維護安全聯盟的服務。
?
?
IPsec提供了兩種安全機制:認證和加密。認證機制使IP通信的數據接收方能夠確認數據發送方的真實身份以及數據在傳輸過程中是否遭篡改。加密機制通過對數據進行加密運算來保證數據的機密性,以防數據在傳輸過程中被竊聽。
IPsec協議中的AH協議定義了認證的應用方法,提供數據源認證和完整性保證;ESP協議定義了加密和可選認證的應用方法,提供數據可靠性保證。
?
?
(1)?????AH?協議(IP協議號為51)
????AH?是報文頭驗證協議,主要提供的功能有數據源驗證、數據完整性校驗和防報文重放功能;然而,AH?并不加密所保護的數據報。??
(2)?????ESP?協議(IP協議號為50)
ESP?是封裝安全載荷協議。它除提供AH?協議的所有功能外(但其數據完整性校驗不包括?IP頭),還可提供對?IP?報文的加密功能。
說明:
AH?和ESP?可以單獨使用,也可以同時使用。對于AH?和ESP,都有兩種操作模式:傳輸模式和隧道模式。
(3)??IKE?協議
IKE?協議用于自動協商AH?和?ESP?所使用的密碼算法,并將算法所需的必備密鑰放到恰當位置。
說明:?IKE?協商并不是必須的,IPSec?所使用的策略和算法等也可以手工協商。
?
?
?
IPSec?基本概念
?
?
1.?安全聯盟
IPSec?在兩個端點之間提供安全通信,端點被稱為?IPSec?對等體。?
IPSec??能夠允許系統、網絡的用戶或管理員控制對等體間安全服務的粒度。通過?SA??(Security?? Association,安全聯盟),IPSec?能夠對不同的數據流提供不同級別的安全保護。?
安全聯盟是 IPSec 的基礎,也是 IPSec 的本質。SA 是通信對等體間對某些要素的約定,例如,使用哪種協議(AH、ESP 還是兩者結合使用)、協議的操作模式(傳輸模式和隧道模式)、加密算法(DES 和 3DES)、特定流中保護數據的共享密鑰以及密鑰的生存周期等。? 安全聯盟由一個三元組來唯一標識,這個三元組包括 SPI(Security?? Parameter ?Index,安全參數索引)、目的IP 地址、安全協議號(AH 或 ESP)。SPI 是為唯一標識 SA 而生成的一個 32 比特的數值,它在AH 和 ESP 頭中傳輸。??安全聯盟具有生存周期。生存周期的計算包括兩種方式:
以時間為限制,每隔指定長度的時間就進行更新;
以流量為限制,每傳輸指定的數據量(字節)就進行更新。
?
2.?安全聯盟的協商方式
安全聯盟的協商方式有兩種,一種是手工方式(manual),一種是?IKE自動協商(isakmp)方式。
手工方式(manual)配置比較復雜,創建SA所需的全部信息都必須手工配置,而且不支持一些高級特性(例如定時更新密鑰),但優點是可以不依賴IKE而單獨實現IPsec功能。
IKE自動協商(isakmp)方式相對比較簡單,只需要配置好IKE協商安全策略的信息,由IKE自動協商來創建和維護SA。
當與之進行通信的對等體設備數量較少時,或是在小型靜態環境中,手工配置SA是可行的。對于中、大型的動態網絡環境中,推薦使用IKE協商建立SA
?
3. IPSec協議的操作模式
IPSec協議有兩種操作模式:傳輸模式和隧道模式。SA中指定了協議的操作模式。在傳輸模式下,AH或 ESP被插入到IP頭之后但在所有傳輸層協議之前,或所有其他 IPSec協議之前。在隧道模式下,AH或 ESP插在原始 IP頭之前,另外生成一個新頭放到 AH或 ESP之前。不同安全協議在傳輸模式和隧道模式下的數據封裝形式(傳輸協議以 TCP為例)如下圖所示:
?
從安全性來講,隧道模式優于傳輸模式。它可以完全地對原始 IP數據報進行驗證和加密;此外,可以使用 IPSec對等體的 IP地址來隱藏客戶機的 IP地址。從性能來講,隧道模式比傳輸模式占用更多帶寬,因為它有一個額外的 IP頭。因此,到底使用哪種模式需要在安全性和性能間進行權衡。?
4.?驗證算法與加密算法
(1)??驗證算法 AH和 ESP都能夠對 IP報文的完整性進行驗證,以判別報文在傳輸過程中是否被篡改。驗證算法的實現主要是通過雜湊函數,雜湊函數是一種能夠接受任意長的消息輸入,并產生固定長度輸出的算法,該輸出稱為消息摘要。IPSec對等體計算摘要,如果兩個摘要是相同的,則表示報文是完整未經篡改的。一般來說 IPSec使用兩種驗證算法: MD5:MD5通過輸入任意長度的消息,產生 128bit的消息摘要。 SHA-1:SHA-1通過輸入長度小于 2的 64次方比特的消息,產生 160bit的消息摘要。SHA-1的摘要長于 MD5,因而是更安全的。 ? (2)??加密算法 ESP能夠對 IP報文內容進行加密保護,防止報文內容在傳輸過程中被窺探。加密算法實現主要通過對稱密鑰系統,它使用相同的密鑰對數據進行加密和解密。一般來說 IPSec使用兩種加密算法: DES:使用 56bit的密鑰對一個 64bit的明文塊進行加密。 3DES:使用三個 56bit的 DES密鑰(共 168bit密鑰)對明文進行加密。 無疑,3DES具有更高的安全性,但其加密數據的速度要比 DES慢得多。?
IPSec配置
1.?手工協商配置 IPSec配置主要包括手工協商配置和自動協商配置。其中,手工協商配置包括: 1> 配置訪問控制列表 訪問控制列表的作用:根據是否與訪問控制列表匹配,可以確定哪些 IP包需經 IPSec處理后再發送,哪些IP包直接轉發。需要保護的安全數據流使用擴展 IP訪問控制列表進行定義。acl?acl-number
rule?{?normal?|?special?}{?permit?|?deny?}?pro-number[source?source-addr source-wildcard?|?any?][source-port?operator port1?[?port2?] ] [?destination?dest-addr dest- wildcard?|?any?][destination-port?operator port1?[?port2?] ] [icmp-type?icmp-type icmp-code][logging]
2>?????配置安全提議 安全提議保存?IPSec需要使用的特定安全性協議以及加密/驗證算法,?為?IPSec協商安全聯盟提供各種安全參數。為了能夠成功的協商?IPSec的安全聯盟,兩端必須使用相同的安全提議。 包括以下幾點: 定義安全提議 ??ipsec proposal?proposal-name 設置安全協議對?IP報文的封裝模式?(安全隧道的兩端所選擇的?IP報文封裝模式必須一致。)?encapsulation-mode?{?transport?|?tunnel?} 選擇安全協議 ?transform?{?ah-new?|?ah-esp-new?|?esp-new?} 選擇加密算法與認證算法(不同的安全協議可以采用不同的驗證算法和加密算法。目前,?AH支持MD5和SHA-1驗證算法;ESP協議支持MD5、SHA-1驗證算法和DES、3DES、AES加密算法。)? transform?{?ah-new?|?ah-esp-new?|?esp-new?} 3>?????配置安全策略 包括以下幾點: 創建安全策略 ?ipsec policy?policy-name sequence-number?manual 在安全策略中引用安全提議(通過手工方式建立安全聯盟,一條安全策略只能引用一個安全提議,并且若已設置了安全提議,必須先刪除原先的安全提議后才能設置新的安全提議。) ?proposal?proposal-name 在安全策略中引用訪問控制列 ?security acl?access-list-number 配置隧道的起點和終點 ?tunnel local?ip-address tunnel remote?ip-address 配置安全聯盟的?SPI ??? ?sa inbound?{?ah?|?esp?}?spi?spi-number ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?sa outbound?{?ah?|?esp?}?spi?spi-number 配置安全聯盟使用的密鑰(在安全隧道的兩端,?本端的輸入安全聯盟SPI及密鑰必須和對端的輸出安全聯盟SPI及密鑰保持一致;本端的輸出安全聯盟?SPI?及密鑰必須和對端的輸入安全聯盟?SPI及密鑰保持一致。)AH16進制密鑰???sa?{?inbound?|?outbound?}?ah hex-key-string?hex-key
AH?字符密鑰?? ??sa?{?inbound?|?outbound?}?ah string-key?string-key
?ESP16進制密鑰??sa?{?inbound?|?outbound?}?esp encryption-hex?hex-key?
?ESP字符密鑰????sa?{?inbound?|?outbound?}?esp string-key?string-key
4>?在接口上應用安全策略 ?ipsec policy?policy-name?
2.?自動協商配置
對于采用自動協商方式,除完成上述配置后,還需要進行相關的?IKE配置。 IKE創建安全策略聯盟的配置包括: 用?IKE創建安全策略聯盟 ??ipsec policy?policy-name sequence-number?isakmp 配置安全策略引用的訪問控制列表 ??security acl?access-list-number 指定安全隧道的終點(對于用?IKE?協商方式創建的安全策略聯盟,不需設置本端地址,IKE?能自動地從應用該安全策略的接口上獲取本端的地址。)??tunnel remote?ip-address 配置安全策略中引用的安全提議 ??proposal?proposal-name1?[?proposal-name2...proposal-name6?]?
?
?
?3.IPSec顯示與調試
IPSec?提供以下命令顯示安全聯盟、安全聯盟生存周期、安全提議、安全策略的信息以及?IPSec處理的報文的統計信息。
display命令可在所有視圖下進行操作,debugging命令只能在用戶視圖下操作。
顯示安全聯盟的相關信息?display ipsec sa?[?brief?|?remote?ip-address?|?policy?policy-name[?seq-number?] |?duration?] [?secp?[?slot/card/port??] ]
顯示IPSec處理報文的統計信息?display ipsec statistics [ secp?[?slot/card/port??] ]
顯示安全提議的信息?display ipsec proposal [ name?proposal-name?] [?secp?[slot/card/port??] ]
顯示安全策略的信息?display ipsec policy [ brief | name?policy-name?[?seq-number?] ] [secp?[?slot/card/port??] ]
顯示安全策略模板的信息?display ipsec policy-template [ brief | name?policy-name?[ seq-number?] ] [?secp?[?slot/card/port??] ]
打開IPSec的調試功能?debugging ipsec { all | sa | packet [ policy?policy-name?[?seq-number?] |?parameters?ip-address protocol spi-number?] |?misc??|?secp-setting?}??[?secp?[slot/card/port??] ]
禁止IPSec的調試功能?undo debugging ipsec { all | sa | packet [ policy?policy-name?[?seq-number?] |?parameters?ip-address protocol spi-number?] |?misc?|?secp-setting?}??[?secp?[slot/card/port??] ]
總結
以上是生活随笔為你收集整理的ipsec协议(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springboot-24-restTe
- 下一篇: Linux - 收藏集 - 掘金