Labs 導(dǎo)讀
IPSec(IP security)是IETF制定的三層隧道加密協(xié)議,它為Internet上傳輸?shù)臄?shù)據(jù)提供了高質(zhì)量的、可互操作的、基于密碼學(xué)的安全保證。因?yàn)槠浒踩蕴攸c(diǎn),IPSec被廣泛應(yīng)用。
IPSec不是一個(gè)單獨(dú)的協(xié)議,而是一套網(wǎng)絡(luò)安全協(xié)議族,包括網(wǎng)絡(luò)認(rèn)證協(xié)議AH(Authentication Header,認(rèn)證頭)、ESP(Encapsulating Security Payload,封裝載荷)和密鑰管理協(xié)議IKE(Internet Key Exchange, 因特網(wǎng)密鑰交換)以及用戶網(wǎng)絡(luò)認(rèn)證及加密的一些算法等。
IPSec工作模式分為:傳輸模式(transport)和隧道模式(tunnel)兩種。簡單來說傳輸模式是原始二層數(shù)據(jù)包不再附加二三四層頭、隧道模式是原始二層數(shù)據(jù)包經(jīng)過協(xié)議隧道封裝是添加上二三四層頭,IPSec的隧道模式就是在原始的ip數(shù)據(jù)包外面再封裝了一層ip頭,所以IPSec也經(jīng)常被大家稱作三層隧道協(xié)議。下面就帶大家詳細(xì)的了解一些這些具體的協(xié)議,以及IPSec協(xié)議實(shí)際應(yīng)用中占據(jù)重要地位的穿越NAT實(shí)現(xiàn)。
Part 01 ●安全協(xié)議——AH協(xié)議●
AH協(xié)議是一種基于IP的傳輸協(xié)議,協(xié)議號(hào)為51。具體工作方式是在每一個(gè)數(shù)據(jù)包的標(biāo)準(zhǔn)IP報(bào)文頭部后面添加一個(gè)AH報(bào)文頭:
AH協(xié)議發(fā)送方會(huì)對(duì)數(shù)據(jù)包和認(rèn)證密鑰進(jìn)行hash計(jì)算,接收方收到報(bào)文之后,按照一樣的算法進(jìn)行hash計(jì)算并與原計(jì)算結(jié)果進(jìn)行比較,如果不一致,可以推斷出數(shù)據(jù)包在傳輸過程中遭到了修改或者破壞。通過這樣的方式,能提供數(shù)據(jù)來源認(rèn)證和數(shù)據(jù)完整性校驗(yàn)。值得一提的是AH協(xié)議的完整性校驗(yàn)范圍是整個(gè)IP報(bào)文。 AH報(bào)文頭中有幾個(gè)重要的字段值得關(guān)注:安全參數(shù)索引(SPI)用于唯一標(biāo)識(shí)IPSec安全聯(lián)盟,序列號(hào)唯一標(biāo)識(shí)每一個(gè)數(shù)據(jù)包,能用于防重放攻擊。
Part 02 ● 安全協(xié)議——ESP協(xié)議●
和AH協(xié)議一樣,ESP協(xié)議也是一種基于IP的傳輸層協(xié)議,協(xié)議號(hào)為50。具體的工作方式是在每一個(gè)數(shù)據(jù)包的IP報(bào)文頭后面添加一個(gè)ESP報(bào)文頭,值得注意的是,在數(shù)據(jù)包尾部還追加一個(gè)ESP尾部(ESP Tail和ESP Auth Data),同時(shí)還有一點(diǎn)與AH協(xié)議不同的是,ESP協(xié)議僅對(duì)IP數(shù)據(jù)包的有效載荷進(jìn)行加密,對(duì)IP報(bào)文頭是沒有進(jìn)行加密保護(hù)的。
和AH協(xié)議類似,ESP報(bào)文頭中也有安全參數(shù)索引(SPI)和序列號(hào)兩個(gè)字段,并且,AH協(xié)議和ESP協(xié)議的認(rèn)證算法是相通的。
AH協(xié)議和ESP協(xié)議具體的比較如下:
總結(jié):AH協(xié)議不能提供數(shù)據(jù)包加密功能,ESP協(xié)議驗(yàn)證范圍不包括IP頭部,故在安全性要求較高的場景中可以考慮聯(lián)合使用AH協(xié)議和ESP協(xié)議。
Part 03 ●IKE協(xié)議●
簡單來說,IKE協(xié)議是動(dòng)態(tài)協(xié)商IPSec隧道的協(xié)議,能完成身份驗(yàn)證、密鑰交換、生成IPSec SA,協(xié)商過程中,數(shù)據(jù)包具體采用AH協(xié)議還是ESP協(xié)議封裝以及身份認(rèn)證就定下來了。
IKE協(xié)議目前有兩個(gè)版本:IKEv1和IKEv2,IKEv2在v1的基礎(chǔ)上,不僅簡化了SA的協(xié)商過程,提高了協(xié)商效率,而且修復(fù)了多處公認(rèn)的密碼學(xué)方面的安全漏洞,提高了安全性能,所以實(shí)際IKEv2應(yīng)用更加廣泛。
以IKEv2為例,通過初始交換可以協(xié)商建立第一對(duì)IPSec SA,這其中包含兩次交互四條消息,包含加密和驗(yàn)證算法等參數(shù)協(xié)商,生成共享密鑰,完成身份認(rèn)證、消息認(rèn)證。如果需要?jiǎng)?chuàng)建多對(duì)IPSec SA,可以通過創(chuàng)建子SA交換過程協(xié)商出來,同時(shí)在協(xié)商過程中存在一些控制信息的傳遞,例如錯(cuò)誤消息或者通告消息,這些信息是通過通知交換完成的。
Part 04 ●NAT穿越●
IPSec協(xié)議能得到廣泛應(yīng)用,除了能提供安全加密的傳輸之外,另一個(gè)重要原因是能夠?qū)崿F(xiàn)NAT穿越,這在現(xiàn)網(wǎng)傳輸中是極其重要的,因?yàn)楣W(wǎng)IP資源有限,絕大部分設(shè)備都是通過NAT轉(zhuǎn)換之后共享公網(wǎng)IP資源傳輸交換報(bào)文的,所以穿越NAT在現(xiàn)網(wǎng)應(yīng)用中是極其重要的。
如前文描述的AH協(xié)議和ESP協(xié)議的特點(diǎn),我們發(fā)現(xiàn)AH協(xié)議不能穿越NAT,原因是NAT會(huì)修改報(bào)文的IP頭,但是AH完整性校驗(yàn)是基于整個(gè)IP報(bào)文的,所以導(dǎo)致AH協(xié)議下IPSec不能穿越NAT。而ESP報(bào)文的完整性校驗(yàn)不包括IP頭,IP地址轉(zhuǎn)換也不會(huì)破壞ESP的hash值,所以在只做IP轉(zhuǎn)換的NAT場景下,ESP協(xié)議封裝是支持NAT穿越的。但是很多時(shí)候,公網(wǎng)IP是共用的,所以NAT轉(zhuǎn)換不僅需要轉(zhuǎn)換IP,同時(shí)需要轉(zhuǎn)換端口,但是ESP協(xié)議對(duì)IP有效載荷進(jìn)行加密了,導(dǎo)致無法對(duì)端口號(hào)進(jìn)行修改,這也是很多IP in IP的隧道無法穿越NAT的根本原因,解決辦法是再加一個(gè)UDP報(bào)文頭——NAT-T(NAT Traversal),源目的端口號(hào)均是4500。
NAT-T的方式隧道能解決IPSec穿越NAT的問題,但是穿越NAT之后同樣存在以下兩個(gè)問題:一是穿越NAT后的身份認(rèn)證及IP地址復(fù)用的問題。在目前的IP網(wǎng)絡(luò)中,IP即為身份標(biāo)識(shí),但是NAT之后IP會(huì)發(fā)生變化,當(dāng)前國內(nèi)主要采用字符串取代IP地址作為身份標(biāo)識(shí)的方式,這樣就不受NAT影響了。二是ESP協(xié)議是基于IP的協(xié)議,當(dāng)NAT網(wǎng)關(guān)背后存在多個(gè)ESP應(yīng)用端,且地址復(fù)用一個(gè),那么無法只根據(jù)IP協(xié)議號(hào)進(jìn)行反向映射,ESP協(xié)議必須要做出改變。這一點(diǎn)在NAT-T流程中會(huì)有具體的體現(xiàn),下面我們?cè)敿?xì)闡述NAT-T流程。
首先判斷雙方是否支持NAT-T。當(dāng)開啟NAT穿越時(shí),IKE協(xié)商過程中會(huì)發(fā)送標(biāo)識(shí)NAT-T能力的vendor ID載荷,用于檢查通信雙方是否支持NAT-T,只有當(dāng)雙方都在各自的消息中包含了該載荷,后續(xù)才會(huì)進(jìn)行相關(guān)的NAT-T協(xié)商。其次是判斷鏈路上是否存在NAT設(shè)備。在IKE協(xié)商中,會(huì)發(fā)送NAT-D(NAT Discovery)載荷,這個(gè)載荷用于探測NAT設(shè)備,雙方都會(huì)向?qū)Ψ桨l(fā)送源目的IP和端口的hash值,存放在該載荷中,如果在傳輸過程中發(fā)生改變,hash值會(huì)相應(yīng)的改變,判斷hash值就可以判斷鏈路中是否存在NAT轉(zhuǎn)換。最后是ESP處理,在前兩步的前提下,當(dāng)發(fā)現(xiàn)NAT網(wǎng)關(guān)之后,后續(xù)的IKE報(bào)文端口號(hào)轉(zhuǎn)換成4500。
上述技術(shù)雖然能實(shí)現(xiàn)NAT穿越,但是也存在一定的局限性:使用NAT-T功能會(huì)導(dǎo)致在IKE協(xié)商過程中增加大約200字節(jié)的開銷,數(shù)據(jù)傳輸過程中也會(huì)增加大約20字節(jié)的開銷;同時(shí)不能采用AH協(xié)議,一定程度上也會(huì)降低安全性;NAT設(shè)備無法保證始終固定的IP和固定的端口為內(nèi)部主機(jī)提供訪問映射,所以IPSec必須能夠自動(dòng)檢測變化,以保證通訊始終暢通。
Part 05 ●后記●
IPSec自從1990年被開發(fā)出來以來,目前為止已經(jīng)應(yīng)用超過30年,技術(shù)的發(fā)展經(jīng)過一代代的積累也日漸成熟,基礎(chǔ)的交換流程也比較完備,未來的發(fā)展方向大概率是在認(rèn)證和加密算法上面。美國NIST在2020年也發(fā)布過特別出版物《IPSec VPNs指南》,文中指出IETF正著力于研究各類IKE與IPSec擴(kuò)展議題,同時(shí)也介紹了在組播與組認(rèn)證、ESP中的隱式IV、后量子密鑰交換等方面的努力。未來我們將及時(shí)關(guān)注最新的IPSec技術(shù),在實(shí)際生產(chǎn)和工作中進(jìn)行應(yīng)用,為中國移動(dòng)新型網(wǎng)絡(luò)架構(gòu)添磚加瓦。
審核編輯:劉清
-
IPSec
+關(guān)注
關(guān)注
0文章
59瀏覽量
22811 -
ESP
+關(guān)注
關(guān)注
0文章
183瀏覽量
33950 -
NAT系統(tǒng)
+關(guān)注
關(guān)注
0文章
6瀏覽量
5071
原文標(biāo)題:技術(shù) | 淺談常見的隧道技術(shù)之IPSec
文章出處:【微信號(hào):5G通信,微信公眾號(hào):5G通信】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論