IPSec与其相关协议
IPSec与其相关协议
IPSec指IP安全协议,它为网络层提供安全性
就像SSL为运输层提供安全性一样,主要涉及AH协议、ESP协议、密钥交换协议IKE
IPSec能提供的安全服务:机密性、数据完整性、源鉴别和防止重放攻击
机密性:指数据能够安全地从发送端到接收端,不被窃取
源鉴别:指接收端收到数据后,可以鉴别出这份数据的来源
数据完整性:指接收端收到数据后,可以鉴别这份数据在运输过程有没有被篡改
防止重放攻击:指能够知道攻击方发送的任何冗余的数据包
这些功能与下面介绍的两种封装协议的数据报结构息息相关
AH协议
AH协议指认证头协议(Authentication Header), 它能够提供源鉴别服务、防止重放攻击、数据完整性服务,但是不能提供机密性服务。

AH封装协议协议号为51,它是嵌入在原始IP报文首部后面的
下一个头部:标识AH报文头后面的负载类型。
传输模式下,是被保护的上层协议(TCP或UDP)或ESP协议的编号;隧道模式下,是IP协议或ESP协议的编号。注意:当AH与ESP协议同时使用时,AH报文头的下一头部为ESP报文头。
SPI :安全参数索引,用于唯一标识IPSec安全关联(即表示一条源和目的实体的逻辑连接)
序列号:是一个从1开始的单项递增的计数器,唯一地标识每一个数据包,用于防止重放攻击
身份认证数据:其中包含数据完整性校验值 ICV(Integrity Check Value),用于接收方进行完整性校验。
ICV 是通过 IP 报头、AH 报头与 IP 负载来计算的。AH可对整个数据包(IP 报头与数据包中的数据负载)提供身份验证、完整性与抗重播保护。所以不论是传输模式还是隧道模式,AH协议都不能穿越nat设备。
ESP协议
ESP协议封装安全负载(IPsec Encapsulating Security Payload)
协议号50 能够提供机密性、数据完整性、源鉴别和防止重放攻击,故ESP的使用比AH协议要广泛得多
ESP在原始IP包头部后面加ESP首部
在DATA后加入ESP尾部(ESP Trailer 和ESP Authentication)

同样拥有下一个首部、序列号、SPI、身份认证数据字段
除此之外,还有
填充字段:因为块密码要求加密的报文必须是块长度的整数倍,有时候不是就需要填充
鉴别MAC(ESP Authentication):MAC指报文鉴别码(利用hash验证),用来检验图中Authenticationed字段,用于实现数据完整性
封装模式
运输模式和隧道模式
在传输模式中,AH头或ESP头被插入到IP头与传输层协议头之间,保护TCP/UDP/ICMP负载。传输模式不改变报文头。
在原IP头部之前插入ESP/AH头部,同时生成新的IP头部
新的ip头部也有源ip地址和目的ip地址,被设置为隧道两端路由器端口的ip地址
传输模式和隧道模式的区别在于:
- 从安全性来讲,隧道模式优于传输模式。它可以完全地对原始IP数据报进行验证和加密。隧道模式下可以隐藏内部IP地址,协议类型和端口。
- 从性能来讲,隧道模式因为有一个额外的IP头,所以它将比传输模式占用更多带宽。
AH和ESP对比

| 安全特性 | AH | ESP |
|---|---|---|
| 协议号 | 51 | 50 |
| 数据完整性校验 | 支持(验证整个IP报文) | 支持(不验证IP头) |
| 数据源验证 | 支持 | 支持 |
| 数据加密 | 不支持 | 支持 |
| 防报文重放攻击 | 支持 | 支持 |
| IPSec NAT-T(NAT穿越) | 不支持 | 支持 |
参考文档:
IKE :IPsec中的密钥管理
IKE指因特网密钥交换协议,对于一个小型的VPN,网络管理员可以手动键入SA信息,但是对于大的VPN,我们需要一个自动化的机制来生成SA,IKE就干这事。
IKE的握手过程和SSL有点像
第一阶段:通信双方协商和建立IKE本身使用的安全通道,IKE SA
第二阶段:利用这个已经认证的安全通道来建立一个IPsec SA

https://cshihong.github.io/2019/04/03/IPSec-VPN%E4%B9%8BIKE%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3/ IPSec VPN之IKE协议详解

浙公网安备 33010602011771号