掌桥专利:专业的专利平台
掌桥专利
首页

本申请为在2019年09月12日提交中国专利局、申请号为201910867310.6、申请名称为“在区块链网络中更换身份证书的方法和装置”的中国专利申请的分案申请,其全部内容通过引用结合在本申请中。

技术领域

本申请涉及计算机技术领域,特别是涉及一种在区块链网络中更换身份证书的方法、装置、计算机可读存储介质和计算机设备。

背景技术

区块链网络中,区块链节点之间的通信通常需要验证彼此的身份,以保证区块链网络和区块链上数据的安全,为此,通常需要为每个区块链节点颁发公私钥,还需要为每个区块链节点颁发身份证书,身份证书通常是由具备权威性的机构签发的。

为了提升区块链网络的安全性,避免身份证书被破解或者泄露的风险,发明人想到区块链节点的身份证书不能是单一不变的,需要更换。然而,基于区块链网络对安全性的极高要求,如何实现在区块链网络中更换区块链节点的身份证书,是一个难点。

发明内容

基于此,有必要针对现有技术中如何区块链网络更换身份证书是一大难点的问题,提供了一种在区块链网络中更换身份证书的方法、装置、计算机可读存储介质和计算机设备。

一种在区块链网络中更换身份证书的方法,所述区块链网络包括业务子网络、共识子网络以及用于隔离所述业务子网络与所述共识子网络的路由层,所述方法包括:

接收证书认证中心发送的根证书更换通知;

从所述证书认证中心的旧根证书中获取对应于所述证书认证中心的公钥;

用对应于所述证书认证中心的公钥对所述根证书更换通知进行验证;

验证通过后,将所述根证书更换通知转发至所述共识子网络中的共识节点,以使所述共识节点对所述根证书更换通知进行共识后,将所述根证书更换通知记录至最新的数据区块;

当接收到所述数据区块时,从所述证书认证中心请求更换身份证书,请求得到的新身份证书是由所述证书认证中心的新根证书认证得到的。

一种在区块链网络中更换身份证书的装置,所述区块链网络包括业务子网络、共识子网络以及用于隔离所述业务子网络与所述共识子网络的路由层,所述装置包括:

根证书更换通知接收模块,用于接收证书认证中心发送的根证书更换通知;

获取模块,用于从所述证书认证中心的旧根证书中获取对应于所述证书认证中心的公钥;

根证书更换通知验证模块,用于用对应于所述证书认证中心的公钥对所述根证书更换通知进行验证;

根证书更换通知转发模块,用于验证通过后,将所述根证书更换通知转发至所述共识子网络中的共识节点,以使所述共识节点对所述根证书更换通知进行共识后,将所述根证书更换通知记录至最新的数据区块;

身份证书更换模块,用于当接收到所述数据区块时,从所述证书认证中心请求更换身份证书,请求得到的新身份证书是由所述证书认证中心的新根证书认证得到的。

一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述在区块链网络中更换身份证书的方法的步骤。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述在区块链网络中更换身份证书的方法的步骤。

上述在区块链网络中更换身份证书的方法、装置、计算机可读存储介质和计算机设备,区块链网络包括业务子网络、路由层和共识子网络,首先,由证书认证中心向路由节点发出更换根证书的通知,在路由节点在接收到证书认证中心发送的根证书更换通知时,就用证书认证中心的旧根证书中的公钥对该根证书更换通知进行验证,以保证该通知确实是由证书认证中心发出的,在验证通过后,路由节点将该通知转发至共识子网络,该通知会在通过共识节点的共识之后记录至最新的数据区块,这样,当参与到该区块链网络的业务子网络中的业务节点、路由层中的路由节点同步了包括该通知的数据区块时,就会向证书认证中心请求更换用证书认证中心的新根证书签发的身份证书,实现了为区块链网络中的各个节点更换身份证书,避免了身份证书被破解或者泄露的风险。

附图说明

图1为一个实施例中在区块链网络中更换身份证书的方法的应用环境图;

图2为一个实施例中区块链网络的架构示意图;

图3为一个具体的实施例中区块链网络应用于电子票据场景的架构示意图;

图4为一个实施例中在区块链网络中更换身份证书的系统架构示意图;

图5为一个实施例中在区块链网络中更换身份证书的方法的流程示意图;

图6为一个实施例中从证书认证中心请求更换身份证书的流程示意图;

图7为一个具体的实施例中区块链网络的功能模块示意图;

图8为一个实施例中在区块链网络中更换身份证书的数据流图;

图9为一个具体的实施例中在区块链网络中更换身份证书的流程示意图;

图10为一个实施例中在区块链网络中更换身份证书的装置的结构框图;

图11为一个实施例中计算机设备的结构框图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

图1为一个实施例中在区块链网络中更换身份证书的方法的应用环境图。参照图1,在区块链网络中更换身份证书的方法应用于区块链网络100。区块链网络包括对区块链上的数据区块进行记录和查询的相关节点构成的网络,区块链网络中的每个节点即为区块链节点,是能够对数据区块进行查询或记录的计算机设备。如图1所示,该区块链网络100包括业务子网络110、路由层120和共识子网络130。业务子网络110中的业务节点112和路由层120中的路由节点122通过网络连接。路由节点122和共识子网络130中的共识节点132通过网络连接。因此业务子网络110与共识子网络130之间需要通过路由节点122通信。

