首页> 中国专利> CGA公钥识别和CGA公钥确定的方法、系统及装置

CGA公钥识别和CGA公钥确定的方法、系统及装置

摘要

本发明提供CGA公钥识别和CGA公钥确定的方法、系统和装置。其中,CGA公钥识别方案主要是接收节点接收发送节点发送的已进行公钥保护的第一报文;根据所述第一报文获取所述公钥的类型。CGA公钥确定方案主要是接收节点接收发送节点发送的已进行公钥保护的第一报文,并根据所述第一报文获取待确定公钥的类型,再根据所述待确定公钥的类型判断所述待确定公钥是否为自身支持的公钥,如果判断结果为是,则确定所述待确定公钥为自身支持的公钥。通过本发明的实施,有效解决了支持多公钥的CGA签名验证过程中的公钥识别和公钥确定问题。

著录项

  • 公开/公告号CN101741820A

    专利类型发明专利

  • 公开/公告日2010-06-16

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN200810217421.4

  • 发明设计人 沈烁;蒋胜;

    申请日2008-11-13

  • 分类号H04L29/06(20060101);H04L9/32(20060101);

  • 代理机构

  • 代理人

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-12-18 00:27:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-12-18

    授权

    授权

  • 2011-03-16

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20081113

    实质审查的生效

  • 2010-06-16

    公开

    公开

说明书

技术领域

本发明涉及通信领域,尤其涉及一种CGA公钥识别和CGA公钥确定的方法、系统及装置。

背景技术

加密生成地址CGA(Cryptographically Generated Address,CGA)是一类特别的IPv6地址,其中的接口标识部分由公钥结合辅助信息,使用单向的保密混乱算法生成。加密生成地址的使用中,接收方需要再次计算混乱数值,并与发送方的地址接口标识部分比较,以此来验证发送方的公钥和地址的绑定关系。对网络消息的保护则可以通过把公钥、辅助信息附加到消息中,再用对应的私钥签名来完成。为了增加CGA地址的加密强度,现有CGA的数据结构中还定义有3种比特位的安全参数(SEC)来代表CGA的安全等级,可以根据不同的SEC值得到不同级别的安全强度,并且该SEC值已经被定义用于CGA算法中哈希(Hash)算法的选取。加密生成地址方案在IP层内解决了地址的认证问题,不需要别的权威证书体系或者别的安全架构,是一种简单、高效的安全方案。

由于加密生成地址绑定了地址拥有方的公钥和私钥,地址拥有方可以利用这种公私钥系统的私钥对自己发的报文进行签名,达到信源认证和完整性保护的目的。报文接收端必须根据地址拥有方发来的所述报文进行CGA验证和签名验证且所述验证都通过,才能证明所述报文的源地址和内容是可靠的;如果上述验证中有任意一种验证未通过,则整种验证流程失败,对应的报文源地址和报文内容都是不可靠的。

随着网络通讯安全对密钥强度的需求加强,现有只支持RSA公钥(RSA公钥是由Ron-Shamir-Adleman发明的公钥系统,在网络通讯中可用于签名达到认证的目的)的CGA签名验证技术已难以满足当前的需求,因此支持多公钥的开发与应用已成为现在CGA签名验证技术的主要发展趋势,在支持多公钥的CGA签名验证过程中如何进行公钥识别进而实现公钥确定都成为亟待解决的问题之一。

发明内容

本发明实施例提供一种CGA公钥确定方法、系统及装置,以解决支持多公钥的CGA签名验证过程中进行公钥确定的问题。

为实现上述发明目的,本发明实施例提供一种CGA公钥确定方法,包括:

接收发送节点发送的已进行公钥保护的第一报文;

根据所述第一报文获取待确定公钥的类型;

根据所述待确定公钥的类型判断所述待确定公钥是否为接收节点自身支持的公钥;如果判断结果为是,则确定所述待确定公钥为自身支持的公钥。

本发明实施例还提供一种CGA公钥确定系统,包括:

第一网络节点,用于发送已进行公钥保护的第一报文;和

第二网络节点,用于接收所述第一网络节点发送的已进行公钥保护的第一报文,根据所述第一报文获取所述待确定公钥的类型,并根据所述待确定公钥类型判断所述待确定公钥是否为所述第二网络节点自身支持的公钥时,如果判断结果为是,则确定所述待确定公钥为所述第二网络节点自身支持的公钥。

本发明实施例还提供一种支持CGA公钥确定的网络节点装置,用于与另一网络节点装置进行CGA公钥确定;所述支持CGA公钥确定的网络节点装置包括:

