0x01 IPSec
IPSec協(xié)議實際上是一套協(xié)議集合,包括IKE協(xié)議、認證頭(AuthenticationHeader,AH)協(xié)議、封裝安全載荷(Encapsulating Security Payload,ESP)協(xié)議和用于網(wǎng)絡身份鑒別及加密的一些算法等。
從工作流程上看,IPSec協(xié)議可分為兩個環(huán)節(jié):IKE是第一個環(huán)節(jié),完成通信雙方的身份鑒別、確定通信時使用的IPSec安全策略和密鑰;第二個環(huán)節(jié)是使用數(shù)據(jù)報文封裝協(xié)議和IKE中協(xié)定的IPSec安全策略和密鑰,實現(xiàn)對通信數(shù)據(jù)的安全傳輸。
IPSec工作模式分為傳輸模式和隧道模式。傳輸模式一般用于端到端的應用場景;隧道模式一般用于創(chuàng)建虛擬專用網(wǎng)隧道鏈路。
1、IKE協(xié)議
通過數(shù)據(jù)包對IKE進行詳細分析和介紹
IKE協(xié)議用于鑒別通信雙方身份、創(chuàng)建安全聯(lián)盟(Security Association,SA)、協(xié)商加密算法以及生成共享會話密鑰等,其中ISAKMP是IKE的核心協(xié)議,定義了建立、協(xié)商、修改和刪除SA的過程和報文格式,并定義了密鑰交換數(shù)據(jù)和身份鑒別數(shù)據(jù)的載荷格式。ISAKMP的一個核心功能就是創(chuàng)建和維護SA。SA作為通信雙方之間對某些要素的一種協(xié)定,是IPSec的基礎,協(xié)定的內容包括數(shù)據(jù)報文封裝協(xié)議、IPSec工作模式、密碼算法等安全策略和密鑰。IPSec的兩種封裝協(xié)議(AH和ESP)均使用SA中協(xié)定的內容保護通信安全。
另外,SA是單向的,一個SA為單一通信方向上傳輸?shù)臄?shù)據(jù)提供一種安全服務,通信雙方需要產(chǎn)生屬于自己的SA。若使用多個安全服務保護數(shù)據(jù)流,例如,同時提供認證和加密服務,那么應該創(chuàng)建多個SA來分別實現(xiàn)不同安全服務對數(shù)據(jù)的保護,即每個SA對應一個安全服務。
IP Sec 9個包分析 主模式(前6個包)+ 快速模式(后3個包)
第一階段主模式:ISAKMP協(xié)商階段
工作流程如下圖所示:
下面針對數(shù)據(jù)包來分析主模式的協(xié)商過程
包一:發(fā)起端協(xié)商SA,使用的是UDP協(xié)議,端口號是500,上層協(xié)議是ISAKMP,該協(xié)議提供的是一個框架,里面的負載Next payload類似模塊(SA載荷),可以自由使用。可以看到發(fā)起端提供了自己的SPI值,以及SA的加密套件,加密套件主要是加密算法、雜湊算法、認證算法、秘鑰長度、生存時間等。
包二:響應端收到發(fā)送端發(fā)送的加密套件后,對比自己是否有相對應的加密套件,如果有就使用和發(fā)送端相同的加密套件加密數(shù)據(jù),把自己的SPI值和選擇好的加密套件發(fā)送給發(fā)送端。如果沒有相同加密套件則IKE建立失敗響應。
在包二中響應方同時還發(fā)送自己的簽名證書和加密證書(雙證書)
包三和包四:
在包三和包四中,雙方進行數(shù)據(jù)交換,交換的內容包括Nonce載荷(Ni和Nr)、身份標識載荷(IDi和IDr)等,其中Nonce載荷是生成工作密鑰所必需的參數(shù)。這些數(shù)據(jù)使用雙方各自隨機生成的臨時密鑰SK進行對稱加密保護,SK用對方的加密證書中的公鑰進行加密保護。雙方各自對交換數(shù)據(jù)進行數(shù)字簽名,這一過程使用簽名證書對應的私鑰來完成,并將簽名結果發(fā)給對方。同時,發(fā)送端的雙證書也在包三中發(fā)給響應端,這樣發(fā)送端和響應端都有了對方的簽名和加密證書,可以使用對方的公鑰。
包三和包四完成后,參與通信的雙方利用Nonce載荷等交換數(shù)據(jù)經(jīng)偽隨機函數(shù)(PRF)派生出基本密鑰參數(shù),并通過PRF用基本密鑰參數(shù)派生出三個對稱密鑰,分別是用于產(chǎn)生會話密鑰的密鑰參數(shù)、用于驗證完整性和數(shù)據(jù)源身份的工作密鑰及用于加密的工作密鑰(注意這里沒有生成會話密鑰)。
包五和包六:發(fā)送端和響應端對前面協(xié)商過程內容進行鑒別確認。這兩個消息中傳遞的信息使用包三和包四產(chǎn)生的用于機密的工作密鑰來做對稱加密保護。對稱密碼算法由一開始雙方協(xié)商的算法,這里使用的是SM4-CBC。為了檢查交換內容,雙方通過計算HMAC驗證身份和協(xié)定的SA信息。第一階段主模式到此結束。
第二階段快速模式:IPSec SA協(xié)商階段
第二階段快速模式的工作流程如下圖所示:
快速模式用于協(xié)商建立通信時使用的IPSec SA,包括IPSec安全策略和會話密鑰(會話密鑰在快速模式中產(chǎn)生)。
會話密鑰有兩個,均為對稱密鑰,分別用于通信數(shù)據(jù)加密,以及完整性校驗和數(shù)據(jù)源身份鑒別。
快速模式交換的數(shù)據(jù)由主模式協(xié)定的ISAKMP SA提供保護,即除了ISAKMP頭外所有的載荷都是加密的,加密密鑰選用用于加密的工作密鑰。同時,在ISAKMP頭之后會緊跟一個HMAC載荷,用于驗證交換數(shù)據(jù)的完整性和數(shù)據(jù)源身份。
在快速模式中,數(shù)據(jù)包都是加密的,簡單放一張快速模式數(shù)據(jù)包的圖片看下吧
最后,將主模式包三和包四中派生出的用于產(chǎn)生會話密鑰的密鑰參數(shù)經(jīng)PRF計算得到會話密鑰。PRF的輸入還包括雙方的Nonce載荷、從主模式建立的ISAKMP SA中獲得的協(xié)議值和安全參數(shù)索引(SPI),其中SPI用于唯一標識一個數(shù)據(jù)報文對應的SA。用于加密的會話密鑰與用于驗證完整性和數(shù)據(jù)源身份的會話密鑰則按照密碼算法要求的長度,從會話密鑰素材中依次選取。
野蠻模式
除IKE模式外,還有野蠻模式
書上沒有對野蠻模式進行講解,我這也沒有野蠻模式數(shù)據(jù)包,就簡單說下
野蠻模式只用到三條信息:前兩條消息1和2用于協(xié)商IKE安全提議,交換Diffie-Hellman公共值、必需的輔助信息以及身份信息,并且消息2中還包括響應方發(fā)送身份信息供發(fā)起方認證,消息3用于響應方認證發(fā)起方。
2、AH協(xié)議
AH協(xié)議提供了數(shù)據(jù)源身份鑒別、完整性和抗重放等安全功能,沒有提供加密服務。因此AH協(xié)議不能單獨用于封裝IP數(shù)據(jù)報文,應和ESP協(xié)議一起使用。AH協(xié)議不支持NAT穿越。
AH協(xié)議的主要作用是為整個IP數(shù)據(jù)報文(IP頭和IP載荷)提供高強度完整性校驗,以確保被篡改過的數(shù)據(jù)包可以被檢查出來。在傳輸模式和隧道模式下有不同的放置位置,如下圖所示。
3、ESP協(xié)議
ESP協(xié)議相對于AH協(xié)議增加了對數(shù)據(jù)報文的加密功能,ESP協(xié)議可以單獨使用。在ESP協(xié)議和AH協(xié)議結合使用時,無需開啟ESP提供數(shù)據(jù)源身份鑒別服務。ESP協(xié)議支持NAT穿越。
ESP頭在傳輸模式和隧道模式中分別有不同的放置位置,保護范圍也有所不同,如下圖所示:
4、IPSec VPN產(chǎn)品
IPSec VPN產(chǎn)品工作在網(wǎng)絡層,對應用層協(xié)議完全透明。
IPSec VPN產(chǎn)品主要用于站到站和端到站模式,也用于端到端模式(較少)。其中站到站和端到站采用隧道模式,端到端可以采用隧道模式或者傳輸模式。
前面在分析數(shù)據(jù)包時,可以看到算法對應的屬性值,如下表所示:
IPSec VPN產(chǎn)品的密鑰體系也分為三層:設備密鑰、工作密鑰和會話密鑰。
①設備密鑰:非對稱密鑰對,包括簽名密鑰對(設備內部產(chǎn)生)和加密密鑰對(外部密鑰管理機構產(chǎn)生),用于實體身份鑒別、數(shù)字簽名和數(shù)字信封等。其中,用于簽名的設備密鑰對在IKE第一階段提供基于數(shù)字簽名的身份鑒別服務;用于加密的設備密鑰對在IKE第一階段對交換數(shù)據(jù)提供保密性保護。
②工作密鑰:對稱密鑰,在IKE第一階段經(jīng)密鑰協(xié)商派生得到,用于對會話密鑰交換過程的保護。其中,用于加密的工作密鑰為IKE第二階段交換的數(shù)據(jù)提供保密性保護;用于完整性校驗的工作密鑰為IKE第二階段傳輸?shù)臄?shù)據(jù)提供完整性保護及對數(shù)據(jù)源進行身份鑒別。
③會話密鑰:對稱密鑰,在IKE第二階段經(jīng)密鑰協(xié)商派生得到,直接用于數(shù)據(jù)報文及報文MAC的加密和完整性保護。其中,用于加密的會話密鑰為通信數(shù)據(jù)和MAC值提供保密性保護;用于完整性校驗的會話密鑰為通信數(shù)據(jù)提供完整性保護。
0x02 SSL
1、SSL協(xié)議
SSL協(xié)議是由多個協(xié)議組成的兩層協(xié)議集合,如下圖所示:
下層協(xié)議包括記錄層協(xié)議,主要用于封裝不同的更高層協(xié)議的數(shù)據(jù),為數(shù)據(jù)提供保密性、完整性和數(shù)據(jù)分段等服務,特別是它可為B/S的交互提供傳輸服務的超文本傳輸協(xié)議(HTTP)提供安全服務。
上層協(xié)議分為:握手協(xié)議、密碼規(guī)格變更協(xié)議和報警協(xié)議
其中,握手協(xié)議實現(xiàn)了服務端和客戶端之間相互的身份鑒別、交互過程中密碼套件(公鑰密碼算法、對稱密碼算法和密碼雜湊算法的集合)與密鑰的協(xié)商;密碼規(guī)格變更協(xié)議則是用于通知對方其后的通信消息將用剛剛協(xié)商的密碼規(guī)格及相關聯(lián)的密鑰來保護;報警協(xié)議用于關閉連接的通知,以及對整個連接過程中出現(xiàn)的錯誤進行報警,其中關閉通知由發(fā)起者發(fā)送,錯誤報警由錯誤的發(fā)現(xiàn)者發(fā)送,報警消息中包含報警級別和報警內容。
(1)握手協(xié)議分析
握手協(xié)議的主要作用有兩點:一是通信雙方對彼此進行身份鑒別;二是協(xié)商連接會話所需的密碼參數(shù)(如密碼算法、密鑰),其中各類密碼算法組成的集合稱為密碼套件。
握手協(xié)議工作流程如下圖所示,主要分為四個階段,如下圖所示:
下面通過抓取的國密SSL數(shù)據(jù)進行分析
數(shù)據(jù)包為抓取使用密信瀏覽器訪問沃通GM SSL專用測試頁面所得
階段一:首先客戶端向服務端發(fā)送Client Hello消息,其中包含國密協(xié)議版本號、隨機數(shù)、Seesion ID和客戶端所能使用的密碼套件等信息。
若服務端未回應,則產(chǎn)生一個致命錯誤并斷開連接
服務端返回Server hello信息,包含隨機數(shù)和協(xié)商的密碼套件等信息,這里雙方協(xié)商的密碼套件為ECC_SM4_SM3。
在第一階段中客戶端和服務端完成了密碼套件的協(xié)商以及確定安全傳輸能力(包括協(xié)議版本、會話標識等屬性),并且產(chǎn)生和交換隨機數(shù)。
階段二:身份鑒別和秘鑰交換,服務端發(fā)送證書Server Certificate(雙證書:簽名證書和加密證書)、服務端密鑰交換消息Server Key Exchange(簽名值,用于生成預主秘鑰)。
在階段二中,服務端如果要驗證客戶端的身份,會在發(fā)送Server Key Exchange后向客戶端發(fā)送證書請求消息Certificate Request(這里沒有進行驗證,采用的是單向鑒別),完成后發(fā)送Hello完成消息 Server Hello Done,表示Hello消息階段已經(jīng)結束。
階段三:在階段二中,如果服務端對客戶端進行了身份驗證,客戶端需要在階段三中返回一個證書消息Client Certificate(這里服務端未對客戶端進行身份驗證)。
客戶端發(fā)送密鑰交換消息Client Key Exchange,消息內容取決于雙方Hello消息協(xié)商出的密鑰交換算法,在這里雙方Hello消息協(xié)商出來的密鑰交換算法為ECC,則客戶端產(chǎn)生46字節(jié)隨機數(shù)與版本號一起構成預主密鑰,采用服務端的加密公鑰進行加密并放在Client Key Exchange消息中發(fā)送給服務端。
在階段三中如果客戶端和服務端使用的是雙向鑒別,客戶端返回證書消息Client Certificate,那么也應發(fā)送一個帶數(shù)字簽名的消息Certificate Verify供服務端驗證客戶端的身份(這里采用的單向鑒別,沒有發(fā)送)。
在對交換數(shù)據(jù)進行加密和簽名計算時,數(shù)據(jù)的加密運算采用對方加密證書中的公鑰來進行加密;簽名采用自己的簽名私鑰進行簽名。
階段四:Change Cipher Spec 密碼規(guī)格變更協(xié)議
客戶端發(fā)送密碼規(guī)格變更消息(加密傳輸中每隔一段時間必須改變其加解密參數(shù)的協(xié)議,因為后續(xù)的報文都會采用剛剛協(xié)商好的加密秘鑰進行加密傳輸,因此會發(fā)送該報文),發(fā)送加密的握手結束消息。
Encrypted handshake Message 加密握手消息
客戶端告訴服務端,自己在整個握手過程中收到了什么數(shù)據(jù),發(fā)送了什么數(shù)據(jù)。來保證中間沒人篡改報文。該數(shù)據(jù)采用剛才協(xié)商好的秘鑰進行加密,順帶驗證秘鑰。
服務端回應密碼規(guī)格變更消息,使用剛協(xié)商的算法和密鑰,發(fā)送加密的握手結束消息。
握手過程結束,雙方開始進行數(shù)據(jù)傳輸。
SSL VPN密碼套件的屬性值定義,如下表所示。
在GM/T 38636-2020 傳輸層密碼協(xié)議(TLCP)中,增加了GCM分組模式的密碼套件,刪除了SHA1密碼套件(SHA1被認為是有風險的密碼算法),如下表所示:
(2)記錄層協(xié)議
當客戶端和服務端握手成功后,待傳輸?shù)膽脭?shù)據(jù)通過記錄層協(xié)議封裝,并得到保密性和完整性保護,分為數(shù)據(jù)分段、數(shù)據(jù)壓縮、數(shù)據(jù)添加MAC、對數(shù)據(jù)和MAC加密、附加SSL記錄報頭五步,整體流程如下圖所示:
2、SSL VPN 產(chǎn)品
SSL VPN產(chǎn)品采用工作在應用層和傳輸層之間的VPN技術。
基于B/S的架構是SSL VPN最為常見的應用方式。
SSLVPN產(chǎn)品用于端到站和站到站兩種,其中端到站是常用的,是產(chǎn)品必須支持的;站到站是可選支持的。
SSL VPN產(chǎn)品的密鑰體系分為三層:①用于管理的設備密鑰;②用于生成工作密鑰的預主密鑰和主密鑰;③用于保護通信數(shù)據(jù)的工作密鑰。
①設備密鑰:非對稱密鑰對,包括簽名密鑰對(設備內部產(chǎn)生)和加密密鑰對(外部密鑰管理機構產(chǎn)生)。其中,簽名密鑰對用于握手協(xié)議中通信雙方的身份鑒別;加密密鑰對用于預主密鑰協(xié)商時所用交換參數(shù)的保密性保護。(在這里簽名密鑰對和加密密鑰對分別由設備內部和外部密鑰管理機構產(chǎn)生,但是簽名證書和加密證書均應由外部認證機構簽發(fā))。
②預主密鑰、主密鑰:對稱密鑰,其中預主密鑰是雙方協(xié)商通過偽隨機函數(shù)(PRF)生成的密鑰素材,用于生成主密鑰;主密鑰(48字節(jié))由預主密鑰、雙方隨機數(shù)等交換參數(shù),經(jīng)PRF計算生成的密鑰素材,用于生成工作密鑰。
③工作密鑰:對稱密鑰,對通信數(shù)據(jù)安全性提供保護,由主密鑰、客戶端隨機數(shù)、服務端隨機數(shù)、常量字符串經(jīng)PRF計算生成。工作密鑰包括兩個對稱密鑰:數(shù)據(jù)加密密鑰用于數(shù)據(jù)的加密和解密;校驗密鑰用于數(shù)據(jù)的完整性計算和校驗。
0x03 總結
SSL和IPSec在商用密碼應用與安全性評估中涉及的內容比較多,能出的考點也是很多,本文簡單對一些重要內容進行了羅列和總結,結合真實數(shù)據(jù)包對IPSec和SSL協(xié)議進行了分析,包括SSL握手協(xié)議過程、IPSec IKE協(xié)商過程和三層密鑰體系及產(chǎn)出的位置,希望可以幫助大家理解學習。
審核編輯:劉清
-
IPSec
+關注
關注
0文章
59瀏覽量
22884 -
ESP
+關注
關注
0文章
186瀏覽量
34112 -
UDP協(xié)議
+關注
關注
0文章
70瀏覽量
12781 -
SSL
+關注
關注
0文章
126瀏覽量
25788
原文標題:IPSec和SSL國密數(shù)據(jù)包分析
文章出處:【微信號:Tide安全團隊,微信公眾號:Tide安全團隊】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
IPsec的基礎知識
網(wǎng)絡數(shù)據(jù)包捕獲機制研究
基于Jpcap的數(shù)據(jù)包捕獲器的設計與實現(xiàn)
數(shù)據(jù)包過濾原理
![<b class='flag-5'>數(shù)據(jù)包</b>過濾原理](https://file1.elecfans.com//web2/M00/A5/07/wKgZomUMNp6AZDGdAADIS9oKJUk812.jpg)
什么是數(shù)據(jù)包?
移動IPV6在改進數(shù)據(jù)包發(fā)送路徑模型下性能分析
![移動IPV6在改進<b class='flag-5'>數(shù)據(jù)包</b>發(fā)送路徑模型下性能<b class='flag-5'>分析</b>](https://file.elecfans.com/web2/M00/49/45/pYYBAGKhtEKANqtHAAAME0tHGCA171.jpg)
網(wǎng)絡數(shù)據(jù)包分析軟件wireshark的基本使用
wireshark導入數(shù)據(jù)包進行分析
IPSEC VPN 和SSL VPN的區(qū)別和選擇要點
IPSEC VPN 和SSL VPN的區(qū)別和選擇技巧
Wireshark網(wǎng)絡數(shù)據(jù)包分析軟件簡介
![Wireshark網(wǎng)絡<b class='flag-5'>數(shù)據(jù)包</b><b class='flag-5'>分析</b>軟件簡介](https://file1.elecfans.com/web2/M00/82/48/wKgZomRIhGmAcgaKAAASisbkOqk636.png)
國密協(xié)議網(wǎng)關與IPSec VPN技術:保障數(shù)據(jù)安全傳輸?shù)男峦緩?/a>
![<b class='flag-5'>國</b><b class='flag-5'>密</b>協(xié)議網(wǎng)關與<b class='flag-5'>IPSec</b> VPN技術:保障<b class='flag-5'>數(shù)據(jù)</b>安全傳輸?shù)男峦緩? /> </a>
</div> <div id=](https://file1.elecfans.com/web2/M00/EA/B8/wKgaomZVeJyAUe6vAADgGYtZk6Y868.png)
SSL 、IPSec、MPLS和SD-WAN的對比分析
恒訊科技分析:IPSec與SSL/TLS相比,安全性如何?
![恒訊科技<b class='flag-5'>分析</b>:<b class='flag-5'>IPSec</b>與<b class='flag-5'>SSL</b>/TLS相比,安全性如何?](https://file1.elecfans.com//web1/M00/F3/02/wKgZoWcPPouAXzKJAAD4G9dUiDM886.png)
評論