IPSec之IKEV2协商过程解析

IKEv2协商流程IKEv2交换的初始阶段实际上,IKEv2只有两个初始协商阶段:

IKE_SA_INIT交换

IKE_AUTH交换

IKE_SA_INIT交换:1234 Initiator Responder----------- -----------HDR, SAi1, KEi, Ni --> <-- HDR, SAr1, KEr, Nr, [CERTREQ]

带COOKIE notify:

123456789101112131415 Initiator Responder----------- -----------HDR(A,0), SAi1, KEi, Ni --> <-- HDR(A,0), N(COOKIE)HDR(A,0), N(COOKIE), SAi1, KEi, Ni --> <-- HDR(A,B), SAr1, KEr, Nr, [CERTREQ]HDR(A,B), SK {IDi, [CERT,] [CERTREQ,] [IDr,] AUTH, SAi2, TSi, TSr} --> <-- HDR(A,B), SK {IDr, [CERT,] AUTH, SAr2, TSi, TSr}

IKE_SA_INIT是对等体在其中建立安全信道的初始交换。完成初始交换后,所有进一步的交换都将加密。交换仅包含两个数据包,因为它将IKEv1中通常在MM1-4中交换的所有信息合并在一起。因此,响应方处理IKE_SA_INIT数据包的计算成本很高,可以离开以处理第一个数据包;它使协议对欺骗地址的DOS攻击保持开放。

为了防止此类攻击,IKEv2在IKE_SA_INIT内有一个可选交换,以防止欺骗攻击。如果达到不完整会话的特定阈值,响应方不会进一步处理数据包,而是使用cookie向发起方发送响应。要使会话继续,发起方必须重新发送IKE_SA_INIT数据包并包括其收到的cookie。

发起方重新发送初始数据包以及响应方的通知负载,证明原始交换未欺骗。

IKE_AUTH交换1234567 Initiator Responder----------- -----------HDR, SK {IDi, [CERT,][CERTREQ,] [IDr,]AUTH, SAi2, TSi, TSr} --> <-- HDR, SK {IDr, [CERT,] AUTH, SAr2, TSi, TSr}

在IKE_SA_INIT交换完成后,IKEv2 SA被加密;但是,远程对等体尚未通过身份验证。IKE_AUTH交换用于对远程对等体进行身份验证并创建第一个IPsec SA。

交换包含互联网安全关联和密钥管理协议(ISAKMP)ID以及身份验证负载。身份验证负载的内容取决于身份验证方法,身份验证方法可以是预共享密钥(PSK)、RSA证书(RSA-SIG)、椭圆曲线数字签名算法证书(ECDSA-SIG)或EAP。除身份验证负载外,交换还包括描述要创建的IPsec SA的SA和流量选择器负载。

更新IKEv2交换CREATE_CHILD_SA交换123456 Initiator Responder----------- ----------- HDR, SK {[N], SA, Ni, [KEi], [TSi, TSr]} --> <-- HDR, SK {SA, Nr, [KEr], [TSi, TSr]}

如果需要其他子SA,或者如果需要重新键入IKE SA或其中一个子SA,则它的功能与快速模式交换在IKEv1中的功能相同。每重新生成密钥或新SA都会重复交换。

INFORMATIONAL交换1234 Initiator Responder----------- ----------- HDR, SK {[N,] [D,] [CP,] ...} --> <-- HDR, SK {[N,] [D,] [CP], ...}

由于它在所有IKEv2交换中,每个信息交换请求都需要响应。信息交换中可包含三种负载类型。可以包括任意数量的负载组合。

删除负载(D)通知对等体发送方已删除一个或多个传入SA。响应方应删除这些SA,并且通常在响应消息中包括在另一方向对应的SA的删除负载。

配置负载(CP)用于在对等体之间协商配置数据。CP的一个重要用途是请求(请求)和在受安全网关保护的网络上分配(响应)地址。在典型情况下,移动主机在其家庭网络上建立具有安全网关的虚拟专用网络(VPN),并请求在家庭网络上为其分配IP地址。

注意:这可消除第2层隧道协议(L2TP)和IPsec的组合使用所要解决的问题之一。