业务节点112具体可以是产生交易信息的业务方所使用的台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。路由节点122可以用独立的服务器或者是多个服务器组成的服务器集群来实现。共识子网络130中的共识节点132可以将业务节点产生的交易信息记录至区块链上,共识节点132可以用独立的服务器或者是多个服务器组成的服务器集群来实现,在区块链网络应用于处理电子票据数据的应用场景中时,共识子网络中的共识节点通常是由监管机构授权设置的。

区块链是运行区块链技术的载体和组织方式。区块链技术,简称BT(Blockchaintechnology),也被称之为分布式账本技术,是一种互联网数据库技术,其特点是去中心化、公开透明,让每个人均可参与数据库记录。区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种分布式基础架构与计算方式。

如图2所示,为一个实施例中区块链网络的架构示意图。参照图2,区块链网络200包括业务子网络210、路由层220和共识子网络230。业务子网络210包括对共识节点记录到区块链上的数据区块进行验证的业务节点211,共识子网络230包括将数据区块记录至区块链上的共识节点231。业务子网络210与共识子网络230之间通过路由层220连接,路由层220中的路由节点221可以向共识节点231传递业务节点211发送的数据处理请求,路由节点221还可以向业务节点211转发从共识节点231获取的区块链上的交易信息。业务节点211部署在处于公网的业务子网络中,而运行区块链共识协议的共识节点231则部署在私有的共识子网络中,二者通过路由节点进行交互,路由节点221起到对于业务子网络210和核心的共识子网络230之间的隔离作用。在业务子网络210中,每个业务节点之间是对等的,业务节点之间形成组成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。业务节点211可以将从路由节点221接收到的消息向周围的业务节点传递,使得该消息能够在业务子网络中的每个业务节点之间传播。

如图3所示为一个具体的实施例中区块链网络应用于电子票据场景的架构示意图。当上述的区块链网络应用于电子票据的场景时,区块链网络可以为电子票据的整个流转过程中产生的交易信息进行记录。参照图3,该区块链网络包括业务子网络32、路由层34和共识子网络36。

电子票据的流转过程包括电子票据的申领、电子票据的开具、电子票据的报销、电子票据的报税等过程,其中,电子票据的开具也叫做电子票据的生成,由于整个电子票据的流转过程涉及到的角色包括监管机构、开票方、报销方和报税方,因此业务子网络32中包括为监管机构提供相关服务的监管机构专网321,还包括为开票方、报销方、报税方提供相关服务的公有云322,还包括为消费者提供电子票据保存服务的私有云323。其中,监管机构专网321中包括电子票据所涉及的监管机构所使用的计算机设备,包括监管机构终端3211。公有云322中包括电子票据所涉及的开票方、报销费、报税方所使用的计算机设备,包括开票方终端3221、报销方终端3222和报税方终端3223,其中,开票方可以是开票服务商,报销方可以是报销服务商,企业终端可以访问公有云。私有云323中包括电子票据所涉及的用户所使用的计算机设备,包括用于进行支付的支付终端3231,还包括用于临时为用户保存电子票据的电子票据流转终端3232,还包括一些企业的专用终端3233,消费者终端可以访问私有云。监管机构专网321、公有云322以及私有云323中的计算机设备均可以作为业务节点通过路由节点向共识子网络发送针对电子票据的数据上链请求或数据查询请求。

路由节点34中的任一路由节点包括提供认证服务341、证书缓存342、路由服务343和P2P服务344的功能模块。认证服务341用于对业务子网络中的业务节点进行身份验证,证书缓存342用于缓存各节点的身份证书,路由服务343用于实现业务子网络与共识子网络之间的网络隔离,P2P服务用于在具备幂等性的路由节点之间分配任务,路由节点之间形成组成点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。

共识子网络36包括多个共识分支网络360,每个共识分支网络360包括多个共识节点361,这多个共识节点361维护该共识分支网络360所对应的子区块链。比如,有的子区块链用于记录属于某个票据号段区间的电子票据相关的交易信息,有的子区块链用于记录冲红的电子票据相关的交易信息。在需要记录电子票据相关的数据时,可根据业务节点的权限确定要记录至的子区块链,然后由维护该子区块链的共识分支网络来记录。共识节点361通常可以是各个地区的监管机构所使用的计算机设备。每个共识分支网络360中的共识节点361包括权限合约,权限合约存储了关于电子票据的整个生命周期的流转逻辑,比如电子票据的票据状态、流转流程、数据的访问权限、电子票据申领条件、电子票据开具条件等等。共识节点361还包括高速缓存和数据区块,这些功能可以为交易信息的上链与查询提供支持。

如图4所示,为一个实施例中在区块链网络中更换身份证书的系统架构示意图,参照图4,该区块链网络400包括业务子网络410、路由层420、共识子网络430和证书认证中心440。业务子网络410中的业务节点412和路由层420中的路由节点422通过网络连接。路由节点422和共识子网络430中的共识节点432通过网络连接,因此业务子网络410与共识子网络430之间需要通过路由节点422通信。证书认证中心440可以通过路由节点422发布证书更新通知至共识子网络430,业务节点412、路由节点422均可以从证书认证中心440下载更新的根证书,还可以从证书认证中心440更换新的身份证书。

