IP.Protocol == 51
验证头(Authentication Header, AH) 是 IPSec 协议集合中的另个重要安全协议, 用于为 IP 提供 数据完整保护、 数据原始身份认证、防重放服务,但不提供机密性保护。
数据原始身份认证:AH 定义保护方法、 报头的位置、 身份验证的覆盖范围以及输出和输入处理规则, 但没有对所用的身份验证算法进行定义。
防重放服务:与 ESP 一样, AH 没有硬性规定防重放保护,是否使用防重放服务由接收端自行选择。发送端无法得知接收端是否会检查其序列号,其结果是发送端必须一直认定接收端正在采用防重放服务。
数据完整保护:AH 与 ESP 提供的数据完整性稍有不同; AH 对外部 IP Header 部分也会进行身份验证。
机密性保护:由于 AH 不提供机密性保证, 所以它也不需要加密算法,所 AH 头比 ESP 头简单得多。由于不需要填充和一个填充长度指示器, 因此也不存在尾部字段。 另外, 也不需要一个初始化向量。
封装结构
原始数据: | IP Header | Data | 传输模式: | IP Header | AH | Data | 隧道模式: | New IP Header | AH | IP Header | Data |
进行认证的部分:
1)传输模式:验证整个 IP 报文所有不变的部分(类似 TTL 等等,在传输过程中将发生改变的字段,不会被 AH 进行验证)
2)隧道模式:验证整个 IP 报文所有不变的部分,包括 New IP Header 在内(同理,依旧验证不变的部分)
报文格式
认证部分不包括:服务类型,分段偏移,存活时间,头校验和。鉴于源末地址会被校验,所以 AH 无法穿越 NAT 服务;
参考文献
IPsec – Wikipedia/
The TCP/IP Guide – IPSec Authentication Header (AH)