ESP(IPSec Encapsulating Security Payload)
ESP相比AH来讲,拥有我们想要的加密功能,协议会通过加密算法将数据和Key将数据进行组合,转换成加密格式,然后送给目的端,先来看下几个比较重要的域。
1. ESP Header : 主要是包括SPI和Seq number,放在加密数据之前
2. ESP Trailer:被放置在加密数据之后,包括一个填充区域和填充长度以及一个Next Header, 这个地方比较特殊,ESP header中没有Next Header放在Trailer中
3. ESP Authentication Data : 必须是32bit的整数倍,是在前面个字段基础上计算的出来的完整性校验值ICV。
ESP的数据封装格式如下:
传输模式的ESP数据封装:
1. 原始的IPV4数据包IP header 中,proto是TCP,指向下一个的TCP header
2. 新的IPV4数据包,可以看到IP Header的proto为ESP,紧接着是ESP的SPI Seq,然后是加密的TCP header和Payload,后面就是ESP trailer
3. 在后面是ICV,验证整个数据包
隧道模式的ESP数据封装
1.原始的IPV4数据包IP header 中,proto是TCP,指向下一个的TCP header
2.新的IP header proto为ESP,然后ESP的trailer的Next Head为整个加密数据的IP头
ESP在不同模式下的认证和传输区域
1.传输模式下,红色区域便是加密区,TCP和载荷数据以及ESP尾,黄色区域是验证区包括:ESP和TCP,载荷数据和ESP尾。这个地方IP Header是不被加密和验证的。
2.隧道模式下的认证和传输区域
红色区域是加密区域,整个数据包加ESP尾, 黄色区域是验证区域,这些区域内的数据是不能被修改的。