在一个实施例中,路由节点422可以接收证书认证中心440发送的根证书更换通知;从证书认证中心的旧根证书中获取对应于证书认证中心440的公钥;用对应于证书认证中心440的公钥对根证书更换通知进行验证;验证通过后,将根证书更换通知转发至共识子网络430中的共识节点432,以使共识节点432对根证书更换通知进行共识后,将根证书更换通知记录至最新的数据区块;当路由节点422接收到数据区块时,从证书认证中心440请求更换身份证书,请求得到的新身份证书是由证书认证中心440的新根证书认证得到的。

如图5所示,在一个实施例中,提供了一种在区块链网络中更换身份证书的方法。该区块链网络包括业务子网络、共识子网络以及用于隔离业务子网络与共识子网络的路由层,本实施例主要以该方法应用于上述图4中的路由节点422来举例说明。参照图5,在区块链网络中更换身份证书的方法具体包括如下步骤:

S502,接收证书认证中心发送的根证书更换通知。

其中,证书认证中心是签发身份证书的区块链节点。在区块链网络应用于电子票据的场景中,证书认证中心可以根据电子票据的管理逻辑分为根证书认证中心、一级证书认证中心、二级证书认证中心和基层单位证书认证中心。根证书认证中心用于生成根证书,根证书是根证书认证中心为其它证书签名的证书,根证书是由根证书认证中心自签名的。根证书认证中心可以根据根证书来确定一级证书认证中心,为一级证书认证中心签发一级身份证书,一级证书认证中心通常是监管机构终端,也就是通过根证书认证中心为监管机构终端发放监管机构身份证书。一级证书认证中心用于根据一级身份证书来确定二级证书认证中心,为二级证书认证中心签发二级身份证书,二级证书认证中心通常是管理机构终端,也就是通过一级证书认证中心为管理机构终端发放管理机构身份证书。二级证书认证中心用于根据二级身份证书来确定基层单位认证中心,为基层单位认证中心签发基层单位身份证书,基层单位通常为业务节点,比如图3中所示的处于业务子网络中公有云、私有云的终端设备,也就是通过二级证书认证中心为业务节点发放业务节点身份证书。

本申请所提到的证书认证中心具备生成根证书、更新根证书以及根据新根证书为业务节点、路由节点签发更新的身份证书的功能。当然,根证书认证中心能够根据新根证书为一级证书认证中心、二级证书认证中心、基层单位证书认证中心、业务节点和路由节点签发新身份证书。尤其地,在根证书被更新后,业务节点可以通过一级证书认证中心、二级证书认证中心、基层单位证书认证中心更换后的身份证书逐步替换自己的旧身份证书。

在本申请提供的实施例中,一级证书认证中心、二级证书认证中心、基层单位证书认证中心可以统称为证书认证中心,均为业务节点、路由节点的身份证书的生成提供支持。

根证书更换通知,是在区块链网络中提示各参与方根证书已被更换的通知,各参与方若需要能够继续在区块链网络相互通信,则需要申请更换经过新根证书签发的新身份证书。在一个实施例中,根证书更换通知中的根证书更换信息至少包括新根证书的发布时间、新根证书的公钥和旧根证书的过期时间。

具体地,证书认证中心在生成了新根证书后,根据新根证书中的根证书公钥、新根证书的发布时间、旧根证书的过期时间等根证书更换信息生成根证书更换通知,并将根证书更通知发送至路由节点,以通过路由节点将根证书更换通知提交至共识子网络中的共识节点。

在一个实施例中,证书认证中心的新根证书通过以下步骤生成:证书认证中心接收更换根证书的指令;证书认证中心根据指令,将已有的根证书标记为旧根证书;证书认证中心生成新根证书,生成的新根证书用于证书认证中心为区块链网络中的节点颁发或更换身份证书。

具体地,在整个区块链网络正常运行的过程中,因为安全的考虑,需要更换根证书,可以由系统管理员来触发更换根证书的指令,并将该指令发往证书认证中心,证书认证中心在接收到该指令后,将已有的根证书标记为旧根证书,并生成新根证书,新根证书用于为区块链网络中的节点颁发或更换身份证书。

需要说明的是,虽然之前的根证书被标记为旧根证书了,但是在旧根证书的过期时间之前,旧根证书仍然可以正常使用,也就是可以使用旧根证书作为自己的合法身份的证明。

在一个实施例中,证书认证中心在生成新根证书后,可以采用预定算法根据包括根证书公钥、新根证书的发布时间、旧根证书的过期时间的根证书更换信息生成相应的哈希值,并用自己的公私钥对中的私钥对生成的哈希值进行加密得到签名,根据根证书更换信息和签名生成根证书更换通知,并将根证书更换通知发送至路由节点。

S504,从证书认证中心的旧根证书中获取对应于证书认证中心的公钥。

具体地,路由节点存储了证书认证中心的根证书,该根证书显然是旧根证书,路由节点可以从证书认证中心的旧根证书中获取对应于该证书认证中心的公钥,利用对应于该证书认证中心的公钥对根证书更换通知进行验证。

S506,用对应于证书认证中心的公钥对根证书更换通知进行验证。

具体地,根证书更换通知作为一种交易信息要记录至共识子网络的区块链中,也需要被看作是普通的交易信息同等地被验证和共识。在被路由节点进行验证时,一方面是对发送根证书更换通知的节点的身份的合法性进行验证,另一方面是对根证书更换通知的真实性进行验证,在验证通过之后,路由节点才能将根证书更换通知提交至共识子网络。