公钥选择模块,用于从所述装置上预先部署的N种备选公钥中选择至少一种备选公钥作为待确定公钥,其中N为正整数;

第一报文处理模块,用于利用所述公钥选择模块选择的待确定公钥对第一报文进行公钥保护;

第一报文发送模块,用于向参与公钥确定的所述另一网络节点装置发送已进行公钥保护的所述第一报文;

第一公钥获取模块,用于根据所述另一网络节点装置回复的第二报文获取所述待确定公钥的类型;以及

公钥协商确定模块,用于根据所述第一公钥获取模块获取的所述待确定公钥的类型将对应的待确定公钥作为与所述另一网络节点装置协商确定的公钥。

本发明实施例还提供一种支持CGA公钥确定的网络节点装置,用于与另一网络节点装置进行CGA公钥确定;所述支持CGA公钥确定的网络节点装置包括:

第二报文接收模块,用于接收另一网络节点装置发送的已进行公钥保护的第一报文;

第二公钥获取模块,用于根据所述第一报文获取待确定公钥的类型;

公钥判断模块,用于根据所述待确定公钥的类型判断所述待确定公钥是否为本地支持的公钥;如果判断结果为是,则确定所述待确定公钥为本地支持的公钥。

与现有技术相比,本发明实施例具有以下优点:

通过使用本发明实施例所提供的CGA公钥确定方法、系统及装置,有效地解决了支持多公钥的CGA签名验证过程中的公钥确定问题,为支持多公钥的CGA签名验证技术发展铺平了道路。

另外,本发明实施例还提供一种CGA公钥识别方法及装置,以解决支持多公钥的CGA签名验证过程中进行公钥识别的问题。

对应地,为实现上述发明目的,本发明实施例还提供一种CGA公钥识别方法,包括:

接收发送节点发送的已进行公钥保护的第一报文;

根据所述第一报文获取所述公钥的类型。

本发明实施例还提供一种支持CGA公钥识别的网络节点装置,包括:

报文接收模块,用于接收发送节点发送的已进行公钥保护的第一报文;

公钥类型获取模块,用于根据所述第一报文获取所述公钥的类型。

与现有技术相比,本发明实施例具有以下优点:

通过使用本发明实施例所提供的CGA公钥识别方法及装置,有效地解决了支持多公钥的CGA签名验证过程中的公钥识别问题,为支持多公钥的CGA签名验证技术发展铺平了道路。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为一种加密生成地址验证示意图;

图2为本发明实施例一的CGA公钥识别方法的流程示意图;

图3为本发明实施例二的CGA公钥识别装置的流程示意图;

图4为本发明实施例三的CGA公钥确定方法的流程示意图;

图5为本发明实施例四的CGA公钥确定方法的流程示意图;

图6为本发明实施例四中发送节点与接收节点之间进行报文交互的示意图;

图7为本发明实施例五中发送节点与接收节点之间进行报文交互的示意图;

图8为本发明实施例五的CGA公钥确定的方法的流程示意图;

图9为本发明实施例六的CGA公钥确定的系统的结构框图;

图10为本发明实施例七的支持CGA公钥确定的网络节点装置的结构框图;

图11为本发明实施例八的支持CGA公钥确定的网络节点装置的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

加密生成地址CGA的产生、验证和签名均在RFC 3972中定义。如图1所示,加密生成地址的接口标识部分是由加密生成地址方的公钥及辅助信息通过混乱算法算出来,并作为网络通信负载传送给通信对端,验证方(比如接收节点)通过通信互动得到加密生成地址方的公钥及辅助信息后,再次进行混乱算法计算之后,与实际在通讯中使用的加密生成地址进行对比即可验证。以上解释以及图1只是对密钥生成地址的简单演示,实际密钥生成地址更复杂,为了更好的安全性采用了两次混乱算法及安全参数等技术,详细注释见RFC3972。

实施例一

如图2所示,本发明实施例所提供的CGA公钥识别方法应用于参与通讯的第一节点和第二节点上,上述两节点通常被定义为发送节点和接收节点,其中发送节点通常为CGA地址拥有者,用于与接收节点进行报文交互。在发送节点上可以根据实际需求预先部署用于CGA签名验证的多种公钥,所述公钥的类别以及优先级可以根据实际需求及策略进行部署,并且可以根据实际加密需求对待发送的报文进行各种形式的保护。例如在发送节点上预先部署3种不同种类的公钥,分别为PK1、PK2和PK3。发送节点可以从上述3种公钥中选择1种公钥,如PK1,对待发送的报文进行公钥保护,在所述报文中携带根据PK1生成的对应CGA参数和CGA签名。发送节点也可以从上述3种公钥中选择多种或全部公钥分别对待发送的报文进行公钥保护,当发送节点选择上述3种公钥分别对待发送的报文进行公钥保护时,在所述报文中携带分别根据上述3种公钥生成的对应CGA参数和CGA签名。本发明实施例所提供的方法具体包括:

