ESP报头:
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---- | Security Parameters Index (SPI) | ^Auth. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Cov- | Sequence Number | |erage +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ---- | Payload Data* (variable) | | ^ ~ ~ | | | | |Conf. + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Cov- | | Padding (0-255 bytes) | |erage* +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | Pad Length | Next Header | v v +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ------ | Authentication Data (variable) | ~ ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv4传输模式下加载ESP的变化:
加载前:
BEFORE APPLYING ESP ---------------------------- IPv4 |orig IP hdr | | | |(any options)| TCP | Data | ----------------------------
加载后:
AFTER APPLYING ESP ------------------------------------------------- IPv4 |orig IP hdr | ESP | | | ESP | ESP| |(any options)| Hdr | TCP | Data | Trailer |Auth| ------------------------------------------------- |<----- encrypted ---->| |<------ authenticated ----->|
IPv6传输模式下加载ESP的变化:
加载前:
BEFORE APPLYING ESP --------------------------------------- IPv6 | | ext hdrs | | | | orig IP hdr |if present| TCP | Data | ---------------------------------------
加载后:
AFTER APPLYING ESP --------------------------------------------------------- IPv6 | orig |hop-by-hop,dest*,| |dest| | | ESP | ESP| |IP hdr|routing,fragment.|ESP|opt*|TCP|Data|Trailer|Auth| --------------------------------------------------------- |<---- encrypted ---->| |<---- authenticated ---->|
隧道模式下加载ESP的变化:
IPv4:
----------------------------------------------------------- IPv4 | new IP hdr* | | orig IP hdr* | | | ESP | ESP| |(any options)| ESP | (any options) |TCP|Data|Trailer|Auth| ----------------------------------------------------------- |<--------- encrypted ---------->| |<----------- authenticated ---------->|
IPv6:
------------------------------------------------------------ IPv6 | new* |new ext | | orig*|orig ext | | | ESP | ESP| |IP hdr| hdrs* |ESP|IP hdr| hdrs * |TCP|Data|Trailer|Auth| ------------------------------------------------------------ |<--------- encrypted ----------->| |<---------- authenticated ---------->|
ESP报头中的安全参数索引(SPI)是一个32位的值,它同前面的IP报头中的目标地址和协议一起指出了用于处理分组的安全关联(SA)。SPI是目标对等体在Internet密钥交换(IKE)协商期间随意选择的一个数字。其功能类似于索引号,可用于在安全关联数据库(SADB)中查找SA。
序列号是由发送方插入到ESP报头中的,它是一个唯一的单调递增数字。序列号和接收滑动窗口一起提供了反重放服务。这种反重放保护机制是ESP和AH通用的。
被保护的数据(具体地说是被ESP加密的数据)位于有效负载数据字段中。用来对有效负载进行加密的算法可能需要一个初始化向量(IV),它也放在有效负载数据字段中。注意,对IV进行验证但不进行加密。如果使用的加密算法是DES,则被保护的数据字段的前8个字节为IV;3DES和AES也使用8字节的IV。
ESP报头中的“填充”字段用于增加ESP报头的位数,填充的位数取决于使用的加密算法。“填充长度”字段指出了填充的字节数,以便解密时能够恢复原始数据。
"下一报头"指出了有效负载中的数据类型。例如,如果是在隧道模式下使用ESP,这个值为4。
ESP报头中的验证摘要用于验证数据完整性。由于验证总是在加密后进行的,因此收到分组后先检查数据的有效性,然后再解密。
ESP:机密性,完整性,源认证,反重放。
原文:http://www.cnblogs.com/Tiphannie/p/5109312.html