一种基于区块链的认证证书生成方法技术

技术编号:18898745 阅读:85 留言:0更新日期:2018-09-08 13:38
本发明专利技术提供了一种基于区块链的认证证书生成方法,其特征在于包含以下步骤:(1)证书认证中心节点对收到的请求进行哈希映射,得到一个比特数组,发送到其他证书认证中心节点,每个节点对收到的所有比特数组进行三分之二交集运算;(2)根据轮询调度算法,随机选择一个建块节点,用公共交集对应的请求数据建块后广播给其它节点;(3)各节点对新建区块进行验证,然后将验证结果用自己的私钥进行签名,并广播给其它节点;(4)各节点对收到的验证结果进行验证、计算,得到一个投票集合,然后签名并广播给其它节点;(5)各节点对收到的其它节点的投票集合进行验证、汇总,通过共识运算后决定是否将此区块加入到区块链中。利用本发明专利技术方法,多个节点进行相互验证,可以提高系统的健壮性,当某个节点受到攻击时,不影响证书生成的一致性和完整性。

An authentication certificate generation method based on block chaining

The invention provides an authentication certificate generation method based on block chain, which is characterized by the following steps: (1) The certificate authentication center node performs hash mapping on the received request, obtains a bit array, sends it to other certificate authentication center nodes, and each node carries out three bits of all the received bit arrays. (3) Each node verifies the new block, and then signs the verification result with its own private key and broadcasts it to other nodes; (4) Each section Points verify and calculate the results received, get a voting set, and then sign and broadcast to other nodes; (5) each node verifies and summarizes the voting sets received by other nodes, and then decide whether to add this block to the block chain by consensus operation. Using the method of the invention, multiple nodes can verify each other to improve the robustness of the system, and when a node is attacked, the consistency and integrity of certificate generation are not affected.

