一种基于区块链技术的可信身份管理方法与流程

文档序号:23391829发布日期:2020-12-22 13:58阅读:98来源:国知局
一种基于区块链技术的可信身份管理方法与流程

本发明涉及区块链技术领域,具体涉及一种基于区块链技术的可信身份管理方法。



背景技术:

当前在分布式系统中,针对可信身份管理的架构主要有三种,分别是基于pki(publickeyinfrastructure,公钥基础设施)体系的身份认证架构、基于对称密钥的身份认证架构以及基于ibc(identity-basedcryptograph,基于标识的密码系统)体制的身份认证架构。这三种架构由于在实现技术和认证过程方式上的不同,均有相应的缺陷和不足之处。

首先基于pki体系的身份认证架构通过签发数字证书来绑定证书持有者的身份信息和公钥,实现了通信数据的机密性、完整性和不可否认性。但是现有基于pki的身份认证架构存在单点故障、扩展性差、性能瓶颈甚至安全隐患等问题,数据集中存储不透明存在篡改和伪造的风险。pki系统的所有处理依赖证书机构进行,容易遭到黑客的攻击,一旦证书机构失效或者是故障,将导致整个系统无法运行;采用中心化机制的pki系统,证书机构作为证书集中发放和管理的核心机构,成为影响系统性能的一个重要因素;另外数据信息高度集中,增加了维护成本,管理和应用都不方便。

基于对称密钥架构的优势是认证速度最快,效率最高,但存在密钥泄露的缺陷。网络空间的攻击和威胁愈加多样化和复杂化的现实状况,对身份认证的安全性也提出了更高层次的要求,因此其发展也受到了一定的限制。

而基于ibc的身份认证架构是直接以实体标识作为公钥,简化了密钥管理过程,且具有易于维护等优势。但是基于ibc认证系统的实体私钥是由kgc(keygenerationcentre,密钥产生中心)产生的,存在密钥托管问题,因此其更适用于独立小型信任域网络中。此外,在现有基于ibc认证方案中,实体身份撤销主要是通过定期地终止kgc发送私钥实现,无法实现及时性的身份撤销操作,造成了系统在高安全性要求的应用场景中无法发挥作用。

因此分布式系统中现有的身份认证架构都存在自身的缺陷,并不能充分的满足分布式系统对可信身份管理的需求。

申请人进行了检索,认为中国专利cn109376528a为最接近的现有技术,其公开了一种基于区块链的可信身份管理系统和方法,包括区块链模块、虚拟链模块和存储模块;区块链模块记录用户信息状态,和用户与应用服务器交互信息;虚拟链模块接收用户和应用服务器的请求,定义对区块链模块与存储模块的逻辑操作;存储模块保存用户的个人信息并进行备份;虚拟链模块位于区块链模块上层,存储模块位于虚拟链模块上层。其技术方案摆脱了对于保障用户信息安全性等而付出的人力和时间成本,提高了效率。但其技术方案仅能保障链上操作的可信性,不能有效确保区块链节点本身的可信身份管理和验证,无法作为现有技术中的可信身份认证系统。



技术实现要素:

本发明要解决的技术问题是:分布式系统中现有的身份认证存在中心化,导致安全性低、扩展性差的技术问题。提出了一种基于区块链技术的可信身份管理方法,本方法通过区块链对节点进行可信身份的管理,提高了可信身份管理的效率、可靠性和安全性。

为解决上述技术问题,本发明所采取的技术方案为:一种基于区块链技术的可信身份管理方法,包括以下步骤:

步骤a)导入节点系统表和第三方颁发的节点数字证书,运行初始化模块,获得存储有数字证书信息的初始化的区块链节点实例;

步骤b)使用初始的节点系统表初始化若干节点实例,建立创始区块链,节点系统表记录创始区块阶段参与共识同步的节点列表,区块链节点的角色包括管理员节点、普通节点和普通黑节点,初始的节点系统表在本地存储;

