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