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