步骤c)创始区块链运行智能合约,通过共识投票机制实现区块链节点的角色转换,并维护节点系统表,运行智能合约时维护的节点系统表在链上存储;

步骤d)申请加入的节点a与已存在节点b进行线下交互,节点a将公钥的哈希值、节点bp地址和端口信息通过线下方式提供给节点b,节点b在链上发起权限准入交易申请,管理员节点进行验证审核,若过半数管理员节点验证审核通过,则节点a准入,广播更新节点系统表。获得第三方颁发的数字证书后,将数字证书本地存储,而后将包含公钥的验证信息提交区块链的管理员节点审核,经管理员节点审核后的节点即能够借由工作量证明其真实性,从而使得可信身份管理脱离中心化的管理系统,进而解除了由中心化节点带来的性能瓶颈。

作为优选,步骤a)中初始化模块执行以下步骤:

步骤a1)初始化配置模块,从配置模块获得包含节点系统表的配置信息;

步骤a2)初始化证书模块,将第三方颁发的节点数字证书发给证书模块,证书模块收到数字证书后进行验证,验证通过后返回一个初始化的tls实例和ca黑名单;

步骤a3)初始化p2p模块,将证书模块返回的tls实例和ca黑名单的内容发给p2p模块,p2p模块返回一个初始化的p2p变量对象,即p2p实例;

步骤a4)初始化共识同步模块,将p2p模块返回的p2p实例和节点系统表发给共识同步模块,共识同步模块返回一个初始化的节点变量对象,即节点实例。初始化模块对其他模块初始化时,将第三方颁发的节点数字证书由证书模块存储在本地,用于加入区块链后进行交易的签名,初始化时导入的节点系统表记录有区块链的节点以及节点角色。

作为优选,步骤d)中,申请加入的节点a获得第三方颁发的数字证书,节点a将公钥的哈希值、节点bp地址和端口信息提供给节点b,节点b在链上发起权限准入交易申请合约,在权限准入交易申请合约中存入节点a的公钥的哈希值、节点bp地址和端口信息。通过公钥的哈希值、节点bp地址和端口信息能够确定节点的真实性。

作为优选,步骤d)中,管理员节点进行验证审核的方法包括以下步骤:

步骤d1)检查节点系统表中是否存在节点a,若存在,则节点a申请加入区块链的流程直接结束,若不存在,则进入步骤d2);

步骤d2)管理员节点校验节点a的签名,如果校验失败,则返回节点a申请加入区块链失败的信息,如果校验通过,则把节点a写入权限准入交易申请合约所存放的节点系统表里;

步骤d3)管理员节点对申请加入的节点a审核通过后,如果同意节点a加入区块链的请求,则而后发送同意准入的交易给管理员节点的交易池,由交易池的交易广播传递给区块链中的其他所有节点,如果不同意节点a加入区块链的请求,则直接返回节点a申请加入区块链失败;

步骤d4)权限准入交易申请合约对收到的数据进行实时更新,管理员节点使用自己的私钥对审核内容进行签名并执行权限准入交易申请合约,权限准入交易申请合约中审核数+1;

步骤d5)节点b判断权限准入交易申请合约审核数是否满足半数以上的管理员节点数,若满足,则进入步骤d6),若不满足,则继续等待;

步骤d6)将节点a的信息加入节点系统表中,并发送节点系统表新增事件到区块链中,节点b订阅区块链中节点信息表新增事件,完成节点a加入。步骤c)中创始区块链运行的智能合约包括权限准入交易申请合约。

作为优选,运行共识投票机制实现的节点角色转换包括:普通节点转为普通黑节点、普通节点升级为管理员节点以及管理员节点降为普通节点,步骤c)中创始区块链运行的智能合约包括节点转换合约。通过节点之间的转换,能够在出现恶意节点时,第一时间将恶意节点移入普通黑节点,即实现了第一时间删除恶意节点,保证了可信身份管理的可靠性和安全性。

作为优选,步骤c)中,普通节点转为普通黑节点的方法包括以下步骤:

步骤c11)管理员节点b向区块链中发起请求,请求将区块链中的普通节点a加入黑名单;

