IPSec 傳輸模式下 ESP 報文的裝包與拆包過程

IPSec 傳輸模式下 ESP 報文的裝包與拆包過程

IP Header 的結構:

在這裏插入圖片描述

ESP 協議有隧道模式和傳輸模式,隧道模式會加密所有的IP packet並添加新的header;

傳輸模式則僅加密傳輸的數據,不加密IP Header;

裝包過程

隧道模式

(1) 在原 IP 報文末尾添加 ESP trailer 信息,其中ESP trailer 包含三部分:Padding ,Pad length, Next header。Padding 和 Pad length用於塊加密,Next header 用來標明被封裝的原報文的協議類型,如:Next header = 4,則爲IP類型

在這裏插入圖片描述

(2) 將步驟(1)得到的報文整體進行加密,得到密文M0,加密算法由SA給出

(3) 在M0 前面添加 ESP header得到M1 構成認證部分,其中ESP header由 SPI 和Seq# 兩部分組成。

在這裏插入圖片描述

(4) 對M1 進行完整性認證,得到一個32bit的完整性度量值(MAC),將MAC附在ESP報文的尾部

在這裏插入圖片描述

(5)構造新的IP Header附在ESP報文前面組成新的IP報文。個新的 IP header
的 IP 地址由路由器和安全網關解釋,可以和原報文不同。

在這裏插入圖片描述

下圖中,左,右分別爲原IP報文和IPSec報文,新IP header 的 proto = 50,即爲ESP 報文

在這裏插入圖片描述

在這裏插入圖片描述

傳輸模式

傳輸模式加密除IP Header的所有內容且不添加新的IP Header,其他過程與隧道模式一致

(1) 將除IP header 外的所有數據進行加密,得到密文 M0

(2) 將ESP Header 附加到 M0 頭部,得到 M1

(3)對M1 進行完整性認證,得到一個32bit的完整性度量值(MAC),將MAC附在ESP報文的尾部,得到 M2

(4) 修改IP header 的proto 值 爲 50,附加到 M2 頭部,生成IPSec 包進行傳輸

在這裏插入圖片描述

拆包過程

隧道模式

(1) 接收方收到 IP 報文後,發現協議類型是50,表明這是一個 ESP包。首先查看 ESP header,通過 SPI 決定數據報文所對應的 SA,獲得對應的模式 (tunnel/transport mode) 以及安全規範。

(2) 計算M1 部分,與末尾的MAC比較以驗證數據完整性

(3) 檢查 Seq# 裏的順序號,保證數據是最新的,防止重放攻擊

(4)根據 SA 所提供的加密算法和密鑰,解密被加密過的數據,得到
原 IP 報文與 ESP trailer。

  1. 根據 ESP trailer 的填充長度信息,找出填充字段的長度,刪去
    後得到原來的 IP 報文。

(6) 根據得到的原 IP 報文的目的地址進行轉發。

傳輸模式

(1) 接收方收到 IP 報文後,發現協議類型是50,表明這是一個 ESP包。查看 ESP header,通過 SPI 決定數據報文所對應的 SA,獲得對應的模式 (tunnel/transport mode) 以及安全規範。

(2) 計算M1 部分,與末尾的MAC比較以驗證數據完整性

(3) 檢查 Seq# 裏的順序號,保證數據是最新的,防止重放攻擊

(4)根據 SA 所提供的加密算法和密鑰,解密被加密過的數據,得到
原 IP 數據報文與 ESP trailer。

  1. 根據 ESP trailer 的填充長度信息,找出填充字段的長度,刪去
    後得到原來的 IP數據 報文。

(6) 根據IP 報文的目的地址進行轉發。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章