IPsec相关知识
目??錄
IPsec
IPsec簡介
IPsec的協(xié)議實現(xiàn)
IPsec基本概念
加密卡
IPsec虛擬隧道接口
使用IPsec保護IPv6路由協(xié)議
IKE
IKE簡介
IKE的安全機制
IKE的交換過程
IKE在IPsec中的作用
IPsec與IKE的關(guān)系
IPsec
IPsec簡介
IPsec(IP Security)是IETF制定的三層隧道加密協(xié)議,它為Internet上傳輸?shù)臄?shù)據(jù)提供了高質(zhì)量的、可互操作的、基于密碼學(xué)的安全保證。特定的通信方之間在IP層通過加密與數(shù)據(jù)源認證等方式,提供了以下的安全服務(wù):
l??????????????數(shù)據(jù)機密性(Confidentiality):IPsec發(fā)送方在通過網(wǎng)絡(luò)傳輸包前對包進行加密。
l??????????????數(shù)據(jù)完整性(Data Integrity):IPsec接收方對發(fā)送方發(fā)送來的包進行認證,以確保數(shù)據(jù)在傳輸過程中沒有被篡改。
l??????????????數(shù)據(jù)來源認證(Data Authentication):IPsec在接收端可以認證發(fā)送IPsec報文的發(fā)送端是否合法。
l??????????????防重放(Anti-Replay):IPsec接收方可檢測并拒絕接收過時或重復(fù)的報文。
IPsec具有以下優(yōu)點:
l??????????????支持IKE(Internet Key Exchange,因特網(wǎng)密鑰交換),可實現(xiàn)密鑰的自動協(xié)商功能,減少了密鑰協(xié)商的開銷。可以通過IKE建立和維護SA的服務(wù),簡化了IPsec的使用和管理。
l??????????????所有使用IP協(xié)議進行數(shù)據(jù)傳輸?shù)膽?yīng)用系統(tǒng)和服務(wù)都可以使用IPsec,而不必對這些應(yīng)用系統(tǒng)和服務(wù)本身做任何修改。
l??????????????對數(shù)據(jù)的加密是以數(shù)據(jù)包為單位的,而不是以整個數(shù)據(jù)流為單位,這不僅靈活而且有助于進一步提高IP數(shù)據(jù)包的安全性,可以有效防范網(wǎng)絡(luò)攻擊。
IPsec的協(xié)議實現(xiàn)
IPsec協(xié)議不是一個單獨的協(xié)議,它給出了應(yīng)用于IP層上網(wǎng)絡(luò)數(shù)據(jù)安全的一整套體系結(jié)構(gòu),包括網(wǎng)絡(luò)認證協(xié)議AH(Authentication Header,認證頭)、ESP(Encapsulating Security Payload,封裝安全載荷)、IKE(Internet Key Exchange,因特網(wǎng)密鑰交換)和用于網(wǎng)絡(luò)認證及加密的一些算法等。其中,AH協(xié)議和ESP協(xié)議用于提供安全服務(wù),IKE協(xié)議用于密鑰交換。關(guān)于IKE的詳細介紹請參見“2?IKE配置”,本節(jié)不做介紹。
IPsec提供了兩種安全機制:認證和加密。認證機制使IP通信的數(shù)據(jù)接收方能夠確認數(shù)據(jù)發(fā)送方的真實身份以及數(shù)據(jù)在傳輸過程中是否遭篡改。加密機制通過對數(shù)據(jù)進行加密運算來保證數(shù)據(jù)的機密性,以防數(shù)據(jù)在傳輸過程中被竊聽。
IPsec協(xié)議中的AH協(xié)議定義了認證的應(yīng)用方法,提供數(shù)據(jù)源認證和完整性保證;ESP協(xié)議定義了加密和可選認證的應(yīng)用方法,提供數(shù)據(jù)可靠性保證。
l??????????????AH協(xié)議(IP協(xié)議號為51)提供數(shù)據(jù)源認證、數(shù)據(jù)完整性校驗和防報文重放功能,它能保護通信免受篡改,但不能防止竊聽,適合用于傳輸非機密數(shù)據(jù)。AH的工作原理是在每一個數(shù)據(jù)包上添加一個身份驗證報文頭,此報文頭插在標準IP包頭后面,對數(shù)據(jù)提供完整性保護。可選擇的認證算法有MD5(Message Digest)、SHA-1(Secure Hash Algorithm)等。
l??????????????ESP協(xié)議(IP協(xié)議號為50)提供加密、數(shù)據(jù)源認證、數(shù)據(jù)完整性校驗和防報文重放功能。ESP的工作原理是在每一個數(shù)據(jù)包的標準IP包頭后面添加一個ESP報文頭,并在數(shù)據(jù)包后面追加一個ESP尾。與AH協(xié)議不同的是,ESP將需要保護的用戶數(shù)據(jù)進行加密后再封裝到IP包中,以保證數(shù)據(jù)的機密性。常見的加密算法有DES、3DES、AES等。同時,作為可選項,用戶可以選擇MD5、SHA-1算法保證報文的完整性和真實性。
在實際進行IP通信時,可以根據(jù)實際安全需求同時使用這兩種協(xié)議或選擇使用其中的一種。AH和ESP都可以提供認證服務(wù),不過,AH提供的認證服務(wù)要強于ESP。同時使用AH和ESP時,設(shè)備支持的AH和ESP聯(lián)合使用的方式為:先對報文進行ESP封裝,再對報文進行AH封裝,封裝之后的報文從內(nèi)到外依次是原始IP報文、ESP頭、AH頭和外部IP頭。
IPsec基本概念
1.?安全聯(lián)盟(Security Association,SA)
IPsec在兩個端點之間提供安全通信,端點被稱為IPsec對等體。
SA是IPsec的基礎(chǔ),也是IPsec的本質(zhì)。SA是通信對等體間對某些要素的約定,例如,使用哪種協(xié)議(AH、ESP還是兩者結(jié)合使用)、協(xié)議的封裝模式(傳輸模式和隧道模式)、加密算法(DES、3DES和AES)、特定流中保護數(shù)據(jù)的共享密鑰以及密鑰的生存周期等。建立SA的方式有手工配置和IKE自動協(xié)商兩種。
SA是單向的,在兩個對等體之間的雙向通信,最少需要兩個SA來分別對兩個方向的數(shù)據(jù)流進行安全保護。同時,如果兩個對等體希望同時使用AH和ESP來進行安全通信,則每個對等體都會針對每一種協(xié)議來構(gòu)建一個獨立的SA。
SA由一個三元組來唯一標識,這個三元組包括SPI(Security Parameter Index,安全參數(shù)索引)、目的IP地址、安全協(xié)議號(AH或ESP)。
SPI是用于唯一標識SA的一個32比特數(shù)值,它在AH和ESP頭中傳輸。在手工配置SA時,需要手工指定SPI的取值。使用IKE協(xié)商產(chǎn)生SA時,SPI將隨機生成。
通過IKE協(xié)商建立的SA具有生存周期,手工方式建立的SA永不老化。IKE協(xié)商建立的SA的生存周期有兩種定義方式:
l??????????????基于時間的生存周期,定義了一個SA從建立到失效的時間;
l??????????????基于流量的生存周期,定義了一個SA允許處理的最大流量。
生存周期到達指定的時間或指定的流量,SA就會失效。SA失效前,IKE將為IPsec協(xié)商建立新的SA,這樣,在舊的SA失效前新的SA就已經(jīng)準備好。在新的SA開始協(xié)商而沒有協(xié)商好之前,繼續(xù)使用舊的SA保護通信。在新的SA協(xié)商好之后,則立即采用新的SA保護通信。
2.?封裝模式
IPsec有如下兩種工作模式:
l??????????????隧道(tunnel)模式:用戶的整個IP數(shù)據(jù)包被用來計算AH或ESP頭,AH或ESP頭以及ESP加密的用戶數(shù)據(jù)被封裝在一個新的IP數(shù)據(jù)包中。通常,隧道模式應(yīng)用在兩個安全網(wǎng)關(guān)之間的通訊。
l??????????????傳輸(transport)模式:只是傳輸層數(shù)據(jù)被用來計算AH或ESP頭,AH或ESP頭以及ESP加密的用戶數(shù)據(jù)被放置在原IP包頭后面。通常,傳輸模式應(yīng)用在兩臺主機之間的通訊,或一臺主機和一個安全網(wǎng)關(guān)之間的通訊。
不同的安全協(xié)議在tunnel和transport模式下的數(shù)據(jù)封裝形式如圖1-1所示,data為傳輸層數(shù)據(jù)。
圖 1?安全協(xié)議數(shù)據(jù)封裝格式
?
3.?認證算法與加密算法
(1)????????認證算法
認證算法的實現(xiàn)主要是通過雜湊函數(shù)。雜湊函數(shù)是一種能夠接受任意長的消息輸入,并產(chǎn)生固定長度輸出的算法,該輸出稱為消息摘要。IPsec對等體計算摘要,如果兩個摘要是相同的,則表示報文是完整未經(jīng)篡改的。IPsec使用兩種認證算法:
l??????????????MD5:MD5通過輸入任意長度的消息,產(chǎn)生128bit的消息摘要。
l??????????????SHA-1:SHA-1通過輸入長度小于2的64次方bit的消息,產(chǎn)生160bit的消息摘要。
MD5算法的計算速度比SHA-1算法快,而SHA-1算法的安全強度比MD5算法高。
(2)????????加密算法
加密算法實現(xiàn)主要通過對稱密鑰系統(tǒng),它使用相同的密鑰對數(shù)據(jù)進行加密和解密。目前設(shè)備的IPsec實現(xiàn)三種加密算法:
l??????????????DES(Data Encryption Standard):使用56bit的密鑰對一個64bit的明文塊進行加密。
l??????????????3DES(Triple DES):使用三個56bit的DES密鑰(共168bit密鑰)對明文進行加密。
l??????????????AES(Advanced Encryption Standard):使用128bit、192bit或256bit密鑰長度的AES算法對明文進行加密。
這三個加密算法的安全性由高到低依次是:AES、3DES、DES,安全性高的加密算法實現(xiàn)機制復(fù)雜,運算速度慢。對于普通的安全要求,DES算法就可以滿足需要。
4.?協(xié)商方式
有如下兩種協(xié)商方式建立SA:
l??????????????手工方式(manual)配置比較復(fù)雜,創(chuàng)建SA所需的全部信息都必須手工配置,而且不支持一些高級特性(例如定時更新密鑰),但優(yōu)點是可以不依賴IKE而單獨實現(xiàn)IPsec功能。
l??????????????IKE自動協(xié)商(isakmp)方式相對比較簡單,只需要配置好IKE協(xié)商安全策略的信息,由IKE自動協(xié)商來創(chuàng)建和維護SA。
當與之進行通信的對等體設(shè)備數(shù)量較少時,或是在小型靜態(tài)環(huán)境中,手工配置SA是可行的。對于中、大型的動態(tài)網(wǎng)絡(luò)環(huán)境中,推薦使用IKE協(xié)商建立SA。
5.?安全隧道
安全隧道是建立在本端和對端之間可以互通的一個通道,它由一對或多對SA組成。
加密卡
IPsec在設(shè)備上可以通過軟件實現(xiàn),還可以通過加密卡實現(xiàn)。通過軟件實現(xiàn),由于復(fù)雜的加密/解密、認證算法會占用大量的CPU資源,從而影響設(shè)備整體處理效率;而通過加密卡,復(fù)雜的算法處理在硬件上進行,從而提高了設(shè)備的處理效率。
加密卡進行加/解密處理的過程是:設(shè)備將需要加/解密處理的數(shù)據(jù)發(fā)給加密卡,加密卡對數(shù)據(jù)進行處理,然后加密卡將處理后的數(shù)據(jù)發(fā)送回設(shè)備,再由設(shè)備進行轉(zhuǎn)發(fā)處理。
IPsec虛擬隧道接口
1.?概述
IPsec虛擬隧道接口是一種支持路由的三層邏輯接口,它可以支持動態(tài)路由協(xié)議,所有路由到IPsec虛擬隧道接口的報文都將進行IPsec保護,同時還可以支持對組播流量的保護。使用IPsec虛擬隧道接口建立IPsec隧道具有以下優(yōu)點:
l??????????????簡化配置:通過路由來確定對哪些數(shù)據(jù)流進行IPsec保護。與通過ACL指定數(shù)據(jù)流范圍的方式相比,這種方式簡化了用戶在部署IPsec安全策略時配置上的復(fù)雜性,使得IPsec的配置不會受到網(wǎng)絡(luò)規(guī)劃的影響,增強了網(wǎng)絡(luò)規(guī)劃的可擴展性,降低了網(wǎng)絡(luò)維護成本。
l??????????????減少開銷:在保護遠程接入用戶流量的組網(wǎng)應(yīng)用中,在IPsec虛擬隧道接口處進行報文封裝,與IPsec over GRE或者IPsec over L2TP方式的隧道封裝相比,無需額外為入隧道流量加封裝GRE頭或者L2TP頭,減少了報文封裝的層次,節(jié)省了帶寬。
l??????????????業(yè)務(wù)應(yīng)用更靈活:IPsec虛擬隧道接口在實施過程中明確地區(qū)分出“加密前”和“加密后”兩個階段,用戶可以根據(jù)不同的組網(wǎng)需求靈活選擇其它業(yè)務(wù)(例如NAT、QoS)實施的階段。例如,如果用戶希望對IPsec封裝前的報文應(yīng)用QoS,則可以在IPsec虛擬隧道接口上應(yīng)用QoS策略;如果希望對IPsec封裝后的報文應(yīng)用QoS,則可以在物理接口上應(yīng)用QoS策略。
2.?工作原理
IPsec虛擬隧道接口對報文的加封裝/解封裝發(fā)生在隧道接口上。用戶流量到達實施IPsec配置的設(shè)備后,需要IPsec處理的報文會被轉(zhuǎn)發(fā)到IPsec虛擬隧道接口上進行加封裝/解封裝。
如圖1-2所示,IPsec虛擬隧道接口對報文進行加封裝的過程如下:
圖 2?IPsec虛接口隧道加封裝原理圖
?
(1)????????Router將從入接口接收到的IP明文送到轉(zhuǎn)發(fā)模塊進行處理;
(2)????????轉(zhuǎn)發(fā)模塊依據(jù)路由查詢結(jié)果,將IP明文發(fā)送到IPsec虛擬隧道接口進行加封裝:原始IP報文被封裝在一個新的IP報文中,新IP頭中的源地址和目的地址分別為隧道接口的源地址和目的地址。
(3)????????IPsec虛擬隧道接口完成對IP明文的加封裝處理后,將IP密文送到轉(zhuǎn)發(fā)模塊進行處理;
(4)????????轉(zhuǎn)發(fā)模塊進行第二次路由查詢后,將IP密文通過隧道接口的實際物理接口轉(zhuǎn)發(fā)出去。
如圖1-3所示,IPsec虛擬隧道接口對報文進行解封裝的過程如下:
圖 3?IPsec虛接口隧道解封裝原理圖
?
(1)????????Router將從入接口接收到的IP密文送到轉(zhuǎn)發(fā)模塊進行處理;
(2)????????轉(zhuǎn)發(fā)模塊識別到此IP密文的目的地為本設(shè)備的隧道接口地址且IP協(xié)議號為AH或ESP時,會將IP密文送到相應(yīng)的IPsec虛擬隧道接口進行解封裝:將IP密文的外層IP頭去掉,對內(nèi)層IP報文進行解密處理。
(3)????????IPsec虛擬隧道接口完成對IP密文的解封裝處理之后,將IP明文重新送回轉(zhuǎn)發(fā)模塊處理;
(4)????????轉(zhuǎn)發(fā)模塊進行第二次路由查詢后,將IP明文從隧道的實際物理接口轉(zhuǎn)發(fā)出去。
從上面描述的加封裝/解封裝過程可見,IPsec虛擬隧道接口將報文的IPsec處理過程區(qū)分為兩個階段:“加密前”和“加密后”。需要應(yīng)用到加密前的明文上的業(yè)務(wù)(例如NAT、QoS),可以應(yīng)用到隧道接口上;需要應(yīng)用到加密后的密文上的業(yè)務(wù),則可以應(yīng)用到隧道接口對應(yīng)的物理接口上。
使用IPsec保護IPv6路由協(xié)議
本特性的支持情況與設(shè)備的型號有關(guān),請以設(shè)備的實際情況為準。
?
使用IPsec保護IPv6路由協(xié)議是指,使用AH/ESP協(xié)議對IPv6路由協(xié)議報文進行加/解封裝處理,并為其提供認證和加密的安全服務(wù),目前支持OSPFv3、IPv6 BGP、RIPng路由協(xié)議。
IPsec對IPv6路由協(xié)議報文進行保護的處理方式和目前基于接口的IPsec處理方式不同,是基于業(yè)務(wù)的IPsec,即IPsec保護某一業(yè)務(wù)的所有報文。該方式下,設(shè)備產(chǎn)生的所有需要IPsec保護的IPv6路由協(xié)議報文都要被進行加封裝處理,而設(shè)備接收到的不受IPsec保護的以及解封裝(解密或驗證)失敗的IPv6路由協(xié)議報文都要被丟棄。
在基于接口的IPsec處理方式下,設(shè)備對配置了IPsec安全功能的接口上發(fā)送的每個報文都要判斷是否進行IPsec處理。目前,該方式有兩種實現(xiàn),一種是基于ACL的IPsec,只要到達接口的報文與該接口的IPsec安全策略中的ACL規(guī)則匹配,就會受到IPsec保護;另一種是基于路由的IPsec,即IPsec虛擬隧道接口方式,只要被路由到虛擬隧道接口上的報文都會受到IPsec保護。
相對于基于接口的IPsec,基于業(yè)務(wù)的IPsec既不需要ACL來限定要保護的流的范圍,也不需要指定IPsec隧道的起點與終點,IPsec安全策略僅與具體的業(yè)務(wù)綁定,不管業(yè)務(wù)報文從設(shè)備的哪個接口發(fā)送出去都會被IPsec保護。
由于IPsec的密鑰交換機制僅僅適用于兩點之間的通信保護,在廣播網(wǎng)絡(luò)一對多的情形下,IPsec無法實現(xiàn)自動交換密鑰,因此必須使用手工配置密鑰的方式。同樣,由于廣播網(wǎng)絡(luò)一對多的特性,要求各設(shè)備對于接收、發(fā)送的報文均使用相同的SA參數(shù)(相同的SPI及密鑰)。因此,目前僅支持手工安全策略生成的SA對IPv6路由協(xié)議報文進行保護。
IKE
IKE簡介
在實施IPsec的過程中,可以使用IKE(Internet Key Exchange,因特網(wǎng)密鑰交換)協(xié)議來建立SA,該協(xié)議建立在由ISAKMP(Internet Security Association and Key Management Protocol,互聯(lián)網(wǎng)安全聯(lián)盟和密鑰管理協(xié)議)定義的框架上。IKE為IPsec提供了自動協(xié)商交換密鑰、建立SA的服務(wù),能夠簡化IPsec的使用和管理,大大簡化IPsec的配置和維護工作。
IKE不是在網(wǎng)絡(luò)上直接傳輸密鑰,而是通過一系列數(shù)據(jù)的交換,最終計算出雙方共享的密鑰,并且即使第三者截獲了雙方用于計算密鑰的所有交換數(shù)據(jù),也不足以計算出真正的密鑰。
IKE的安全機制
IKE具有一套自保護機制,可以在不安全的網(wǎng)絡(luò)上安全地認證身份、分發(fā)密鑰、建立IPsec SA。
1.?數(shù)據(jù)認證
數(shù)據(jù)認證有如下兩方面的概念:
l??????????????身份認證:身份認證確認通信雙方的身份。支持兩種認證方法:預(yù)共享密鑰(pre-shared-key)認證和基于PKI的數(shù)字簽名(rsa-signature)認證。
l??????????????身份保護:身份數(shù)據(jù)在密鑰產(chǎn)生之后加密傳送,實現(xiàn)了對身份數(shù)據(jù)的保護。
2.?DH
DH(Diffie-Hellman,交換及密鑰分發(fā))算法是一種公共密鑰算法。通信雙方在不傳輸密鑰的情況下通過交換一些數(shù)據(jù),計算出共享的密鑰。即使第三者(如黑客)截獲了雙方用于計算密鑰的所有交換數(shù)據(jù),由于其復(fù)雜度很高,不足以計算出真正的密鑰。所以,DH交換技術(shù)可以保證雙方能夠安全地獲得公有信息。
3.?PFS
PFS(Perfect Forward Secrecy,完善的前向安全性)特性是一種安全特性,指一個密鑰被破解,并不影響其他密鑰的安全性,因為這些密鑰間沒有派生關(guān)系。對于IPsec,是通過在IKE階段2協(xié)商中增加一次密鑰交換來實現(xiàn)的。PFS特性是由DH算法保障的。
IKE的交換過程
IKE使用了兩個階段為IPsec進行密鑰協(xié)商并建立SA:
(1)????????第一階段,通信各方彼此間建立了一個已通過身份認證和安全保護的通道,即建立一個ISAKMP SA。第一階段有主模式(Main Mode)和野蠻模式(Aggressive Mode)兩種IKE交換方法。
(2)????????第二階段,用在第一階段建立的安全隧道為IPsec協(xié)商安全服務(wù),即為IPsec協(xié)商具體的SA,建立用于最終的IP數(shù)據(jù)安全傳輸?shù)腎Psec SA。
圖 4?主模式交換過程
?
如圖2-1所示,第一階段主模式的IKE協(xié)商過程中包含三對消息:
l??????????????第一對叫SA交換,是協(xié)商確認有關(guān)安全策略的過程;
l??????????????第二對消息叫密鑰交換,交換Diffie-Hellman公共值和輔助數(shù)據(jù)(如:隨機數(shù)),密鑰材料在這個階段產(chǎn)生;
l??????????????最后一對消息是ID信息和認證數(shù)據(jù)交換,進行身份認證和對整個第一階段交換內(nèi)容的認證。
野蠻模式交換與主模式交換的主要差別在于,野蠻模式不提供身份保護,只交換3條消息。在對身份保護要求不高的場合,使用交換報文較少的野蠻模式可以提高協(xié)商的速度;在對身份保護要求較高的場合,則應(yīng)該使用主模式。
IKE在IPsec中的作用
l??????????????因為有了IKE,IPsec很多參數(shù)(如:密鑰)都可以自動建立,降低了手工配置的復(fù)雜度。
l??????????????IKE協(xié)議中的DH交換過程,每次的計算和產(chǎn)生的結(jié)果都是不相關(guān)的。每次SA的建立都運行DH交換過程,保證了每個SA所使用的密鑰互不相關(guān)。
l??????????????IPsec使用AH或ESP報文頭中的序列號實現(xiàn)防重放。此序列號是一個32比特的值,此數(shù)溢出后,為實現(xiàn)防重放,SA需要重新建立,這個過程需要IKE協(xié)議的配合。
l??????????????對安全通信的各方身份的認證和管理,將影響到IPsec的部署。IPsec的大規(guī)模使用,必須有CA(Certificate Authority,認證中心)或其他集中管理身份數(shù)據(jù)的機構(gòu)的參與。
l??????????????IKE提供端與端之間動態(tài)認證。
IPsec與IKE的關(guān)系
圖 5?IPsec與IKE的關(guān)系圖
?
從圖2-2中我們可以看出IKE和IPsec的關(guān)系:
l??????????????IKE是UDP之上的一個應(yīng)用層協(xié)議,是IPsec的信令協(xié)議;
l??????????????IKE為IPsec協(xié)商建立SA,并把建立的參數(shù)及生成的密鑰交給IPsec;
l??????????????IPsec使用IKE建立的SA對IP報文加密或認證處理。
附件下載
- IPsec技術(shù)介紹.pdf(222.96 KB)
總結(jié)
- 上一篇: 黑客与画家
- 下一篇: 关于uint8_t/uint16_t/u