分布式网络用户的身份验证方法、系统、设备及存储介质转让专利

申请号 : CN202110621282.7

文献号 : CN113572615B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 许长桥季翔杨树杰吴忠辉王炜陈世武杨渝

申请人 : 北京邮电大学

摘要 :

本发明提供一种分布式网络用户的身份验证方法及系统,其中,方法包括:第一用户节点向签名服务节点发送第一通信请求信息,以供签名服务节点基于第一通信请求信息进行第一次验证,若确定第一次验证通过,基于当前时隙所有通信请求信息,在当前时隙末生成哈希日历,将哈希日历存入分布式数据库中,并向第一用户节点返回签名信息;接收签名服务节点发送的签名信息,基于签名信息和第一通信请求信息,生成第二通信请求信息,将第二通信请求信息发送给第二用户节点,以供第二用户节点进行第二次身份认证,若第二次身份认证通过,则第二用户节点根据待传输数据执行指令。排除身份冒用的可能,提高分布式网络通信过程安全性,信息的完整性和真实性。

权利要求 :

1.一种分布式网络用户的身份验证方法,其特征在于,包括:

第一用户节点向签名服务节点发送第一通信请求信息,以供所述签名服务节点基于所述第一通信请求信息,根据分布式数据库中存储的公共密钥,判断第一哈希密钥是否能够经过预设哈希处理操作得到第二哈希密钥,若确定所述第一哈希密钥能够经过预设哈希处理操作得到所述第二哈希密钥,则确定所述第一用户节点第一次验证通过,基于当前时隙所有通信请求信息,在当前时隙末生成哈希日历,将所述哈希日历存入分布式数据库中,并向所述第一用户节点返回签名信息;

接收所述签名服务节点发送的签名信息,基于所述签名信息和所述第一通信请求信息,生成第二通信请求信息,将第二通信请求信息发送给第二用户节点,以供所述第二用户节点接收所述第二通信请求信息后,根据所述分布式数据库中存储的所述公共密钥和所述哈希日历,判断所述分布式数据库中是否存在第二哈希密钥和第一通信请求信息,若确定所述分布式数据库中存在第二哈希密钥和第一通信请求信息,则确定所述第一用户节点的第二次验证通过,将待传输数据作为有效数据;

其中,所述第一通信请求信息包括:第一用户节点编号、第二用户节点编号、待传输数据、第一时间信息和第一哈希密钥;所述第一哈希密钥为动态哈希密钥链中与所述第一时间信息对应的前一位哈希密钥;所述公共密钥包括:第一用户节点编号、第二哈希密钥、动态哈希密钥链merkle树的根和第一时间信息;所述第二哈希密钥为动态哈希密钥链中与所述第一时间信息对应的当前位哈希密钥;所述签名信息包括所述哈希日历;所述哈希日历为当前所有时隙的身份请求验证信息对应的merkle树的根聚合成的目标merkle树的根;所述第二通信请求信息包括:第一身份请求验证信息和所述签名信息。

2.根据权利要求1所述的分布式网络用户的身份验证方法,其特征在于,所述第一用户节点向签名服务节点发送第一通信请求信息的步骤之前,还包括:第一用户节点基于所述第一时间信息和所述第一用户节点编号,生成动态哈希密钥链,根据所述动态哈希密钥链,确定动态哈希密钥链merkle树的根;其中,所述动态哈希密钥链中后一位哈希密钥为前一位哈希密钥经过预设哈希处理操作得到的;

基于所述动态哈希密钥链和所述第一时间信息,确定所述动态哈希密钥链中与所述第一时间信息对应的当前位哈希密钥,作为第二哈希密钥;

基于所述第一用户节点编号、所述第二哈希密钥、所述动态哈希密钥链merkle树的根和所述第一时间信息,生成所述公共密钥,并将所述公共密钥存入分布式数据库中。

3.一种分布式网络用户的身份验证方法,其特征在于,包括:

第二用户节点接收第一用户节点发送的第二通信请求信息后,根据分布式数据库中存储的公共密钥和哈希日历,判断所述分布式数据库中是否存在第二哈希密钥和第一通信请求信息;

若确定所述分布式数据库中存在第二哈希密钥和第一通信请求信息,则确定所述第一用户节点的第二次验证通过,将待传输数据作为有效数据;

其中,所述第二通信请求信息包括:第一身份请求验证信息和签名信息;所述第一通信请求信息包括:第一用户节点编号、第二用户节点编号、待传输数据、第一时间信息和第一哈希密钥;所述第一哈希密钥为动态哈希密钥链中与所述第一时间信息对应的前一位哈希密钥;所述公共密钥包括:第一用户节点编号、第二哈希密钥、动态哈希密钥链merkle树的根和第一时间信息;所述第二哈希密钥为动态哈希密钥链中与所述第一时间信息对应的当前位哈希密钥;所述签名信息包括所述哈希日历;所述哈希日历为当前所有时隙的身份请求验证信息对应的merkle树的根聚合成的目标merkle树的根;

所述签名信息是通过所述第一用户节点向签名服务节点发送第一通信请求信息,所述签名服务节点基于所述第一通信请求信息,根据所述分布式数据库中存储的公共密钥,判断第一哈希密钥是否能够经过预设哈希处理操作得到第二哈希密钥,若确定所述第一哈希密钥能够经过预设哈希处理操作得到所述第二哈希密钥,则确定所述第一用户节点第一次验证通过,基于当前时隙所有通信请求信息,在当前时隙末生成哈希日历,将所述哈希日历存入分布式数据库中,并向所述第一用户节点返回签名信息。

4.根据权利要求3所述的分布式网络用户的身份验证方法,其特征在于,所述第二用户节点接收第一用户节点发送的第二通信请求信息后,根据分布式数据库中存储的公共密钥和哈希日历,判断所述分布式数据库中是否存在第二哈希密钥和第一通信请求信息的步骤之后,还包括:若确定所述分布式数据库中不存在第二哈希密钥和第一通信请求信息,则确定所述第一用户节点的第二次验证不通过,将所述待传输数据作为无效数据。

5.一种分布式网络用户的身份验证方法,其特征在于,包括:

签名服务节点接收第一用户节点发送的第一通信请求信息,基于所述第一通信请求信息,根据分布式数据库中存储的公共密钥,判断第一哈希密钥是否能够经过预设哈希处理操作得到第二哈希密钥;

若确定所述第一哈希密钥能够经过预设哈希处理操作得到所述第二哈希密钥,则确定所述第一用户节点第一次验证通过,基于当前时隙所有通信请求信息,在当前时隙末生成哈希日历,将所述哈希日历存入分布式数据库中,并向所述第一用户节点返回签名信息,以供所述第一用户节点接收所述签名信息,基于所述签名信息和所述第一通信请求信息,生成第二通信请求信息,将第二通信请求信息发送给第二用户节点,以供所述第二用户节点接收所述第二通信请求信息后,根据所述分布式数据库中存储的所述公共密钥和所述哈希日历,判断所述分布式数据库中是否存在第二哈希密钥和第一通信请求信息,若确定所述分布式数据库中存在第二哈希密钥和第一通信请求信息,则确定所述第一用户节点的第二次验证通过,将待传输数据作为有效数据;

