基于区块链的身份认证方法、装置以及存储介质

allin2022-07-13  162



1.本技术涉及区块链技术领域,特别是涉及一种基于区块链的身份认证方法、装置以及存储介质。


背景技术:

2.终端设备的身份认证是保障核心业务网络的重要安全机制,然而现有的终端设备的身份认证方案大多数都采用集中式身份验证模型。一旦认证请求的数量超过了认证中心服务的处理能力,就会导致认证请求拥塞或死锁。传统的身份认证方案一般是集中化的,但在海量物联网设备接入后,就会出现响应慢和延迟高等问题。一方面,大量物联网设备申请身份认证时,会出现认证服务器或者网络节点严重堵塞,从而影响物联网应用的服务质量。另一方面,集中式认证需要认证中心响应边缘设备的请求。有些物联网应用可能需要快速响应,有些可能涉及到私有数据,这些数据应该在本地存储和处理,有些可能会产生大量的数据,将所有数据上传到云端会给核心网络带来沉重的负担。从而出现了身份认证效率低,可扩展性差以及存储容量小等问题。
3.针对上述的现有技术中存在的终端设备的身份认证过程中出现的身份认证效率低,可扩展性差以及存储容量小的技术问题,目前尚未提出有效的解决方案。


技术实现要素:

4.本技术的实施例提供了一种基于区块链的身份认证方法、装置以及存储介质,以至少解决现有技术中存在的终端设备的身份认证过程中出现的身份认证效率低,可扩展性差以及存储容量小的技术问题。
5.根据本技术实施例的一个方面,提供了一种基于区块链的身份认证方法,包括:通过第一域区块链系统中预设的第一终端节点向第二域区块链系统的第一边缘认证节点发送身份认证请求;通过第一边缘认证节点根据与身份认证请求对应的身份认证信息以及联盟区块链系统中存储的第一终端节点相应的默克尔树的根哈希值,进行身份认证;以及通过第一边缘认证节点将身份认证结果发送至第一域区块链系统的第二终端节点。
6.根据本技术实施例的另一个方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时由处理器执行以上任意一项所述的方法。
7.根据本技术实施例的另一个方面,还提供了一种基于区块链的身份认证装置,包括:第一发送模块,用于通过第一域区块链系统中预设的第一终端节点向第二域区块链系统的第一边缘认证节点发送身份认证请求;身份认证模块,用于通过第一边缘认证节点根据与身份认证请求对应的身份认证信息以及联盟区块链系统中存储的第一终端节点相应的默克尔树的根哈希值,进行身份认证;以及第二发送模块,用于通过第一边缘认证节点将身份认证结果发送至第一域区块链系统的第二终端节点。
8.根据本技术实施例的另一个方面,还提供了一种基于区块链的身份认证装置,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:通过
第一域区块链系统中预设的第一终端节点向第二域区块链系统的第一边缘认证节点发送身份认证请求;通过第一边缘认证节点根据与身份认证请求对应的身份认证信息以及联盟区块链系统中存储的第一终端节点相应的默克尔树的根哈希值,进行身份认证;以及通过第一边缘认证节点将身份认证结果发送至第一域区块链系统的第二终端节点。
9.在本技术实施例中,提供了一种在边缘计算环境下基于区块链的身份认证方法,其中的身份认证系统包括多个域区块链系统以及联盟区块链系统。第一域区块链系统的第一终端节点向第二域区块链系统的第一边缘认证节点发送身份认证请求,由第一边缘认证节点与联盟区块链系统进行交互,从而实现了跨域身份认证。从而本技术方案中的基于区块链的身份认证方案通过在系统的网关或认证服务器上建立区块链网络来分散物联网的身份认证,实现了身份认证过程的分布式管理。与现有技术相比,本技术方案将身份认证请求分布给区块链的多个节点上,可以有效避免身份认证请求数量过多导致的响应慢和延迟高等问题,从而提高了身份认证的效率。并且本技术方案中的多个域区块链系统和一个联盟区块链系统同时启用,通过一个域区块链系统进行身份认证,另一个域区块链系统与联盟区块链系统进行连接,这样的方式,可以同时实现多个进程,提升可扩展性。并且本技术方案通过将终端节点的数据存储至区块链中,避免了将所有数据上传到云端给核心网络带来沉重的负担的问题,保证了存储容量。从而本技术方案实现了身份认证效率高、可扩展性强以及存储容量大的技术效果。进而解决了现有技术中存在的终端设备的身份认证过程中出现的身份认证效率低,可扩展性差以及存储容量小的技术问题。
附图说明
10.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
11.图1是用于实现根据本技术实施例1所述的方法的计算设备的硬件结构框图;
12.图2是根据本技术实施例1所述的基于区块链的身份认证系统的示意图;
13.图3是根据本技术实施例1的第一个方面所述的基于区块链的身份认证方法的流程示意图;
14.图4是根据本技术实施例1的第一个方面所述的基于区块链的身份认证方法的跨域认证流程示意图;
15.图5是根据本技术实施例1的第一个方面所述的基于区块链的身份认证方法的身份注册流程示意图;
16.图6是根据本技术实施例1的第一个方面所述的基于区块链的身份认证方法的域内认证流程示意图;
17.图7是根据本技术实施例2所述的基于区块链的身份认证装置的示意图;以及
18.图8是根据本技术实施例3所述的基于区块链的身份认证装置的示意图。
具体实施方式
19.为了使本技术领域的人员更好地理解本技术的技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通
技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
20.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
21.实施例1
22.根据本实施例,提供了一种基于区块链的身份认证方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
23.本实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的计算设备中执行。图1示出了一种用于实现基于区块链的身份认证方法的计算设备的硬件结构框图。如图1所示,计算设备可以包括一个或多个处理器(处理器可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器、以及用于通信功能的传输装置。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
24.应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算设备中的其他元件中的任意一个内。如本技术实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
25.存储器可用于存储应用软件的软件程序以及模块,如本技术实施例中的基于区块链的身份认证方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的基于区块链的身份认证方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
26.传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算设备的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(network interface controller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(radio frequency,rf)模块,其用于通过
无线方式与互联网进行通讯。
27.显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与计算设备的用户界面进行交互。
28.此处需要说明的是,在一些可选实施例中,上述图1所示的计算设备可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算设备中的部件的类型。
29.图2是根据本实施例所述的基于区块链的身份认证系统的示意图。参照图2所示,该系统包括:多个域区块链系统以及联盟区块链系统200。其中多个域区块链系统包括域区块链系统101和域区块链系统102,其他域区块链系统在图中由域区块链系统n表示。
30.其中,域区块链系统101包括多个终端节点(对应于图中td1和td3)、多个边缘认证节点(对应于图中ea1和ea3)以及多个域管理节点(对应于图中dm1和dm3)。
31.域区块链系统102包括多个终端节点(对应于图中td2和td4)、多个边缘认证节点(对应于图中ea2和ea4)以及多个域管理节点(对应于图中dm2和dm4)。
32.其中域管理节点既为域区块链系统中的节点,也为联盟区块链系统200中的节点,用于管理域区块链系统中的节点,并且将域区块链系统和联盟区块链系统进行连接。
33.边缘认证节点用于对终端节点进行身份认证,具有强大的计算和存储能力。边缘认证节点分散部署在网络的边缘,靠近终端节点,时延低,可以减少认证服务和网络的负载。通过分布的边缘认证节点,实现了认证结构的去中心化。
34.终端节点主要由大量的物联网终端设备组成,用于传感、服务和通信等多种应用场景。终端节点可以检测或生成数据,并传输到不同的物联网应用程序。终端节点在访问网络或访问数据时需要身份验证。
35.需要说明的是,系统中的域区块链系统101、域区块链系统102和联盟区块链系统200均可适用上面所述的硬件结构。
36.在上述运行环境下,根据本实施例的第一个方面,提供了一种基于区块链的身份认证方法,该方法由图2中所示的身份认证系统实现。图3示出了该方法的流程示意图,参考图3所示,该方法包括:
37.s302:通过第一域区块链系统中预设的第一终端节点向第二域区块链系统的第一边缘认证节点发送身份认证请求;
38.s304:通过第一边缘认证节点根据与身份认证请求对应的身份认证信息以及联盟区块链系统中存储的第一终端节点相应的默克尔树的根哈希值,进行身份认证;以及
39.s306:通过第一边缘认证节点将身份认证结果发送至第一域区块链系统的第二终端节点。
40.具体地,参考图4所示,由于物联网应用等业务需求,当第一域区块链系统(例如,域区块链系统101)中的第一终端节点(例如td1)需要访问第二域区块链系统(例如域区块链系统102)的网络或数据时,td1(即,第一终端节点)向域区块链系统102(即,第二域区块链系统)中的第一边缘认证节点(例如ea2)发送td1(即,第一终端节点)的身份认证请求(s302)。其中身份认证请求以及携带的信息使用公式可以表示为:
[0041][0042]
其中,request
authcross
为身份认证请求,d
id
为域管理节点所属的应用域区块链编号,dm
id
为域管理节点标识,td
id
为终端设备标识,ts为时间戳,parameters和p为公共参数组,sig(td
id
||dm
id
)为终端设备与域管理节点的签名,lt()为签名的有效时间期限,dms为非对称密钥对,为利用终端设备的私钥将域管理节点所属的域区块链编号、域管理节点标识、终端设备标识和时间戳进行加密后的签名。
[0043]
进一步地,ea2(即,第一边缘认证节点)接收到身份认证请求后,将该身份认证请求发送至与域区块链系统102(即,第二域区块链系统)相连接的联盟区块链系统200,联盟区块链系统200根据该身份认证请求确定td1(即,第一终端节点)的身份认证信息。其中身份认证信息包括td1(即,第一终端节点)的标识,所属的域区块链系统(即,域区块链系统101)标识等数据。联盟区块链系统200根据该身份认证信息获取存储有td1(即,第一终端节点)的相关信息的数据区块的默克尔树的根哈希值。其中该默克尔树的底层交易数据为td1(即,第一终端节点)的标识,域区块链系统101(即,第一域区块链系统)中的域管理节点(即,dm1)的标识,以及域区块链系统101(即,第一域区块链系统)中的数据区块的区块号等等。之后联盟区块链200将默克尔树的根哈希值发送至ea2(即,第一边缘认证节点),之后ea2(即,第一边缘认证节点)计算身份认证信息的哈希值,根据身份认证信息的哈希值与接收到的默克尔树的根哈希值进行匹配,从而对td1(即,第一终端节点)进行身份认证,得到身份认证结果(s304)。
[0044]
进一步地,td1(即,第一终端节点)得到身份认证结果后,将该身份认证结果发送至域区块链系统101(即,第一域区块链系统)的边缘认证节点(即,ea1),ea1使用私钥进行签名,并将该签名与身份认证结果转发至td1(即,第一终端节点),td1(即,第一终端节点)接收到ea1已经签名的身份认证结果后,计算ea2(即,第一边缘认证节点)提供的身份认证信息的哈希值和默克尔树的根哈希值,从而验证身份认证信息。当ea2(即,第一边缘认证节点)提供的身份认证信息有效时,则完成了域区块链系统101(即,第一域区块链系统)的td1(即,第一终端节点)向区域区块链系统102(即,第二域区块链系统)的跨域身份认证(306)。
[0045]
此外,签名算法为根据双线性映射提出的基于身份密码体制的签名算法。该签名算法主要包括四个阶段:参数生成、密钥生成、签名和验证。其中在生成参数时,计算设备会选取双线性映射e:g1×
g2→
g2,满足双线性对的可计算性、双线性的要求,密钥生成中心随机选取s作为系统的主密钥,将群g1的元素p
pub
确定为系统主公钥,则系统的主密钥对为(s,p
pub
)。之后计算设备根据用户标识,计算其公钥和私钥,从而生成密钥。用户在签名之后,计算设备验证该签名是否正确。
[0046]
正如背景技术中所述的,终端设备的身份认证是保障核心业务网络的重要安全机制,然而现有的终端设备的身份认证方案大多数都采用集中式身份验证模型。一旦认证请求的数量超过了认证中心服务的处理能力,就会导致认证请求拥塞或死锁。传统的身份认
证方案一般是集中化的,但在海量物联网设备接入后,就会出现响应慢和延迟高等问题。一方面,大量物联网设备申请身份认证时,会出现认证服务器或者网络节点严重堵塞,从而影响物联网应用的服务质量。另一方面,集中式认证需要认证中心响应边缘设备的请求。有些物联网应用可能需要快速响应,有些可能涉及到私有数据,这些数据应该在本地存储和处理,有些可能会产生大量的数据,将所有数据上传到云端会给核心网络带来沉重的负担。从而出现了身份认证效率低,可扩展性差以及存储容量小等问题。
[0047]
针对以上所述的技术问题,通过本技术实施例的技术方案,提供了一种在边缘计算环境下基于区块链的身份认证方法,其中的身份认证系统包括多个域区块链系统以及联盟区块链系统200。第一域区块链系统的第一终端节点向第二域区块链系统的第一边缘认证节点发送身份认证请求,由第一边缘认证节点与联盟区块链系统200进行交互,从而实现了跨域身份认证。从而本技术方案中的基于区块链的身份认证方案通过在系统的网关或认证服务器上建立区块链网络来分散物联网的身份认证,实现了身份认证过程的分布式管理。与现有技术相比,本技术方案将身份认证请求分布给区块链的多个节点上,可以有效避免身份认证请求数量过多导致的响应慢和延迟高等问题,从而提高了身份认证的效率。并且本技术方案中的多个域区块链系统和一个联盟区块链系统同时启用,通过一个域区块链系统进行身份认证,另一个域区块链系统与联盟区块链系统进行连接,这样的方式,可以同时实现多个进程,提升可扩展性。并且本技术方案通过将终端节点的数据存储至区块链中,避免了将所有数据上传到云端给核心网络带来沉重的负担的问题,保证了存储容量。从而本技术方案实现了身份认证效率高、可扩展性强以及存储容量大的技术效果。进而解决了现有技术中存在的终端设备的身份认证过程中出现的身份认证效率低,可扩展性差以及存储容量小的技术问题。
[0048]
可选地,通过第一边缘认证节点根据与身份认证请求对应的身份认证信息以及联盟区块链系统中存储的第一终端节点相应的默克尔树的根哈希值,进行身份认证的操作,包括:通过第一边缘认证节点将与身份认证请求对应的身份认证信息发送至联盟区块链系统;通过联盟区块链系统根据身份认证信息获取第一终端节点相应的默克尔树的根哈希值;以及通过第一边缘认证节点将根哈希值与身份认证信息的哈希值进行匹配,进行身份认证。
[0049]
具体地,域区块链系统102(即,第二域区块链系统)中的ea2(即,第一边缘认证节点)接收到域区块链系统101(即,第一域区块链系统)中的td1(即,第一终端节点)发送的身份认证请求后,将与身份认证请求对应的td1(即,第一终端节点)的身份认证信息发送至联盟区块链系统200。联盟区块链系统200接收到该身份认证信息后,根据该身份认证信息获取存储有td1(即,第一终端节点)的相关信息的数据区块的默克尔树的根哈希值。其中该默克尔树的底层交易数据为td1(即,第一终端节点)的标识,域区块链系统101(即,第一域区块链系统)中的域管理节点(即,dm1)的标识,以及域区块链系统101(即,第一域区块链系统)中的数据区块的区块号等等。之后联盟区块链200将默克尔树的根哈希值发送至ea2(即,第一边缘认证节点),之后ea2(即,第一边缘认证节点)计算身份认证信息的哈希值,将身份认证信息的哈希值与接收到的默克尔树的根哈希值进行匹配,进行身份认证,得到身份认证结果。在身份认证信息的哈希值与默克尔树的根哈希值匹配成功的情况下,身份认证结果为:td1(即,第一终端节点)的身份认证信息有效。在身份认证信息的哈希值与默克
尔树的根哈希值匹配失败的情况下,身份认证结果为:td1(即,第一终端节点)的身份认证信息无效。
[0050]
从而,本技术方案通过将发送的第一终端节点的身份认证信息与第一终端节点原本就存储于联盟区块链系统200中的身份信息(即,默克尔树的根哈希值)进行比较,从而对第一终端节点进行身份认证,从而可以快速准确地得到身份认证结果,从而提高身份认证效率。
[0051]
可选地,通过第一边缘认证节点将与身份认证请求对应的身份认证信息发送至联盟区块链系统的操作,包括:通过第一边缘认证节点接收到身份认证请求后,将身份认证请求转发至第二域区块链系统中的第一域管理节点;以及通过第一域管理节点将身份认证请求对应的身份认证信息发送至联盟区块链系统,其中第一域管理节点同时归属于第二域区块链系统以及联盟区块链系统。
[0052]
具体地,域区块链系统102(即,第二域区块链系统)中的ea2(即,第一边缘认证节点)接收到域区块链系统101(即,第一域区块链系统)中的td1(即,第一终端节点)发送的身份认证请求后,将该身份认证请求转发至域区块链系统102(即,第二域区块链系统)的第一域管理节点(例如dm2)。dm2(即,第一域管理节点)接收到该身份认证请求后,将身份认证请求发送至联盟区块链系统200,利用身份认证请求中携带的td1(即,第一终端节点)的标识和与域管理系统101的dm1(即,域管理节点)的标识在联盟区块链系统200中搜索td1(即,第一终端节点)的相应信息。其中相应信息包括关于td1(即,第一终端节点)的数据区块。如果搜索到了存储有td1(即,第一终端节点)注册信息的数据区块,则判定td1(即,第一终端节点)向域区块链系统102发送身份认证请求之前,已经在域区块链系统101(即,第一域区块链系统)中进行注册。之后联盟区块链系统200根据td1(即,第一终端节点)的身份认证请求获取td1(即,第一终端节点)的身份认证信息。
[0053]
如果在联盟区块链系统200中未搜索到存储有td1(即,第一终端节点)注册信息的数据区块,则判定td1(即,第一终端节点)向域区块链系统102(即,第二域区块链系统)发送身份认证请求之前,没有在域区块链系统101(即,第一域区块链系统)中进行注册。之后联盟区块链系统200停止对td1(即,第一终端节点)进行身份认证。
[0054]
从而,本技术方案通过将第一域管理节点将第二域区块链系统与联盟区块链系统200进行连接,从而实现了域区块链与联盟区块链的可交互但是互不干扰的效果,并且使用分布式的结果提高了存储容量。
[0055]
可选地,通过联盟区块链系统根据身份认证信息获取第一终端节点相应的默克尔树的根哈希值的操作,包括:通过联盟区块链系统根据身份认证信息,获取与第一终端节点相关的数据区块的区块数量,根据区块数量确定第一终端节点所属的域区块链系统;以及通过联盟区块链系统根据所确定的第一终端节点所属的域区块链系统确定第一终端节点相应的默克尔树的根哈希值。
[0056]
具体地,联盟区块链系统200获取到td1(即,第一终端节点)的身份认证信息后,会在根据td1(即,第一终端节点)的标识在联盟区块链系统200中获取与td1(即,第一终端节点)相关的数据区块的区块数量,根据区块数量确定td1(即,第一终端节点)所属的域区块链系统。当联盟区块链系统200根据与td1(即,第一终端节点)相关的数据区块的区块数量确定td1(即,第一终端节点)所属的域区块链系统为域区块链系统101(即,第一域区块链系
统),之后联盟区块链系统200则会获取存储有td1(即,第一终端节点)的相关信息的数据区块的默克尔树的根哈希值。
[0057]
从而本技术方案中联盟区块链系统200根据与终端节点相关的数据区块的区块数量确定终端节点归属的域区块链系统,从而可以快速判断终端节点的归属,进而提高了身份认证的效率。
[0058]
可选地,通过第一域区块链系统中预设的第一终端节点向第二域区块链系统的第一边缘认证节点发送身份认证请求之前,还包括:第一域区块链系统通过第二域管理节点生成公共参数组和密钥,并生成数据区块,将数据区块上链至第一域区块链系统的区块链;以及通过第二域管理节点将数据区块的区块号存储至联盟区块链系统。
[0059]
具体地,域区块链系统101(即,第一域区块链系统)中的td1(即,第一终端节点)向域区块链系统102(即,第二域区块链系统)的ta2(即,第一边缘认证节点)发送身份认证请求之前,域区块链系统101(即,第一域区块链系统)的dm1(即,第二域管理节点)通过系统中预设的参数生成算法生成公共参数组,并且调用系统的主密钥和td1(即,第一终端节点)的签名密钥生成主密钥(s,p
pub
)和非对称密钥对dms以及dm
id
。其中dms表示dm1(即,第二域管理节点)的签名私钥,dm
id
表示dm1(即,第二域管理节点)的身份和对应dms的公钥。并且其中(s,p
pub
)中的s为私钥,p
pub
为主公钥。dm1(即,第二域管理节点)生成公共参数组和密钥后,将该公共参数组和密钥广播到域区块链系统101(即,第一域区块链系统)中,之后根据dm1(即,第二域管理节点)的dm
id
、公共参数组、以及主密钥(s,p
pub
)中的主公钥p
pub
,生成数据区块,并将该数据区块上链至域区块链系统101(即,第一域区块链系统)中的区块链中。之后dm1(即,第二域管理节点)将该数据区块的区块号存储在联盟区块链系统200的区块链中。
[0060]
从而本技术方案中的终端节点在进行身份认证之前,所属的域区块链管理系统还会进行初始化操作,将公共参数组和密钥等数据存储至联盟区块链系统200中,从而可以在身份认证时提供默克尔树中的部分交易数据,从而提高身份认证的效率。
[0061]
可选地,方法还包括:通过第一终端节点向设置于第一域区块链系统的第二域管理节点发送注册请求;通过第二域管理节点根据注册请求将第一终端节点与第一域区块链系统进行关联,并根据第一终端节点的相关信息生成数据区块,将数据区块上链至第一域区块链系统的区块链;以及通过第二域管理节点将数据区块的区块号存储至联盟区块链系统。
[0062]
具体地,域区块链系统101(即,第一域区块链系统)中的td1(即,第一终端节点)向域区块链系统102(即,第二域区块链系统)的ta2(即,第一边缘认证节点)发送身份认证请求之前,td1(即,第一终端节点)会在域区块链系统101(即,第一域区块链系统)进行注册。
[0063]
更具体地,参考图5所示,域区块链系统101(即,第一域区块链系统)中的td1(即,第一终端节点)向域区块链系统101(即,第一域区块链系统)中的dm1(即,第二域管理节点)发送注册请求。其中注册请求以及携带的信息利用公式可以表示为:
[0064][0065]
其中,td
id
为域管理节点标识、dm
id
为终端设备标识、request
reg
为注册请求,lt为签名的有效时间期限,ts为时间戳,为利用终端设备的私钥将终端设备身份、域管理节点标识、注册请求和时间戳进行加密后的签名。
[0066]
dm1(即,第二域管理节点)接收到该注册请求后,判断td1(即,第一终端节点)是否已被注册,并且判断dm1(即,第二域管理节点)是否为区块链系统101(即,第一域区块链系统)的域管理节点。
[0067]
当dm1(即,第二域管理节点)确定td1(即,第一终端节点)已被注册或者dm1(即,第二域管理节点)不是区块链系统101(即,第一区块链系统)的域管理节点,则停止注册。当dm1(即,第二域管理节点)确定td1(即,第一终端节点)未被注册,并且dm1(即,第二域管理节点)是域区块链系统101(即,第一域区块链系统)的域管理节点,则继续注册。之后dm1(即,第二域管理节点)调用基于身份密码体制的签名算法来验证注册请求的有效性,如果验证有效,则根据dm1(即,第二域管理节点)的标识、td1(即,第一终端节点)的标识以及与数字签名生成数据区块,将该数据区块上链至域区块链系统101(即,第一域区块链系统)中,并且dm1(即,第二域管理节点)将该数据区块的区块号存储至联盟区块链系统200中。之后dm1(即,第二域管理节点)将注册结果返回至td1(即,第一终端节点),从而注册成功。
[0068]
从而本技术方案中的终端节点在进行身份认证之前,终端节点会在所属的域区块链系统中进行注册,从而与该域区块链系统中的域管理节点进行关联,从而域管理节点可以将终端节点的相关信息存储至联盟区块链系统200中,从而减少了后续身份认证的时间。
[0069]
可选地,方法还包括:通过第一域区块链系统的第一终端节点向预设的第二边缘认证节点发送域内访问的身份认证请求;通过第二边缘认证节点根据与域内访问的身份认证请求对应的身份认证信息以及第一域区块链系统中存储的第一终端节点相应的默克尔树的根哈希值,进行身份认证;以及通过第二边缘认证节点将身份认证结果发送至第一终端节点。
[0070]
具体地,参考图6所示,当域区块链系统101(即,第一域区块链系统)中的td1(即,第一终端节点)需要访问同一域区块链系统(即,域区块链系统101)的ea3(即,第二边缘认证节点)的网络或数据时,首先td1(即,第一终端节点)向ea3(即,第二边缘认证节点)发送域内访问的身份认证请求,ea3(即,第二边缘认证节点)接收到td1(即,第一终端节点)的身份认证请求后,根据该身份认证请求获取身份认证信息。其中身份认证信息包括td1(即,第一终端节点)的标识和所属的域区块链系统的标识等等。之后ea3(即,第二边缘认证节点)根据该身份认证信息,计算得到身份认证信息的哈希值。之后ea3(即,第二边缘认证节点)根据身份认证信息中的td1(即,第一终端节点)的标识在域区块链系统101(即,第一域区块链系统)中获取存储有td1(即,第一终端节点)相关信息的数据区块的默克尔树的根哈希值。之后ea3(即,第二边缘认证节点)将该默克尔树的根哈希值和域内认证的身份认证信息的哈希值进行匹配,判定该域内认证的身份认证信息是否有效,从而得到域内认证的身份认证结果。当域内认证的身份认证信息有效时,则ea3(即,第二边缘认证节点)将域内认证的身份认证信息有效的身份认证结果发送至td1(即,第一终端节点),完成域内身份认证。当域内认证的身份认证信息无效时,则ea3(即,第二边缘认证节点)将域内认证的身份认证信息无效的身份认证结果发送至td1(即,第一终端节点),域内身份认证失败。
[0071]
从而本技术方案中的第一终端节点向同一域区块链系统中的边缘认证节点发送域内认证的身份认证请求,边缘认证节点根据身份认证信息和存储于域区块链系统中的关于第一终端节点的默克尔树进行身份认证,从而可以提高身份认证效率,快速实现域内认证。
[0072]
此外,参考图1所示,根据本实施例的第二个方面,提供了一种存储介质。所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行以上任意一项所述的方法。
[0073]
从而根据本实施例,提供了一种在边缘计算环境下基于区块链的身份认证方法,其中的身份认证系统包括多个域区块链系统以及联盟区块链系统200。第一域区块链系统的第一终端节点向第二域区块链系统的第一边缘认证节点发送身份认证请求,由第一边缘认证节点与联盟区块链系统200进行交互,从而实现了跨域身份认证。从而本技术方案中的基于区块链的身份认证方案通过在系统的网关或认证服务器上建立区块链网络来分散物联网的身份认证,实现了身份认证过程的分布式管理。与现有技术相比,本技术方案将身份认证请求分布给区块链的多个节点上,可以有效避免身份认证请求数量过多导致的响应慢和延迟高等问题,从而提高了身份认证的效率。并且本技术方案中的多个域区块链系统和一个联盟区块链系统同时启用,通过一个域区块链系统进行身份认证,另一个域区块链系统与联盟区块链系统进行连接,这样的方式,可以同时实现多个进程,提升可扩展性。并且本技术方案通过将终端节点的数据存储至区块链中,避免了将所有数据上传到云端给核心网络带来沉重的负担的问题,保证了存储容量。从而本技术方案实现了身份认证效率高、可扩展性强以及存储容量大的技术效果。进而解决了现有技术中存在的终端设备的身份认证过程中出现的身份认证效率低,可扩展性差以及存储容量小的技术问题。
[0074]
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0075]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0076]
实施例2
[0077]
图7示出了根据本实施例所述的基于区块链的身份认证装置700,该装置700与根据实施例1的第一个方面所述的方法相对应。参考图7所示,该装置700包括:第一发送模块710,用于通过第一域区块链系统中预设的第一终端节点向第二域区块链系统的第一边缘认证节点发送身份认证请求;身份认证模块720,用于通过第一边缘认证节点根据与身份认证请求对应的身份认证信息以及联盟区块链系统中存储的第一终端节点相应的默克尔树的根哈希值,进行身份认证;以及第二发送模块730,用于通过第一边缘认证节点将身份认证结果发送至第一域区块链系统的第二终端节点。
[0078]
可选地,身份认证模块720,包括:第一发送子模块,用于通过第一边缘认证节点将与身份认证请求对应的身份认证信息发送至联盟区块链系统;第一获取子模块,用于通过联盟区块链系统根据身份认证信息获取第一终端节点相应的默克尔树的根哈希值;以及身份认证子模块,用于通过第一边缘认证节点将根哈希值与身份认证信息的哈希值进行匹
配,进行身份认证。
[0079]
可选地,第一发送子模块,包括:第一发送单元,用于通过第一边缘认证节点接收到身份认证请求后,将身份认证请求转发至第二域区块链系统中的第一域管理节点;以及信息存储单元,用于通过第一域管理节点将身份认证请求对应的身份认证信息发送至联盟区块链系统,其中第一域管理节点同时归属于第二域区块链系统以及联盟区块链系统。
[0080]
可选地,第一获取子模块,包括:第一获取单元,用于通过联盟区块链系统根据身份认证信息,获取与第一终端节点相关的数据区块的区块数量,根据区块数量确定第一终端节点所属的域区块链系统;以及确定单元,用于通过联盟区块链系统根据所确定的第一终端节点所属的域区块链系统确定第一终端节点相应的默克尔树的根哈希值。
[0081]
可选地,通过第一域区块链系统中预设的第一终端节点向第二域区块链系统的第一边缘认证节点发送身份认证请求之前,还包括:第一生成子模块,用于第一域区块链系统通过第二域管理节点生成公共参数组和密钥,并生成数据区块,将数据区块上链至第一域区块链系统的区块链;以及第一存储子模块,用于通过第二域管理节点将数据区块的区块号存储至联盟区块链系统。
[0082]
可选地,装置700还包括:第二发送子模块,用于通过第一终端节点向设置于第一域区块链系统的第二域管理节点发送注册请求;区块生成子模块,用于通过第二域管理节点根据注册请求将第一终端节点与第一域区块链系统进行关联,并根据第一终端节点的相关信息生成数据区块,将数据区块上链至第一域区块链系统的区块链;以及第二存储子模块,用于通过第二域管理节点将数据区块的区块号存储至联盟区块链系统。
[0083]
可选地,装置700还包括:第三发送模块,用于通过第一域区块链系统的第一终端节点向预设的第二边缘认证节点发送域内访问的身份认证请求;第二身份认证模块,用于通过第二边缘认证节点根据与域内访问的身份认证请求对应的身份认证信息以及第一域区块链系统中存储的第一终端节点相应的默克尔树的根哈希值,进行身份认证;以及第四发送模块,用于通过第二边缘认证节点将身份认证结果发送至第一终端节点。
[0084]
从而根据本实施例,提供了一种在边缘计算环境下基于区块链的身份认证方法,其中的身份认证系统包括多个域区块链系统以及联盟区块链系统200。第一域区块链系统的第一终端节点向第二域区块链系统的第一边缘认证节点发送身份认证请求,由第一边缘认证节点与联盟区块链系统200进行交互,从而实现了跨域身份认证。从而本技术方案中的基于区块链的身份认证方案通过在系统的网关或认证服务器上建立区块链网络来分散物联网的身份认证,实现了身份认证过程的分布式管理。与现有技术相比,本技术方案将身份认证请求分布给区块链的多个节点上,可以有效避免身份认证请求数量过多导致的响应慢和延迟高等问题,从而提高了身份认证的效率。并且本技术方案中的多个域区块链系统和一个联盟区块链系统同时启用,通过一个域区块链系统进行身份认证,另一个域区块链系统与联盟区块链系统进行连接,这样的方式,可以同时实现多个进程,提升可扩展性。并且本技术方案通过将终端节点的数据存储至区块链中,避免了将所有数据上传到云端给核心网络带来沉重的负担的问题,保证了存储容量。从而本技术方案实现了身份认证效率高、可扩展性强以及存储容量大的技术效果。进而解决了现有技术中存在的终端设备的身份认证过程中出现的身份认证效率低,可扩展性差以及存储容量小的技术问题。
[0085]
实施例3
[0086]
图8示出了根据本实施例所述的基于区块链的身份认证装置800,该装置800与根据实施例1的第一个方面所述的方法相对应。参考图8所示,该装置800包括:处理器810;以及存储器820,与处理器810连接,用于为处理器810提供处理以下处理步骤的指令:通过第一域区块链系统中预设的第一终端节点向第二域区块链系统的第一边缘认证节点发送身份认证请求;通过第一边缘认证节点根据与身份认证请求对应的身份认证信息以及联盟区块链系统中存储的第一终端节点相应的默克尔树的根哈希值,进行身份认证;以及通过第一边缘认证节点将身份认证结果发送至第一域区块链系统的第二终端节点。
[0087]
可选地,通过第一边缘认证节点根据与身份认证请求对应的身份认证信息以及联盟区块链系统中存储的第一终端节点相应的默克尔树的根哈希值,进行身份认证的操作,包括:通过第一边缘认证节点将与身份认证请求对应的身份认证信息发送至联盟区块链系统;通过联盟区块链系统根据身份认证信息获取第一终端节点相应的默克尔树的根哈希值;以及通过第一边缘认证节点将根哈希值与身份认证信息的哈希值进行匹配,进行身份认证。
[0088]
可选地,通过第一边缘认证节点将与身份认证请求对应的身份认证信息发送至联盟区块链系统的操作,包括:通过第一边缘认证节点接收到身份认证请求后,将身份认证请求转发至第二域区块链系统中的第一域管理节点;以及通过第一域管理节点将身份认证请求对应的身份认证信息发送至联盟区块链系统,其中第一域管理节点同时归属于第二域区块链系统以及联盟区块链系统。
[0089]
可选地,通过联盟区块链系统根据身份认证信息获取第一终端节点相应的默克尔树的根哈希值的操作,包括:通过联盟区块链系统根据身份认证信息,获取与第一终端节点相关的数据区块的区块数量,根据区块数量确定第一终端节点所属的域区块链系统;以及通过联盟区块链系统根据所确定的第一终端节点所属的域区块链系统确定第一终端节点相应的默克尔树的根哈希值。
[0090]
可选地,通过第一域区块链系统中预设的第一终端节点向第二域区块链系统的第一边缘认证节点发送身份认证请求之前,还包括:第一域区块链系统通过第二域管理节点生成公共参数组和密钥,并生成数据区块,将数据区块上链至第一域区块链系统的区块链;以及通过第二域管理节点将数据区块的区块号存储至联盟区块链系统。
[0091]
可选地,存储器820还用于为处理器810提供处理以下处理步骤的指令:通过第一终端节点向设置于第一域区块链系统的第二域管理节点发送注册请求;通过第二域管理节点根据注册请求将第一终端节点与第一域区块链系统进行关联,并根据第一终端节点的相关信息生成数据区块,将数据区块上链至第一域区块链系统的区块链;以及通过第二域管理节点将数据区块的区块号存储至联盟区块链系统。
[0092]
可选地,存储器820还用于为处理器810提供处理以下处理步骤的指令:通过第一域区块链系统的第一终端节点向预设的第二边缘认证节点发送域内访问的身份认证请求;通过第二边缘认证节点根据与域内访问的身份认证请求对应的身份认证信息以及第一域区块链系统中存储的第一终端节点相应的默克尔树的根哈希值,进行身份认证;以及通过第二边缘认证节点将身份认证结果发送至第一终端节点。
[0093]
从而根据本实施例,提供了一种在边缘计算环境下基于区块链的身份认证方法,其中的身份认证系统包括多个域区块链系统以及联盟区块链系统200。第一域区块链系统
的第一终端节点向第二域区块链系统的第一边缘认证节点发送身份认证请求,由第一边缘认证节点与联盟区块链系统200进行交互,从而实现了跨域身份认证。从而本技术方案中的基于区块链的身份认证方案通过在系统的网关或认证服务器上建立区块链网络来分散物联网的身份认证,实现了身份认证过程的分布式管理。与现有技术相比,本技术方案将身份认证请求分布给区块链的多个节点上,可以有效避免身份认证请求数量过多导致的响应慢和延迟高等问题,从而提高了身份认证的效率。并且本技术方案中的多个域区块链系统和一个联盟区块链系统同时启用,通过一个域区块链系统进行身份认证,另一个域区块链系统与联盟区块链系统进行连接,这样的方式,可以同时实现多个进程,提升可扩展性。并且本技术方案通过将终端节点的数据存储至区块链中,避免了将所有数据上传到云端给核心网络带来沉重的负担的问题,保证了存储容量。从而本技术方案实现了身份认证效率高、可扩展性强以及存储容量大的技术效果。进而解决了现有技术中存在的终端设备的身份认证过程中出现的身份认证效率低,可扩展性差以及存储容量小的技术问题。
[0094]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0095]
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0096]
在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0097]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0098]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0099]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,randomaccess memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0100]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
转载请注明原文地址: https://www.8miu.com/read-635.html

最新回复(0)