S21接收发送节点发送的已进行公钥保护的第一报文。

其中,所述第一报文中可以携带有根据所述公钥生成的CGA参数和CGA签名。可选地,所述第一报文中也可以携带有自身所支持的公钥的提示信息。此外,所述第一报文中也可以采用直接携带自身所支持的公钥等方式。

S22根据所述第一报文获取所述公钥的类型。

具体地,当所述第一报文中携带有根据所述公钥生成的CGA参数和CGA签名时,S22具体包括:根据所述第一报文中携带的所述CGA参数和CGA签名获取所述公钥的类型。当所述第一报文中携带有自身所支持的公钥的提示信息时,S22具体包括:根据所述第一报文中携带的所述提示信息获取所述公钥的类型。

其中,所述第一报文中可以携带有根据一种公钥生成的对应的CGA参数和CGA签名,也可以携带根据多种公钥分别生成的对应CGA参数和CGA签名组成的一组CGA参数和CGA签名。当所述第一报文中携带有多种CGA参数和CGA签名时,接收节点将根据所述多种CGA参数和CGA签名分别获取对应的公钥类型。根据所获取的公钥类型,接收节点即可识别发送节点所使用的公钥。

实施例二

如图3所示,本发明实施例所提供的支持CGA公钥识别的网络节点装置,包括:

报文接收模块31,用于接收发送节点发送的已进行公钥保护的第一报文;

公钥类型获取模块32,用于根据所述第一报文获取所述公钥的类型。

具体地,所述公钥类型获取模块32可以包括:第一获取子单元,用于在所述第一报文中携带有根据所述公钥生成的CGA参数和CGA签名时,根据所述第一报文中携带的所述CGA参数和CGA签名获取所述公钥的类型;和/或第二获取子单元,用于在所述第一报文中携带有自身所支持的公钥的提示信息时,根据所述第一报文中携带的所述提示信息获取所述公钥的类型。

当所述第一报文中携带根据多种公钥分别生成的对应CGA参数和CGA签名,即所述第一报文中携带有多种CGA参数和CGA签名时,所述公钥类型获取模块32,用于根据所述多种CGA参数和CGA签名分别获取对应的公钥类型。

本发明实施例所提供的支持CGA公钥识别的网络节点装置,对应为上述方法实施例中的接收节点,其所适用的应用场景,以及工作方式和流程均与上述方法实施例类同,此不赘述。

通过上述本发明实施例所提供的CGA公钥识别方法及装置,有效地解决了支持多公钥的CGA签名验证过程中的公钥识别问题,为支持多公钥的CGA签名验证技术发展铺平了道路。

实施例三

如图4所示,本发明实施例还提供一种CGA公钥确定方法,所述方法应用于参与通讯的第一节点和第二节点上,上述两节点通常被定义为发送节点和接收节点,在所述发送节点和接收节点上可以根据实际需求分别预先部署用于CGA签名验证的多种备选公钥,所述备选公钥的类别以及优先级可以根据实际需求及策略采用完全相同或部分相同或完全不同的部署。例如在发送节点上预先部署3种备选公钥,分别为PK1、PK2和PK3,在对应的接收节点上预先部署2种备选公钥,分别为PK2和PK3,并且所述备选公钥的优先级从高到低的排列顺序为PK1>PK2>PK3。

本发明实施例所述方法主要是通过所述发送节点与接收节点之间的报文交互来进行公钥确定,包括以下步骤:

接收发送节点发送的已进行公钥保护的第一报文;

根据所述第一报文获取待确定公钥的类型;

根据所述待确定公钥的类型判断所述待确定公钥是否为接收节点自身支持的公钥;如果判断结果为是,则确定所述待确定公钥为自身支持的公钥。

当所述发送节点本地预先部署有N种备选公钥时,本发明实施例所述CGA公钥确定方法具体包括:

S41、发送节点从本地预先部署的N种备选公钥中选择至少一种备选公钥作为待确定公钥,其中N为正整数;

S42、所述发送节点利用所述待确定公钥对第一报文进行公钥保护。

