1. 程式人生 > >描述在IPSec傳輸模式下ESP報文裝包和拆包過程

描述在IPSec傳輸模式下ESP報文裝包和拆包過程

        AH(Authentication Header):提供資料完整性驗證,通過Hash實現;資料來源身份認證,在計算驗證碼時加入共享金鑰;防止重放攻擊,AH包頭的序列號可防止重放攻擊。
ESP(Encapsulating Security Payload):ESP的協議號是50,提供AH的三種服務,此外,資料包加密,可加密整個IP報文,也可只加密IP的資料部分;資料流加密,用於支援IPSec路由器。
IKE(Internet Key Exchange):IKE負責金鑰管理,用於實體之間的身份認證,加密演算法的協商,以及會話金鑰的生成,IKE的結果會保留在安全聯盟(SA)中,供AH和ESP通訊使用。
SA(Security Association):SA是兩個IPSec實體之間經過協商建立起來的一種安全協定,包括採用何種IPSec協議、執行模式是隧道模式還是傳輸模式,以及使用的驗證演算法和加密演算法等一系列內容。
AH和ESP使用SA來保護通訊,兩者可單獨使用,也可巢狀使用,IKE主要功能就是在實體之間協商SA。
IPSec主要有兩種工作方式,隧道模式和傳輸模式,隧道模式保護的是整個IP資料包,而傳輸模式保護的是IP的載荷,即真正傳輸的資料。如圖2所示,是ESP頭的格式,由ESP頭部、載荷資料、ESP尾部和驗證資料組成,其中,32位的SPI與目的地址和協議組成的三元組可以為IP包確定唯一的SA,序列號可用於抗重放攻擊,載荷資料為明文或者加密後的密文,本欄位的長度必須是8位的整數倍,填充長度指明填充欄位的長度,下一個頭指明載荷的資料型別,比如TCP等,驗證資料可選,儲存驗證的結果。