ikev2
RFC 5996 - Internet Key Exchange Protocol Version 2 (IKEv2) (ietf.org)https://datatracker.ietf.org/doc/html/rfc5996定义在RFC4306,更新于RFC5996
不兼容IKEV1,ikev1不支持认证,ikev2支持认证,eap。
支持nat穿越
支持私密性、完整性、源认证
工作在UDP500端口NAT-T时使用UDP4500端口。
初始交换
正常情况下,IKEv2通过初始交换就可以完成第一对IPSec SA的协商建立。IKEv2初始交换对应IKEv1的第一阶段,初始交换包含两次交换四条消息
消息①和②属于第一次交换(称为IKE_SA_INIT交换),以明文方式完成IKE SA的参数协商,包括协商加密和验证算法,交换临时随机数和DH交换。IKE_SA_INIT交换后生成一个共享密钥材料,通过这个共享密钥材料可以衍生出IPSec SA的所有密钥。
消息③和④属于第二次交换(称为IKE_AUTH交换),以加密方式完成身份认证、对前两条信息的认证和IPSec SA的参数协商。IKEv2支持RSA签名认证、预共享密钥认证以及扩展认证方法EAP(Extensible Authentication Protocol)。发起者通过在消息3中省去认证载荷来表明需要使用EAP认证。
RFC4306节选:
使用 IKE 的通信总是从 IKE_SA_INIT 和 IKE_AUTH 交换开始(在 IKEv1 中称为阶段 1)。 这些初始交换通常由四个消息组成,但在某些情况下,数量可能会增加。 所有使用 IKE 的通信都由请求/响应对组成。 我们将首先描述基础交换,然后是变体。 第一对消息 (IKE_SA_INIT) 协商加密算法,交换随机数,并进行 Diffie-Hellman 交换 [DH]。
第二对消息 (IKE_AUTH) 验证先前的消息,交换身份和证书,并建立第一个 CHILD_SA。 这些消息的一部分通过 IKE_SA_INIT 交换建立的密钥进行加密和完整性保护,因此对窃听者隐藏身份,并且所有消息中的所有字段都经过身份验证。
初步交流如下: Initiator Responder ----------- ----------- HDR, SAi1, KEi, Ni --><-- HDR, SAr1, KEr, Nr, [CERTREQ]HDR 包含各种安全参数索引 (SPI)、版本号和标志。 SAi1 载荷携带发起方为 IKE_SA 支持的加密算法。 KE 载荷携带发起者的 Diffie-Hellman 值(K值)。 Ni是发起者的nonce。
响应者从发起者提供的选项中选择一个加密套件,并在 SAr1 有效负载中表达该选择,完成与 KEr 有效负载的 Diffie-Hellman 交换,并在 Nr 有效负载中发送其随机数。
Notation Payl