步骤c12)节点转换合约收到请求,保存本次申请操作的数据;

步骤c13)管理员节点审核区块链中将普通节点a移入黑名单的请求,首先检查节点系统表中是否存在节点a,如果不存在,则普通节点a移入黑名单的流程直接结束;如果存在,则进入步骤c14);

步骤c14)校验节点系统表中节点a对应的角色是否为普通黑节点,如果是普通黑节点,则返回普通节点a移入黑名单失败的信息;如果不是普通黑节点,则进入步骤c15);

步骤c15)检验申请者的签名,如果校验失败,则这笔交易申请失败;如果校验通过,则把普通节点a写入节点转换合约存放的节点系统表里,并将节点对应的角色字段设置为黑节点;

步骤c16)管理员节点对普通节点a移入黑名单的请求审核通过后,如果不同意,这笔申请交易仍然会上链,如果同意该请求,则发送同意准入的交易给管理员节点的交易池,然后交易池的交易广播给区块链中的其他所有节点;

步骤c17),节点转换合约对收到的数据进行实时更新,管理员节点使用自己的私钥对审核内容进行签名并执行节点转换合约,节点转换合约中审核数+1;

步骤c18),管理员节点b判断是否满足半数以上的管理员节点同意普通节点b移入黑名单,如果满足,则执行步骤c19),如果不满足,则继续等待;

步骤c19),节点转换合约更新系统节点表和黑名单,并发送事件给管理员节点b,管理员节点b收到节点转换合约发送的事件通知,将断开普通节点a与区块链的连接。

作为优选,步骤c)中,普通节点升级为管理员节点的方法包括:

步骤c21),管理员节点b向区块链发起请求,请求将区块链中的普通节点a升级为管理员节点;

步骤c22),区块链中的管理员节点将对该请求进行审核,首先检查节点系统表中是否存在节点a,如果不存在,则普通节点a升级为管理员节点的流程直接结束;如果存在,则执行步骤c23);

步骤c23),管理员节点继续校验节点系统表中节点a对应的角色是否为普通节点,如果不是普通节点,则返回普通节点a升级管理员节点失败的信息;如果是普通节点,执行步骤c24);

步骤c24),管理员节点校验申请者的签名,如果校验失败,则这笔申请交易失败;如果校验通过,则把普通节点a写入节点转换合约存放的节点系统表里并将节点对应的角色字段设置为管理员节点;

步骤c25),管理员节点对普通节点a升级为管理员节点的请求审核通过后,如果不同意,这笔申请交易仍然会上链,如果同意该请求,则发送同意准入的交易给管理员节点的交易池,然后交易池的交易广播给区块链网络中的其他所有节点;

步骤c26),节点转换合约对收到的数据进行实时更新,管理员节点使用自己的私钥对审核内容进行签名并执行节点转换合约,节点转换合约中审核数+1;

步骤c27),管理员节点b判断是否满足半数以上的管理员节点同意将普通节点a升级为管理员节点,如果满足,则执行步骤c28),如果不满足,则继续等待;

步骤c28),节点转换合约更新系统节点表,从而将节点a加入管理员节点表。

作为优选,步骤c)中,管理员节点降为普通节点的方法包括:

步骤c31),管理员节点b向区块链网络中发起请求,请求将网络中的管理员节点a降为普通节点;

步骤c32),网络中的管理员节点将对该请求进行审核,首先检查节点系统表中是否存在节点a,如果不存在,则管理员节点a降为普通节点的流程直接结束;如果存在,则执行步骤c33);

步骤c33),管理员节点继续校验节点系统表中节点a对应的角色字段是否为管理员节点,如果不是管理员节点,则返回管理员节点a降为普通节点失败的信息;如果是管理员节点,执行步骤c34);

步骤c34),管理员节点校验申请者的签名,如果校验失败,则这笔申请交易失败;如果校验通过,则把管理员节点a写入节点转换合约存放的节点系统表里并将节点对应的角色设置为普通节点;

