您的当前位置:首页正文

密钥交换协议之IKEv2

2021-06-25 来源:保捱科技网
密钥交换协议之IKEv2

1. IKEv2

1.1 IKEv2简介

IKEv2(Internet Key Exchange Version 2,互联⽹密钥交换协议第 2 版)是第 1 版本的 IKE 协议(本⽂简称 IKEv1)的增强版本。 IKEv2与 IKEv1 相同,具有⼀套⾃保护机制,可以在不安全的⽹络上安全地进⾏⾝份认证、密钥分发、建⽴ IPsec SA。相对于 IKEv1, IKEv2 具有抗攻击能⼒和密钥交换能⼒更强以及报⽂交互数量较少等特点。

1.2 IKEv2的协商过程

要建⽴⼀对 IPsec SA, IKEv1 需要经历两个阶段,⾄少需要交换 6 条消息。在正常情况下, IKEv2只需要进⾏两次交互,使⽤ 4 条消息就可以完成⼀个 IKEv2 SA 和⼀对 IPsec SA 的协商建⽴,如果要求建⽴的 IPsec SA 的数⽬⼤于⼀对,则每增加⼀对 IPsec SA 只需要额外增加⼀次交互,也就是两条消息就可以完成,这相⽐于 IKEv1 简化了设备的处理过程,提⾼了协商效率。

IKEv2 定义了三种交互:初始交换、创建⼦ SA 交换以及通知交换。下⾯简单介绍⼀下 IKEv2 协商过程中的初始交换过程。

如上图所⽰,IKEv2的初始交换过程中包含两个交换:IKE_SA_INIT交换(两条消息)和 IKE_AUTH交换(两条消息)。

IKE_SA_INIT 交换:完成 IKEv2 SA 参数的协商以及密钥交换;

IKE_AUTH 交换:完成通信对等体的⾝份认证以及 IPsec SA 的创建。这两个交换过程顺序完成后,可以建⽴⼀个 IKEv2 SA 和⼀对IPsec SA。

创建⼦ SA 交换:当⼀个 IKE SA 需要创建多个 IPsec SA 时,使⽤创建⼦ SA 交换来协商多于⼀个的 SA,另外还可⽤于进⾏ IKE SA 的重协商功能。

通知交换:⽤于传递控制信息,例如错误信息或通告信息。

1.3 IKEv2 引⼊的新特性

1.3.1 IKEv2 ⽀持DH猜想

在 IKE_SA_INIT 交换阶段,发起⽅采⽤“猜”的办法,猜⼀个响应⽅最可能使⽤的 DH 组携带在第⼀条消息中发送。响应⽅根据发起⽅“猜”的DH 组来响应发起⽅。如果发起⽅猜测成功,则这样通过两条消息就可以完成 IKE_SA_INIT 交换。如果发起⽅猜测错误,则响应⽅会回应⼀个INVALID_KE_PAYLOAD 消息,并在该消息中指明将要使⽤的 DH 组。之后,发起⽅采⽤响应⽅指定的 DH 组重新发起协商。这种 DH猜想机制,使得发起⽅的 DH 组配置更为灵活,可适应不同的响应⽅。1.3.2 IKEv2 ⽀持cookie-challenge机制

在 IKE_SA_INIT 交换中消息是明⽂传输的,响应⽅接收到第⼀个消息后⽆法确认该消息是否来⾃⼀个仿冒的地址。如果此时⼀个⽹络攻击者伪造⼤量地址向响应⽅发送 IKE_SA_INIT 请求,根据IKEv1 协议,响应⽅需要维护这些半开的 IKE 会话信息,从⽽耗费⼤量响应⽅的系统资源,造成对响应⽅的 DoS 攻击。IKEv2 使⽤ cookie-challenge 机制来解决这类 DoS 攻击问题。当响应⽅发现存在的半开 IKE SA 超过指定的数⽬时,就启⽤cookie-challenge机制。响应⽅收到IKE_SA_INIT请求后,构造⼀个Cookie通知载荷并响应发起⽅,若发起⽅能够正确携带收到的 Cookie 通知载荷向响应⽅重新发起IKE_SA_INIT 请求,则可以继续后续的协商过程。半开状态的 IKEv2 SA 是指那些正在协商过程中的 IKEv2 SA。 若半开状态的 IKEv2 SA 数⽬减少到阈值以下,则 cookie-challenge 功能将会停⽌⼯作1.3.3 IKEv2 SA重协商

为了保证安全, IKE SA 和 IPsec SA 都有⼀个⽣存时间,超过⽣存时间的 SA 需要重新协商,即 SA的重协商。与 IKEv1 不同的是, IKEv2 SA 的⽣存时间不需要协商,由各⾃的配置决定,重协商总是由⽣存时间较⼩的⼀⽅发起,可尽量避免两端同时发起重协商造成冗余 SA 的⽣成,导致两端 SA状态不⼀致。

1.3.4 IKEv2 报⽂确认重传机制

与 IKEv1 不同,IKEv2 中所有消息都是以“请求–响应”对的形式出现, IKEv2 通过消息头中的⼀个 Message ID 字段来标识⼀个“请求–响应”对。发起⽅发送的每⼀条消息都需要响应⽅给予确认,例如建⽴⼀个 IKE SA ⼀般需要两个“请求-响应”对。如果发起⽅在规定时间内没有接收到确认报⽂,则需要对该请求消息进⾏重传。 IKEv2 消息的重传只能由发起⽅发起,且重传消息的 MessageID 必须与原始消息的 Message ID ⼀致。

3.4 协议规范

与 IKEv2 相关的协议规范有:

• RFC 2408: Internet Security Association and Key Management Protocol (ISAKMP)

• RFC 4306: Internet Key Exchange (IKEv2) Protocol • RFC 4718: IKEv2 Clarifications and Implementation Guidelines• RFC 2412: The OAKLEY Key Determination Protocol

• RFC 5996: Internet Key Exchange Protocol Version 2 (IKEv2)

因篇幅问题不能全部显示,请点此查看更多更全内容