0Pricing
Cryptology Academy · 课时

IPsec:IKEv2、ESP 与 AH 协议

了解 IKEv2 密钥协商、ESP 加密与认证,以及 AH 完整性保护。

IPsec:IKEv2、ESP 与 AH 协议 是 CoddyKit 上的免费 Cryptology Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cryptology Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cryptology Academy 课程共包含 4 节课。

IPsec 协议套件概述

IPsec 不是单一协议,而是一套用于对 IP 流量进行身份验证和加密的标准。其主要组件包括:用于建立和管理安全关联的 IKE(互联网密钥交换)、用于加密和保证完整性的 ESP(封装安全载荷),以及用于在不加密的情况下保证完整性的 AH(身份验证头)。IPsec 工作在网络层,可以在不修改应用程序的情况下保护所有流量。

IKEv2 与 IKEv1

IKEv2(RFC 7296)以更简单、更高效的设计取代了 IKEv1。IKEv1 需要多种模式和多轮消息交换,而 IKEv2 使用统一的单一交换模型。IKEv2 还内置了 NAT 穿透、用于用户身份验证的 EAP 支持,以及用于应对移动 IP 地址变化的 MOBIKE,并且默认采用更强的安全设置。大多数现代 VPN 实现都使用 IKEv2。

IKE_SA_INIT 交换

IKE_SA_INIT 交换用于建立 IKE 安全关联。发起方会发送所支持的算法、Diffie-Hellman 密钥共享值和一个随机数。响应方选择算法,并发送自己的 DH 密钥共享值和随机数。双方计算出相同的共享密钥,并为 IKE SA 派生密钥。此交换会保护后续的 IKE_AUTH 阶段。

IKE_AUTH 交换

IKE_AUTH 交换用于对通信对端进行身份验证,并为实际流量创建第一个子 SA。身份验证可以使用 X.509 证书(安全性最高)、预共享密钥(PSK)或用于用户级身份验证的 EAP 方法。该交换还会协商子 SA 参数:流量选择器(需要保护的 IP 范围)、加密算法和完整性算法。

ESP:加密与完整性

ESP(封装安全载荷)是 IPsec 流量保护的核心组件。在隧道模式下,ESP 会将整个原始 IP 数据包封装到带有 ESP 头的新 IP 数据包中,同时提供加密和完整性保护。在传输模式下,ESP 只保护原始 IP 数据包的有效载荷,并保留原始 IP 头。现代部署中,ESP 推荐使用 AES-256-GCM 算法。

AH:身份验证头

AH(身份验证头)可以在不加密的情况下提供完整性和身份验证。它会覆盖原始 IP 头(ESP 不会覆盖),但这使 AH 与 NAT 不兼容,因为 NAT 会修改 IP 头字段。由于 AH 不提供机密性并且会破坏 NAT 穿透,因此实际应用很少。使用强 AEAD 算法的 ESP 比单独组合 AH 和加密能够提供更好的保护。

传输模式与隧道模式

在传输模式下,IPsec 保护两个端点之间的有效载荷,但会保留 IP 头可见。这适用于不需要隐藏路由信息的主机到主机通信。在隧道模式下,整个原始 IP 数据包会被封装到一个新数据包中,从而向观察者隐藏源地址和目的地址。VPN 网关始终使用隧道模式来连接网络,或将用户连接到网络。

IPsec 中的 NAT 穿透

标准 ESP 无法通过 NAT,因为 NAT 会修改 ESP 完整性保护所覆盖的 IP 头和端口号。IPsec 通过 NAT-T(NAT 穿透)解决了这一问题:它会在 IKE 交换期间检测 NAT,并将 ESP 数据包封装在 UDP 端口 4500 中。这个 UDP 外层封装允许 NAT 转换地址,而不会破坏 ESP 完整性验证。

安全关联数据库

IPsec 会维护一个安全关联数据库(SAD),其中存储所有活动 SA 的密钥、算法和生命周期。安全策略数据库(SPD)定义哪些流量应受到保护、绕过处理或被丢弃。当出站流量匹配 SPD 条目时,内核会在 SAD 中查找或创建相应的 SA,并应用指定的保护措施。

用于用户身份验证的 EAP 集成

IKEv2 中的 EAP(可扩展身份验证协议)支持超越证书和 PSK 的用户级身份验证方法。EAP-TLS 使用客户端证书,EAP-MSCHAPv2 使用用户名和密码(在 Windows 客户端中很常见),而 EAP-TTLS 则会在 TLS 会话中封装内部方法。许多企业 IPsec VPN 会对网关使用证书身份验证,并对各个用户使用 EAP。

IPsec 生命周期与重新密钥协商

安全关联具有以字节数和时间表示的生命周期限制。当子 SA 接近其生命周期上限时,IKEv2 会通过 CREATE_CHILD_SA 交换自动创建一个使用新密钥的 SA。这种重新密钥协商提供前向保密:即使当前密钥泄露,也不会暴露使用先前密钥加密的历史流量。IKE SA 的生命周期通常长于子 SA 的生命周期。

IPsec 模式选择

哪种 IPsec 模式会将整个原始 IP 数据包封装到一个新数据包中,从而隐藏原始源地址和目的地址?

IPsec IKEv2 回顾

IPsec 回顾:IKEv2 通过 IKE_SA_INIT(DH 密钥交换)和 IKE_AUTH(通信对端身份验证)建立安全关联;ESP 为流量提供加密且经过身份验证的隧道模式;由于与 NAT 不兼容,AH 很少使用;NAT-T 将 ESP 封装在 UDP 中以实现 NAT 穿透;自动重新密钥协商则在整个 VPN 会话生命周期内提供前向保密。

常见问题解答

「IPsec:IKEv2、ESP 与 AH 协议」课时是免费的吗?

是的 — 「IPsec:IKEv2、ESP 与 AH 协议」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cryptology Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cryptology Academy 课程共包含 4 节课。

「IPsec:IKEv2、ESP 与 AH 协议」这节课中我会学到什么?

了解 IKEv2 密钥协商、ESP 加密与认证,以及 AH 完整性保护。 你通过在浏览器中直接运行的动手代码来练习 Cryptology Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cryptology Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cryptology Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「IPsec:IKEv2、ESP 与 AH 协议」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cryptology Academy 课中编写并运行代码吗?

能。每节 Cryptology Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. IPsec:IKEv2、ESP 与 AH 协议
  2. WireGuard:ChaCha20 与 Curve25519 VPN
  3. OpenVPN:基于 TLS 的 VPN 架构
  4. VPN 协议比较:安全性与性能
← 返回 Cryptology Academy