S43、所述发送节点向接收节点发送已进行公钥保护的所述第一报文;

S44、所述接收节点收到所述第一报文后,根据该第一报文获取所述待确定公钥的类型;

S45、当根据所述待确定公钥的类型判断确定所述待确定公钥为所述接收节点支持的公钥时,所述接收节点用所述待确定公钥对第二报文进行保护,并将已进行公钥保护的所述第二报文发送给所述发送节点;

S46、所述发送节点根据所述第二报文获取所述待确定公钥的类型,并根据所述待确定公钥的类型将所述待确定公钥作为与所述接收节点协商确定的公钥。

在执行S45之前,本实施例所述方法还可包括:所述接收节点根据所述待确定公钥的类型判断所述待确定公钥是否为所述接收节点支持的公钥,当所述待确定公钥不是所述接收节点支持的公钥时,所述发送节点从所述N种备选公钥中选择另外至少一种备选公钥作为待确定公钥,返回执行S42。

可选地,当所述待确定公钥不是所述接收节点支持的公钥时,接收节点将向发送节点回复第三报文,用于告知发送节点本次确定失败,即所述待确定公钥不是所述接收节点支持的公钥;可选的,接收节点也可将自身所支持的公钥的提示信息携带于所述第三报文中发送给发送节点,发送节点收到所述第三报文后,将根据所述第三报文携带的提示信息获得接收节点所支持的公钥类型,并判断接收节点所支持的公钥类型是否为发送节点本地预先配置的公钥类型,如果判断结果为是,则确定成功,发送节点将对应的公钥类型通知所述接收节点,否则确定失败,结束流程。

可选地,所述发送节点从所述N种备选公钥中选择另外至少一种备选公钥作为待确定公钥的步骤具体包括:所述发送节点从所述N种备选公钥中未被选择作为待确定公钥的备选公钥中选择至少一种备选公钥作为待确定公钥。

可选地,当所述待确定公钥不是所述接收节点支持的公钥时,本实施例所述方法还包括:所述接收节点丢弃所述第一报文,并且不对所述发送节点作任何回复。所述发送节点从所述N种备选公钥中选择另外至少一种备选公钥作为待确定公钥的步骤具体包括:所述发送节点在规定时间内未收到所述接收节点的回复,则从所述N种备选公钥中未被选择作为待确定公钥的备选公钥中选择至少一种备选公钥作为待确定公钥。

在上述实施例中,所述发送节点可以根据实际需求或预先配置的公钥选择策略从本地预先部署的多种备选公钥中选择一种、两种或两种以上,或者全部备选公钥作为待确定公钥对第一报文进行公钥保护。例如,在所述发送节点上预先部署有5种备选公钥,依序排列为PK1、PK2、PK3、PK4、PK5,假定这种排列顺序就是所述备选公钥的优先选择顺序,并且所述备选公钥的优先选择顺序具体为PK1>PK2>PK3>PK4>PK5,则所述发送节点可以根据预先配置的公钥选择策略从所述5种备选公钥中任选一种公钥(如PK2)或根据从高到低的优先选择顺序首选优先级最高的一种公钥(如PK1)作为待确定公钥对第一报文进行公钥保护,也可以根据预先配置策略使用所有备选公钥分别对所述第一报文进行公钥保护,具体可选方案为根据上述优先选择顺序使用所有备选公钥依序对所述第一报文进行公钥保护。如果采用一种备选公钥,如PK1对所述第一报文进行公钥保护,则已进行公钥保护的所述第一报文尾部将携带有根据所述公钥PK1及其对应私钥分别生成的CGA参数和CGA签名。如果采用所有备选公钥对所述第一报文进行公钥保护,则已进行公钥保护的所述第一报文尾部将携带有根据所述5种备选公钥及其对应私钥依序生成的CGA参数1和CGA签名1、CGA参数2和CGA签名2、CGA参数3和CGA签名3、CGA参数4和CGA签名4、CGA参数5和CGA签名5。

安全邻居发现协议(SeND,Secure Neighbor Discovery)是采用CGA验证和签名认证对邻居发现协议(Neighbor Discovery Protocol)进行保护的IPv6协议,安全邻居发现协议的具体实现机制为在ND协议报文中携带CGA参数和CGA签名,由所述邻居发现协议报文的接收节点根据所述报文进行CGA验证和签名验证,从而达到对邻居发现协议报文源认证和完整性保护的目的。

