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比较,如果两值不同,则抛弃分组







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值