在一个实施例中,根证书更换通知包括根证书更换信息的哈希值,且哈希值由对应于证书认证中心的私钥签名,用对应于证书认证中心的公钥对根证书更换通知进行验证,包括:用对应于证书认证中心的公钥对签名进行验签,得到根证书更换信息的哈希值,哈希值是证书认证中心采用预定算法对根证书更换信息计算得到的;采用预定算法直接计算根证书更换信息的哈希值;当验签根证书更换信息得到的哈希值与计算得到的哈希值相同时,则判定验证通过。

在本实施例中,根证书更换通知包括根证书更新信息以及签名,签名是证书认证中心采用私钥对根证书更换信息的哈希值加密得到的,哈希值是证书认证中心采用预定算法对根证书更换信息进行变换得到的唯一的字符串。路由节点在接收到该证书更换通知后,可以用对应于证书认证中心的公钥对签名进行验签,若验签成功,则说明该根证书更换通知的确是由证书认证中心发送的,在验签成功后,路由节点可以得到根证书更换信息的哈希值,进一步地,路由节点可以预定算法直接计算根证书更换信息的哈希值,若验签得到的哈希值与直接计算得到的哈希值一致,说明根证书更换信息没有被恶意篡改,是真实有效的,此时就验证了证书认证中心的身份以及证书更换通知的真实性。

S508,验证通过后,将根证书更换通知转发至共识子网络中的共识节点,以使共识节点对根证书更换通知进行共识后,将根证书更换通知记录至最新的数据区块。

具体地,在路由节点对根证书更换通知进行验证且验证通过后,路由节点可以根据自己的身份证书,将根证书更换通知转发至共识子网络中的任意一个共识节点,共识节点在共识子网络中对根证书更换通知进行共识,并在共识通过后将根证书更换通知记录至最新的数据区块中。

共识是指多方参与的区块链节点在预设规则下,通过多个区块链节点交互对某些数据、行为或流程达成一致的过程。在本实施例中,当共识子网络中的任意一个共识节点接收到待记录至区块链上的交易信息时,各个共识节点就可以对发送根证书更换通知的路由节点的身份信息与本地中预先存储的该路由节点的身份认证信息进行对比,以确认接收到的身份信息与存储的身份信息是否一致,当一致时,确认接收到的身份信息是真实的,则各个共识节点对应的认证结果为通过,否则,认证结果为不通过。

进一步地,可基于各个共识点的认证结果确定是否通过了共识。在确定是否通过共识时,可以获取认证结果为认证通过的共识节点对应的第一数量以及认证结果为认证未通过的共识节点对应的第二数量中的至少一个,根据第一数量以及第二数量中的至少一个确定身份认证结果。例如,可以是当满足以下条件中的至少一个时身份认证结果为通过:第一数量大于第二数量、第一数量达到第一预设阈值、第一数量与参与到该共识校验的共识节点的数量的比值达到第二预设阈值。第一预设阈值、第二预设阈值对应的具体数值可以根据需要设置。例如,假设共识节点1至4对应的认证结果分别为通过、通过、通过以及不通过,则第一数量为3,第二数量为1,假设共识通过的条件为第一数量占参与到该共识校验的共识节点的数量的比例大于等于3/4,则判定为通过了共识。

S510,当接收到数据区块时,从证书认证中心请求更换身份证书,请求得到的新身份证书是由证书认证中心的新根证书认证得到的。

由于记录至区块链上的数据区块会被同步至路由层中的各个路由节点,以实现对区块链上的数据进行监督,可以避免共识子网络集体作恶,保证数据的真实性。因此,记录至区块链上的数据区块会被同步至路由节点,那么路由节点也会获取到包括根证书更换通知的数据区块,当路由节点解析到某个数据区块中包括根证书更换通知时,表示需要更换根证书,同时也需要更换自己的身份证书,路由节点就会从证书认证中心请求新根证书,以及从证书认证中心请求经过新根证书签名的新身份证书。

需要说明的是,根证书更换后,区块链网络中的各个区块链节点都需要用新根证书更换自己的身份证书,以避免各个区块链节点的身份证书被泄露而导致的安全风险。

在一个实施例中,上述方法还包括:当接收到数据区块时,从数据区块中提取根证书更换通知;从根证书更换通知中获取证书认证中心的根证书的过期时间;将本地存储的证书认证中心的根证书标记为旧根证书,并根据获取的过期时间设置旧根证书的过期时间。

在本实施例中,路由节点将本地存储的证书认证中心当前还在使用的根证书标记为旧根证书,并根据从根证书更换通知中获取的根证书的过期时间来设置本地的旧根证书的过期时间,能够有效地保证新旧根证书的过渡时间,在更换新根证书以及替换自己的身份证书之前,无论采样新根证书、旧根证书可以正常验证,无论新身份证书、旧身份证书也可以正常签名,可以保证路由节能够继续正常通信。

在一个实施例中,上述方法还包括:从证书认证中心下载证书认证中心生成的新根证书;下载的新根证书用于在接收业务子网络中的业务节点发送的区块链数据请求时,根据证书认证中心的新根证书对业务节点的身份进行验证。

