「IPSEC-VPN」 – IKEv2 | IKE version 2 | Internet Key Exchange version 2

认识

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 定义三种类型交换:

  1. 初始交换(Initial Exchanges);
  2. 创建子 SA 交换(Create_Child_SA Exchange);
  3. 通知交换(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.