RFC 2406为IPSec定义了ESP报文安全封闭协议。ESP协议将用户数据进行加密后封闭到IP包中,以保证数据的机密性。同时作为可选项,用户可以选择使用带密钥的哈希算法保证报文的完整性和真实性。ESP的隧道模式提供了对于报文路径信息的隐藏。ESP可以提供一定的抗重播服务。
图5.66 ESP头格式
1.ESP头格式
ESP与AH格式有所区别。它不但具有一个ESP头,而且有一个包含有用信息的ESP尾,如图5.66所示。
紧贴在ESP头之前的IP头,以协议号50标识ESP头。例如对IPv4来说,其Protocol字段值将为50。而对IPv6来说,其Next Header字段值将为50。
其中各个字段含义如下:
(1)Security Parameters Index(SPI) SPI是一个任意的32位值,它与目的IP地址和安全协议(ESP)结合,唯一标识了这个数据包的SA。
(2)Sequence Number 一个32位无符号整型数值。在一个SA刚刚建立时,此数位被初始化为0,并且随着数据包的发送而递增。即使在不执行抗重播服务的情况下,发送方仍然发送序列号。接收方可以利用此数值确认一系列数据包的正确序列。
(3)Payload Data 是一个变长的字段,它包含了Next Header字段所描述的数据。PayloadData字段是强制性的,它的长度是字节的整数倍。如果用于加密载荷的算法需要密码同步数据,例如初始向量(IV),那么这个数据可以显式地装载在载荷字段中。ESP强制实现的基本加密算法是DES-CBC。
(4)Padding 根据特定的加密算法要求,可能会增加填充位。加密算法要求明文是某个数的整数倍,可能是加密算法的输出不是4字节的整数倍。也可能是出于安全的考虑,故意对明文进行填充修改。
(5)Pad Length 填充长度字段指出了其前面紧靠着的填充字节的个数。有效值范围是0~255,其中0表明没有填充字节,填充长度字段是强制性的。
(6)Next Header 是一个8比特的字段,它标识载荷字段中包含的数据类型。该字段值属于IANA Assigned Numbers中定义的IP协议号集合。字段是强制性的。
(7)Authentication Data 这是一个变长的字段,它包含一个完整性校验位(ICV),该校验值是对ESP报文除认证数据外的计算。该字段的长度由选择的验证算法决定。对于ESP来说,该字段是可选的,选择了验证服务时才包含该字段。为了兼容性考虑,ESP强制实现HMAC-MD5 -96和HMAC-SHA -1 -96两种验证算法。
2.ESP封装
在传输模式中,ESP保护的是IP包的上层协议,如TCP和UDP两个需要通信的终端计算机在彼此之间直接运行IPSec协议。通信连接的端点就是IPSec协议的端点。中间设备不做出任何IPSec处理。(www.xing528.com)
在建立好ESP头和尾,并填充了各个字段之后,ESP头被放在原始IP头和原始载荷之间,并后缀ESP尾。如果ESP提供加密服务,则原始载荷将以密文的形式出现。传输模式ESP封装如图5.67所示。
图5.67 传输模式ESP封装
而在隧道模式中,ESP保护的是整个IP包,如图5.68所示。
整个原始IP包将会以ESP载荷的方式加入新建隧道数据包。同时,系统根据隧道起点和终点等参数,建立一个隧道IP头,作为隧道数据包的IP头。ESP头夹在隧道IP头和原始IP包之间,并后缀ESP尾。如果ESP提供加密服务,则原始IP包将以密文的形式出现。
3.ESP处理机制
ESP的处理流程与AH非常相似。
图5.68 隧道模式ESP封装
(1)出站包处理 当系统通过SPD了解到一个IP包需要获得ESP服务时,就开始寻找相应的SA。如果这个SA不存在,就呼叫IKE去建立个SA;如果这个SA存在,就利用这个SA提供ESP安全服务。
在ESP中,如果同时使用加密和验证,则验证在加密之后进行。系统首先选择正确的加密算法,对报文进行加密。除了必要加密的载荷之外,加密的内容还包括了Padding,Pad Length和Next Heade字段。
然后,如同AH中一样,建立序列号、写入ESP头并计算ICV。请注意,与AH不同的是,ESP校验的内容只包括从ESP头到ESP尾的部分,而不包括IP地址。然后将ICV写入ESP尾之后的Authentication Data字段,建立完整的ESP封装数据包,并发送之。
(2)入站包处理 与AH类似,首先系统试图重组被分段的数据包。然后利用三元组信息查找SA。如果SA的抗重播服务被启动,则检查序列号的合法性。
通过序列号核查之后,首先进行的是完整性和来源验证。不通过此项验证的数据包将被丢弃。通过完整性检查的包将交付给加密算法进行解密,并用最终结果还原出原本的上层协议报文或IP报文。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。