在本实施例中,路由节点在接收的包括根证书更换通知的数据区块后,从证书认证中心下载最新的根证书并标记为新根证书,在接收到业务子网络中的业务节点发送的区块链数据请求时,根据新根证书对业务节点的身份进行验证。其中,区块链数据请求包括数据上链请求或数据查询请求,业务节点需要通过路由节点发送区块链数据请求,再由路由节点转发至共识节点,业务节点在发送区块链数据请求时,可以同时发送自己的身份证书,身份证书是由证书认证中心的根证书签名的,因此,路由节点在接收到该区块链数据请求后,可以通过新根证书中的根证书公钥来验证业务节点发送的身份证书是否合法,以对业务节点的身份进行验证。

在一个实施例中,数据区块中的根证书更换通知包括要新根证书公钥。在路由节点从证书认证中心下载了最新的根证书后,可以将下载的根证书中的根证书公钥与从数据区块中获取的新根证书公钥进行对比校验,若一致,则说明下载的根证书是最新的根证书,将下载的根证书标记为新根证书;若不一致,则说明下载的根证书并不是真正的新根证书,有可能是访问了假的证书认证中心,下载了假的根证书,此时需要重新从证书认证中心尝试下载真正的新根证书。

在一个实施例中,上述方法还包括:当在过期时间之前接收到业务子网络中的业务节点发送的区块链数据请求时,根据证书认证中心的旧根证书或下载得到的证书认证中心的新根证书对业务节点的身份进行验证。

在本实施例中,当路由节点在过期时间之前接收到业务子网络中的业务节点发送的区块链数据请求时,既可以使用本地的旧根证书对业务节点的身份证进行验证,也可以使用下载的新根证书对业务节点的身份证书进行验证。可选地,在过期时间到了之后,路由节点可以移除本地的旧根证书。

如图6所示,在一个实施例中,从证书认证中心请求更换身份证书,包括:

S602,在证书认证中心的旧根证书的过期时间之前,向证书认证中心发送证书更换请求,证书更换请求携带路由节点的旧身份证书。

具体地,在获取到新根证书后,路由节点需要在旧根证书的过期时间之前向证书认证中心申请更换自己的身份证书。

S604,通过证书认证中心,根据路由节点的旧身份证书对路由节点进行身份验证,在验证通过后,获取路由节点的旧身份证书的证书内容,根据证书认证中心的新根证书对证书内容进行签名后,得到对应于路由节点的新身份证书。

具体地,证书认证中心在接收到路由节点发送的证书更换请求后,可以在保证路由节点的身份证书中的证书内容不变情况下,使用自身的新根证书对证书内容进行签名后返回至路由节点,也就是说路由节点可以在不改变自己本地的公私对的情况下更换自己的身份证书。

S606,接收证书认证中心返回的新身份证书。

在本实施例中,虽然更换了路由节点的身份证书,但是并不涉及路由节点身份信息的变化,可以有效地避免路由节点的身份信息在更换身份证书的过程中被泄露。

上述在区块链网络中更换身份证书的方法,区块链网络包括业务子网络、路由层和共识子网络,首先,由证书认证中心向路由节点发出更换根证书的通知,在路由节点在接收到证书认证中心发送的根证书更换通知时,就用证书认证中心的旧根证书中的公钥对该根证书更换通知进行验证,以保证该通知确实是由证书认证中心发出的,在验证通过后,路由节点将该通知转发至共识子网络,该通知会在通过共识节点的共识之后记录至最新的数据区块,这样,当参与到该区块链网络的业务子网络中的业务节点、路由层中的路由节点同步了包括该通知的数据区块时,就会向证书认证中心请求更换用证书认证中心的新根证书签发的身份证书,实现了为区块链网络中的各个节点更换身份证书,避免了身份证书被破解或者泄露的风险。

在一个实施例中,上述方法还包括:将数据区块同步至业务子网络中的业务节点,以使业务节点从数据区块中解析到根证书更换通知时,从证书认证中心请求更换身份证书。

同样地,由于记录至区块链上的数据区块会被同步至业务子网络中的各个业务节点,以实现业务节点对区块链上的数据进行监督,可以避免共识子网络集体作恶,保证数据的真实性。因此,在路由节点获取到记录至区块链上的数据区块,数据区块也会被路由节点转发至业务子网络中的各个业务节点,那么业务节点也会获取到包括根证书更换通知的数据区块,当业务节点解析到某个数据区块中包括根证书更换通知时,表示需要更换根证书,同时也需要更换自己的身份证书,业务节点就会从证书认证中心请求新根证书,以及从证书认证中心请求经过新根证书签名的新身份证书。

在一个实施例中,业务节点从证书认证中心请求更换身份证书的步骤包括:业务节点从根证书更换通知中获取证书认证中心的根证书的过期时间,在过期时间之前,向证书认证中心发送携带业务节点的旧身份证书的证书更换请求;证书更换请求用于指示证书认证中心根据业务节点的旧身份证书对业务节点进行身份验证,在验证通过后,获取业务节点的旧身份证书的证书内容,根据证书认证中心的新根证书对证书内容进行签名后,得到对应于业务节点的新身份证书,并向业务节点返回新身份证书。

