TCP-IP详解:AH(Authentication Header)

Posted CQ小子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP-IP详解:AH(Authentication Header)相关的知识,希望对你有一定的参考价值。

参考教材:TCP-IP Guide

IPSec核心协议是AH和ESP,本文主要介绍下AH协议的数据封装与传输

AH(Authentication Header)

这个协议主要是用来提供数据完整性校验和源校验,即只提供校验功能,并没有提供加密功能,我们知道对于这种虚拟的私有网络,实际上是公网上虚拟出来的隧道,核心在于要对对应协议的数据包进行IP层的封装,让其仍然变成IP包,然后在公网上传输,所以先看下AH协议不同模式下封装的数据

可以看到下图,传输模式下IPv4的AH协议封装的数据包,原始的数据包是一个IP header 紧接着一个TCP header,然后就是data,AH协议封装的数据包,会在IP Header 和TCP Header之间增加一个AH header,IP header的协议变成51 AH协议,AH header下一个header协议为 6 TCP header


隧道模式下的AH 数据包封装,这种模式把整个数据包都进行封装,然后再源的IP header之前增加AH header,然后再增加一个新的IPV4 header完成封装


AH的头


1. Next Header : AH header的下一个头部的协议号

2. Payload Length:AH header的长度

3. Reserverd: 保留

4. SPI : 安全的参数,目的地址和安全协议类型的组合,用于识别对这个包进行验证的安全联盟

5. Sequence Number:  单调增加的32位无符号整数,利用该域抵抗重发攻击(Replay Attack)

6. Authentication Data: 是一个长度可变的域,长度为32比特的整数倍。具体格式因认证算法而异 。该认证数据也被称为数据报的完整性校验值(ICV)

数据流程认证流程,从图中可以看出是对整个数据包进行认证,使用一个密钥通过单项散列函数输出认证后的数据,这些认证后的数据都会放到AH的header

中。下图是传出模式

隧道模式下认证,同样也是对整个数据包进行认证。



输出处理

1.使用相应的 选择符(目的IP地址,端口号和传输协议)查找安全策略数据库获取策略。如需要对分组进行IPSec处理,且到目的主机的SA已经建立,那么符合分组选择符的SPD将指向外出SA数据库的一个相应SA束。如果SA还未建立,IPSec将调用IKE协商一个SA,并将其连接到SPD条目上。 2.  产生或增加序列号,当一个新的SA建立时,序列号计数器初始化为0,以后每发一个分组,序列号加1 3. 计算ICV(完整性校验值) 4.转发分组到目的节点

输入处理

1. 若IP分组采用了分片处理,要等到所有分片到齐后重组
2. 使用IP分组头中的SPI、目的IP地址以及IPSec协议在进入的SA数据库中查找SA,如果查找失败,则抛弃该分组,并记录事件。 3.使用已查到的SA进行IPSec处理 4. 使用分组中的选择符进入SPD查找一条域选择符匹配的策略,检查策略是否相符 5.检查序列号,确定是否为重放分组 6. 使用SA指定的MAC算法计算ICV,并与认证数据域中的ICV比较,如果两值不同,则抛弃分组






以上是关于TCP-IP详解:AH(Authentication Header)的主要内容,如果未能解决你的问题,请参考以下文章

《TCP-IP详解卷1:协议》PDF下载

《TCP-IP详解卷2:实现》PDF下载

《TCP-IP详解卷3:TCP 事务协议HTTPNNTP和UNIX域协议》PDF下载

TCP-IP详解 卷2 :实现 pdf下载

TCP-IP详解:滑动窗口(Sliding Window)

TCP-IP详解:IPSec OverView