邻居发现(ND,Neighbor Discovery)协议是IPv6协议的一种基本组成部分,它实现了在I Pv4中的地址解析协议(ARP)、互联网控制报文协议(Internet Control Message Protocol,ICMP)中的路由器发现部分、重定向协议的所有功能,并具有邻居不可达检测机制。

邻居发现协议实现了路由器和前缀发现、地址解析、下一跳地址确定、重定向、邻居不可达检测、重复地址检测等功能,可选实现链路层地址变化、输入负载均衡、泛播地址和代理通告等功能。

邻居发现协议采用5种类型的IPv6控制信息报文(ICMPv6)来实现邻居发现协议的各种功能。这5种类型消息如下:

路由器请求(Router Solicitation):当接口工作时,主机发送路由器请求消息,要求路由器立即产生路由器通告消息,而不必等待下一种预定时间。

路由器通告(Router Advertisement):路由器周期性地通告它的存在以及配置的链路和网络参数,或者对路由器请求消息作出响应。路由器通告消息包含在连接(on-link)确定、地址配置的前缀和跳数限制值等。

邻居请求(Neighbor Solicitation):节点发送邻居请求消息来请求邻居的链路层地址,以验证它先前所获得并保存在缓存中的邻居链路层地址的可达性,或者验证它自己的地址在本地链路上是否是惟一的。

邻居通告(Neighbor Advertisement):邻居请求消息的响应。节点也可以发送非请求邻居通告来指示链路层地址的变化。

重定向(Redirect):路由器通过重定向消息通知主机。对于特定的目的地址,如果不是最佳的路由,则通知主机到达目的地的最佳下一跳。

以下将结合ND协议报文来具体描述本发明的两种实施方式。

实施例四

请同时参阅图5和图6,本发明实施例提供一种CGA公钥确定方法,具体包括:

S51、发送节点从本地预先部署的N种备选公钥中选择一种备选公钥作为待确定公钥,其中N为大于1的正整数。

假设在发送节点上预先部署有5种备选公钥,依序排列为PK1、PK2、PK3、PK4、PK5,假定这种排列顺序就是所述备选公钥的优先选择顺序,并且所述备选公钥的优先选择顺序具体为PK1>PK2>PK3>PK4>PK5。所述发送节点根据预先配置的公钥选择策略,即按所述备选公钥的优先选择顺序从高到低选择备选公钥的方式将首选PK1作为待确定公钥。

S52、所述发送节点利用所述待确定公钥对第一ND协议报文进行公钥保护。

具体为,所述发送节点利用备选公钥PK1对第一ND协议报文MSG1进行公钥保护。

S53、所述发送节点向接收节点发送已进行公钥保护的所述第一ND协议报文。

如图6所示,所述发送节点将已进行公钥保护的所述第一ND协议报文MSG1发送给接收节点。所述第一ND协议报文MSG1携带有根据所述备选公钥PK1及其对应私钥生成的CGA参数和CGA签名。

S54、所述接收节点接收到所述第一ND协议报文后,根据所述第一ND协议报文获取所述待确定公钥的类型。

具体地,接收节点收到MSG1后,可以根据MSG1中携带的CGA参数和CGA签名获取所述待确定公钥PK1的类型。

S55、所述接收节点根据所述待确定公钥的类型判断所述待确定公钥是否为所述接收节点支持的公钥,如果判断结果为是,则执行S56;如果判断结果为否,则执行S58。

S56、所述接收节点用所述公钥对回复所述发送节点的第二ND协议报文进行保护,并将已进行公钥保护的所述第二ND协议报文发送给所述发送节点。

S57、所述发送节点根据所述第二ND协议报文获取所述待确定公钥的类型,并根据所述待确定公钥的类型将所述待确定公钥作为与所述接收节点确定的公钥。

S58、所述发送节点将从所述N种备选公钥中选择另一种备选公钥作为待确定公钥,返回执行S52。

在上述S55中,所述接收节点通常是采用将所述待确定公钥的类型与本地预先部署的备选公钥进行匹配的方式来判断所述待确定公钥是否为所述接收节点支持的公钥。如果所述待确定公钥不是所述接收节点支持的公钥,则所述接收节点将丢弃所述第一ND协议报文MSG1,并且不对发送节点作任何回复。所述发送节点在规定时间内未收到接收节点的回复,则从所述N种备选公钥中选择另一种备选公钥作为待确定公钥,返回执行S52。

