认识
IKEv2 简化 IKEv1 协商 SA 的过程。
Q:为什么不能单独用 IKEv2?
A:IKEv2(Internet Key Exchange version 2)本身是 IPSec 的一部分,专门用于协商和建立 IPSec 安全关联(SA)。它不能单独提供 VPN 功能,必须与 IPSec 配合使用。IKEv2 是 IPSec 的“控制层”,而 IPSec 是“数据层”。两者必须配合使用。IKEv2 无数据传输能力(IKEv2 只负责密钥交换和隧道管理,不封装或加密用户数据)。IKEv2 依赖 IPSec 的 ESP/AH(用户数据必须通过 IPSec 的 ESP(Encapsulating Security Payload) 或 AH(Authentication Header) 协议加密/认证)。
Q:常见的“IKEv2 VPN”实际是什么?
A:当人们说“IKEv2 VPN”时,通常指的是 IKEv2/IPSec VPN(使用 IKEv2 进行密钥交换,使用 IPSec(ESP)加密数据)
组成
IKEv2 定义三种类型交换:
- 初始交换(Initial Exchanges);
- 创建子 SA 交换(Create_Child_SA Exchange);
- 通知交换(Informational Exchange);
IKEv2 通常使用 2 次交换共 4 条消息就可以完成一对 IPsec SA 的建立。如果要求建立的 IPsec SA 大于一对时,每一对 IPsec SA 只需额外增加 1 次创建子 SA 交换,也就是 2 条消息就可以完成;
第一步、初始交换过程
通过初始交换,IKEv2 就可以完成第一对 IPsec SA 的协商建立。初始交换包含 2 次交换 4 条消息;
消息 ① 和 ② 属于第一次交换(称为 IKE_SA_INIT 交换),以明文方式完成 IKE SA 的参数协商,包括协商加密和验证算法,交换临时随机数和 DH 交换。IKE_SA_INIT 交换后生成一个共享密钥材料,通过该共享密钥材料可以衍生出 IPsec SA 的所有密钥;
消息 ③ 和 ④ 属于第二次交换(称为 IKE_AUTH 交换),以加密方式完成身份认证、对前两条信息的认证和 IPsec SA 的参数协商。IKEv2 支持 RSA 签名认证、预共享密钥认证、扩展认证方法 EAP(Extensible Authentication Protocol)。发起者通过在消息 3 中省去认证载荷来表明需要使用 EAP 认证;
第二步、创建 Child SA 交换
当一个 IKE SA 需要创建多对 IPsec SA 时,需要使用创建 Child SA 交换来协商多于一对的 IPsec SA。创建 Child SA 交换还可以用于 IKE SA 的重协商。
创建 Child SA 交换包含一个交换两条消息,对应 IKEv1 协商阶段 2,交换的发起者可以是初始交换的协商发起方,也可以是初始交换的协商响应方;
通知交换
针对运行 IKE 协商的两端,有时会传递一些控制信息(例如,错误信息、通告信息、……),在 IKEv2 中,通过通知交换,来完成该类信息的传递。
通知交换必须在 IKE SA 保护下进行,也就是说通知交换只能发生在初始交换后。
当通过 SA 保护控制信息时:
- 控制信息可能是属于 IKE SA 的,那么通知交换必须由该 IKE SA 来保护进行;
- 也可能是某 Child SA 的,那么该通知交换必须由生成该 Child SA 的 IKE SA 来保护进行;
性质
- IKEv2 has MOBIKE which is a standard for mobile clients that allows them to switch addresses dynamically.
- It also has built-in NAT traversal and
- standard mechanisms for reliability similar to DPD.