步骤c35),管理员节点对管理员节点a降为普通节点的请求审核通过后,如果不同意,这笔申请交易仍然会上链;如果同意该请求,则发送同意准入的交易给管理员节点的交易池,然后交易池的交易广播给区块链网络中的其他所有节点;

步骤c36),节点转换合约对收到的数据进行实时更新,管理员节点使用自己的私钥对审核内容进行签名并执行节点转换合约,节点转换合约中审核数+1;

步骤c37),管理员节点b判断是否满足半数以上的管理员节点同意将管理员节点a降为普通节点,如果满足,则执行步骤c38),如果不满足,则继续等待;

步骤c38),节点转换合约更新系统节点表,将节点a从管理员节点表中删除。

通过在区块链网络中发起请求,如果超过半数的管理员节点同意请求,那么共识节点可以在管理员节点、普通节点和普通黑节点之间转换,实现链自治,提高区块链运行的可靠性和效率。

本发明的实质性效果是:获得第三方颁发数字证书的节点将包含公钥的验证信息提交区块链的管理员节点审核,经管理员节点审核后的节点即能够由区块链提供可信证明,从而使得可信身份管理脱离中心化的管理系统,进而解除了由中心化节点带来的性能瓶颈;通过节点之间的转换能够在出现恶意节点时,第一时间将恶意节点移入普通黑节点,保证了可信身份管理的可靠性和安全性;通过智能合约实现区块链自治,提高了区块链的工作效率和可靠性。

附图说明

图1为实施例一初始化流程框图。

图2为实施例一新节点加入流程框图。

图3为实施例一普通节点加入黑节点流程框图。

图4为实施例一普通节点升级管理员节点流程框图。

图5为实施例一管理员节点降为普通节点流程框图。

其中:100、初始化模块,200、配置模块,300、证书模块,400、p2p模块,500、共识同步模块。

具体实施方式

下面通过具体实施例,并结合附图,对本发明的具体实施方式作进一步具体说明。

实施例一:

一种基于区块链技术的可信身份管理方法,包括以下步骤:

步骤a)导入节点系统表和第三方颁发的节点数字证书,运行初始化模块100,获得存储有数字证书信息的初始化的区块链节点实例。

如图1所示,初始化模块100在运行时执行以下步骤:

步骤s1),初始化模块100创建初始化的初始化信息结构字段,初始化信息结构字段包括配置信息结构字段、p2p信息结构字段和证书信息结构字段,创建的配置信息结构字段及p2p信息结构字段均赋空值或初始值。证书信息结构字段存储节点获得的第三方数字证书信息。证书信息结构字段包括网络监控变量、ca黑名单、根证书、证书和私钥,网络监控变量赋空值,ca黑名单、根证书、证书及私钥由获得的第三方数值证书内容确定。

步骤s2),初始化模块100调用配置模块200,配置模块200内存储有配置信息结构字段,配置信息结构字段内存储有节点系统表和初始节点系统表,初始节点系统表由参与建立创始链的节点制定,初始节点系统表由创始链的节点在本地存储,节点系统表在区块链开始运行后,用于链上存储和更新。初始节点系统表内存储有创始链的节点的角色。初始化模块100调用配置模块200后获得配置信息结构字段,将获得的值赋值给创建的初始化的配置信息结构字段。

步骤s3),初始化模块100加载证书模块300,将根证书、证书及私钥发送给证书模块300,证书模块300收到数字证书后进行验证,使用证书里根证书去验证节点的证书,验证通过后,证书模块300和已存在的某个管理员节点b交换验证数字证书,验证通过后,双方建立tls通信连接,从管理员节点b获得ca黑名单,将tls实例和ca黑名单返回给初始化模块100。数字证书交换验证时双方的公钥由第三方获取,获取后存储在链上。创建创始链时,节点之间配对验证或不进行验证直接建立tls通信。

步骤s4),初始化模块100收到返回的tls实例后,将tls实例赋值给网络监控变量。

步骤s5),初始化模块100将tls实例和证书信息结构字段提供给p2p模块400。

