IPSec 的兩種工作模式及其報文封裝格式


隧道( tunnel )模式

隧道( tunnel )模式:隧道模式保護所有 IP 數據並封裝新的 IP 頭部,不使用原始 IP 頭部進行路由。在 IPSec 頭部( ESP 或 AH )前加入新的 IP 頭部,源 IP 地址和目的 IP 地址為 IPSec peer 地址。並允許 RFC 1918(私有地址)規定的地址參與 VPN 穿越互聯網。

AH Tunnel modeAH Tunnel modeESP Tunnel modeESP Tunnel mode

 

 

 

1.1  封裝流程

在原IP報文中找到TCP報文部分,在其后添加相應的ESP trailer信息。
ESP trailer 包含三部分:Padding,Pad length 和 Next header。Padding 即使用塊加密時,最后一個數據塊長度不足時所做的填充。Pad length 指填充的長度,方便拆包時找到用來填充的數據段。Next header 標明被封裝的原報文的協議類型,例如 6 = TCP。
將原 TCP 報文和第1步得到的 ESP trailer 作為一個整體進行加密封裝。具體的加密算法和密鑰由SA給出。
為第2步得到的密文添加 ESP 頭。ESP 頭由 SPI (Security Parameter Index) 和 Seq #
兩部分組成。密文和 ESP頭合起來稱為"enchilada",構成認證部分。
附加完整性度量結果(ICV)。對第3步生成的"enchilada"認證部分做摘要(ESP Authentication
Data),得到一個32位整數倍的 ICV,附在"enchilada"之后。ICV 生成算法和驗證密鑰由 SA 給出。
將原始的 IP 報文頭中的協議號改為50(代表 ESP),然后將 IP 報文頭加到第4步的結果之前構成 IPsec 報文。

1.2  解封裝流程

接收方收到 IP 報文后,發現協議類型是50,標明這是一個 ESP 包。首先查看 ESP 頭,通過安全參數索引號 SPI
決定數據報文所對應的 SA,獲得對應的模式(隧道或傳輸模式)以及安全規范。
根據 SA 指定的摘要算法和驗證密鑰計算"enchilada"的摘要值,與附在 IP 報文最后的 ICV
進行對比,二者相同則數據完整性未被破壞。
檢查 ESP 頭中的 Seq # 里的序列號,保證數據是新的,避免重放攻擊
根據 SA 所指定的加密算法和密鑰,解密密文段,得到原來的 TCP 報文和 ESP trailer。
根據 ESP trailer 的填充長度信息,找出填充字段的長度,刪除填充字段得到原來的 TCP 報文。 根據 TCP
報文頭信息將報文交付給傳輸層。

 

 

傳輸( transport )模式:傳輸模式保護原始 IP 頭部后面的數據,在原始 IP 頭部和 payload 間插入 IPSec 頭部( ESP 或 AH )。典型應用為端到端的會話,並且要求原始 IP 頭部全局可路由。

AH Transport modeAH Transport modeESP Transport modeESP Transport mode

 

 

 

 

 

在隧道模式和傳輸模式下的數據封裝形式對比如下圖所示,圖中 data 為原 IP 報文:

IPSec的兩種工作模式及其報文封裝格式IPSec 的兩種工作模式及其報文封裝格式

AH 和 ESP 的最大區別有兩個:

  • 一個是 AH 不提供加密服務,而 ESP 提供加密服務。
  • 另一個是它們驗證的范圍不同,ESP 不驗證 IP 報頭,而 AH 驗證 IP 報頭,所以往往需要結合使用 AH 和 ESP 才能保證 IP 報頭的機密性和完整性(如上圖所示);AH 為 IP 報頭提供盡可能多的驗證保護,驗證失敗的包將被丟棄,不交給上層協議解密,這種操作模式可以減少拒絕服務攻擊成功的機會。

隧道模式和傳輸模式在 IP 數據報的 ESP 負載部分上的不同:

  • 在隧道模式中,整個 IP 數據報都在 ESP 負載中進行封裝和加密。當這完成以后,真正的源 IP 地址和目的 IP 地址都可以被隱藏。這種模式的一種典型用法就是在防火牆與防火牆之間通過虛擬專用網的連接時進行的主機或拓撲隱藏。
  • 在傳輸模式中,只有更高層協議幀( TCP、UDP、ICMP 等)被放到加密后的 IP 數據報的 ESP 負載部分。在這種模式中,源 IP 地址和目的 IP 地址以及所有的 IP 報頭都是不加密發送的。

加密點不等於通信點的時候就是隧道模式,如果加密點等於通信點的話就是傳輸模式。但是要注意,默認情況下都是隧道模式,這個你在 show crypto ipsec sa 中可以看到。因為傳輸模式比隧道模式少了一個頭部,這樣提供了更大的負載空間,所以盡量使用傳輸模式。

傳輸模式是兩台電腦直接通過 IPSec VPN 連接的時候用的,隧道模式是只要一端采用網關的話就需要用隧道模式。因為如果采用傳輸模式連接且一端是網關的時候,因為網關有 NAT 功能,會將地址變換,而傳輸模式是只識別原 IP 的,所以這樣就會被直接丟棄掉。而隧道模式則是用 IPSec peer 地址直接建立隧道用於兩端的通訊,不會出現被拋棄的情況。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM