AH-RFC-2402
AH提供无连接完整性、数据验证和可选的反重放保护,不提供机密性。
AH的报头:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Header | Payload Len | RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Security Parameters Index (SPI) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number Field | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + Authentication Data (variable) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
AH是一种IP协议,在IP报头中用51表示。“下已报头”字段指出AH报头后面是什么内容。在传输模式下,这是被保护的上层协议(如UDP或TCP)的编号;在隧道模式下,这个值为4。
原始数据包:
BEFORE APPLYING AH ---------------------------- IPv4 |orig IP hdr | | | |(any options)| TCP | Data | ----------------------------
传输模式下,加了AH验证的数据包:
AFTER APPLYING AH --------------------------------- IPv4 |orig IP hdr | | | | |(any options)| AH | TCP | Data | --------------------------------- |<------- authenticated ------->| except for mutable fields
AH适用于传输模式。
IPv6模式:
原始数据包:
BEFORE APPLYING AH --------------------------------------- IPv6 | | ext hdrs | | | | orig IP hdr |if present| TCP | Data | ---------------------------------------
加了AH后的数据包:
AFTER APPLYING AH ------------------------------------------------------------ IPv6 | |hop-by-hop, dest*, | | dest | | | |orig IP hdr |routing, fragment. | AH | opt* | TCP | Data | ------------------------------------------------------------ |<---- authenticated except for mutable fields ----------->|
隧道模式下:
IPv4:
------------------------------------------------ IPv4 | new IP hdr* | | orig IP hdr* | | | |(any options)| AH | (any options) |TCP | Data | ------------------------------------------------ |<- authenticated except for mutable fields -->| | in the new IP hdr |
IPv6:
-------------------------------------------------------------- IPv6 | | ext hdrs*| | | ext hdrs*| | | |new IP hdr*|if present| AH |orig IP hdr*|if present|TCP|Data| -------------------------------------------------------------- |<-- authenticated except for mutable fields in new IP hdr ->|
“有效负载长度”字段指出了AH报头的长度。“保留”字段未被使用,因此被设置为零。SPI和序列号的作用与ESP中相同。验证摘要同ESP有一个重要的不同:在AH中,对IP报头和有效负载进行验证。由于AH根据包括IP报头在内的整个分组计算验证数据,而有些IP字段在传输过程中会发生变化,因此计算验证摘要时将把IP报头中传输过程中可能发生变化的字段排除在外。被排除在外的字段包括服务类型(Tos)Type of Service (TOS)、标记Flags、分段偏移Fragment Offset、存活时间(TTL)Time to Live (TTL)和报头校验和Header Checksum。之所以将这些字段排除在外,是因为验证在传输过程中被修改的值(如TTL)将导致验证散列值与发送方的不同,进而导致分组被丢弃。