IP安全 SEC VPN_2

IPSec协议框架

IPsec 不是一个单一协议,而是一个框架,包含三个核心标准协议:

  • ESP(Encapsulating Security Payload) :真正干活的"保镖",负责加密和完整性校验,保护用户数据。

  • AH(Authentication Header) :只负责完整性校验和身份认证,不加密(现网很少单独使用)。

  • IKE(Internet Key Exchange) :幕后"管家",负责自动协商出 ESP/AH 工作所需的各种参数(密钥、算法、SPI 等)。

一句话 :IKE 负责"谈好条件",ESP/AH 负责"按条件执行"。绝大数现网 VPN 只用 IKE + ESP,AH 几乎被淘汰。

完整工作流程(以 IKEv1 主模式 + ESP 隧道模式为例)

bash 复制代码
1. 触发 VPN 流量(如访问对端子网)
   ↓
2. IKE 第一阶段(主模式)
   ├─ 消息1-2:明文协商 IKE 策略(加密算法、哈希、DH组等)
   ├─ 消息3-4:DH 交换 → 计算出 DH 共享密钥,生成随机数
   └─ 消息5-6:在加密隧道中交换身份和认证数据 → 建立 IKE SA
   ↓
3. IKE 第二阶段(快速模式)
   ├─ 在 IKE SA 保护下,协商感兴趣流(ACL)、新随机数
   ├─ 使用 SKEYID_d + 随机数派生出 ESP 加密密钥和认证密钥
   └─ 建立一对 IPsec SA(入方向和出方向)
   ↓
4. 数据包处理(以 ESP 隧道模式为例)
   ├─ 原始 IP 包(如 PC→Server)
   ├─ 防火墙/网关根据 ACL 匹配,决定送入 IPsec 隧道
   ├─ 查找出方向的 IPsec SA,获得 SPI、加密密钥、认证密钥
   ├─ 对原始 IP 包加密,加上 ESP 头和尾,计算 ICV
   ├─ 封装在新的 IP 头中(源=本端公网IP,目的=对端公网IP,协议=50)
   └─ 发送到公网
   ↓
5. 接收端处理
   ├─ 收到协议 50 的包,提取 SPI,查找入方向的 IPsec SA
   ├─ 验证序列号(抗重放)
   ├─ 验证 ICV(完整性)
   ├─ 解密载荷
   └─ 还原原始 IP 包,转发给内网服务器

在IPsec VPN中,IKE(Internet Key Exchange)是唯一的"谈判官"和"信使"。两台防火墙之间所有关于"如何保护数据"的细节------用什么加密算法、用什么哈希算法、用什么密钥、保护哪些流量、多长时间换一次密钥------都必须由IKE协议来承载和传递。没有IKE,就没有自动协商,只能靠手工配置(现网基本不用)。

一句话:IKE负责所有控制层面的沟通,数据层面(ESP/AH)只管"埋头干",不问"怎么干"。

IKE的协商

IKE主模式的前4条消息确实是明文发送的,其中包含了DH公共值(ga mod p 和 gb mod p)和随机数(Nonce)

这正是IKE协议的精妙所在。它的设计前提,就是让DH交换在公开的、不安全的信道上完成,并且交换的内容是安全的。

IKE(Internet Key Exchange)的前期交换(IKE_SA_INIT / 主模式前4个包)确实是明文传输。但这并不危险,因为:

  1. 真正敏感的"身份信息"(ID、预共享密钥哈希)在加密的交换阶段才发送。

  2. 用于生成加密密钥的DH公开值(公钥)即使明文泄露,也无法反向计算出共享密钥(离散对数难题)。

  3. 设计之初就假设网络是"可窃听但不可篡改"的(只防被动攻击,不防中间人) -- 中间人攻击需要靠预共享密钥或证书来防范。

底层原理 & 设计逻辑(以IKEv1为例)

IKEv1主模式(Main Mode)交换分3个"交换对",共6个包:

