IPSEC隧道抓包分析

bingyu9875發表於2019-09-27

IPSEC 隧道抓包分析

整個IPSEC 從建立到資料傳輸可以分為兩個階段。階段一主要是協商建立一個主金鑰,所有後續使用者的金鑰都根據主金鑰產生,階段一主要是在通訊雙方間建立一條經過身份驗證並且加密的通道。階段二使用階段一建立的安全通道,協商安全聯盟和用於保護使用者資料的金鑰。

階段一有主模式和積極模式。現在抓包分析的是主模式,有6個來回互動的包,發起端是60.251.67.10,對端是58.248.41.221。

第一階段

第一個包,發起端協商SA,使用的是UDP協議,埠號是500,上層協議是ISAKMP,該協議提供的是一個框架,裡面的負載Next payload類似模組,可以自由使用。可以看到發起端提供了自己的cookie值,以及SA的傳輸集。

第二個包,響應端響應,回包中包括自己的cookie值和協商好的傳輸集。傳輸集是什麼樣的?把security association展開,如下,主要是加密演算法,雜湊演算法,認證演算法,生存時間等。

第三個包,發起端開始交換金鑰的相關材料,記住交換的不是金鑰本身。採用的是DH演算法。這時可以看到ISAKMP的下一負載變成了Key Exchange,不是SA了。

第四個包,響應端回包。這樣,雙方的金鑰材料交換完畢,可以生成共有的主金鑰了。 金鑰生成的公式如下

這裡寫圖片描述

主金鑰生成後,會跟著產生三個金鑰

其中金鑰d和a是為下一階段用的,而金鑰e是用來加密後續的協商資料的。

第五個包,發起方發起身份驗證,帶有Identification的資料。

第六個包,響應端回應報文,雙方身份驗證通過,注意包的經過加密的,加密的金鑰就是上面產生的金鑰e。

到此,階段一完成了,ISAKMP的SA也建立起來了,後續的金鑰也有了,就要開始階段二的協商了。階段二隻有一種模式:快速模式,通過三個包完成互動。第二階段的資料是經過加密的,該階段會產生ipsec sa,每一端都有兩個,一個進站一個出戰,每個sa的SPI都不同,所以階段二共產生4的SA。

第二階段

第一個包發起方主要是進行IPSEC SA的協商,建立安全聯盟,協商用的封裝是AH或是ESP,以及後面的加密演算法認證完整性演算法以及生存時間和感興趣流等等

第二個包響應方回包,協商好和發起端共同的的規則。

最後一個包是發起端對響應端的確認。以上三個包都是通過HASH進行完整性和可靠性認證的。到此,隧道建立起來。

相關文章