一种基于IKEv2的DH算法协商方法及装置转让专利

申请号 : CN201611248785.X

文献号 : CN106789023B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张鹤岭

申请人 : 杭州迪普科技股份有限公司

摘要 :

本申请提供一种基于IKEv2的DH算法协商方法及装置,所述方法包括:发起方设备判断本设备是否支持DH算法中的多种算法;如果本设备支持DH算法中的多种算法,则向所述响应方设备发送IKEv2协商报文;该IKEv2协商报文携带本地支持的多种DH算法的标识,以及对应于该多种DH算法的发起方密钥生成参数;接收所述响应方设备返回的对应于所述IKEv2协商报文的响应报文;获取所述响应报文中携带的所述目标DH算法的标识以及所述响应方密钥生成参数,完成DH算法协商。本申请解决了现有技术针对协商失败的情况,发起方设备和响应方设备会多一次报文交互,导致协商效率降低的问题。

权利要求 :

1.一种基于IKEv2的DH算法协商方法,应用于DH算法协商的发起方设备,所述发起方设备在向DH算法协商的响应方设备发起DH算法协商时,其特征在于,包括:判断本设备是否支持DH算法中的多种算法;

如果本设备支持DH算法中的多种算法,则向所述响应方设备发送IKEv2协商报文;其中,所述IKEv2协商报文携带本地支持的多种DH算法的标识,以及对应于该多种DH算法的发起方密钥生成参数,其中,IKEv2协商报文中携带对应于每一种发起方设备支持的DH算法的发起方密钥生成参数,以确保后续响应方设备选定的任一DH算法后都能获得有效的发起方密钥生成参数,所述IKEv2协商报文为扩展后的IKEv2协商报文,所述扩展后的IKEv2协商报文可携带多组KE载荷,每组KE载荷用于携带一种发起方密钥生成参数;

接收所述响应方设备返回的对应于所述IKEv2协商报文的响应报文;其中,所述响应报文携带所述响应方设备从所述多种DH算法中选定的目标DH算法的标识以及对应于该目标DH算法的响应方密钥生成参数;

获取所述响应报文中携带的所述目标DH算法的标识以及所述响应方密钥生成参数,完成DH算法协商。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

根据所述响应报文中携带的所述目标DH算法的标识,在本地查找对应于所述目标DH算法的发起方密钥生成参数,并将查找到的发起方密钥生成参数在本地进行记录。

3.根据权利要求1所述的方法,其特征在于,所述方法还包括:

完成DH算法协商后,根据对应于所述目标DH算法的发起方密钥生成参数和响应方密钥生成参数,计算得到密钥。

4.一种基于IKEv2的DH算法协商方法,应用于DH算法协商的响应方设备,所述响应方设备响应于DH算法协商的发起方设备发起的DH算法协商时,其特征在于,包括:接收所述发起方设备发送的IKEv2协商报文;其中,所述IKEv2协商报文携带所述发起方设备支持的多种DH算法的标识和对应于该多种DH算法的发起方密钥生成参数,所述IKEv2协商报文为扩展后的IKEv2协商报文,所述扩展后的IKEv2协商报文可携带多组KE载荷,每组KE载荷用于携带一种发起方密钥生成参数;

将所述IKEv2协商报文中携带的多种DH算法的标识与本地支持的DH算法的标识进行匹配,并从匹配出的DH算法中选定目标DH算法;

获取所述IKEv2协商报文中携带的对应于所述目标DH算法的发起方密钥生成参数,并向所述发起方设备发送对应于所述IKEv2协商报文的响应报文,以完成DH算法协商;其中,所述响应报文携带所述目标DH算法的标识和对应于所述目标DH算法的响应方密钥生成参数。

5.根据权利要求4所述的方法,其特征在于,所述方法还包括:

在本地记录所述发起方密钥生成参数,并在完成DH算法协商后,根据对应于所述目标DH算法的发起方密钥生成参数和响应方密钥生成参数,计算得到密钥。

