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

        IPSec是一種端到端的確保IP層通信安全的體制,IPSec不是一個單獨的協議,而是一組協議,如圖1所示,IPSec安全體系主要包含了3種協議ESP、AH、IKE,1個安全聯盟SA和一些加密和認證的算法。


                                    圖1

        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等,驗證數據可選,儲存驗證的結果。


                                                                                       圖2

        如圖3,爲傳輸模式下ESP裝包過程:首先,給原IP報文添加ESP尾部;然後,將尾部和原IP報文的載荷一起進行加密;第三,將機密數據加入ESP頭部;第四,對加密區域和ESP頭部進行驗證,得到完整性度量值,附在ESP報文最後;最後,將IP頭部附在ESP報文前,構成新的IP報文。


                                                                  圖3

        拆包時,首先,檢查協議類型,確定爲IPSec包;然後,通過ESP頭部SPI確認SA內容,以及通過序列號確認不是重放攻擊;第三,計算驗證區域的摘要,與ESP驗證數據做比較,相同則數據完整;第四,根據SA提供的算法和密鑰,解密加密區域,得原IP數據包和ESP尾部;第五,根據尾部填充長度學習刪除填充字段,即可得原IP數據包;最後,根據IP的目的地址進行轉發。
參考網頁:http://wenku.baidu.com/link?url=ab34lrjKrXLNKN7abeOu6D54jY20vpmuZnsJljZPhAMXhqkVeg_DLbr5JGG1HWaTAG3CaixdRPUUv6cr9G0YznMOKD7xrsSMgnrIWdfMwZK
http://wenku.baidu.com/link?url=_5EYZMCf4xoEMtuY9_LnUzumYxmAlx-PglZDVL1TwW651MWKRQstTJrVhQ6tsPePygtmberBDyPeS3IjkgDFQY-Yz1put9IeBWEf1o6nH_i
http://wenku.baidu.com/link?url=8UxYzqGK7Nc8QtMkGL3Vxbl5NUkmvsfkmAboQiMo20E4V6nPZqics_pdspmrWED89Ci4NebSUwnmZ5ByZgSM43QrDo0QTC4f2WYV3w32iq3


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