步骤s6),p2p模块400返回p2p实例。

步骤s7),初始化模块100将p2p实例和节点系统表发送给共识同步模块500,共识同步模块500运行智能合约,完成节点的初始化。

步骤b),使用初始的节点系统表初始化若干节点实例,建立创始区块链,节点系统表记录创始区块阶段参与共识同步的节点列表,区块链节点的角色包括管理员节点、普通节点和普通黑节点,节点系统表本地存储。

步骤c),创始区块链运行智能合约,通过共识投票机制实现区块链节点的角色转换,包括普通节点转为普通黑节点、普通节点升级为管理员节点以及管理员节点降为普通节点,实现链自治,在节点出现恶意行为时,能够在第一时间将恶意节点移入普通黑节点,即删除恶意节点,保证了可信身份管理的可靠性和安全性。

步骤d),申请加入的节点a与已存在节点b进行线下交互,节点a将公钥的哈希值、节点bp地址和端口信息提供给节点b,节点b在链上发起权限准入交易申请合约,在权限准入交易申请合约中存入节点a的公钥的哈希值、节点bp地址和端口信息,管理员节点进行验证审核。

如图2所示,管理员节点进行验证审核包括以下步骤:

步骤d1)检查节点系统表中是否存在节点a,若存在,则节点a申请加入区块链的流程直接结束,若不存在,则进入步骤d2);步骤d2)管理员节点校验节点a的签名,如果校验失败,则返回节点a申请加入区块链失败的信息,如果校验通过,则把节点a写入权限准入交易申请合约所存放的节点系统表里;步骤d3)管理员节点对申请加入的节点a审核通过后,如果同意节点a加入区块链的请求,则而后发送同意准入的交易给管理员节点的交易池,由交易池的交易广播传递给区块链中的其他所有节点,如果不同意节点a加入区块链的请求,则直接返回节点a申请加入区块链失败;步骤d4)权限准入交易申请合约对收到的数据进行实时更新,管理员节点使用自己的私钥对审核内容进行签名并执行权限准入交易申请合约,权限准入交易申请合约中审核数+1;步骤d5)节点b判断权限准入交易申请合约审核数是否满足半数以上的管理员节点数,若满足,则进入步骤d6),若不满足,则继续等待;步骤d6)将节点a的信息加入节点系统表中,并发送节点系统表新增事件到区块链中,节点b订阅区块链中节点信息表新增事件,完成节点a加入。

如图3所示,步骤c)中,普通节点转为普通黑节点的方法包括以下步骤:

步骤c11)管理员节点b向区块链中发起请求,请求将区块链中的普通节点a加入黑名单;步骤c12)节点转换合约收到请求,保存本次申请操作的数据;步骤c13)管理员节点审核区块链中将普通节点a移入黑名单的请求,首先检查节点系统表中是否存在节点a,如果不存在,则普通节点a移入黑名单的流程直接结束;如果存在,则进入步骤c14);步骤c14)校验节点系统表中节点a对应的角色是否为普通黑节点,如果是普通黑节点,则返回普通节点a移入黑名单失败的信息;如果不是普通黑节点,则进入步骤c15);步骤c15)检验申请者的签名,如果校验失败,则这笔交易申请失败;如果校验通过,则把普通节点a写入节点转换合约存放的节点系统表里,并将节点对应的角色字段设置为黑节点;步骤c16)管理员节点对普通节点a移入黑名单的请求审核通过后,如果不同意,这笔申请交易仍然会上链,如果同意该请求,则发送同意准入的交易给管理员节点的交易池,然后交易池的交易广播给区块链中的其他所有节点;步骤c17),节点转换合约对收到的数据进行实时更新,管理员节点使用自己的私钥对审核内容进行签名并执行节点转换合约,节点转换合约中审核数+1;步骤c18),管理员节点b判断是否满足半数以上的管理员节点同意普通节点b移入黑名单,如果满足,则执行步骤c19),如果不满足,则继续等待;步骤c19),节点转换合约更新系统节点表和黑名单,并发送事件给管理员节点b,管理员节点b收到节点转换合约发送的事件通知,将断开普通节点a与区块链的连接。