6.一种基于IKEv2的DH算法协商装置,应用于DH算法协商的发起方设备,所述发起方设备在向DH算法协商的响应方设备发起DH算法协商时,其特征在于,包括:判断单元,用于判断本设备是否支持DH算法中的多种算法;

第一发送单元,用于如果本设备支持DH算法中的多种算法,则向所述响应方设备发送IKEv2协商报文;其中,所述IKEv2协商报文携带本地支持的多种DH算法的标识,以及对应于该多种DH算法的发起方密钥生成参数,其中,IKEv2协商报文中携带对应于每一种发起方设备支持的DH算法的发起方密钥生成参数,以确保后续响应方设备选定的任一DH算法后都能获得有效的发起方密钥生成参数,所述IKEv2协商报文为扩展后的IKEv2协商报文,所述扩展后的IKEv2协商报文可携带多组KE载荷,每组KE载荷用于携带一种发起方密钥生成参数;

第一接收单元,用于接收所述响应方设备返回的对应于所述IKEv2协商报文的响应报文;其中,所述响应报文携带所述响应方设备从所述多种DH算法中选定的目标DH算法的标识以及对应于该目标DH算法的响应方密钥生成参数;

获取单元,用于获取所述响应报文中携带的所述目标DH算法的标识以及所述响应方密钥生成参数,完成DH算法协商。

7.根据权利要求6所述的装置,其特征在于,所述装置还包括:

第一记录单元,用于根据所述响应报文中携带的所述目标DH算法的标识,在本地查找对应于所述目标DH算法的发起方密钥生成参数,并将查找到的发起方密钥生成参数在本地进行记录。

8.根据权利要求6所述的装置,其特征在于,所述装置还包括:

计算单元,用于完成DH算法协商后,根据对应于所述目标DH算法的发起方密钥生成参数和响应方密钥生成参数,计算得到密钥。

9.一种基于IKEv2的DH算法协商装置,应用于DH算法协商的响应方设备,所述响应方设备响应于DH算法协商的发起方设备发起的DH算法协商时,其特征在于,包括:第二接收单元,用于接收所述发起方设备发送的IKEv2协商报文;其中,所述IKEv2协商报文携带所述发起方设备支持的多种DH算法的标识和对应于该多种DH算法的发起方密钥生成参数,所述IKEv2协商报文为扩展后的IKEv2协商报文,所述扩展后的IKEv2协商报文可携带多组KE载荷,每组KE载荷用于携带一种发起方密钥生成参数;

选择单元,用于将所述IKEv2协商报文中携带的多种DH算法的标识与本地支持的DH算法的标识进行匹配,并从匹配出的DH算法中选定目标DH算法;

第二发送单元,用于获取所述IKEv2协商报文中携带的对应于所述目标DH算法的发起方密钥生成参数,并向所述发起方设备发送对应于所述IKEv2协商报文的响应报文,以完成DH算法协商;其中,所述响应报文携带所述目标DH算法的标识和对应于所述目标DH算法的响应方密钥生成参数。

10.根据权利要求9所述的装置,其特征在于,所述装置还包括:

第二记录单元,用于在本地记录所述发起方密钥生成参数,并在完成DH算法协商后,根据对应于所述目标DH算法的发起方密钥生成参数和响应方密钥生成参数,计算得到密钥。

说明书 :

一种基于IKEv2的DH算法协商方法及装置

技术领域

[0001] 本申请涉及通信技术领域,特别涉及一种基于IKEv2的DH算法协商方法及装置。

背景技术

[0002] IKE(Internet Key Exchange,密钥管理协议)是网络设备之间用于协商公共密钥的协议,IKE的协商分为两个阶段,第一阶段用于协商双方公共的用于保护第二阶段的密钥,第二阶段用于协商保护数据的密钥及保护网段。
[0003] IKEv2是IKE的第二个版本,在IKEv2的协商中,发起方设备发送至响应方设备的IKEv2协商报文携带本地支持的若干种DH(Diffie-Hellman key exchange)算法的标识和对应于其中一种DH算法的发起方密钥生成参数;响应方设备接收到该IKEv2协商报文后,将该IKEv2协商报文携带的DH算法与本地支持的DH算法进行匹配,在匹配成功后,并且该协商报文携带的发起方密钥生成参数对应于响应方设备选中的DH算法,则响应方设备将选中的DH算法的标识和对应于该DH算法的响应方密钥生成参数返回发起方设备,协商成功。
[0004] 如果响应方设备选中的DH算法与发起方设备发送的发起方密钥生成参数不匹配,则协商失败,响应方设备会发送一个携带本地支持的DH算法的标识消息报文至发起方设备,以由发起方设备重新发起协商。现有技术针对协商失败的情况,发起方设备和响应方设备会多一次报文交互,导致协商效率的降低。