同样地,业务节点在接收的包括根证书更换通知的数据区块后,从根证书更换通知获取根证书的过期时间,在过期时间之前从证书认证中心下载新根证书,并在在过期时间之前,向证书认证中心发送携带业务节点的旧身份证书的证书更换请求,证书认证中心可以在保证业务节点的身份证书中的证书内容不变情况下,使用自身的新根证书对证书内容进行签名后返回至请求更换新身份证书的业务节点,也就是说业务节点可以在不改变自己本地的公私对的情况下更换自己的身份证书。

在一个实施例中,上述方法还包括:业务节点将本地存储的证书认证中心的根证书标记为旧根证书,并根据获取的过期时间设置旧根证书的过期时间,从证书认证中心下载证书认证中心生成的新根证书,下载的新根证书用于在接收路由节点发送的区块链数据时,根据证书认证中心的新根证书对路由节点的身份进行验证。

具体地,业务节点可以将本地存储的证书认证中心当前使用的根证书标记为旧根证书,根据获取的过期时间设置旧根证书的过期时间,在过期时间之前从证书认证中心下载证书认证中心生成的新根证书。在路由节点向业务节点转发从共识节点获取的区块链数据时,可以同时向业务节点发送自己的身份证书,以表明自己的合法身份,因此,在业务节点接收到路由节点发送的区块链数据时,可以根据下载的新根证书中的根证书公钥来验证路由节的身份证书是否真实合法,从而验证路由节点的身份。

在一个实施例中,上述方法还包括:业务节点根据新身份证书与路由节点建立测试连接;若连接成功,业务节点使用新身份证书与路由节点建立连接;若连接失败,在旧根证书的过期时间之前,业务节点继续使用业务节点的旧身份证书与路由节点建立连接。

具体地,在业务节点获取到用新根证书签发的新身份证书后,可以尝试用新身份证书与路由节点建立测试连接,若连接成功,则业务节点在旧根证书的过期时间之前,业务节点可以仅使用自己的新身份证书与路由节点通信,若连接失败,可以在根证书的过期时间之前可以继续使用旧身份证书作为自己身份的合法证明,并且,业务节点可以在一段时间之后再次尝试用自己的新身份证书与路由节点建立连接。

在一个实施例中,若在根证书的过期时间之后,业务节点还未获取到包括根证书更换通知的数据区块,则业务节点的旧身份证书无法通过路由节点的验证,也就无法访问共识子网络,那么业务节点可以直接从证书认证中心下载新根证书,并从证书认证中心请求更换自己的身份证书。

在一个实施例中,上述方法还包括:当业务节点在旧根证书的过期时间之前,未获取到经新根证书签名的新身份证书时,则业务节点向证书认证中心发送携带业务节点标识和注册信息的认证请求,以使证书认证中心根据新根证书为业务节点颁发新身份证书,新身份证书包括业务节点标识和注册信息。

在本实施例中,在新根证书的过期时间之后,业务节点、路由节点均只能通过新根证书来进行身份认证,旧根证书处于失效状态,若业务节点无法在过期时间之前获取到经由新根证书签名的新身份证书,则业务节点可以重新根据自己的业务节点标识和注册信息从证书认证中心请求颁发新身份证书,请求颁发的新身份证书中的公私钥对可能与本地存储的旧的公私钥对不相同。

如图7所示,为一个具体的实施例中区块链网络的功能模块示意图。参照图7,业务子网络中的各个业务节点通过路由节点访问共识子网络中的各个共识节点,每个路由节点所包括的功能模块包括网络流量/速率限制模块,用于控制整个区块链网络中的网络流量和数据包数量,还包括用于限制外部业务节点访问共识子网络部分功能的区块链功能限制模块,还包括对发起请求的每个外部业务节点进行身份验证的身份验证模块,还包括用于对不同类型的业务请求进行分发的业务功能分发模块,还包括用于转发插入交易请求的插入交易模块、用于转发请求数据区块的请求区块模块、用于转发地址注册请求的地址注册模块,还包括控制各个共识节点能够均衡地处理请求的负载均衡分发模块,还包括用于维护共识节点目前是否可用的共识节点状态维护模块,还包括用于接收共识节点返回的日志数据后进行分析的回包检查模块和日志与错误告警模块。

如图8所示,为一个实施例中在区块链网络中更换身份证书的数据流图。参照图8,首先,(1)由管理员触发根证书更换的指令;(2)证书认证中心在接收到该指令后,生成新根证书,可选地,证书认证中心可以通过证书替换服务生成新根证书;(3)证书认证中心提交根证书更换通知至路由节点,由路由节点转发至共识子网络中的任意一个共识节点,共识节点经过共识之后将根证书更换通知记录至数据区块;(4)共识节点将包括根证书更换通知的数据区块同步至路由节点;(5)路由节点在接收到包括根证书更换通知的数据区块后,从证书认证中心下载新根证书,并向证书认证中心申请更换自己的身份证书;(6)路由节点将包括根证书更换通知的数据区块同步至业务节点;(7)业务节点在接收到包括根证书更换通知的数据区块后,从证书认证中心下载新根证书,并向证书认证中心申请更换自己的身份证书。

如图9所示,为一个具体的实施例中在区块链网络中更换身份证书的方法的流程示意图。参照图9,该方法包括以下步骤:

S902,证书认证中心接收更换根证书的指令。

S904,证书认证中心根据指令,将已有的根证书标记为旧根证书,并生成新根证书。

