IKEv2协商安全联盟的过程
提要:IKEv2很多东西和IKEv1很多东西的目的以及实现方式是相同的,所以看本文前务必请先搞懂IKEv1的协商过程:IPSec之IKEv1协议详解
IKEv2协商IPSecSA的过程跟IKEvI有很大差别,最少4条消息就可以创建一对IPSecSA,效率奇高!
IKEv2定义了三种交换:
初始交换(Initial Exchanges)、
创建子SA交换(Create_Child_SA Exchange)
通知交换(Informational Exchange)。
初始交换4条消息同时搞定IKESA和IPSecSA
IKEv2的初始交换通过4条消息同时建立IKESA和IPSecSA, 如果要求建立的IPSec SA大于一对时,每一对IPSec SA只需额外增加1次创建子SA交换,也就是2条消息就可以完成。所示。
初始交换抓包信息如下所示:
**图1 **初始交换过程图
第一个消息对①②(称为IKE_SA_INIT交换)
以明文方式完成IKE SA的参数协商,包括IKE Proposal,交换临时随机数(nonce)和DH交换。
如下所示:
SA载荷主要用来协商IKE Proposal,如下所示
KE载荷和Nonce在和主要用来作为密钥素材来交换
IKEv2通过IKESAINIT交换后最终也生成三类密钥:
SKEYID_d = prf(SKEYID, K | Ci | Cr | 0) -----------推导密钥,衍生密钥
SKEYID_a = prf(SKEYID, SKEYID_d | K | Ci | Cr | 1)---------验证密钥
SKEYID_e = prf(SKEYID, SKEYID_a | K | Ci | Cr | 2)---------加密密钥
第二个消息对③④(称为IKE_AUTH交换)
以加密方式完成身份认证,并创建第一个ChildSA(一对IPSecSA)。日前两种身份认证技术比较常用,如下所示。
——预共享密钥方式(pre-share):设备的身份信息为IP地址或名称。
——数字证书方式:设备的身份信息为证书和通过证书私钥加密的部分消息HASH值(签名)。
以上身份信息都通过SKEYID_e加密。
创建ChildSA时,与IKEv1主模式⑤⑥个的载荷和目的类似,需要协商IPSec安全提议、被保护的数据流。IKEv2通过TS载荷(TSi和TSr)来协商两端设备的ACL规则,最终结果是取双方ACL规则的交集,这一点与IKEv1不同,IKEv1中没有TS载荷不协商ACL,IKEv1通过5,6包的HASH进行验证,所以ACL要镜像配置。包是加密的如下所示:
创建子SA交换
当一个IKE SA需要创建多对IPSec SA时,需要使用创建子SA交换来协商多于一对的IPSec SA。另外,创建子SA交换还可以用于IKE SA的重协商。
创建子SA交换包含一个交换两条消息,对应 IKEv1协商阶段2,交换的发起者可以是初始交换的协商发起方,也可以是初始交换的协商响应方。创建子SA交换必须在初始交换完成后进行,交换消息由初始交换协商的密钥进行保护。
类似于IKEv1,如果启用PFS,创建子SA交换需要额外进行一次DH交换,生成新的密钥材料。生成密钥材料后,子SA的所有密钥都从这个密钥材料衍生出来。
通知交换
运行IKE协商的两端有时会传递一些控制信息,例如错误信息或者通告信息,这些信息在IKEv2中是通过通知交换完成的,如图2所示。
通知交换必须在IKE SA保护下进行,也就是说通知交换只能发生在初始交换之后。控制信息可能是IKE SA的,那么通知交换必须由该IKE SA来保护进行;也可能是某子SA的,那么该通知交换必须由生成该子SA的IKE SA来保护进行。
**图2 **通知交换过程图
例如拆除隧道时,抓包信息如下:
该文章仅供学习参考,若有侵权,联系删除
参考文档:华为hdx文档,华为防火墙技术漫谈
版权归原作者 sgslwms 所有, 如有侵权,请联系我们删除。