【技术实现步骤摘要】
一种基于区块链的认证证书生成方法
本专利技术涉及一种认证证书的生成方法,特别是使用区块链技术来生成认证证书。
技术介绍
目前,认证证书在互联网和电子商务等领域应用十分广泛,传统的生成认证证书的方法,是建立中心化的、以公钥基础设施为标准的证书认证中心,但这种中心化的方式经常遭受攻击,比如恶意攻击某CA中心、伪造认证证书实现中间人攻击等;为了应对各种威胁和挑战,认证证书的生成方法也亟需改善。区块链技术的主要特点是分布式、不可篡改,通过共识机制最终确认结果,最后记录到区块中;因此使用区块链技术来实现认证证书的生成能够极大地改善目前现有的认证证书生成方法存在的弊端。
技术实现思路
针对传统生成认证证书方法的不足,且不同于其它区块链证书相关的专利技术,本专利技术提供了一种基于区块链的认证证书生成方法,采用拜占庭容错算法,在面对攻击时,只要保证三分之二以上节点数据的安全,就能保证生成数据的完整性和一致性。本专利技术提供了一种基于区块链的认证证书生成方法,包括以下步骤:(1)认证中心对申请证书请求的确认:所有认证中心节点对收到的申请证书请求进行签名验证,然后进行哈希映射,得到一个比特数组,最后将自己获得的比特数组再广播给其它所有节点;一般情况下,每个节点也都会收到其它所有节点发来的比特数组;然后各认证中心再对所有收到的比特数组进行求交集运算,运算结果将获得三分之二以上节点的申请证书请求交集对应的比特数组;(2)认证中心建块:根据轮询调度算法,随机指定一个节点为建块节点,建块节点根据公共交集对应的请求数据建立区块,最后将新建区块广播给所有其它节点;(3)认证中心对区块进行验证:其它认证中心节点收到建块节点的区块后,验证区块哈希是否正确,若验证通过则认同此区块是合法的,以进行验证;验证结束后,认证中心节点使用自己的私钥对验证结果进行签名,然后将签名和验证结果再广播给所有其它节点;(4)认证中心第一轮投票:各个认证中心节点对从其它节点收到的签名进行验证,从而判断收到的验证结果是否真实合法,将真实合法的验证结果组成一个投票集合,然后对这个投票集合用自己的私钥进行签名,最后再将签名和投票集合广播给所有其它认证中心节点;(5)第二轮投票,认证中心投票决定是否将此区块写入到链中:各认证中心节点收到其它节点的投票集合和签名后,先验证签名的真实合法性,认为合法的信息投的是赞成票,不合法的信息投的是反对票,并对投票信息进行统计汇总,使用共识算法得到最终投票结果,根据投票结果决定是否将此区块加入到区块链中。优选的,对于所述步骤(1),具体为:将证书申请请求根据一定算法映射到比特数组中,接着将这个比特数组广播给所有其它认证中心节点;最后各认证中心节点对收到的比特数组求三分之二交集运算,得到一个最新的比特数组。优选的,对于所述步骤(2),具体为:(a)在认证中心节点内部执行轮询调度算法,选择一个唯一节点建立区块;(b)建块节点首先根据证书申请请求签发认证证书,然后根据公共交集对应的请求数据建立区块,将生成的认证证书信息保存在区块上;(c)建块完成后,建块节点将签名信息和区块广播给所有其它证书认证节点。优选的,对于所述步骤(3),具体为:(a)所有的证书认证节点验证新建设区块的签名信息,若验证通过,则认同建块者是被选择的建块节点,此区块是合法的。(b)证书认证节点使用自己的私钥对验证结果的哈希进行签名;(c)证书认证节点再将验证结果和签名广播给所有其它证书认证节点。优选的,对于所述步骤(4),具体为:(a)每个证书认证节点对从其它节点收到的签名进行验证,从而判断收到的验证结果是否真实合法,将真实合法的验证结果组成一个投票集合,(b)用自己的私钥再对这个投票集合进行签名,最后再将签名和投票集合广播给所有其它认证中心节点。优选的,对于所述步骤(5),具体为:(a)各认证中心节点收到其它节点的投票集合和签名后,先验证签名的真实合法性,认为合法的信息投的是赞成票,不合法的信息投的是反对票;(b)对投票信息进行统计汇总,如果最后统计得出的赞成票大于三分之二,则认为这个块是真实合法的,可以加入到区块链中,并将相关证书返回给用户,并通知LDAP服务器保存;否则,这个块就会被抛弃。为了保证区块链中不同节点建块的一致性、完整性,目前的设计方法采用了基于拜占庭的一致性算法,它要求有四次通信和二次投票,相比于其它的认证证书生成算法,具有如下优点:(1)证书申请请求是同时发给区块链中的多个证书认证节点,由多个认证节点求交集后取三分之二以上的数据作为依据,有效避免了单台CA服务器被攻击后造成的损失;(2)是否将区块添加到链上,是由各证书认证节点投票决定的,取三分之二以上的交集结果作为依据,有有效保障数据的一致性,即使可能有部分节点被劫持,由于数量少,也不会造成损失;(3)在各证书认证节点之间进行通信时,通信只有比特数组和签名,占用资源较少,且运算时,只是对比特数组进行与运算,使得验证速度和通信速度大幅提升;(4)在验证过程和投票过程中,采用拜占庭容错算法,即使个别节点被攻击或失效,也不影响整体节点的正常运行,提高的系统的稳定性。根据下文和相关示例图对本专利技术具体实施例的详细描述,本领域技术人员将会更加理解本专利技术的上述以及其他目的、优点和特征。附图说明下文将参照附图以示例性而非限制性的方式详细描述本专利技术的一些具体实施例。示例中相同的图例标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。本专利技术的目标及特征考虑到如下结合附图的描述将更加明显,附图中:图1是根据本专利技术优选实施例的各认证中心节点的比特数组通信图;图2是根据本专利技术优选实施例的建块节点构造区块图;图3是根据本专利技术优选实施例的认证证书区块结构示意图;图4是根据本专利技术优选实施例认证中心投票决定过程图。具体实施方式根据拜占庭容错机制,在认证证书区块链系统中,如果有F个认证证书节点被攻击或发生故障,则系统中至少要有3F+1个认证证书节点存在,才能保障认证证书区块链系统的正常运行;也就是说,在认证证书区块链系统中,至少要有四个节点存在才能组成一个完整的认证证书区块链。如果有认证证书节点被攻击或发生故障,只要数量小于系统中全部节点的三分之二,则根据拜占庭容错机制可以保证认证证书区块链系统的正常工作。在异常节点恢复正常之后,根据认证证书系统的同步机制,会向其余认证证书节点进行同步请求,从而得到完整的认证证书区块链。这样就保证了任何一个认证证书节点在恢复正常之后就可以正常的运转,有效保障了认证证书区块链系统数据的一致性和各认证证书节点数据的完整性。本系统中每个认证证书节点在进行投票时,都会利用自己的私钥对投票结果和区块的哈希值进行签名,然后把签名、投票信息和哈希值一同广播给其它所有其它认证证书节点;其它认证证书节点在收到签名、投票信息和哈希值之后,利用发送者的公钥对签名进行验证,并对哈希值进行校验;这样就保证了投票信息的不可抵赖和不可篡改。因此本专利技术的算法是一种认证证书投票信息可识别且不可伪造的拜占庭容错算法。(一)假设证书认证区块链系统中有4个节点,即F=1,总节点数M=4,分别为节点BCA1、节点BCA2、节点BCA3、节点BCA4,当采用本专利技术的方法进行建块时,每个节点首先对证书申请请求进行映射,本文档来自技高网...