交换对 报文内容 是否加密 泄露风险
1 (包1-2) IKE策略提议(加密算法、哈希算法、DH组、认证方式) ❌ 明文 低 -- 攻击者知道你在用什么算法,无法直接破解
2 (包3-4) DH公开值 (ga mod p)、Nonce(随机数) ❌ 明文 极低 -- 离散对数难题 :知道g^a mod pg^b mod p,无法算出g^{ab} mod p(DH共享密钥)
3 (包5-6) 身份ID(IP或FQDN)、认证数据(预共享密钥哈希或证书签名) 已加密 无 -- 此时双方已用DH共享密钥 + Nonce 派生出SKEYID_e(加密密钥),报文加密

IKE SA与IPSec SA

IKE SA 是"控制通道",IPsec SA 是"数据通道"。

IKE SA 负责安全地协商 出用于加密数据流的密钥和参数;IPsec SA 则使用这些参数实际加密传输业务数据。两者是"司令官"与"士兵"的关系:司令(IKE SA)下达作战方案后,士兵(IPsec SA)执行加密传输任务。



IKE SA状态检测机制

IKE SA 状态检测(DPD / Heartbeat)的本质是:在无连接的 UDP 协议(IKE 基于 UDP 500/4500)之上,模拟"心跳"机制来探测对端是否存活。

由于 IKE 协议本身没有 Keepalive 机制,当一端崩溃、链路断开或设备重启,另一端会一直保留"僵尸"IKE SA,误以为通道正常,导致业务数据发向黑洞而丢包。DPD(Dead Peer Detection,对等体失效检测)和 Heartbeat 就是填补这个空白的"探针"。



IPSec VPN


IPSec VPN 点到点应用场景


IPSec VPN点到多点应用场景


IPsec隧道两端用于定义"保护流"的ACL规则,必须互为镜像

比如,如果有A和B两个站点,你在A端设置ACL规则为"源192.168.1.0 → 目的192.168.2.0",那么在B端你就必须设置ACL规则为"源192.168.2.0 → 目的192.168.1.0"。这样两端定义的ACL就形成了互相映射的关系,才能保证加密流正常封装。

为什么必须这样做?

IPsec要保护的数据流,理论上包括从A端到B端的通信,也包括从B端回A端的通信。如果只有一端配置了流向规则,另一方没有对应的反向规则,会导致SA无法建立,或者只能单向通信。只有两端都正确配置了镜像ACL,无论哪一端先发起通信协商,都能成功建立隧道。



IPSec VPN点到多点应用场景


GRE over IPSec应用场景

相关推荐
小a彤15 小时前
昇腾NPU性能调优实战:从瓶颈识别到优化策略
网络·cann
Kay_Liang16 小时前
VirtualBox NAT 网络实现三台虚拟机互联踩坑实录
网络·windows·笔记·ubuntu·网络安全
国科安芯16 小时前
国科安芯AS32A601芯片及ANSIC-EVB601开发平台获OneWo-zepLinux全面适配支持
网络·单片机·嵌入式硬件·risc-v·安全性测试
2401_8685347816 小时前
My Experience in the Computer Room
安全
ACP广源盛1392462567316 小时前
OpenAI 推出的 GPT-5.5 大模型,倒逼接口芯片升级迭代@ACP#IX8024应用迭代
网络·人工智能·嵌入式硬件·电脑·音视频
ACP广源盛1392462567316 小时前
OpenAI 推出的 GPT-5.5 大模型,倒逼接口芯片升级迭代@ACP#IX8012应用迭代
大数据·网络·人工智能·嵌入式硬件·电脑·音视频
是三旬老汉。16 小时前
从传感器到推理端:VLA 机器人 TCP 通信与 msgpack 序列化深度解析
python·网络协议·tcp/ip·机器人
stsdddd16 小时前
【YOLO安防防护场景安全帽-安全背心目标检测数据集】
安全·yolo·目标检测
Chris _data16 小时前
C# 与 PLC Modbus RTU 通信实践:从单例到线程安全的连接监控
开发语言·安全·c#