其中,所述第一通信请求信息包括:第一用户节点编号、第二用户节点编号、待传输数据、第一时间信息和第一哈希密钥;所述第一哈希密钥为动态哈希密钥链中与所述第一时间信息对应的前一位哈希密钥;所述公共密钥包括:第一用户节点编号、第二哈希密钥、动态哈希密钥链merkle树的根和第一时间信息;所述第二哈希密钥为动态哈希密钥链中与所述第一时间信息对应的当前位哈希密钥;所述签名信息包括所述哈希日历;所述哈希日历为当前所有时隙的身份请求验证信息对应的merkle树的根聚合成的目标merkle树的根;所述第二通信请求信息包括:第一身份请求验证信息和所述签名信息。

6.根据权利要求5所述的分布式网络用户的身份验证方法,其特征在于,所述签名服务节点接收第一用户节点发送的第一通信请求信息,基于所述第一通信请求信息,根据分布式数据库中存储的公共密钥,判断所述第一哈希密钥是否能够经过预设哈希处理操作得到所述第二哈希密钥的步骤之后,还包括:若确定所述第一哈希密钥不能够经过预设哈希处理操作得到所述第二哈希密钥,则确定所述第一用户节点第一次验证不通过。

7.根据权利要求5或6所述的分布式网络用户的身份验证方法,其特征在于,所述若确定所述第一哈希密钥能够经过预设哈希处理操作得到所述第二哈希密钥,则确定所述第一用户节点第一次验证通过,基于当前时隙所有通信请求信息,在当前时隙末生成哈希日历,将所述哈希日历存入分布式数据库中,并向所述第一用户节点返回签名信息,具体包括:若确定所述第一哈希密钥经过预设哈希处理操作后能够获得所述第二哈希密钥,则确定所述第一用户节点第一次验证通过;

在当前时隙末,确定当前时隙所有身份请求验证信息对应的merkle树的根,将所述当前时隙所有身份请求验证信息对应的merkle树的根与历史时隙的身份请求验证信息对应的merkle树的根聚合成的目标merkle树,将所述目标merkle树的根作为哈希日历;其中,所述历史时隙为所述第一时间信息当前时隙之前的所有时隙;

将所述哈希日历存入分布式数据库中,并向所述第一用户节点返回签名信息。

8.一种分布式网络用户的身份验证系统,其特征在于,包括:第一用户节点、第二用户节点和签名服务节点;

所述第一用户节点能够执行如权利要求1或2所述的分布式网络用户的身份验证方法;

所述第二用户节点能够执行如权利要求3或4所述的分布式网络用户的身份验证方法;

所述签名服务节点能够执行如权利要求5至7任一项所述的分布式网络用户的身份验证方法。

9.一种电子设备,其特征在于,包括存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至7任一所述的分布式网络用户的身份验证方法。

10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一所述的分布式网络用户的身份验证方法。

说明书 :

分布式网络用户的身份验证方法、系统、设备及存储介质

技术领域

[0001] 本发明涉及网络安全技术领域,尤其涉及一种分布式网络用户的身份验证方法及系统。

背景技术

[0002] 随着信息时代的到来,信息技术的全面发展,各种基于网络信息系统的服务蓬勃发展。但海量的服务请求带来的安全性问题也愈发突出,特别是在分布式网络中,如何保证数据可信和数据发送者的身份可靠都是亟待解决的难题。
[0003] 虽然传统的网络数据验证方法例如PKI(Public Key Infrastructure,公钥基础设施)可以实现部分验证功能,但是在鲁棒性和可靠性方面都存在缺陷。在鲁棒性方面传统的PKI方法需要证书机构(Certification Authority,简称CA)和注册机构(Registration Authority,简称RA)等中心化的服务节点,中心化的结构所面临的最大安全问题就是无法解决中心节点的功能异常。例如,节点脆弱的网络中的中心节点由于自身故障导致不能正常提供服务或遭受恶意第三方攻击使用户隐私泄露。另一方面,在可靠性方面传统的验证方法基于非对称的公私密钥对。这种成对的密钥结构的可靠性依赖于私钥良好的保密性,而私钥本身却被存储在没有安全保障的用户硬盘中。在这种情况下,密钥被黑客窃取用于伪造身份也成了传统PKI的重要漏洞。
[0004] 因此,如何提供一种分布式网络用户的身份验证方法及系统,在实现身份验证时排除身份冒用的可能,提高分布式网络用户身份验证的安全性,成为亟待解决的问题。

发明内容

[0005] 本发明提供的分布式网络用户的身份验证方法及系统,用于解决传统分布式网络通信时身份验证时可能会出现身份冒用的问题,在实现身份验证时排除身份冒用的可能,提高分布式网络用户身份验证的安全性。
[0006] 本发明提供一种分布式网络用户的身份验证方法,包括:
[0007] 第一用户节点向签名服务节点发送第一通信请求信息,以供签名服务节点基于第一通信请求信息,根据分布式数据库中存储的公共密钥,判断第一哈希密钥是否能够经过预设哈希处理操作得到第二哈希密钥,若确定第一哈希密钥能够经过预设哈希处理操作得到第二哈希密钥,则确定第一用户节点第一次验证通过,基于当前时隙所有通信请求信息,在当前时隙末生成哈希日历,将哈希日历存入分布式数据库中,并向第一用户节点返回签名信息;
[0008] 接收签名服务节点发送的签名信息,基于签名信息和第一通信请求信息,生成第二通信请求信息,将第二通信请求信息发送给第二用户节点,以供第二用户节点接收第二通信请求信息后,根据分布式数据库中存储的公共密钥和哈希日历,判断分布式数据库中是否存在第二哈希密钥和第一通信请求信息,若确定分布式数据库中存在第二哈希密钥和第一通信请求信息,则确定第一用户节点的第二次验证通过,将待传输数据作为有效数据;
[0009] 其中,第一通信请求信息包括:第一用户节点编号、第二用户节点编号、待传输数据、第一时间信息和第一哈希密钥;第一哈希密钥为动态哈希密钥链中与第一时间信息对应的前一位哈希密钥;公共密钥包括:第一用户节点编号、第二哈希密钥、动态哈希密钥链merkle树的根和第一时间信息;第二哈希密钥为动态哈希密钥链中与第一时间信息对应的当前位哈希密钥;签名信息包括哈希日历;哈希日历为当前所有时隙的身份请求验证信息对应的merkle树的根聚合成的目标merkle树的根;第二通信请求信息包括:第一身份请求信息和签名信息。
[0010] 通信请求信息本发明提供一种分布式网络用户的身份验证方法,包括:
[0011] 第二用户节点接收第一用户节点发送的第二通信请求信息后,根据分布式数据库中存储的公共密钥和哈希日历,判断分布式数据库中是否存在第二哈希密钥和第一通信请求信息;
[0012] 若确定分布式数据库中存在第二哈希密钥和第一通信请求信息,则确定第一用户节点的第二次验证通过,将待传输数据作为有效数据;
[0013] 其中,第二通信请求信息包括:第一身份请求信息和签名信息。第一通信请求信息包括:第一用户节点编号、第二用户节点编号、待传输数据、第一时间信息和第一哈希密钥;第一哈希密钥为动态哈希密钥链中与第一时间信息对应的前一位哈希密钥;公共密钥包括:第一用户节点编号、第二哈希密钥、动态哈希密钥链merkle树的根和第一时间信息;第二哈希密钥为动态哈希密钥链中与第一时间信息对应的当前位哈希密钥;签名信息包括哈希日历;哈希日历为当前所有时隙的身份请求验证信息对应的merkle树的根聚合成的目标merkle树的根。
[0014] 通信请求信息通信请求信息通信请求信息本发明提供一种分布式网络用户的身份验证方法,包括:
[0015] 签名服务节点接收第一用户节点发送的第一通信请求信息,基于第一通信请求信息,根据分布式数据库中存储的公共密钥,判断第一哈希密钥是否能够经过预设哈希处理操作得到第二哈希密钥;
[0016] 若确定第一哈希密钥能够经过预设哈希处理操作得到第二哈希密钥,则确定第一用户节点第一次验证通过,基于当前时隙所有通信请求信息,在当前时隙末生成哈希日历,将哈希日历存入分布式数据库中,并向第一用户节点返回签名信息,以供第一用户节点接收签名信息,基于签名信息和第一通信请求信息,生成第二通信请求信息,将第二通信请求信息发送给第二用户节点,以供第二用户节点接收第二通信请求信息后,根据分布式数据库中存储的公共密钥和哈希日历,判断分布式数据库中是否存在第二哈希密钥和第一通信请求信息,若确定分布式数据库中存在第二哈希密钥和第一通信请求信息,则确定第一用户节点的第二次验证通过,将待传输数据作为有效数据;
[0017] 其中,第一通信请求信息包括:第一用户节点编号、第二用户节点编号、待传输数据、第一时间信息和第一哈希密钥;第一哈希密钥为动态哈希密钥链中与第一时间信息对应的前一位哈希密钥;公共密钥包括:第一用户节点编号、第二哈希密钥、动态哈希密钥链merkle树的根和第一时间信息;第二哈希密钥为动态哈希密钥链中与第一时间信息对应的当前位哈希密钥;签名信息包括哈希日历;哈希日历为当前所有时隙的身份请求验证信息对应的merkle树的根聚合成的目标merkle树的根;第二通信请求信息包括:第一身份请求信息和签名信息。
[0018] 本发明还提供一种分布式网络用户的身份验证系统,包括:第一用户节点、第二用户节点和签名服务节点;
[0019] 第一用户节点能够执行如上述第一用户节点侧的分布式网络用户的身份验证方法;
[0020] 第二用户节点能够执行如上述第二用户节点侧的分布式网络用户的身份验证方法;
[0021] 签名服务节点能够执行如上述签名服务节点侧的分布式网络用户的身份验证方法。
[0022] 本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现如上述任一种分布式网络用户的身份验证方法的步骤。
[0023] 本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种分布式网络用户的身份验证方法的步骤。
[0024] 本发明提供的分布式网络用户的身份验证方法及系统,通过将动态的哈希密钥应用到节点通信时的身份验证过程中,使负责签名任务的节点能够在无密钥的情况下确定请求者的身份,从而在接入阶段排除身份冒用的可能,通过基于时隙分组的merkle树聚合查验算法来保障数据的完整性和可溯源性,从而无密钥的实现整个签名生成、验证过程,有效地提高分布式网络用户身份验证的安全性。