如图4所示,步骤c)中,普通节点升级为管理员节点的方法包括:

步骤c21),管理员节点b向区块链发起请求,请求将区块链中的普通节点a升级为管理员节点;步骤c22),区块链中的管理员节点将对该请求进行审核,首先检查节点系统表中是否存在节点a,如果不存在,则普通节点a升级为管理员节点的流程直接结束;如果存在,则执行步骤c23);步骤c23),管理员节点继续校验节点系统表中节点a对应的角色是否为普通节点,如果不是普通节点,则返回普通节点a升级管理员节点失败的信息;如果是普通节点,执行步骤c24);步骤c24),管理员节点校验申请者的签名,如果校验失败,则这笔申请交易失败;如果校验通过,则把普通节点a写入节点转换合约存放的节点系统表里并将节点对应的角色字段设置为管理员节点;步骤c25),管理员节点对普通节点a升级为管理员节点的请求审核通过后,如果不同意,这笔申请交易仍然会上链,如果同意该请求,则发送同意准入的交易给管理员节点的交易池,然后交易池的交易广播给区块链网络中的其他所有节点;步骤c26),节点转换合约对收到的数据进行实时更新,管理员节点使用自己的私钥对审核内容进行签名并执行节点转换合约,节点转换合约中审核数+1;步骤c27),管理员节点b判断是否满足半数以上的管理员节点同意将普通节点a升级为管理员节点,如果满足,则执行步骤c28),如果不满足,则继续等待;步骤c28),节点转换合约更新系统节点表,从而将节点a加入管理员节点表。

如图5所示,步骤c)中,管理员节点降为普通节点的方法包括:

步骤c31),管理员节点b向区块链网络中发起请求,请求将网络中的管理员节点a降为普通节点;步骤c32),网络中的管理员节点将对该请求进行审核,首先检查节点系统表中是否存在节点a,如果不存在,则管理员节点a降为普通节点的流程直接结束;如果存在,则执行步骤c33);步骤c33),管理员节点继续校验节点系统表中节点a对应的角色字段是否为管理员节点,如果不是管理员节点,则返回管理员节点a降为普通节点失败的信息;如果是管理员节点,执行步骤c34);步骤c34),管理员节点校验申请者的签名,如果校验失败,则这笔申请交易失败;如果校验通过,则把管理员节点a写入节点转换合约存放的节点系统表里并将节点对应的角色设置为普通节点;步骤c35),管理员节点对管理员节点a降为普通节点的请求审核通过后,如果不同意,这笔申请交易仍然会上链;如果同意该请求,则发送同意准入的交易给管理员节点的交易池,然后交易池的交易广播给区块链网络中的其他所有节点;步骤c36),节点转换合约对收到的数据进行实时更新,管理员节点使用自己的私钥对审核内容进行签名并执行节点转换合约,节点转换合约中审核数+1;步骤c37),管理员节点b判断是否满足半数以上的管理员节点同意将管理员节点a降为普通节点,如果满足,则执行步骤c38),如果不满足,则继续等待;步骤c38),节点转换合约更新系统节点表,将节点a从管理员节点表中删除。

本实施例的实质性效果是:获得第三方颁发数字证书的节点将包含公钥的验证信息提交区块链的管理员节点审核,经管理员节点审核后的节点即能够由区块链提供可信证明,从而使得可信身份管理脱离中心化的管理系统,进而解除了由中心化节点带来的性能瓶颈;通过节点之间的转换能够在出现恶意节点时,第一时间将恶意节点移入普通黑节点,保证了可信身份管理的可靠性和安全性;通过智能合约实现区块链自治,提高了区块链的工作效率和可靠性。

以上所述的实施例只是本发明的一种较佳的方案,并非对本发明作任何形式上的限制,在不超出权利要求所记载的技术方案的前提下还有其它的变体及改型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1