S906,证书认证中心生成根证书更换通知,根证书更换通知包括新根证书的发布时间、旧根证书的过期时间、新根证书公钥,并将根证书更换通知和旧根证书发送至路由节点。

S908,路由节点根据本地存储的对应于证书认证中心的公钥对根证书更换通知进行验证,并在验证通过后将根证书更换通知转发至共识子网络中的任意一个共识节点。

S910,共识节点对根证书更换通知进行共识后,将根证书更换通知记录至最新的数据区块。

S912,共识节点将数据区块同步至路由节点,路由节点接收到数据区块时,从数据区块中提取根证书更换通知,从根证书更换通知中获取证书认证中心的根证书的过期时间;将本地存储的证书认证中心的根证书标记为旧根证书,并根据获取的过期时间设置旧根证书的过期时间。

S914,路由节点从证书认证中心下载证书认证中心生成的新根证书,当在过期时间之前接收到业务子网络中的业务节点发送的区块链数据请求时,根据证书认证中心的旧根证书或下载得到的证书认证中心的新根证书对业务节点的身份进行验证。

S916,路由节点在证书认证中心的旧根证书的过期时间之前,向证书认证中心发送证书更换请求,证书更换请求携带路由节点的旧身份证书。

S918,证书认证中心根据路由节点的旧身份证书对路由节点进行身份验证,在验证通过后,获取路由节点的旧身份证书的证书内容,根据证书认证中心的新根证书对证书内容进行签名后,得到对应于路由节点的新身份证书,并将新身份证书返回至路由节点。

S920,路由节点将数据区块同步至业务子网络中的业务节点。

S922,业务节点接收到数据区块时,从数据区块中提取根证书更换通知,从根证书更换通知中获取证书认证中心的根证书的过期时间;将本地存储的证书认证中心的根证书标记为旧根证书,并根据获取的过期时间设置旧根证书的过期时间。

S924,业务节点从证书认证中心下载证书认证中心生成的新根证书,当在过期时间之前接收到路由节点发送的区块链数据请求时,根据证书认证中心的旧根证书或下载得到的证书认证中心的新根证书对路由节点的身份进行验证。

S926,业务节点在证书认证中心的旧根证书的过期时间之前,向证书认证中心发送证书更换请求,证书更换请求携带路由节点的旧身份证书。

S928,证书认证中心根据业务节点的旧身份证书对业务节点进行身份验证,在验证通过后,获取业务节点的旧身份证书的证书内容,根据证书认证中心的新根证书对证书内容进行签名后,得到对应于业务节点的新身份证书,并将新身份证书返回至业务节点。

S930,业务节点根据新身份证书与路由节点建立测试连接;若连接成功,业务节点使用新身份证书与路由节点建立连接;若连接失败,在旧根证书的过期时间之前,业务节点继续使用业务节点的旧身份证书与路由节点建立连接。

S932,当业务节点在旧根证书的过期时间之前,未获取到经新根证书签名的新身份证书时,则业务节点向证书认证中心发送携带业务节点标识和注册信息的认证请求。

S934,证书认证中心根据新根证书为业务节点颁发新身份证书,新身份证书包括业务节点标识和注册信息。

图9为一个实施例中在区块链网络中更换身份证书的方法的流程示意图。应该理解的是,虽然图9的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图9中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图10所示,提供了一种在区块链网络中更换身份证书的装置1000,区块链网络包括业务子网络、共识子网络以及用于隔离业务子网络与共识子网络的路由层,装置应用于路由层中的路由节点,装置包括:根证书更换通知接收模块1002、获取模块1004、根证书更换通知验证模块1006、根证书更换通知转发模块1008和身份证书更换模块1010,其中:

根证书更换通知接收模块1002,用于接收证书认证中心发送的根证书更换通知;

获取模块1004,用于从证书认证中心的旧根证书中获取对应于证书认证中心的公钥;

根证书更换通知验证模块1006,用于用对应于证书认证中心的公钥对根证书更换通知进行验证;

根证书更换通知转发模块1008,用于验证通过后,将根证书更换通知转发至共识子网络中的共识节点,以使共识节点对根证书更换通知进行共识后,将根证书更换通知记录至最新的数据区块;

身份证书更换模块1010,用于当接收到数据区块时,从证书认证中心请求更换身份证书,请求得到的新身份证书是由证书认证中心的新根证书认证得到的。

在一个实施例中,证书认证中心的新根证书通过以下步骤生成:证书认证中心接收更换根证书的指令;证书认证中心根据指令,将已有的根证书标记为旧根证书;证书认证中心生成新根证书,生成的新根证书用于证书认证中心为区块链网络中的节点颁发或更换身份证书。

在一个实施例中,根证书更换通知包括根证书更换信息的哈希值,且哈希值由对应于证书认证中心的私钥签名,根证书更换通知验证模块1006还用于用对应于证书认证中心的公钥对签名进行验签,得到根证书更换信息的哈希值,哈希值是证书认证中心采用预定算法对根证书更换信息计算得到的;采用预定算法直接计算根证书更换信息的哈希值;当验签根证书更换信息得到的哈希值与计算得到的哈希值相同时,则判定验证通过。