【技术保护点】
1.一种基于区块链的认证证书生成方法,其特征在于,包含以下步骤:(1)证书认证中心节点对收到的请求进行哈希映射,得到一个比特数组,发送到其他证书认证中心节点,每个节点对收到的所有比特数组进行三分之二交集运算;(2)根据轮询调度算法,随机选择一个建块节点,用公共交集对应的请求数据建块后广播给其它节点;(3)各节点对新建区块进行验证,然后将验证结果用自己的私钥进行签名,并广播给其它节点;(4)各节点对收到的验证结果进行验证、计算,得到一个投票集合,然后签名并广播给其它节点;(5)各节点对收到的其它节点的投票集合进行验证、汇总,通过共识运算后决定是否将此区块加入到区块链中;利用此方法,多个节点进行相互验证,可以提高系统的健壮性,当某个节点受到攻击时,不影响证书生成的一致性和完整性。

【技术特征摘要】
1.一种基于区块链的认证证书生成方法,其特征在于,包含以下步骤:(1)证书认证中心节点对收到的请求进行哈希映射,得到一个比特数组,发送到其他证书认证中心节点,每个节点对收到的所有比特数组进行三分之二交集运算;(2)根据轮询调度算法,随机选择一个建块节点,用公共交集对应的请求数据建块后广播给其它节点;(3)各节点对新建区块进行验证,然后将验证结果用自己的私钥进行签名,并广播给其它节点;(4)各节点对收到的验证结果进行验证、计算,得到一个投票集合,然后签名并广播给其它节点;(5)各节点对收到的其它节点的投票集合进行验证、汇总,通过共识运算后决定是否将此区块加入到区块链中;利用此方法,多个节点进行相互验证,可以提高系统的健壮性,当某个节点受到攻击时,不影响证书生成的一致性和完整性。2.根据权利要求1所述的一种基于区块链的认证证书生成方法,其特征在于:所述步骤(1),根据一定算法映射到比特数组中,将这个比特数组广播给所有其它认证中心节点;最后各认证中心节点对收到的比特数组求交集运算,得到一个最新的比特数组,这个最新的比特数组是由所有认证中心节点三分之二以上节点的比特数组组成的。3.根据权利要求1所述的一种基于区块链的认证证书生成方法,其特征在于:所述步骤(2)的过程包括:(a)在认证中心节点内部执行轮询调度算法,选择一个唯一建立区块节点;(b)建块节点根据求交集后最新的比特数组建立区块;(c)建块完成后,建块节点将区块广播给所有其它证书认证节点。4.根据权利要求1所述的一种基于区块链的认证证书生成方法,其特征在于:所述步骤(3)的过程包括:(a)所有的证书认证节点,验证区块的哈希是否正确,若验证通过则认同此区块是合法的;(b)对区块的验证结果是由0和1二个数字表示,1表示验证成功,0表示验证失败,...

【专利技术属性】
技术研发人员:蔡维德
申请(专利权)人:北京天德科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1