密钥材料计算长度不够,重复计算来凑:

1234567prf+ (K,S) = T1 | T2 | T3 | T4 | ... where: T1 = prf (K, S | 0x01) T2 = prf (K, T1 | S | 0x02) T3 = prf (K, T2 | S | 0x03) T4 = prf (K, T3 | S | 0x04)

各密钥计算:

123SKEYSEED = prf(Ni | Nr, g^ir){SK_d | SK_ai | SK_ar | SK_ei | SK_er | SK_pi | SK_pr } = prf+ (SKEYSEED, Ni | Nr | SPIi | SPIr )

SKEYSEED: 用于计算其他七个秘密。

SK_d: 用于为使用此IKE_SA建立的子SA导出新密钥。

SK_ai和SK_ar: 用作完整性保护算法的密钥,用于验证后续交换的组件消息。

SK_ei和SK_er: 用于加密(当然还有解密)所有后续交换。

SK_pi和SK_pr: 它们在生成身份验证有效负载时使用。

IKEv1和IKEv2有哪些区别1. 协商过程不同

IKEv1协商安全联盟主要分为两个阶段。IKEv1阶段1的目的是建立IKE SA,它支持两种协商模式:主模式和野蛮模式。主模式用6条ISAKMP消息完成协商。野蛮模式用3条ISAKMP消息完成协商。野蛮模式的优点是建立IKE SA的速度较快。但是由于野蛮模式密钥交换与身份认证一起进行无法提供身份保护。IKEv1阶段2的目的就是建立用来传输数据的IPSec SA,通过快速交换模式(3条ISAKMP消息)完成协商。

IKEv2简化了安全联盟的协商过程。IKEv2正常情况使用2次交换共4条消息就可以完成一个IKE SA和一对IPSec SA,如果要求建立的IPSec SA大于一对时,每一对SA只需额外增加1次交换,也就是2条消息就可以完成。

2. 认证方法不同

IKEv2支持EAP身份认证。IKEv2可以借助认证服务器对远程接入的PC、手机等进行身份认证、分配私网IP地址。

IKEv1无法提供此功能,必须借助L2TP来分配私网地址。

3. IKE SA的完整性算法支持情况不同

IKE SA的完整性算法仅IKEv2支持。

IKEv1不支持。

4. DPD中超时重传实现不同

retry-interval参数仅IKEv1支持。表示发送DPD报文后,如果超过此时间间隔未收到正确的应答报文,DPD记录失败事件1次。当失败事件达到5次时,删除IKE SA和相应的IPSec SA。直到隧道中有流量时,两端重新协商建立IKE SA。

对于IKEv2方式的IPSec SA,超时重传时间间隔从1到64以指数增长的方式增加。在8次尝试后还未收到对端发过来的报文,则认为对端已经下线,删除IKE SA和相应的IPSec SA。

5. IKE SA超时时间手工调整功能支持不同

IKEv2的IKE SA软超时为硬超时的9/10±一个随机数,所以IKEv2一般不存在两端同时发起重协商的情况,故IKEv2不需要配置软超时时间。

6. IPSec SA超时时间手工调整功能支持不同

IKEv2的IKE SA软超时为硬超时的9/10±一个随机数,所以IKEv2一般不存在两端同时发起重协商的情况,故IKEv2不需要配置软超时时间。

strongswan配置IKEv2

Cisco IOS和StrongSwan之间的IKEv1/IKEv2配置示例

基于 strongSwan 配置 IPsec IKEv2 VPN

linux上用strongswan搭建ikev2协议vpn

参考

Internet Key Exchange (IKEv2) Protocol

RFC 4306: Internet Key Exchange (IKEv2) Protocol 中文翻译

IKEv2数据包交换和协议级调试

密钥交换协议之IKEv2

IKEv2协议协商流程: (IKE-SA-INIT 交换)第一包

IKEv2协议协商流程: (IKE-SA-INIT 交换)第二包

Copyright © 2088 国足世界杯出线形势_世界杯出线 - ybjysq.com All Rights Reserved.
友情链接