在一个实施例中,上述装置还包括根证书更换通知解析模块,用于当接收到数据区块时,从数据区块中提取根证书更换通知;从根证书更换通知中获取证书认证中心的根证书的过期时间;将本地存储的证书认证中心的根证书标记为旧根证书,并根据获取的过期时间设置旧根证书的过期时间。

在一个实施例中,上述装置还包括新根证书下载模块,用于从证书认证中心下载证书认证中心生成的新根证书;下载的新根证书用于在接收业务子网络中的业务节点发送的区块链数据请求时,根据证书认证中心的新根证书对业务节点的身份进行验证。

在一个实施例中,上述装置还包括业务节点身份验证模块,用于当在过期时间之前接收到业务子网络中的业务节点发送的区块链数据请求时,根据证书认证中心的旧根证书或下载得到的证书认证中心的新根证书对业务节点的身份进行验证。

在一个实施例中,身份证书更换模块1010还用于在证书认证中心的旧根证书的过期时间之前,向证书认证中心发送证书更换请求,证书更换请求携带路由节点的旧身份证书;通过证书认证中心,根据路由节点的旧身份证书对路由节点进行身份验证,在验证通过后,获取路由节点的旧身份证书的证书内容,根据证书认证中心的新根证书对证书内容进行签名后,得到对应于路由节点的新身份证书;接收证书认证中心返回的新身份证书。

在一个实施例中,上述装置还包括同步模块,用于将数据区块同步至业务子网络中的业务节点,以使业务节点从数据区块中解析到根证书更换通知时,从证书认证中心请求更换身份证书。

在一个实施例中,业务节点从证书认证中心请求更换身份证书的步骤包括:业务节点从根证书更换通知中获取证书认证中心的根证书的过期时间,在过期时间之前,向证书认证中心发送携带业务节点的旧身份证书的证书更换请求;证书更换请求用于指示证书认证中心根据业务节点的旧身份证书对业务节点进行身份验证,在验证通过后,获取业务节点的旧身份证书的证书内容,根据证书认证中心的新根证书对证书内容进行签名后,得到对应于业务节点的新身份证书,并向业务节点返回新身份证书。

在一个实施例中,业务节点将本地存储的证书认证中心的根证书标记为旧根证书,并根据获取的过期时间设置旧根证书的过期时间,从证书认证中心下载证书认证中心生成的新根证书,下载的新根证书用于在接收路由节点发送的区块链数据时,根据证书认证中心的新根证书对路由节点的身份进行验证。

在一个实施例中,业务节点根据新身份证书与路由节点建立测试连接;若连接成功,业务节点使用新身份证书与路由节点建立连接;若连接失败,在旧根证书的过期时间之前,业务节点继续使用业务节点的旧身份证书与路由节点建立连接。

在一个实施例中,当业务节点在旧根证书的过期时间之前,未获取到经新根证书签名的新身份证书时,则业务节点向证书认证中心发送携带业务节点标识和注册信息的认证请求,以使证书认证中心根据新根证书为业务节点颁发新身份证书,新身份证书包括业务节点标识和注册信息。

上述在区块链网络中更换身份证书的装置1000,区块链网络包括业务子网络、路由层和共识子网络,首先,由证书认证中心向路由节点发出更换根证书的通知,在路由节点在接收到证书认证中心发送的根证书更换通知时,就用证书认证中心的旧根证书中的公钥对该根证书更换通知进行验证,以保证该通知确实是由证书认证中心发出的,在验证通过后,路由节点将该通知转发至共识子网络,该通知会在通过共识节点的共识之后记录至最新的数据区块,这样,当参与到该区块链网络的业务子网络中的业务节点、路由层中的路由节点同步了包括该通知的数据区块时,就会向证书认证中心请求更换用证书认证中心的新根证书签发的身份证书,实现了为区块链网络中的各个节点更换身份证书,避免了身份证书被破解或者泄露的风险。

图11示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的路由节点122。如图11所示,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现在区块链网络中更换身份证书的方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行在区块链网络中更换身份证书的方法。

本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的在区块链网络中更换身份证书的装置1000可以实现为一种计算机程序的形式,计算机程序可在如图11所示的计算机设备上运行。计算机设备的存储器中可存储组成该在区块链网络中更换身份证书的装置的各个程序模块,比如,图10所示的根证书更换通知接收模块1002、获取模块1004、根证书更换通知验证模块1006、根证书更换通知转发模块1008和身份证书更换模块1010。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的在区块链网络中更换身份证书的方法中的步骤。

例如,图11所示的计算机设备可以通过如图10所示的在区块链网络中更换身份证书的装置1000中的根证书更换通知接收模块1002执行步骤S502。计算机设备可通过获取模块1004执行步骤S504。计算机设备可通过根证书更换通知验证模块1006执行步骤S506。计算机设备可通过根证书更换通知转发模块1008执行步骤S508。计算机设备可通过身份证书更换模块1010执行步骤S510。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述在区块链网络中更换身份证书的方法的步骤。此处在区块链网络中更换身份证书的方法的步骤可以是上述各个实施例的在区块链网络中更换身份证书的方法中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述在区块链网络中更换身份证书的方法的步骤。此处在区块链网络中更换身份证书的方法的步骤可以是上述各个实施例的在区块链网络中更换身份证书的方法中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 在区块链网络中更换身份证书的方法、装置、介质和设备
  • 在区块链网络中更换身份证书的方法和装置
技术分类

06120113096441