描述在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


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