在本实施例中,所述从所述N种备选公钥中选择一种备选公钥作为待确定公钥的操作均可以根据实际需求或发送节点本地预先配置的公钥选择策略来进行,例如根据所述备选公钥的优先选择顺序首选优先级最高的备选公钥。在S58中,所述发送节点从所述N种备选公钥中选择另一种备选公钥作为待确定公钥的步骤具体包括:所述发送节点从所述N种备选公钥中未被选择作为待确定公钥的备选公钥中选择一种优先级最高的备选公钥作为待确定公钥。

假设在接收节点上预先部署有2种公钥,分别为PK2和PK3,也就是说,PK2和PK3为所述接收节点支持的公钥。另外,假定这两种公钥的优先选择顺序与所述发送节点上所部署的备选公钥相同,即具体为PK2>PK3。所述接收节点根据MSG1获得所述待确定公钥PK1后,将PK1依次与本地部署的公钥PK2和PK3进行匹配。当接收节点经过匹配判断确定PK1不是所述接收节点支持的公钥时,将丢弃所述第一ND协议报文MSG1,并且不作回复。所述发送节点在规定时间内没有收到所述接收节点的回复,将从本地部署的所述5种备选公钥中未被选择作为待确定公钥的剩余4种备选公钥中选择一种优先级最高的备选公钥,即PK2作为待确定公钥,返回执行S52。具体地,所述发送节点利用所述待确定公钥PK2对MSG2报文进行公钥保护,并将已进行公钥保护的所述MSG2报文发送给接收节点,接收节点收到所述MSG2报文后,将根据所述MSG2报文获取待确定公钥PK2的类型,并将所述待确定公钥PK2的类型依次与本地部署的公钥PK2和PK3进行匹配。当接收节点经过匹配判断确定PK2是所述接收节点支持的公钥时,构造回复给发送节点的MSG3报文,并用所述公钥PK2对所述MSG3报文进行保护后,将已进行公钥保护的所述MSG 3报文发送给所述发送节点。所述发送节点收到所述MSG3报文后,根据MSG3报文获取所述待确定公钥PK2的类型,并根据所述待确定公钥PK2的类型将PK2作为与所述接收节点协商确定的公钥,至此CGA公钥确定成功。

依照上述方法,所述发送节点和接收节点还可以进一步通过报文交互来进行公钥确定,获得下一种确定选定的公钥。例如,所述发送节点根据MSG3报文获取所述待确定公钥PK2的类型,并根据所述待确定公钥PK2的类型将其作为与所述接收节点协商确定的公钥后,所述发送节点可以根据实际需求进一步从本地部署的5种备选公钥中另外选择一种备选公钥来作为待确定公钥,如从未被选择作为待确定公钥的3种剩余备选公钥中选择优先级最高的备选公钥PK3作为待确定公钥,继续依据上述方法与所述接收节点进行公钥确定,以获取下一种待确定的公钥,具体确定流程与上文所述类同,此不赘述。

实施例五

再请同时参阅图7和图8,本发明实施例还提供一种CGA公钥确定方法,具体包括:

S81、发送节点将本地预先部署的所有备选公钥均选作待确定公钥。

假设在发送节点上预先部署有4种备选公钥,依序排列为PK1、PK2、PK3、PK4。在本实施例中,所述发送节点将所述4种备选公钥均选作待确定公钥,用于对发送给接收节点的第一ND协议报文进行保护。

S82、所述发送节点利用所述待确定公钥对第一ND协议报文MSG1进行公钥保护。

假定上述发送节点上部署的备选公钥的排列顺序就是所述备选公钥的优先选择顺序,并且所述备选公钥的优先选择顺序具体为PK1>PK2>PK3>PK4。具体实施时,所述发送节点可以根据预先配置的公钥选择策略,按所述4种备选公钥的优先选择顺序从高到低选择备选公钥对第一ND协议报文MSG1进行公钥保护。

S83、所述发送节点向接收节点发送已进行公钥保护的所述第一ND协议报文MSG1。

如图7所示,所述发送节点将已进行公钥保护的所述第一ND协议报文MSG1发送给接收节点。所述第一ND协议报文MSG1携带有根据所述4种备选公钥及其对应私钥依次生成的CGA参数1和CGA签名1、CGA参数2和CGA签名2、CGA参数3和CGA签名3、CGA参数4和CGA签名4。

S84、所述接收节点接收到所述第一ND协议报文MSG1后,根据所述第一ND协议报文MSG1获取所述待确定公钥的类型。

具体地,接收节点收到MSG1报文后,可以根据MSG1报文中携带的四种CGA参数和CGA签名信息分别获取对应的待确定公钥的类型,即PK1、PK2、PK3和PK4的类型。