发明内容

[0005] 有鉴于此,本申请提供一种基于IKEv2的DH算法协商方法及装置,用以 解决现有技术针对协商失败的情况,发起方设备和响应方设备会多一次报文交互,导致协商效率的降低的问题。
[0006] 具体地,本申请是通过如下技术方案实现的:
[0007] 一种基于IKEv2的DH算法协商方法,应用于DH算法协商的发起方设备,所述发起方设备在向DH算法协商的响应方设备发起DH算法协商时,包括:
[0008] 判断本设备是否支持DH算法中的多种算法;
[0009] 如果本设备支持DH算法中的多种算法,则向所述响应方设备发送IKEv2协商报文;其中,所述IKEv2协商报文携带本地支持的多种DH算法的标识,以及对应于该多种DH算法的发起方密钥生成参数;
[0010] 接收所述响应方设备返回的对应于所述IKEv2协商报文的响应报文;其中,所述响应报文携带所述响应方设备从所述多种DH算法中选定的目标DH算法的标识以及对应于该目标DH算法的响应方密钥生成参数;
[0011] 获取所述响应报文中携带的所述目标DH算法的标识以及所述响应方密钥生成参数,完成DH算法协商。
[0012] 在所述基于IKEv2的DH算法协商方法中,还包括:
[0013] 根据所述响应报文中携带的所述目标DH算法的标识,在本地查找对应于所述目标DH算法的发起方密钥生成参数,并将查找到的发起方密钥生成参数在本地进行记录。
[0014] 在所述基于IKEv2的DH算法协商方法中,还包括:
[0015] 完成DH算法协商后,根据对应于所述目标DH算法的发起方密钥生成参数和响应方密钥生成参数,计算得到密钥。
[0016] 一种基于IKEv2的DH算法协商装置,应用于DH算法协商的发起方设备,所述发起方设备在向DH算法协商的响应方设备发起DH算法协商时,包括:
[0017] 判断单元,用于判断本设备是否支持DH算法中的多种算法;
[0018] 第一发送单元,用于如果本设备支持DH算法中的多种算法,则向所述响应方设备发送IKEv2协商报文;其中,所述IKEv2协商报文携带本地支持的多种DH算法的标识,以及对应于该多种DH算法的发起方密钥生成参数;
[0019] 第一接收单元,用于接收所述响应方设备返回的对应于所述IKEv2协商报文的响应报文;其中,所述响应报文携带所述响应方设备从所述多种DH算法中选定的目标DH算法的标识以及对应于该目标DH算法的响应方密钥生成参数;
[0020] 获取单元,用于获取所述响应报文中携带的所述目标DH算法的标识以及所述响应方密钥生成参数,完成DH算法协商。
[0021] 在所述基于IKEv2的DH算法协商装置中,还包括:
[0022] 第一记录单元,用于根据所述响应报文中携带的所述目标DH算法的标识,在本地查找对应于所述目标DH算法的发起方密钥生成参数,并将查找到的发起方密钥生成参数在本地进行记录。
[0023] 在所述基于IKEv2的DH算法协商装置中,还包括:
[0024] 计算单元,用于完成DH算法协商后,根据对应于所述目标DH算法的发起方密钥生成参数和响应方密钥生成参数,计算得到密钥。
[0025] 一种基于IKEv2的DH算法协商方法,应用于DH算法协商的响应方设备,所述响应方设备响应于DH算法协商的发起方设备发起的DH算法协商时,包括:
[0026] 接收所述发起方设备发送的IKEv2协商报文;其中,所述IKEv2协商报文携带所述发起方设备支持的多种DH算法的标识和对应于该多种DH算法的发起方密钥生成参数;
[0027] 将所述IKEv2协商报文中携带的多种DH算法的标识与本地支持的DH算法的标识进行匹配,并从匹配出的DH算法中选定目标DH算法;
[0028] 获取所述IKEv2协商报文中携带的对应于所述目标DH算法的发起方密钥生成参数,并向所述发起方设备发送对应于所述IKEv2协商报文的响应报文,以完成DH算法协商;其中,所述响应报文携带所述目标DH算法的标识和对应于所述目标DH算法的响应方密钥生成参数。
[0029] 在所述基于IKEv2的DH算法协商方法中,还包括:
[0030] 在本地记录所述发起方密钥生成参数,并在完成DH算法协商后,根据对应于所述目标DH算法的发起方密钥生成参数和响应方密钥生成参数,计算得到密钥。
[0031] 一种基于IKEv2的DH算法协商装置,应用于DH算法协商的响应方设备,所述响应方设备响应于DH算法协商的发起方设备发起的DH算法协商时,包括:
[0032] 第二接收单元,用于接收所述发起方设备发送的IKEv2协商报文;其中,所述IKEv2协商报文携带所述发起方设备支持的多种DH算法的标识和对应于该多种DH算法的发起方密钥生成参数;
[0033] 选择单元,用于将所述IKEv2协商报文中携带的多种DH算法的标识与本地支持的DH算法的标识进行匹配,并从匹配出的DH算法中选定目标DH算法;
[0034] 第二发送单元,用于获取所述IKEv2协商报文中携带的对应于所述目标DH算法的发起方密钥生成参数,并向所述发起方设备发送对应于所述IKEv2协商报文的响应报文,以完成DH算法协商;其中,所述响应报文携带所述目标DH算法的标识和对应于所述目标DH算法的响应方密钥生成参数。
[0035] 在所述基于IKEv2的DH算法协商装置中,还包括:
[0036] 第二记录单元,用于在本地记录所述发起方密钥生成参数,并在完成DH算法协商后,根据对应于所述目标DH算法的发起方密钥生成参数和响应方密钥生成参数,计算得到密钥。
[0037] 在本申请实施例中,发起方设备在向响应方设备发起DH算法协商时,首先判断本设备是否支持多种DH算法,如果是,则向所述响应方设备发送IKEv2协商报文,其中,所述IKEv2协商报文携带所述发起方设备支持的多种DH算法的标识,以及对应于该多种DH算法的发起方密钥生成参数;然后接收所述响应方设备返回的对应于所述IKEv2协商报文的响应报文,其中,所述响应报文携带所述响应方设备从所述多种DH算法中选定的目标DH算法的标识以及对应于该目标DH算法的响应方密钥生成参数;所述发起方设备获取所述响应报文中携带的所述目标DH算法的标识以及所述响应方密钥生成参数,完成DH算法协商。
[0038] 由于在本申请实施例中,发起方设备发送至响应方设备的IKEv2协商报文中携带发起方设备支持的多种DH算法的发起方密钥生成参数,因此响应方设备在与所述发起方设备从所述多种DH算法中协商出目标DH算法时,与所述发 起方设备执行一次协商交互,就能够正常获取到与该目标DH算法对应的发起方密钥生成参数,从而可以降低协商的交互次数,提升DH算法协商的效率。