附图说明

[0025] 为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0026] 图1是本发明提供的分布式网络用户的身份验证方法流程图之一;
[0027] 图2是本发明提供的分布式网络用户的身份验证方法流程示意图;
[0028] 图3是本发明提供的签名信息生成方法流程示意图;
[0029] 图4是本发明提供的分布式网络用户的身份验证方法流程图之二;
[0030] 图5是本发明提供的分布式网络用户的身份验证方法流程图之三;
[0031] 图6是本发明提供的分布式网络用户的身份验证系统的结构示意图;
[0032] 图7是本发明提供的电子设备的实体结构示意图。

具体实施方式

[0033] 为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0034] 分布式网络是由分布在不同地点的多个节点互连而成的扁平化网络,相较于中心化网络更加灵活且具有更强的抗毁性。分布式网络(例如无分机集群网络)由于网络本身的弱连接和无线环境开放的特点导致其物理链路的安全性能和私密性十分脆弱,再结合与日俱增的外部网络安全威胁,任何一个具体的无人机网络的应用场景都存在安全问题,这已经成为分布式无人机网络研究中的热点与难点。
[0035] 近年来已经提出了一些维护网络数据安全的方法,如数据安全初创企业GuardTime公司开展的传统KSI(Keyless Signatures Infrastructure,无密钥签名基础设施)项目。该项目实现了无密钥的服务框架,可以实现对数据完整性和不可否认性保护,但传统的KSI服务依赖于多层的网关聚合和核心的验证网络,并不能适用于分布式网络。在以前的研究中,KSI服务在验证服务对象身份时还是使用了非对称密钥,并不能实现全流程的去密钥服务;其次,传统的验证方法使用广播哈希日历的方式提供验证服务。因此,服务的效率可能受到哈希日历的广播频率的影响。
[0036] 为了解决现有技术中存在的问题,图1是本发明提供的分布式网络用户的身份验证方法流程图之一,如图1所示,本发明提供一种分布式网络用户的身份验证方法,包括:
[0037] 步骤S101,第一用户节点向签名服务节点发送第一通信请求信息,以供签名服务节点基于第一通信请求信息,根据分布式数据库中存储的公共密钥,判断第一哈希密钥是否能够经过预设哈希处理操作得到第二哈希密钥,若确定第一哈希密钥能够经过预设哈希处理操作得到第二哈希密钥,则确定第一用户节点第一次验证通过,基于当前时隙所有通信请求信息,在当前时隙末生成哈希日历,将哈希日历存入分布式数据库中,并向第一用户节点返回签名信息;
[0038] 步骤S102,接收签名服务节点发送的签名信息,基于签名信息和第一通信请求信息,生成第二通信请求信息,将第二通信请求信息发送给第二用户节点,以供第二用户节点接收第二通信请求信息后,根据分布式数据库中存储的公共密钥和哈希日历,判断分布式数据库中是否存在第二哈希密钥和第一通信请求信息,若确定分布式数据库中存在第二哈希密钥和第一通信请求信息,则确定第一用户节点的第二次验证通过,将待传输数据作为有效数据;
[0039] 其中,第一通信请求信息包括:第一用户节点编号、第二用户节点编号、待传输数据、第一时间信息和第一哈希密钥;第一哈希密钥为动态哈希密钥链中与第一时间信息对应的前一位哈希密钥;公共密钥包括:第一用户节点编号、第二哈希密钥、动态哈希密钥链merkle树的根和第一时间信息;第二哈希密钥为动态哈希密钥链中与第一时间信息对应的当前位哈希密钥;签名信息包括哈希日历;哈希日历为当前所有时隙的身份请求验证信息对应的merkle树的根聚合成的目标merkle树的根;第二通信请求信息包括:第一身份请求信息和签名信息。
[0040] 需要说明的是,上述方法的执行主体可以是计算机设备。
[0041] 具体的,本发明的身份验证方法为一种无密钥的架构,能够在分布式网络中取代PKI。完整的身份验证过程可以分为两步,即签名者的识别(身份验证)和通过签名保证的数据完整性这两个部分。分别委托给了不同的密码学工具,第一次身份验证时,即签名者的识别,可以使用动态哈希密钥链加密。第二次身份验证时,对签名完整性的验证采用merkle树的根和哈希日历共同定位的分布式数据库查询。
[0042] 可以理解的是,分布式网络可以是无人机集群网络和智能车集群网络等,本发明具体的应用场景可根据实际情况进行选择,本发明对此不作限定。
[0043] 本发明提供的分布式网络用户的身份验证方法涉及到分布式网络中三个不同身份的节点,包括:第一用户节点(数据发送侧)、第二用户节点(数据接收侧)和签名服务节点(签名服务侧)。
[0044] 需要说明的是,本发明中第一用户节点、第二用户节点和签名服务节点在此仅用于区分分布式网络中各节点不同的身份,便于对方案进行解释说明,其可以用于指代分布式网络任意节点,本发明对此不作限定。
[0045] 以分布式网络为无分机集群网络为例,对本发明方案进行解释说明。图2是本发明提供的分布式网络用户的身份验证方法流程示意图,如图2所示,对于第一用户节点,即数据发送侧,需要向网络中其他的无人机节点(第二用户节点)发送数据信息时,利用存储于分布式数据库中的动态哈希密钥链进行第一次验证,首先,在步骤S101中,第一用户节点向签名服务节点发送第一通信请求信息。
[0046] 其中,第一通信请求信息包括:第一用户节点编号(SenderID)、第二用户节点编号(ReceiverID)、待传输数据(msg)、第一时间信息(发送数据包的当前时间t)和第一哈希密钥(Zn‑1)。第一哈希密钥为动态哈希密钥链中与第一时间信息对应的前一位哈希密钥。
[0047] 签名服务节点在接收到第一身份验证信息后,基于第一通信请求信息,根据分布式数据库中存储的公共密钥(公共密钥包括:第一用户节点编号、第二哈希密钥、动态哈希密钥链merkle树的根和第一时间信息。第二哈希密钥为动态哈希密钥链中与第一时间信息对应的当前位哈希密钥),若判断第一哈希密钥能够经过预设哈希处理操作得到第二哈希密钥,则确定第一用户节点第一次验证通过。
[0048] 可以理解的是,第一哈希密钥和第二哈希密钥为两个在动态哈希密钥串中对应的哈希密钥,前一位哈希密钥(第一哈希密钥)经过预设哈希处理操作可以生成后一位哈希密钥(第二哈希密钥)。
[0049] 图3是本发明提供的签名信息生成方法流程示意图,如图3所示,身份认证成功后将该条请求与该时隙收到的其他请求,在时隙结束时聚合,形成一个时隙专属的merkle树,此树包含唯一的根rt,在获得rt之后签名服务无人机会将之前所有时隙的r1,r2,r3...rt收集共同聚合成另一个时隙专属的目标merkle树,目标merkle树的根即哈希日历(calendar),将保证每一个merkle树都有rt和calendar这两个可以表征其身份的元素。这些数据都会被上传到分布式数据库。并向第一用户节点返回签名信息(包括哈希日历)(Signature(merkle root,calendar,St(签名对应的时间戳)))。
[0050] 可以理解的是,无人机获得签名后,同时从分布式数据库中获得了rt和calendar。此时网络中的任何无人机都可以根据签名与分布式数据库中的信息共同验证消息提供者的身份和消息的完整性。
[0051] 把签名放在数据包内进行传输,能够实现大规模的签名服务,网络中接收到此数据包的任意节点均能够在本地基于本方法提供的规则在无密钥的情况下验证数据包是否可信,并且由于本发明不依赖于私钥的保密性,这些数据签名无法被其他恶意节点盗用,能够有效地利用无密钥的技术优势来解决现有分布式网络中的数据安全问题。
[0052] 同时由于哈希算法的单向性无法推算密钥链的前一位。第一用户节点将前一位的哈希密钥发送给签名服务无人机,签名服务无人机在本地对接收到的密钥进行预设哈希处理操作之后,再与分布式数据库中对应第一用户节点编号所存储的当前位哈希密钥进行比对。如果相同则认为其身份得到验证,同时在分布式数据库中更新对应用户编号下所存储的哈希密钥。以上步骤随通信轮次的推荐循环往复。
[0053] 其次,在生成动态密钥链时,所采用的预设哈希处理操作,可以根据实际情况进行设置(例如,前一位哈希密钥经经过一次哈希操作获得下一位哈希密钥,或前一位哈希密钥经过两次哈希操作且附加预设操作码获得下一位哈希密钥),本发明对此不作限定。
[0054] 需要说明的是,分布式网络中任意节点均可访问分布式数据库,分布式数据库中存储的数据信息,可以通过广播的形式,在每一时隙末尾(或适应性地选择其他时刻,哈希日历对应进行调整)进行广播,或者,在节点发送访问请求时进行访问,具体的节点读取分布式数据库中信息的方法可以根据实际情况进行调整,本发明对此不作限定。
[0055] 例如,在第一用户节点(无人机1)向签名服务节点请求签名服务时,将需要签名的数据在本地进行哈希操作,在数据包(包括:第一用户节点编号、第二用户节点编号、待传输数据、第一时间信息)头加上哈希密钥链与第一时间信息对应的前一位哈希密钥,以数据包格式发送给签名服务节点,正确的动态哈希密钥可以通过身份认证,且十秒(可根据实际需求进行调整)内可以使用同一密钥通过认证。
[0056] 可以理解的是,在十秒内可进行同一密钥进行验证,在下一个十秒内,使用哈希密钥链的倒数第二位作为当前位进行验证。实现哈希密钥链的动态验证,保证不同时间验证密钥的不可预测性。提高了身份验证的安全性。
[0057] 在确认第一用户节点的身份后,开始提供签名服务,用于验证数据的完整性(防止网络中的数据包被恶意第三方截获篡改)。在步骤S102中,第一用户节点接收签名服务节点发送的签名信息,基于签名信息和第一通信请求信息,生成第二通信请求信息。其中,第二通信请求信息包括:第一身份请求信息和签名信息。
[0058] 第一用户节点将第二通信请求信息发送给第二用户节点,以供第二用户节点接收第二通信请求信息后,根据分布式数据库中存储的公共密钥和哈希日历,判断分布式数据库中是否存在第二哈希密钥和第一通信请求信息,若确定分布式数据库中存在第二哈希密钥和第一通信请求信息,则确定第一用户节点的第二次验证通过,将待传输数据作为有效数据。
[0059] 本发明提供的分布式网络用户的身份验证方法,通过将动态的哈希密钥应用到节点通信时的身份验证过程中,使负责签名任务的节点能够在无密钥的情况下确定请求者的身份,从而在接入阶段排除身份冒用的可能,通过基于时隙分组的merkle树聚合查验算法来保障数据的完整性和可溯源性,从而无密钥的实现整个签名生成、验证过程,有效地提高分布式网络用户身份验证的安全性。
[0060] 进一步地,在一个实施例中,根据本发明提供一种分布式网络用户的身份验证方法,
[0061] 第一用户节点向签名服务节点发送第一通信请求信息的步骤之前,还包括:
[0062] 第一用户节点基于第一时间信息和第一用户节点唯一标志,生成动态哈希密钥链,根据动态哈希密钥链,确定动态哈希密钥链merkle树的根;
[0063] 基于动态哈希密钥链和第一时间信息,确定动态哈希密钥链中与第一时间信息对应的当前位哈希密钥,作为第二哈希密钥;
[0064] 基于第一用户节点编号、第二哈希密钥、动态哈希密钥链merkle树的根和第一时间信息,生成公共密钥,并将公共密钥存入分布式数据库中。
[0065] 具体的,基于动态哈希密钥的身份验证方法的主要思想是:通过密钥的迭代更新来解决传输过程中可能带来的密钥泄露问题。该部分方法包含密钥替换、密钥注销和传输加密三个部分,共同维护了网络中需要频繁验证的用户身份的保密性。
[0066] 在第一用户节点向签名服务节点发送第一通信请求信息的步骤之前,还需要将第一用户节点对应的公共密钥存储于分布式数据库中,其具体的步骤包括:
[0067] 第一用户节点基于第一时间信息和第一用户节点唯一标志,生成动态哈希密钥链。根据动态哈希密钥链,确定动态哈希密钥链merkle树的根。其中,动态哈希密钥链中后一位哈希密钥为前一位哈希密钥经过预设哈希处理操作得到的;
[0068] 基于动态哈希密钥链和第一时间信息,确定动态哈希密钥链中与第一时间信息对应的当前位哈希密钥,作为第二哈希密钥。
[0069] 根据不同时隙的动态哈希密钥链,实现对密钥的替换。例如:假设l代表可能出现的身份认证的会话数,l的大小取决于预设的网络生存时间。动态哈希密钥zl满足如下约束:
[0070] z0={0,1}n
[0071] zi=h(zi‑1)for i∈{l,l‑1,l‑2,...,1}
[0072] 动态哈希密钥链的后一位是前一位进行哈希操作之后的结果,第0位z0为每一台无人机在起飞前本地生成的只对自己可知的身份标识。r代表了由z0,z1,...,zl聚合形成的merkle数的根。
[0073] 哈希密钥链的最后一位元素zl是当前会话对应的哈希密钥(即第二哈希密钥),本发明中公钥并不是RSA标准中私钥‑公钥对中的公钥,而是指公共密钥。并不妨碍签名可以在无密钥的情况下被可靠验证,满足了分布式网络对签名服务的需求。
[0074] 每架用户无人机本地存储一条单向的哈希密钥链,在无人机起飞前网络可信的情况下,基于第一用户节点编号、第二哈希密钥、动态哈希密钥链merkle树的根和第一时间信息,把本地的哈希密钥链的最后一位Zn和密钥链聚合之后的根r作为公共密钥(ID,Zn,r,t)放入分布式数据库,并广播到无人机网络。
[0075] 需要说明的是,考虑到验证服务需满足无人机网络的生成时间,可以将密钥向前迭代的时间周期确定为十秒(具体时长可根据实际情况进行调整),即在与上一次通信间隔十秒以内无人机用户使用与上一次相同的密钥,而签名服务器在十秒内同样只使用未被更新的密钥作为验证工具。
[0076] 进一步,可以理解的是,在某节点感知到密钥链可能被泄露或者需要退出网络时,可以向签名服务无人机请求注销密钥。该操作需要向服务器发送一个包含r的撤销注释,该注释带有完整的密钥链,以便让签名服务无人机从重新计算r,如果验证通过,则签名服务无人机进行密钥注销操作。
[0077] 传输加密部分同样与密钥链相关,其将动态密钥与数据加密技术进行了有效地结合,同时保证数据传输过程中消息的机密性和抗破解性。本发明提出一种适用于分布式网络的身份认证模型,可以高效验证网络节点的身份且密钥随时间变化,在此基础上本方法还可以将动态密钥与现有的对称加密技术DES(Data Encryption Standard)融合,提高了无人机网络中消息的机密性。
[0078] 其执行逻辑如下:在数据传输之前,用户无人机使用当前传输轮次所使用密钥字符串的前8位作为密码用于传统对称加密算法DES。DES(Data Encryption Standard)是一种已经被公布的数据加密方式。它是一种对称加密算法,又称为数据加密标准。
[0079] DES加密时以64位分组对数据进行加密,加密和解密都使用的是同一个长度为64位的密钥,实际上只用到了其中的56位,密钥中的第8、16...64位用来作奇偶校验。DES有ECB(Electronic Codebook,电子密码本)和CBC(加密块)等加密模式。DES算法的安全性很高,目前除了穷举搜索破解外,尚无更好的办法来破解。
[0080] 用动态密钥的一部分作为DES的加密密码使得网络中传输的数据只能由发送者或签名服务无人机解密,而密钥动态变化的特点又进一步保证了安全性。基于动态哈希密钥的身份验证算法的详细伪代码如下所示:
[0081]
[0082]
[0083] 需要说明的是,上述传输加密的步骤仅作为一个具体的实例对本发明提供的方法进行解释说明,具体的数据传输加密方法可根据实际需求进行调整,本发明对此不作限定。
[0084] 本发明提供的分布式网络用户的身份验证方法,通过将动态的哈希密钥应用到节点通信时的身份验证过程中,使第一用户节点在第一次与签名服务无人机建立连接时,签名服务无人机并不知道用户的完整密钥链,根据确定前一位哈希密钥和当前位哈希密钥的匹配关系,使负责签名任务的节点能够在无密钥的情况下确定请求者的身份,基于动态哈希密钥的身份认证技术是一种具备可撤销性的可信身份构造及轻量存储方法,使得其中不包含任何指代性信息,即与原始信息不存在可见的关联关系,即使被截获也无法反推原始身份。该算法直接采用可信身份作为哈希链的起始段,减少密钥生成及管理成本,在接入阶段排除身份冒用的可能。通过基于时隙分组的merkle树聚合查验算法来保障数据的完整性和可溯源性,从而无密钥的实现整个签名生成、验证过程,有效地提高分布式网络用户身份验证的安全性。
[0085] 图4是本发明提供的分布式网络用户的身份验证方法流程图之二,如图4所示,本发明提供一种分布式网络用户的身份验证方法,包括:
[0086] 步骤S401,第二用户节点接收第一用户节点发送的第二通信请求信息后,根据分布式数据库中存储的公共密钥和哈希日历,判断分布式数据库中是否存在第二哈希密钥和第一通信请求信息;
[0087] 步骤S402,若确定分布式数据库中存在第二哈希密钥和第一通信请求信息,则确定第一用户节点的第二次验证通过,将待传输数据作为有效数据;
[0088] 其中,第二通信请求信息包括:第一身份请求信息和签名信息。第一通信请求信息包括:第一用户节点编号、第二用户节点编号、待传输数据、第一时间信息和第一哈希密钥;第一哈希密钥为动态哈希密钥链中与第一时间信息对应的前一位哈希密钥;公共密钥包括:第一用户节点编号、第二哈希密钥、动态哈希密钥链merkle树的根和第一时间信息;第二哈希密钥为动态哈希密钥链中与第一时间信息对应的当前位哈希密钥;签名信息包括哈希日历;哈希日历为当前所有时隙的身份请求验证信息对应的merkle树的根聚合成的目标merkle树的根。
[0089] 具体的,对消息完整性的验证,提出一种基于时隙分组的merkle树聚合查验算法,通过每一时隙merkle树的根和哈希日历(calendar)共同定位分布式数据库中的数据,将生成的数字签名被分发给请求的用户。用户在本地可以验证消息附带的数字签名,经过本地验证之后可以确定数据是否遭到篡改,即保障了消息的完整性。
[0090] 可以理解的是,第一用户节点获得签名服务节点返回的签名信息后与第二用户节点通信,第一用户节点把签名附在消息之前确定第二身份认证请求并发送给第二用户节点之后。
[0091] 对于第二用户节点,即数据接收侧,需要接收网络中其他的无人机节点(第一用户节点)发送的数据信息时,首先,在步骤S401中,第二用户节点接收第一用户节点发送的第二通信请求信息后,根据签名中的merkle根和哈希日历(calendar)作为索引在分布式数据库进行查找验证,判断分布式数据库中是否存在第二哈希密钥和第一通信请求信息,将查验结果将以bool值布尔型变量的形式返回给第二用户节点。
[0092] 在步骤S402中,若第二用户节点确定分布式数据库中存在第二哈希密钥和第一通信请求信息,则确定第一用户节点的第二次验证通过,将待传输数据作为有效数据。
[0093] 需要说明的是,第一用户节点、第二用户节点和签名服务节点共同实现本发明提供的分布式网络用户的身份验证方法,其方法步骤相互匹配,对其他节点侧的方法步骤的解释说明可以对本侧的方案进行辅助说明。
[0094] 进一步地,在一个实施例中,根据本发明提供一种分布式网络用户的身份验证方法,
[0095] 第二用户节点接收第一用户节点发送的第二通信请求信息后,根据分布式数据库中存储的公共密钥和哈希日历,判断分布式数据库中是否存在第二哈希密钥和第一通信请求信息的步骤之后,还包括:
[0096] 若确定分布式数据库中不存在第二哈希密钥和第一通信请求信息,则确定第一用户节点的第二次验证不通过,将待传输数据作为无效数据。
[0097] 具体的,第二用户节点接收第一用户节点发送的第二通信请求信息后,根据分布式数据库中存储的公共密钥和哈希日历,判断分布式数据库中是否存在第二哈希密钥和第一通信请求信息的步骤之后,还包括:
[0098] 若第二用户节点查找验证后确定分布式数据库中不存在第二哈希密钥和第一通信请求信息,则确定第一用户节点的第二次验证不通过,将待传输数据作为无效数据。
[0099] 本发明提供的分布式网络用户的身份验证方法,通过将动态的哈希密钥应用到节点通信时的身份验证过程中,使负责签名任务的节点能够在无密钥的情况下确定请求者的身份,从而在接入阶段排除身份冒用的可能。使用了时间戳和基于时隙分组的merkle树聚合数据支持,每一时隙创建全局merkle树并发布其根哈希密钥和哈希日历,通过基于时隙分组的merkle树聚合查验算法来保障数据的完整性和可溯源性,从而无密钥的实现整个签名生成、验证过程,有效地提高分布式网络用户身份验证的安全性。本发明使用离线技术,设计基于可信身份的加密及解密算法、哈希密钥链生成及验签算法、签密及解签密算法。离线阶段预计算生成哈希密钥耗时较长的密码学运算,在线阶段只需轻量运算即可完成。哈希密钥的根r被用来验证链的真实性,防止被暴力破解,可以应用于链的更换。使网络中传输的数据不是明文,保证数据传输的安全性。
[0100] 图5是本发明提供的分布式网络用户的身份验证方法流程图之三,如图5所示,本发明提供一种分布式网络用户的身份验证方法,包括:
[0101] 步骤S501,签名服务节点接收第一用户节点发送的第一通信请求信息,基于第一通信请求信息,根据分布式数据库中存储的公共密钥,判断第一哈希密钥是否能够经过预设哈希处理操作得到第二哈希密钥;
[0102] 步骤S502,若确定第一哈希密钥能够经过预设哈希处理操作得到第二哈希密钥,则确定第一用户节点第一次验证通过,基于当前时隙所有通信请求信息,在当前时隙末生成哈希日历,将哈希日历存入分布式数据库中,并向第一用户节点返回签名信息,以供第一用户节点接收签名信息,基于签名信息和第一通信请求信息,生成第二通信请求信息,将第二通信请求信息发送给第二用户节点,以供第二用户节点接收第二通信请求信息后,根据分布式数据库中存储的公共密钥和哈希日历,判断分布式数据库中是否存在第二哈希密钥和第一通信请求信息,若确定分布式数据库中存在第二哈希密钥和第一通信请求信息,则确定第一用户节点的第二次验证通过,将待传输数据作为有效数据;
[0103] 其中,第一通信请求信息包括:第一用户节点编号、第二用户节点编号、待传输数据、第一时间信息和第一哈希密钥;第一哈希密钥为动态哈希密钥链中与第一时间信息对应的前一位哈希密钥;公共密钥包括:第一用户节点编号、第二哈希密钥、动态哈希密钥链merkle树的根和第一时间信息;第二哈希密钥为动态哈希密钥链中与第一时间信息对应的当前位哈希密钥;签名信息包括哈希日历;哈希日历为当前所有时隙的身份请求验证信息对应的merkle树的根聚合成的目标merkle树的根;第二通信请求信息包括:第一身份请求信息和签名信息。
[0104] 具体的,首先,对于签名服务节点,即签名服务侧,需要在第一用户节点向第二用户节点发送信息时,向签名服务节点请求签名。在步骤S501中,签名服务节点接收第一用户节点发送的第一通信请求信息。签名服务节点基于第一通信请求信息,根据分布式数据库中存储的公共密钥,判断第一哈希密钥是否能够经过预设哈希处理操作得到第二哈希密钥。
[0105] 在步骤S502中,若签名服务节点确定第一哈希密钥能够经过预设哈希处理操作得到第二哈希密钥,则确定第一用户节点第一次验证通过,基于当前时隙所有通信请求信息,在当前时隙末生成哈希日历,将哈希日历存入分布式数据库中,并向第一用户节点返回签名信息。
[0106] 第一用户节点接收签名服务节点发送返回的签名信息,基于签名信息和第一通信请求信息,生成第二通信请求信息,将第二通信请求信息发送给第二用户节点。
[0107] 第二用户节点接收第一用户节点发送的第二通信请求信息后,根据分布式数据库中存储的公共密钥和哈希日历,判断分布式数据库中是否存在第二哈希密钥和第一通信请求信息,若确定分布式数据库中存在第二哈希密钥和第一通信请求信息,则确定第一用户节点的第二次验证通过,将待传输数据作为有效数据。
[0108] 可以理解的是,用户节点和签名认证节点之间的交互可以被认为是一个时隙内发生的独立事件,整个分布式网络的签名请求可以被描述为 签名服务节点以时隙为单位不断循环运行,对网络中任意用户节点的签名服务请求做出回应。
[0109] 例如:签名服务无人机以两秒为一个时隙(时隙的大小可根据实际需求调整,并且,该时隙的取值可与密钥有效的时隙取值相同或者不相同,本发明对此不作限定),在每个时隙结束时给时隙内所有的签名服务请求者返回签名,在每个时隙开始会创建一个空的切片,用于存放每个时隙所有要聚合的信息,同时创建请求数量个的随机数,将随机数与发送者和接收者的ID拼接到需要被签名的消息之前。
[0110] 处理后的消息会在时隙末尾作为叶子节点被聚合为一个merkle树,从无人机群起飞开始,每一个时隙都会生成一个对应时隙的merkle树,在每时隙聚合完消息之后,已有的merkle树根又会被重新聚合成一颗新的目标merkle树,新的目标merkle树的根被称作哈希日历(calendar),哈希日历被作为索引被放在返回给无人机用户的签名中。
[0111] 可以理解的是,考虑到不同节点在同一时隙可能会传输相同的信息,在进行签名时,签名信息还包括随机数,用于区分不同节点发送的信息。
[0112] 需要说明的是,第一用户节点、第二用户节点和签名服务节点共同实现本发明提供的分布式网络用户的身份验证方法,其方法步骤相互匹配,对其他节点侧的方法步骤的解释说明可以对本侧的方案进行辅助说明。
[0113] 本发明提供的分布式网络用户的身份验证方法,通过将动态的哈希密钥应用到节点通信时的身份验证过程中,使负责签名任务的节点能够在无密钥的情况下确定请求者的身份,从而在接入阶段排除身份冒用的可能,在身份认证通过后,公钥里身份标识被聚合进当前时隙的merkle树,且此身份标识会加入下一步中返回的签名,保证即使在签名在返回的过程中泄露,也不会作为全网通用的签名被大规模滥用。通过基于时隙分组的merkle树聚合查验算法来保障数据的完整性和可溯源性,无密钥的实现整个签名生成、验证过程。相比于传统PKI的安全性需要依赖于密钥对的保密,本发明提供的方法的安全性并不依赖于密钥长期的不泄密,能够有效地提高分布式网络用户身份验证的安全性和可靠性。实现了无人机网络中消息的认证性、消息完整性与抗抵赖性、匿名性、机密性、可用性、新鲜性和抗追踪性。
[0114] 进一步地,在一个实施例中,根据本发明提供一种分布式网络用户的身份验证方法,
[0115] 签名服务节点接收第一用户节点发送的第一通信请求信息,基于第一通信请求信息,根据分布式数据库中存储的公共密钥,判断第一哈希密钥是否能够经过预设哈希处理操作得到第二哈希密钥的步骤之后,还包括:
[0116] 若确定第一哈希密钥不能够经过预设哈希处理操作得到第二哈希密钥,则确定第一用户节点第一次验证不通过。
[0117] 具体的,签名服务节点接收第一用户节点发送的第一通信请求信息,基于第一通信请求信息,根据分布式数据库中存储的公共密钥,判断第一哈希密钥是否能够经过预设哈希处理操作得到第二哈希密钥的步骤之后,还包括:
[0118] 若签名服务节点确定第一哈希密钥不能够经过预设哈希处理操作得到第二哈希密钥,则确定第一用户节点第一次验证不通过,认为第一用户节点签名失败,不返回签名信息。以使第一用户节点不能进一步进行与第二用户节点的第二次身份验证。
[0119] 进一步地,在一个实施例中,根据本发明提供一种分布式网络用户的身份验证方法,
[0120] 若确定第一哈希密钥能够经过预设哈希处理操作得到第二哈希密钥,则确定第一用户节点第一次验证通过,基于当前时隙所有通信请求信息,在当前时隙末生成哈希日历,将哈希日历存入分布式数据库中,并向第一用户节点返回签名信息,具体包括:
[0121] 若确定第一哈希密钥经过预设哈希处理操作后能够获得第二哈希密钥,则确定第一用户节点第一次验证通过;
[0122] 在当前时隙末,确定当前时隙所有通信请求信息对应的merkle树的根,将当前时隙所有通信请求信息对应的merkle树的根与历史时隙的身份请求验证信息对应的merkle树的根聚合成的目标merkle树,将目标merkle树的根作为哈希日历;其中,历史时隙为第一时间信息当前时隙之前的所有时隙;
[0123] 将哈希日历存入分布式数据库中,并向第一用户节点返回签名信息。
[0124] 具体的,若确定第一哈希密钥能够经过预设哈希处理操作得到第二哈希密钥,则确定第一用户节点第一次验证通过,基于当前时隙所有通信请求信息,在当前时隙末生成哈希日历,将哈希日历存入分布式数据库中,并向第一用户节点返回签名信息,具体包括:
[0125] 可以理解的是,第一哈希密钥和第二哈希密钥为两个相邻时隙对应的哈希密钥,前一个时隙的哈希密钥(第一哈希密钥)经过预设哈希处理操作后,可以生成后一个时隙的哈希密钥(第二哈希密钥)。
[0126] 若确定第一哈希密钥经过预设哈希处理操作后能够获得第二哈希密钥,则说明第一哈希密钥和第二哈希密钥相匹配,确定第一用户节点第一次验证通过。
[0127] 将第一身份请求验证信息写入当前时隙对应的merkle树中,并确认当前时隙的merkle树根。当前时隙的merkle树的根与历史时隙的身份请求验证信息对应的merkle树的根聚合成的目标merkle树,将目标merkle树的根作为哈希日历。其中,历史时隙为第一时间信息当前时隙之前的所有时隙,每一个时隙对应的merkle树,包括该时隙签名服务节点接收到的所有身份请求验证信息。
[0128] 将哈希日历存入分布式数据库中,并向第一用户节点返回签名信息,以供第一用户节点确定并向第二用户节点发送第二用户身份请求验证信息,进行第二次身份验证。
[0129] 本发明提供的分布式网络用户的身份验证方法,通过将动态的哈希密钥应用到节点通信时的身份验证过程中,使负责签名任务的节点能够在无密钥的情况下确定请求者的身份,从而在接入阶段排除身份冒用的可能。在第一次身份认证通过后,公钥里身份标识被聚合进当前时隙的merkle树,且此身份标识会加入下一步中返回的签名,保证即使在签名在返回的过程中泄露,也不会作为全网通用的签名被大规模滥用。通过基于时隙分组的merkle树聚合查验算法来保障数据的完整性和可溯源性,保证第一用户节点发送给第二用户节点的数据仍与签名认证时的数据相同,不存在更改和丢失,从而无密钥的实现整个签名生成、验证过程,有效地提高分布式网络用户身份验证的安全性。
[0130] 以在无人机集群网络的应用对本发明进行详细的说明:
[0131] 传统的分布式查验方法没有身份识别的专用工具,而是委托给了PKI的数字签名来验明身份,本发明提供的分布式网络用户的身份验证方法与传统网络采用的安全措施不同,如图2所示,本发明提供的分布式网络的身份验证不是一步完成的,实际上存在两部分的身份认证,分别是请求签名服务的时候和无人机2获得带有签名的数据的时候。
[0132] 分别使用动态哈希密钥技术和将用户ID耦合进时隙分组得merkle树来解决身份验证问题。
[0133] 第一步是在用户无人机与签名服务无人机之间,通过初始分发的公钥和动态哈希密钥实现第一步的身份验证(十秒一密);
[0134] 第二步是签名服务无人机每一时隙都会把这一时隙内的消息聚合成merkle树,接收者在收到带有签名的数据包后,根据签名的内容可以在本地访查验,并定位到分布式数据库上的merkle树进行比对确认发送者的真实身份和数据的完整性。
[0135] 把ID聚合进merkle树,则恶意攻击者不能随意伪造他人身份,恶意节点在截获签名后,不能随意改动指令的内容,一个数据包的结构例如(rt+calendar哈希日历+t+A:B护卫巡航),签名中加入“A:”、“:B”该信息表示是A给B在时刻t发的指令,不会被全网大规模的滥用。
[0136] 流程图中返回签名的St是KSI服务器接收到签名请求时产生的时间戳,其内容包括:签名者ID、发送对象ID、当前时间t。其作用为:防止上链信息聚合的hash碰撞,例如同一时隙内,签名服务无人机收到两条信息的签名请求,而请求信息都为“进攻”的哈希密钥,为了避免这一情况,签名服务无人机把签名者ID、发送对象ID、随机数等数据段拼接到消息之前进行聚合,保证返回的每一个签名都是独一无二的。
[0137] 需要说明的是,上述方案仅作为一个具体的实例对本发明进行解释说明,除此之外,本发明的应用场景以及具体的应用流程,均可根据实际情况进行调整,本发明对此不作限定。
[0138] 本方法能够满足分布式网络最应该满足的安全需求,具有以下优点:
[0139] 1.认证性:分布式网络必须对登录用户的身份进行认证,对用户合法性的认证采用动态且用户专属的认证方式,帮助各通信方之间满足身份可信。
[0140] 2.消息完整性与抗抵赖性:消息接收方必须能够对接收到的信息进行完整性校验,一旦发现有信息被篡改或者丢失,应该立刻终止会话,并要求重发。同时,消息的发送方不能否认自己曾经发送过该消息。
[0141] 3.匿名性:用户身份标识信息不能在传感器网络中明文传输,节点的身份标识与位置等相关信息应该具有匿名性,即使数据包被截获也不会暴露身份。
[0142] 4.机密性:在无线网络请求签名的数据必须采用加密后的密文传输。
[0143] 5.可用性:用户可以随时根据签名验证消息的来源和完整性。
[0144] 6.新鲜性:消息的接收方应该首先判断消息的新鲜性,即判断该消息是否是最近生成发出的,这一点由签名之上的时间戳来保证。
[0145] 7.抗追踪性:用户的身份标识不能被恶意第三方追踪,这一点由动态哈希密钥实现。
[0146] 图6是本发明提供的分布式网络用户的身份验证系统的结构示意图,如图6所示,本发明还提供一种分布式网络用户的身份验证系统,包括:第一用户节点610、第二用户节点620和签名服务节点630;
[0147] 第一用户节点610能够执行如上述第一用户节点侧的分布式网络用户的身份验证方法;
[0148] 第二用户节点620能够执行如上述第二用户节点侧的分布式网络用户的身份验证方法;
[0149] 签名服务节点630能够执行如上述签名服务节点侧的分布式网络用户的身份验证方法。
[0150] 具体的,本发明中分布式网络用户的身份验证系统包括:第一用户节点、第二用户节点和签名服务节点。本发明中第一用户节点、第二用户节点和签名服务节点在此仅用于区分分布式网络中各节点不同的身份,便于对方案进行解释说明,其可以用于指代分布式网络任意一节点,分布式网络中节点的数量可根据实际情况调整,本发明对此不作限定。
[0151] 其中,第一用户节点能够执行如上述第一用户节点侧(即数据发送侧)的分布式网络用户的身份验证方法;第二用户节点能够执行如上述第二用户节点侧(即数据接收侧)的分布式网络用户的身份验证方法;签名服务节点能够执行如上述签名服务节点侧(即签名服务侧)的分布式网络用户的身份验证方法。
[0152] 需要说明的是,本发明提供的分布式网络用户的身份验证系统用于执行上述分布式网络用户的身份验证方法,其具体的实施方式与方法实施方式一致,在此不再赘述。
[0153] 本发明提供的分布式网络用户的身份验证系统,通过将动态的哈希密钥应用到节点通信时的身份验证过程中,使负责签名任务的节点能够在无密钥的情况下确定请求者的身份,从而在接入阶段排除身份冒用的可能,通过基于时隙分组的merkle树聚合查验算法来保障数据的完整性和可溯源性,从而无密钥的实现整个签名生成、验证过程,有效地提高分布式网络用户身份验证的安全性。
[0154] 图7是本发明提供的一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)710、通信接口(communication interface)711、存储器(memory)712和总线(bus)713,其中,处理器710,通信接口711,存储器712通过总线713完成相互间的通信。处理器710可以调用存储器712中的逻辑指令,以执行如下方法:第一用户节点向签名服务节点发送第一通信请求信息,以供签名服务节点基于第一通信请求信息,根据分布式数据库中存储的公共密钥,判断第一哈希密钥是否能够经过预设哈希处理操作得到第二哈希密钥,若确定第一哈希密钥能够经过预设哈希处理操作得到第二哈希密钥,则确定第一用户节点第一次验证通过,基于当前时隙所有通信请求信息,在当前时隙末生成哈希日历,将哈希日历存入分布式数据库中,并向第一用户节点返回签名信息;接收签名服务节点发送的签名信息,基于签名信息和第一通信请求信息,生成第二通信请求信息,将第二通信请求信息发送给第二用户节点,以供第二用户节点接收第二通信请求信息后,根据分布式数据库中存储的公共密钥和哈希日历,判断分布式数据库中是否存在第二哈希密钥和第一通信请求信息,若确定分布式数据库中存在第二哈希密钥和第一通信请求信息,则确定第一用户节点的第二次验证通过,将待传输数据作为有效数据。
[0155] 此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机电源屏(可以是个人计算机,服务器,或者网络电源屏等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0156] 进一步地,本发明公开一种计算机程序产品,计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的分布式网络用户的身份验证方法,例如包括:第一用户节点向签名服务节点发送第一通信请求信息,以供签名服务节点基于第一通信请求信息,根据分布式数据库中存储的公共密钥,判断第一哈希密钥是否能够经过预设哈希处理操作得到第二哈希密钥,若确定第一哈希密钥能够经过预设哈希处理操作得到第二哈希密钥,则确定第一用户节点第一次验证通过,基于当前时隙所有通信请求信息,在当前时隙末生成哈希日历,将哈希日历存入分布式数据库中,并向第一用户节点返回签名信息;接收签名服务节点发送的签名信息,基于签名信息和第一通信请求信息,生成第二通信请求信息,将第二通信请求信息发送给第二用户节点,以供第二用户节点接收第二通信请求信息后,根据分布式数据库中存储的公共密钥和哈希日历,判断分布式数据库中是否存在第二哈希密钥和第一通信请求信息,若确定分布式数据库中存在第二哈希密钥和第一通信请求信息,则确定第一用户节点的第二次验证通过,将待传输数据作为有效数据。
[0157] 另一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的分布式网络用户的身份验证方法,例如包括:第一用户节点向签名服务节点发送第一通信请求信息,以供签名服务节点基于第一通信请求信息,根据分布式数据库中存储的公共密钥,判断第一哈希密钥是否能够经过预设哈希处理操作得到第二哈希密钥,若确定第一哈希密钥能够经过预设哈希处理操作得到第二哈希密钥,则确定第一用户节点第一次验证通过,基于当前时隙所有通信请求信息,在当前时隙末生成哈希日历,将哈希日历存入分布式数据库中,并向第一用户节点返回签名信息;接收签名服务节点发送的签名信息,基于签名信息和第一通信请求信息,生成第二通信请求信息,将第二通信请求信息发送给第二用户节点,以供第二用户节点接收第二通信请求信息后,根据分布式数据库中存储的公共密钥和哈希日历,判断分布式数据库中是否存在第二哈希密钥和第一通信请求信息,若确定分布式数据库中存在第二哈希密钥和第一通信请求信息,则确定第一用户节点的第二次验证通过,将待传输数据作为有效数据。
[0158] 以上所描述的系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0159] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机电源屏(可以是个人计算机,服务器,或者网络电源屏等)执行各个实施例或者实施例的某些部分的方法。
[0160] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。