S85、当根据所述待确定公钥的类型判断确定所述待确定公钥中至少一种为所述接收节点支持的公钥时,所述接收节点从所述至少一种为所述接收节点支持的公钥的待确定公钥中选取至少一种待确定公钥对第二ND协议报文MSG2进行保护,并将已进行公钥保护的所述MSG2报文发送给所述发送节点。

可选地,在S84中,所述接收节点根据MSG1携带的四种CGA参数和CGA签名信息逐种获取所对应的待确定公钥的类型。例如,可先根据所述MSG1携带的CGA参数1和CGA签名1获取对应的待确定公钥PK1的类型;当根据所述待确定公钥PK1的类型判断确定PK1不是所述接收节点支持的公钥时,所述接收节点再根据所述MSG1携带的CGA参数2和CGA签名2获取对应的待确定公钥PK2的类型;当根据所述待确定公钥PK2的类型判断确定PK2也不是所述接收节点支持的公钥时,所述接收节点继续根据所述MSG1携带的CGA参数3和CGA签名3获取对应的待确定公钥PK3的类型,以此类推,直至根据所获取的待确定公钥的类型判断确定对应的待确定公钥为所述接收节点支持的公钥为止。如果PK1为所述接收节点支持的公钥时,则直接执行S85。

另外,如果在S84中所述接收节点根据MSG1报文获取到PK1、PK2、PK3以及PK4等4种所述待确定公钥的类型,并且其中只有PK2和PK3是所述接收节点支持的公钥,则在S85中所述接收节点将从所述PK2和PK3中选取至少一种待确定公钥对所述MSG2报文进行保护,并将已进行公钥保护的所述MSG2报文发送给所述发送节点。可选地,所述接收节点将按照预先配置的选取策略选取对MSG2报文进行公钥保护的待确定公钥,例如可根据本地配置的公钥优先选择顺序首选优先级较高的待确定公钥。如果PK2的优先级较高于PK3,则首选PK2对MSG2报文进行公钥保护。可选地,在S85中,当所述待确定公钥中的PK2和PK3均为所述接收节点支持的公钥时,所述接收节点也可用所述PK2和PK3依序对所述MSG2报文进行保护,并将已进行公钥保护的所述MSG2报文发送给所述发送节点。所述已进行公钥保护的MSG2报文中携带有分别根据待确定公钥PK2和PK3及其对应私钥生成的CGA参数2和CGA签名2,以及CGA参数3和CGA签名3。

S86、所述发送节点根据所述MSG2报文获取对MSG2报文进行公钥保护的所述待确定公钥的类型,并根据从MSG2报文中所获取的所述待确定公钥的类型将所述待确定公钥作为与所述接收节点协商确定的公钥。

具体地,所述发送节点接收到来自所述接收节点的所述MSG2报文后,根据所述MSG2报文中携带的CGA参数和CGA签名信息获取对应的待确定公钥的类型,并根据从MSG2报文中所获取的所述待确定公钥的类型将所述待确定公钥作为与所述接收节点协商确定的公钥。例如,当所述MSG2报文中只携带了CGA参数2和CGA签名2时,所述发送节点将根据所述MSG2报文获取对应的待确定公钥PK2的类型,并根据所述待确定公钥PK2的类型将PK2作为与接收节点协商确定的公钥;当所述MSG2报文中同时携带了CGA参数2和CGA签名2以及CGA参数3和CGA签名3时,所述发送节点将根据所述MSG2报文获取对应的待确定公钥PK2和PK3的类型,并根据所述待确定公钥PK2和PK3的类型将PK2和PK3均作为与接收节点协商确定的公钥。

根据本发明的设计思路,在本发明实施例所提供的CGA公钥确定方法中,所述发送节点和所述接收节点间交互的报文不限于ND协议报文,也可采用其他协议报文;获取待确定公钥类型的方式也不仅限于根据报文中所携带的CGA参数和CGA签名信息,也可由报文发送方将待确定公钥类型的信息直接添加于所述报文中,所述报文接收方将根据上述信息从报文中获取对应的待确定公钥类型。此外,报文发送方还可在所述报文中携带部署于本地的备选公钥优先选择序列,以利报文接收方能够更快地确定从报文中获得的待确定公钥是否为报文接收方所支持的公钥。

根据具体实现需求以及应用场景,也可采用本发明实施例提供的不同实施方式。例如,当回复地址为单播地址时,可只携带一种公钥及其私钥对应生成的CGA参数和CGA签名;当回复地址为多播地址时,如路由器通告为周期性发送或邻居通告为非请求邻居通告时,可只携带一种公钥及其私钥对应生成的CGA参数和CGA签名;也可携带所支持的所有公钥及其私钥对应生成的CGA参数和CGA签名。