附图说明

[0039] 图1是本申请示出的一种基于IKEv2的DH算法协商方法的流程图;
[0040] 图2是本申请示出的另一种基于IKEv2的DH算法协商方法的流程图;
[0041] 图3是相关技术中IKEv2协商报文的KE载荷格式示意图;
[0042] 图4是本申请示出的一种IKEv2协商报文的KE载荷格式示意图;
[0043] 图5是本申请示出的一种基于IKEv2的DH算法协商装置的实施例框图;
[0044] 图6是本申请示出的一种基于IKEv2的DH算法协商装置的硬件结构图;
[0045] 图7是本申请示出的另一种基于IKEv2的DH算法协商装置的实施例框图;
[0046] 图8是本申请示出的另一种基于IKEv2的DH算法协商装置的硬件结构图。

具体实施方式

[0047] 为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对现有技术方案和本发明实施例中的技术方案作进一步详细的说明。
[0048] 在现有技术中,基于IKEv2的DH算法协商是由DH算法的发起方设备发送IKEv2协商报文至响应方设备;其中,IKEv2协商报文中携带发起方设备针对DH算法提供的算法提议,该算法提议中的DH算法为发起方设备支持的DH算法的标识。由于基于DH算法生成密钥还需发起方设备与响应方设备互换密钥生成参数,所以IKEv2协商报文还携带发起方密钥生成参数。在现有技术中,IKEv2协商报文携带的发起方密钥生成参数仅仅对应于算法提议中的一种DH算法。
[0049] 响应方设备接收到IKEv2协商报文后,将IKEv2协商报文携带的DH算法的标识与本设备支持的DH算法进行匹配,如果能够匹配到相同的DH算法,当匹配到多种DH算法时,从匹配到的多种DH算法中选定一种;当匹配到一种 DH算法时,则响应方设备选定的DH算法就是匹配到的DH算法。
[0050] 响应方设备选定DH算法后,检查上述IKEv2协商报文携带的发起方密钥生成参数是否对应于选定的DH算法。如果是,则响应方设备可以发送携带选定的DH算法的标识和对应于该DH算法的响应方密钥生成参数的响应报文至发起方设备;发起方设备接收到该响应报文,确定响应方设备选定的DH算法,协商成功。
[0051] 然而,由于IKEv2协商报文只携带对应于一种DH算法的发起方密钥生成参数,因此,响应方设备选定的DH算法可能与该发起方密钥生成参数不匹配,此时,响应方设备会发送一个INVALID_KE_PAYLOAD类型的消息报文至发起方设备,该消息报文携带响应方设备支持的DH算法的标识,以由发起方设备在接收到该消息报文后重新发起DH算法协商。
[0052] 可见,在DH算法协商失败的情况下,发起方设备和响应方设备会多一次报文交互,导致DH算法协商的效率降低。
[0053] 为解决上述问题,在本申请实施例中,发起方设备发送的IKEv2协商报文携带对应于多种DH算法的发起方密钥生成参数,确保响应方设备选定的任意DH算法都有有效的发起方密钥生成参数,防止协商失败造成多一次的报文交互。
[0054] 参见图1,为本申请示出的一种基于IKEv2的DH算法协商方法的流程图,该方法的执行主体是DH算法协商的发起方设备,该发起方设备在向DH算法协商的响应方设备发起DH算法协商时;所述方法包括以下步骤:
[0055] 步骤101:判断本设备是否支持DH算法中的多种算法。
[0056] 步骤102:如果本设备支持DH算法中的多种算法,则向所述响应方设备发送IKEv2协商报文;其中,所述IKEv2协商报文携带本地支持的多种DH算法的标识,以及对应于该多种DH算法的发起方密钥生成参数。
[0057] 步骤103:接收所述响应方设备返回的对应于所述IKEv2协商报文的响应报文;其中,所述响应报文携带所述响应方设备从所述多种DH算法中选定的目标DH算法的标识以及对应于该目标DH算法的响应方密钥生成参数。
[0058] 步骤104:获取所述响应报文中携带的所述目标DH算法的标识以及所述响 应方密钥生成参数,完成DH算法协商。
[0059] 与上述应用于DH算法协商的发起方设备的方法的流程图相对应,本申请还提供了应用于DH算法协商的响应方设备的方法的流程图,参见图2,为本申请示出的另一种基于IKEv2的DH算法协商方法的流程图,该方法的执行主体是DH算法协商的响应方设备,该响应方设备响应于DH算法协商的发起方设备发起的DH算法协商时;所述方法包括以下步骤:
[0060] 201:接收所述发起方设备发送的IKEv2协商报文;其中,所述IKEv2协商报文携带所述发起方设备支持的多种DH算法的标识和对应于该多种DH算法的发起方密钥生成参数。
[0061] 202:将所述IKEv2协商报文中携带的多种DH算法的标识与本地支持的DH算法的标识进行匹配,并从匹配出的DH算法中选定目标DH算法。
[0062] 203:获取所述IKEv2协商报文中携带的对应于所述目标DH算法的发起方密钥生成参数,并向所述发起方设备发送对应于所述IKEv2协商报文的响应报文,以完成DH算法协商;其中,所述响应报文携带所述目标DH算法的标识和对应于所述目标DH算法的响应方密钥生成参数。
[0063] 上述协商报文,包括IKEv2协商过程任意阶段的协商报文;例如,在实际应用中,上述协商报文可以包括IKE_SA_INIT报文、IKE_AUTH报文、CREATE_CHILD_SA报文,或者IKEv2协议中添加的后续阶段的协商报文。
[0064] 为了提高DH算法协商效率,避免出现响应方设备在选定目标DH算法后无法获得对应于目标DH算法的发起方密钥生成参数,可以对IKEv2协商报文的进行扩展,让IKEv2协商报文携带对应于多种DH算法的发起方密钥生成参数。
[0065] 请参见图3,图3为相关技术中IKEv2协商报文的KE(Key Exchange Data)载荷格式示意图,如图所示,DH Group num字段填充说明该KE载荷用于哪种DH算法的数值;Key Exchange Data为对应于上述DH算法的发起方密钥生成参数。报文中Next Payload、RESERVED、Payload Length为IKEv2报文的通用格式,在此不再赘述。
[0066] 请参见图4,图4为本申请示出的一种IKEv2协商报文的KE载荷格式示意 图,如图所示,本申请对IKEv2协商报文进行拓展后,IKEv2协商报文可以携带多组KE载荷(图中为3组),DH Group num字段填充说明下方的KE载荷用于哪种DH算法的数值;Key Exchange Data为对应于上述DH算法的发起方密钥生成参数。拓展后的KE载荷可以携带对应多种DH算法的发起方密钥生成参数。
[0067] 在本申请实施例中,发起方设备在与响应方设备发起DH算法协商时,首先可以判断本设备是否支持DH算法中的多种算法,如果本设备仅支持DH算法中的其中一种算法,则可以根据现有技术直接发送IKEv2协商报文至响应方设备,与响应方设备进行DH算法协商即可,具体过程本申请中不再进行详述。如果本设备支持DH算法中的多种DH算法(比如同时支持DH算法中的DH1、DH2、DH5等算法),则可以向DH算法协商的响应方设备发送IKEv2协商报文;其中,该IKEv2协商报文携带本地支持的多种DH算法的标识,以及对应于该多种DH算法的发起方密钥生成参数。
[0068] 下面以上述协商报文为IKEv2的IKE_SA_INIT报文为例进行举例说明:
[0069] Initiator(发起方设备)向Responder(响应方设备)发送的IKEv2协商报文包括HDR、SAi、KEi、Ni;其中,HDR为报文头部,SAi为发起方设备提供的算法提议,包括多种DH算法的标识,KEi为发起方设备的KE载荷,即为发起方密钥生成参数,Ni为随机数。
[0070] 当发起方设备确定本地支持多种DH算法时(例如:3种),可以向响应方设备发送的IKEv2协商报文的SAi包括3种DH算法的标识,该IKEv2协商报文还包括KEi1、KEi2、KEi3三种KE载荷,每一种KE载荷分别与SAi中的三种DH算法相对应。HDR及Ni与本申请实施例的技术方案无关,不再赘述。
[0071] 通过在IKEv2协商报文中携带对应于每一种发起方设备支持的DH算法的发起方密钥生成参数,确保后续响应方设备选定的任一DH算法后都能获得有效的发起方密钥生成参数,避免协商失败。
[0072] 在示出的一种实施方式中,由于发起方密钥生成参数在DH算法协商完成后,要用于计算密钥,因此,发起方设备在发送上述IKEv2协商报文时,可以 在本地保存对应于各DH算法的标识的发起方密钥生成参数,以及各DH算法的标识与上述发起方密钥生成参数的映射关系。通过该措施,发起方设备在接收到响应方设备返回的响应报文时,可以便捷地查找到响应方设备选定的目标DH算法对应的发起方密钥生成参数。
[0073] 在本申请实施例中,响应方设备在接收到发起方设备发送的IKEv2协商报文时,根据该IKEv2协商报文携带的多种DH算法的标识与本地支持的DH算法的标识进行匹配。如果匹配成功,即响应方设备支持的DH算法中存在与该IKEv2协商报文携带的多种DH算法中相同的DH算法。则响应方设备需选定一种目标DH算法作为发起方设备与响应方设备共用的DH算法。
[0074] 一方面,响应方设备支持的DH算法中只有一种DH算法与该IKEv2协商报文携带的DH算法相同,则可以确定该DH算法就是目标DH算法。
[0075] 另一方面,响应方设备支持的DH算法中存在多种DH算法与该IKEv2协商报文携带的DH算法相同,则可以基于预设的策略从相同的DH算法中选定目标DH算法。其中,预设的策略可以基于实际应用情况进行配置,例如,可以是选择第一种匹配成功的DH算法,或者,在匹配完成后,随机选择一种相同的DH算法。
[0076] 在本申请实施例中,响应方设备选定目标DH算法后,可以向发起方设备发送对应于上述IKEv2协商报文的响应报文;其中,该响应报文携带上述目标DH算法的标识和对应于上述DH算法的响应方密钥生成参数。
[0077] 下面仍旧以IKEv2的IKE_SA_INIT协商进行举例说明:
[0078] Responder(响应方设备)向Initiator(发起方设备)发送的响应报文包括HDR、SAr、KEr、Nr;其中,HDR为报文头部,SAr为响应方设备选定的算法提议,包括目标DH算法的标识,KEr为响应方设备的KE载荷,即为对应于目标DH算法的响应方密钥生成参数,Nr为随机数。HDR及Nr与本申请实施例的技术方案无关,不再赘述。
[0079] 在示出的一种实施方式中,响应方设备在选定目标DH算法后,可以在发送上述响应报文时,在本地记录对应于目标DH算法的标识的响应方密钥生成 参数,然后根据对应于目标DH算法的发起方密钥生成参数和响应方密钥生成参数计算得到密钥。
[0080] 在本申请实施例中,发起方设备接收到响应方设备返回的上述响应报文后,获取上述响应报文中携带的目标DH算法的标识以及响应方密钥生成参数。此时,DH算法协商完成,发起方设备和响应方设备确定以目标DH算法计算密钥。
[0081] 发起方设备在获得目标DH算法的标识后,可以根据该标识在本地查找对应的发起方密钥生成参数,当查找到发起方密钥生成参数后在本地进行记录,然后根据查找到的发起方密钥生成参数以及上述响应报文中的响应方密钥生成参数计算得到密钥。
[0082] 以上实施例以IKE_SA_INIT协商为例进行说明,需要说明的是,在实际应用中,上述协商报文并不限于IKE_SA_INIT报文,还可以是IKEv2协议中的其它阶段的协商报文;比如,IKE_AUTH协商报文、CREATE_CHILD_SA协商报文,或者IKEv2协议中后续阶段的协商报文。
[0083] 综上所述,在本申请实施例中,针对DH算法协商的发起方设备支持多种DH算法导致发起方设备与响应方设备对DH算法协商失败的问题,发起方设备在发起DH算法协商时,首先判断本设备是否支持DH算法中的多种算法,如果是,则向响应方设备发送IKEv2协商报文,其中,该IKEv2协商报文携带本身支持的多种DH算法的标识,以及对应于该多种DH算法的发起方密钥生成参数;发起方设备接收到响应发设备返回的响应报文后,获取该响应报文中携带的目标DH算法以及响应方密钥生成参数,确定发起方设备和响应方设备共同使用的DH算法,完成协商。
[0084] 由于在本申请中,发起方设备发送的IKEv2协商报文携带对应于发起方设备支持的多种DH算法的发起方密钥生成参数,因此响应方设备在与所述发起方设备从所述多种DH算法中协商出目标DH算法时,与所述发起方设备执行一次协商交互,就能够正常获取到与该目标DH算法对应的发起方密钥生成参数,从而可以降低协商的交互次数,提升DH算法协商的效率。
[0085] 与本申请基于IKEv2的DH算法协商方法的实施例相对应,本申请还提供 了用于执行上述方法实施例的装置的实施例。
[0086] 参加图5,为本申请示出的一种基于IKEv2的DH算法协商装置的实施例框图:
[0087] 如图5所示,该基于IKEv2的DH算法协商装置50包括:
[0088] 判断单元510,用于判断本设备是否支持DH算法中的多种算法。
[0089] 第一发送单元520,用于如果本设备支持DH算法中的多种算法,则向所述响应方设备发送IKEv2协商报文;其中,所述IKEv2协商报文携带本地支持的多种DH算法的标识,以及对应于该多种DH算法的发起方密钥生成参数。
[0090] 第一接收单元530,用于接收所述响应方设备返回的对应于所述IKEv2协商报文的响应报文;其中,所述响应报文携带所述响应方设备从所述多种DH算法中选定的目标DH算法的标识以及对应于该目标DH算法的响应方密钥生成参数。
[0091] 获取单元540,用于获取所述响应报文中携带的所述目标DH算法的标识以及所述响应方密钥生成参数,完成DH算法协商。
[0092] 在本例中,所述装置还包括:
[0093] 第一记录单元550,用于根据所述响应报文中携带的所述目标DH算法的标识,在本地查找对应于所述目标DH算法的发起方密钥生成参数,并将查找到的发起方密钥生成参数在本地进行记录。
[0094] 在本例中,所述装置还包括:
[0095] 计算单元560,用于完成DH算法协商后,根据对应于所述目标DH算法的发起方密钥生成参数和响应方密钥生成参数,计算得到密钥。
[0096] 本申请基于IKEv2的DH算法协商装置的实施例可以应用在DH算法协商的发起方设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在发起方设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本申请基于IKEv2的DH算法协商装置所在发起方设备的一种硬件结构图,除了图6所示的处理器、内存、 网络接口、以及非易失性存储器之外,实施例中装置所在的发起方设备通常根据该基于IKEv2的DH算法协商装置的实际功能,还可以包括其他硬件,对此不再赘述。
[0097] 参见图7,为本申请示出的另一种基于IKEv2的DH算法协商装置的实施例框图:
[0098] 如图7所示,该基于IKEv2的DH算法协商装置70包括:
[0099] 第二接收单元710,用于接收所述发起方设备发送的IKEv2协商报文;所述IKEv2协商报文携带所述发起方设备支持的多种DH算法的标识和对应于该多种DH算法的发起方密钥生成参数。
[0100] 选择单元720,用于将所述IKEv2协商报文中携带的多种DH算法的标识与本地支持的DH算法的标识进行匹配,并从匹配出的DH算法中选定目标DH算法。
[0101] 第二发送单元730,用于获取所述IKEv2协商报文中携带的对应于所述目标DH算法的发起方密钥生成参数,并向所述发起方设备发送对应于所述IKEv2协商报文的响应报文,以完成DH算法协商;其中,所述响应报文携带所述目标DH算法的标识和对应于所述目标DH算法的响应方密钥生成参数。
[0102] 在本例中,所述装置还包括:
[0103] 第二记录单元740,用于在本地记录所述发起方密钥生成参数,并在完成DH算法协商后,根据对应于所述目标DH算法的发起方密钥生成参数和响应方密钥生成参数,计算得到密钥。
[0104] 本申请基于IKEv2的DH算法协商装置的实施例可以应用在DH算法协商的响应方设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在响应方设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图8所示,为本申请基于IKEv2的DH算法协商装置所在响应方设备的一种硬件结构图,除了图8所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的响应方设备通常根 据该基于IKEv2的DH算法协商装置的实际功能,还可以包括其他硬件,对此不再赘述。
[0105] 上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0106] 对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0107] 以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。