发明内容
本申请的目的在于提供一种基于区块链技术的分布式身份认证方法,其能够使得被认证节点和执行认证的节点之间能够实现按需认证。
本申请的另一目的在于提供一种基于区块链技术的分布式身份认证系统,其能够运行一种基于区块链技术的分布式身份认证方法。
本申请的实施例是这样实现的:
第一方面,本申请实施例提供一种基于区块链技术的分布式身份认证方法,其包括接收被认证节点发送的当前认证标识符和当前认证信息;被认证节点基于当前认证标识符,获取与用户终端相关联的预先存储的认证信息,并基于预先存储的认证信息和当前认证标识符对被认证节点对应的用户终端进行身份认证;各认证节点向分布式身份认证区块同步预先存储的认证信息,并获取所有证书及其有效状态。
在本申请的一些实施例中,上述接收被认证节点发送的当前认证标识符和当前认证信息包括:接收到被认证节点的数字证书申请请求,并生成非对称密钥对,并将私钥写入接收被认证节点。
在本申请的一些实施例中,上述还包括:检验当前认证标识符和当前认证信息是否被加密,当前认证标识符和当前认证信息被加密时,分析当前认证标识符和当前认证信息的加密方法,并获取与加密方法对应的解密方法,并使用解密方法解密当前认证标识符和当前认证信息。
在本申请的一些实施例中,上述被认证节点基于当前认证标识符,获取与用户终端相关联的预先存储的认证信息,并基于预先存储的认证信息和当前认证标识符对被认证节点对应的用户终端进行身份认证包括:每个被认证节点对所归属的用户终端中的身份认证请求进行处理。
在本申请的一些实施例中,上述还包括:预先存储的认证信息包括多个身份认证数据项,其中认证信息和当前认证标识符包括对应的用户终端的标识符和多个身份认证数据项。
在本申请的一些实施例中,上述各认证节点向分布式身份认证区块同步预先存储的认证信息,并获取所有证书及其有效状态包括:接收到认证节点的通知后,同步最新区块链信息,并按照新区块中预先存储的认证信息,将预先存储的认证信息加入布隆过滤器中。
在本申请的一些实施例中,上述还包括:判断布隆过滤器是都存在误判,若布隆过滤器输出预先存储的认证信息同步失败,则不存在误判,若布隆过滤器输出预先存储的认证信息同步成功,则存在误判的可能。
第二方面,本申请实施例提供一种基于区块链技术的分布式身份认证系统,其包括接收模块,用于接收被认证节点发送的当前认证标识符和当前认证信息;
身份认证模块,用于被认证节点基于当前认证标识符,获取与用户终端相关联的预先存储的认证信息,并基于预先存储的认证信息和当前认证标识符对被认证节点对应的用户终端进行身份认证;
同步模块,用于各认证节点向分布式身份认证区块同步预先存储的认证信息,并获取所有证书及其有效状态。
在本申请的一些实施例中,上述包括:用于存储计算机指令的至少一个存储器;与上述存储器通讯的至少一个处理器,其中当上述至少一个处理器执行上述计算机指令时,上述至少一个处理器使上述系统执行:接收模块、身份认证模块及同步模块。
第三方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如一种基于区块链技术的分布式身份认证方法中任一项的方法。
相对于现有技术,本申请的实施例至少具有如下优点或有益效果:
对比于传统的身份认证系统省去了多平台开发维护的费用,节省了交互验证的时间。在安全性方面,全网节点校验身份,可以做到更加透明可靠,减少人工认证的出错概率和人力成本,而且不再依托各自平台的状态,规避不同平台身份信息不同步的问题,还可以避免未授权节点对区块链写入虚假数字证书,大幅提升本地节点查询数字证书有效性的效率,避免节点逐块查询区块链带来额外的时间开销。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
需要说明的是,术语“包括”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的各个实施例及实施例中的各个特征可以相互组合。
实施例1
请参阅图1,图1为本申请实施例提供的一种基于区块链技术的分布式身份认证方法步骤示意图,其如下所示:
步骤S100,接收被认证节点发送的当前认证标识符和当前认证信息;
在一些实施方式中,当被认证节点和执行认证的节点之间需要进行身份认证时,被认证节点从原语库中选取一个目标认证原语,所述原语库为认证原语的集合,认证原语为表征被认证节点唯一性的语句,且满足被认证节点的预设语义规则。
步骤S110,被认证节点基于当前认证标识符,获取与用户终端相关联的预先存储的认证信息,并基于预先存储的认证信息和当前认证标识符对被认证节点对应的用户终端进行身份认证;
在一些实施方式中,每个认证节点对所归属的服务区域中的用户终端的身份认证请求进行处理。当用户终端希望通过凭证生成服务器来生成电子凭证时,需要在分布式身份认证系统进行身份认证。当用户终端需要在分布式身份认证系统进行身份认证时,基于与身份认证相关联的多个身份数据项生成当前认证信息,并且基于用户终端的标识符和当前认证信息生成身份认证请求;确定用户终端所归属的服务区域,基于所归属的服务区域的区域标识符,从多个认证节点中确定第一认证节点;将身份认证请求发送给第一认证节点。
步骤S120,各认证节点向分布式身份认证区块同步预先存储的认证信息,并获取所有证书及其有效状态。
在一些实施方式中,基于预先存储的认证信息和当前认证信息对用户终端进行身份认证,以获得用户终端的身份认证结果包括:获取预先存储的认证信息中的多个身份数据项,并且获取当前认证信息中的多个身份数据项;根据预先存储的认证信息中的多个身份数据项对当前认证信息中的每个身份数据项,进行验证,在当前认证信息中的每个身份数据项均通过验证时,确定用户终端的身份认证结果为认证成功,否则,确定用户终端的身份认证结果为认证失败。
实施例2
请参阅图2,图2为本申请实施例提供的一种基于区块链技术的分布式身份认证方法详细步骤示意图,其如下所示:
步骤S200,接收到被认证节点的数字证书申请请求,并生成非对称密钥对,并将私钥写入接收被认证节点。
步骤S210,检验当前认证标识符和当前认证信息是否被加密,当前认证标识符和当前认证信息被加密时,分析当前认证标识符和当前认证信息的加密方法,并获取与加密方法对应的解密方法,并使用解密方法解密当前认证标识符和当前认证信息。
步骤S220,每个被认证节点对所归属的用户终端中的身份认证请求进行处理。
步骤S230,预先存储的认证信息包括多个身份认证数据项,其中认证信息和当前认证标识符包括对应的用户终端的标识符和多个身份认证数据项。
步骤S240,接收到认证节点的通知后,同步最新区块链信息,并按照新区块中预先存储的认证信息,将预先存储的认证信息加入布隆过滤器中。
步骤S250,判断布隆过滤器是都存在误判,若布隆过滤器输出预先存储的认证信息同步失败,则不存在误判,若布隆过滤器输出预先存储的认证信息同步成功,则存在误判的可能。
在一些实施方式中,当多个认证节点中的第二认证节点接收到用户终端的电子凭证生成请求时,对电子凭证生成请求进行解析以获取用户终端的标识符和多个内容数据项;基于用户终端的标识符确定用户终端是否通过了身份认证,当确定用户终端通过了身份认证时,在所述电子凭证生成请求添加认证结果,并将添加了认证结果的电子凭证生成请求发送给凭证生成服务器。
响应于接收到电子凭证生成请求,凭证生成服务器对电子凭证生成请求进行解析以获取用户终端的标识符、认证结果和多个内容数据项;当认证结果为认证成功时,根据多个内容数据项生成电子凭证;并基于用户终端的标识符向用户终端发送电子凭证生成响应,所述电子凭证生成响应中包括电子凭证的获取地址。用户终端在接收到电子凭证生成响应后,基于电子凭证生成响应中的获取地址来获取电子凭证。
实施例3
请参阅图3,图3为本申请实施例提供的一种基于区块链技术的分布式身份认证系统模块示意图,其如下所示:
接收模块10,用于接收被认证节点发送的当前认证标识符和当前认证信息;
身份认证模块20,用于被认证节点基于当前认证标识符,获取与用户终端相关联的预先存储的认证信息,并基于预先存储的认证信息和当前认证标识符对被认证节点对应的用户终端进行身份认证;
同步模块30,用于各认证节点向分布式身份认证区块同步预先存储的认证信息,并获取所有证书及其有效状态。
如图4所示,本申请实施例提供一种电子设备,其包括存储器101,用于存储一个或多个程序;处理器102。当一个或多个程序被处理器102执行时,实现如上述第一方面中任一项的方法。
还包括通信接口103,该存储器101、处理器102和通信接口103相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器101可用于存储软件程序及模块,处理器102通过执行存储在存储器101内的软件程序及模块,从而执行各种功能应用以及数据处理。该通信接口103可用于与其他节点设备进行信令或数据的通信。
其中,存储器101可以是但不限于,随机存取存储器101(Random Access Memory,RAM),只读存储器101(Read Only Memory,ROM),可编程只读存储器101(ProgrammableRead-Only Memory,PROM),可擦除只读存储器101(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器101(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。
处理器102可以是一种集成电路芯片,具有信号处理能力。该处理器102可以是通用处理器102,包括中央处理器102(Central Processing Unit,CPU)、网络处理器102(Network Processor,NP)等;还可以是数字信号处理器102(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请所提供的实施例中,应该理解到,所揭露的方法及系统,也可以通过其它的方式实现。以上所描述的方法及系统实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的方法及系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
另一方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器102执行时实现如上述第一方面中任一项的方法。所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器101(ROM,Read-Only Memory)、随机存取存储器101(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
综上所述,本申请实施例提供的一种基于区块链技术的分布式身份认证方法及系统,对比于传统的身份认证系统省去了多平台开发维护的费用,节省了交互验证的时间。在安全性方面,全网节点校验身份,可以做到更加透明可靠,减少人工认证的出错概率和人力成本,而且不再依托各自平台的状态,规避不同平台身份信息不同步的问题,还可以避免未授权节点对区块链写入虚假数字证书,大幅提升本地节点查询数字证书有效性的效率,避免节点逐块查询区块链带来额外的时间开销。
以上仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其它的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。