综上所述,本发明实施例所提供的CGA公钥确定的方法主要是通过参与通讯的发送节点根据本地预先部署的备选公钥及对应的公钥选择策略指定一种或多种公钥对报文进行公钥保护,再将所述报文发送给接收节点,由接收节点判断是否支持根据所述报文获得的公钥,并发送需要公钥保护的报文将所述接收节点支持的公钥通知所述发送节点,从而实现所述发送节点与所述接收节点之间的公钥确定,有效地解决了支持多公钥的CGA签名验证过程中的公钥选择问题,为支持多公钥的CGA签名验证技术发展铺平了道路。

实施例六

请参阅图9,本发明实施例还提供一种CGA公钥确定的系统,所述系统包括:

第一网络节点91,用于发送已进行公钥保护的第一报文;和

第二网络节点92,用于接收所述第一网络节点91发送的已进行公钥保护的第一报文,根据所述第一报文获取所述待确定公钥的类型,并根据所述待确定公钥类型判断所述待确定公钥是否为所述第二网络节点自身支持的公钥时,如果判断结果为是,则确定所述待确定公钥为所述第二网络节点自身支持的公钥。

其中,所述第一网络节点91还用于从本地预先部署的N种备选公钥中选择至少一种备选公钥作为待确定公钥对第一报文进行公钥保护,其中N为正整数。

所述第二网络节点还用于在确定所述待确定公钥为所述第二网络节点自身支持的公钥时,用所述待确定公钥对第二报文进行公钥保护,并将已进行公钥保护的所述第二报文发送给所述第一网络节点;所述第一网络节点还用于根据所述第二报文获取所述待确定公钥类型,并根据所述待确定公钥类型将所述待确定公钥作为与所述第二网络节点协商确定的公钥。

实施例七

请参阅图10,本发明实施例还对应提供一种支持CGA公钥确定的网络节点装置,可用作上述系统实施例的第一网络节点。所述网络节点装置用于与另一网络节点装置进行CGA公钥确定,并且包括:

公钥选择模块101,用于从所述装置上预先部署的N种备选公钥中选择至少一种备选公钥作为待确定公钥,其中N为正整数;

第一报文处理模块102,用于利用所述公钥选择模块101选择的待确定公钥对第一报文进行公钥保护;

第一报文发送模块103,用于向参与公钥确定的所述另一网络节点装置发送已进行公钥保护的所述第一报文;

第一公钥获取模块104,用于根据所述另一网络节点装置发送的第二报文获取所述待确定公钥的类型;以及

公钥协商确定模块105,用于根据所述第一公钥获取模块获取的所述待确定公钥的类型将所述待确定公钥作为与所述另一网络节点装置协商确定的公钥。

实施例八

请参阅图11,本发明实施例还对应提供一种支持CGA公钥确定的网络节点装置,用作上述系统实施例的第二网络节点。所述网络节点装置用于与另一网络节点装置进行CGA公钥确定,并且包括:

第二报文接收模块111,用于接收另一网络节点装置发送的已进行公钥保护的第一报文;

第二公钥获取模块112,用于根据所述第一报文获取待确定公钥的类型;

公钥判断模块113,用于根据所述待确定公钥的类型判断所述待确定公钥是否为本地支持的公钥;如果判断结果为是,则确定所述待确定公钥为本地支持的公钥。

可选地,本发明实施例装置还包括:第二报文处理模块114,用于在所述公钥判断模块113判断确定所述待确定公钥为本地支持的公钥时,用所述待确定公钥对第二报文进行公钥保护;以及

第二报文发送模块115,用于将已在所述第二报文处理模块114上进行公钥保护的所述第二报文发送给所述另一网络节点装置。

上述CGA公钥确定的系统以及对应网络节点装置的使用过程和前述方法实施例类似,在此不再赘述。

使用本发明实施例的系统和装置,可以有效地解决支持多公钥的CGA签名验证过程中的公钥选择问题,为支持多公钥的CGA签名验证技术发展铺平道路。

通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一种存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是种人计算机,服务器,或者网络设备等)执行本发明各种实施例所述的方法。

本领域技术人员可以理解附图只是一种优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一种或多种装置中。上述实施例的模块可以合并为一种模块,也可以进一步拆分成多种子模块。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围和不脱离本发明的技术思想范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号