TCP-IP详解:AH(Authentication Header)
2016-09-29 08:22
1026 查看
参考教材:TCP-IP Guide
IPSec核心协议是AH和ESP,本文主要介绍下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
![](https://img-blog.csdn.net/20160928233508652)
隧道模式下的AH 数据包封装,这种模式把整个数据包都进行封装,然后再源的IP header之前增加AH header,然后再增加一个新的IPV4 header完成封装
![](https://img-blog.csdn.net/20160928234227474)
![](https://img-blog.csdn.net/20160928234631106)
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
中。下图是传出模式
![](https://img-blog.csdn.net/20160929075610740)
隧道模式下认证,同样也是对整个数据包进行认证。
![](https://img-blog.csdn.net/20160929080949330)
2. 产生或增加序列号,当一个新的SA建立时,序列号计数器初始化为0,以后每发一个分组,序列号加1
3.计算ICV(完整性校验值)
4.转发分组到目的节点
2.使用IP分组头中的SPI、目的IP地址以及IPSec协议在进入的SA数据库中查找SA,如果查找失败,则抛弃该分组,并记录事件。
3.使用已查到的SA进行IPSec处理
4.使用分组中的选择符进入SPD查找一条域选择符匹配的策略,检查策略是否相符
5.检查序列号,确定是否为重放分组
6.使用SA指定的MAC算法计算ICV,并与认证数据域中的ICV比较,如果两值不同,则抛弃分组
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 详解学习笔记--前言
- 网络常用名词缩写——摘自《TCP-IP详解_卷1_协议》
- 【TCP-IP详解卷一:协议】一、概述
- TCP/IP 详解 卷1 ch6 ICMP
- TCP/IP 详解 卷1 ch5 RARP
- TCP/IP 详解 卷1 ch4 ARP
- TCP/IP 详解 卷1 ch3 IP
- TCP/IP 详解 卷1 ch1
- 【协议】TCP/IP基础及详解
- TCP/IP 详解 卷1 ch10 Dynamic Routing Protocols
- TCP_IP详解-包封装
- TCP/IP三次握手详解
- 分享《TCP-IP详解-三卷》及《TCP/IP 技术大全》下载
- TCP,UDP,IP 详解
- TCP_IP详解-路由器与网桥_网关
- 《TCP/IP详解,卷2:实现》读书笔记-SOCKET的结构和系统调用
- tcp/ip 详解卷一,阅读随笔
- TCP / IP 详解 简介读书笔记
- TCP/IP 详解 卷1 ch2 链路层
- TCP/IP 详解 卷1 ch9 IP Routing