发明内容
本申请实施例提供了区块链的节点间通讯的方法、装置及对应的电子设备,旨在提高区块链的节点间通讯的安全性,从而提高区块链网络的安全性。
本申请实施例还提供了基于区块链管理数字证书的方法、装置及对应的电子设备,旨在提高区块链的节点间通讯的安全性,从而提高区块链网络的安全性。
本申请实施例采用下述技术方案:
第一方面,本申请实施例提供一种区块链的节点间通讯的方法,包括:
第二节点接收第一节点发送的第一通讯请求,所述第一通讯请求中包括所述第一节点的数字证书,所述第一节点的数字证书存储在所述第一节点和第二节点所属的区块链上;
所述第二节点依据所述第一通讯请求和证书合法性信息,验证所述第一节点的数字证书是否合法;其中,所述证书合法性信息存储在所述区块链上,用于反映节点的数字证书的合法性状态信息;
当所述第一节点的数字证书合法时,所述第二节点确定是否与所述第一节点建立通讯连接。
优选地,在第一方面提供的区块链的节点间通讯的方法中,所述方法还包括:
所述第二节点向所述第一节点发送第二通讯请求,所述第二通讯请求中包括所述第二节点的数字证书,供所述第一节点依据所述第二通讯请求和所述证书合法性信息,验证所述第二节点的数字证书是否合法;
则,当所述第一节点的数字证书合法时,所述第二节点确定是否与所述第一节点建立通讯连接,包括:
当所述第一节点的数字证书合法,并且所述第二节点的数字证书经所述第一节点验证为合法时,所述第二节点与所述第一节点建立通讯连接。
优选地,在第一方面提供的区块链的节点间通讯的方法中,所述证书合法性信息中记录有被吊销的非法的数字证书;则所述第二节点依据所述第一通讯请求和证书合法性信息,验证所述第一节点的数字证书是否合法,包括:
依据所述第一通讯请求,所述第二节点确定所述第一节点的数字证书;
依据存储在所述区块链上的所述证书合法性信息,所述第二节点验证所述第一节点的数字证书是否记录在所述证书合法性信息中;
若所述第一节点的数字证书记录在所述证书合法性信息中,则所述第一节点的数字证书验证为非法。
优选地,在第一方面提供的区块链的节点间通讯的方法中,所述证书合法性信息中记录有合法的数字证书;则所述第二节点依据所述第一通讯请求和证书合法性信息,验证所述第一节点的数字证书是否合法,包括:
依据所述第一通讯请求,所述第二节点确定所述第一节点的数字证书;
依据存储在所述区块链上的所述证书合法性信息,所述第二节点验证所述第一节点的数字证书是否记录在所述证书合法性信息中;
若所述第一节点的数字证书记录在所述证书合法性信息中,则所述第一节点的数字证书验证为合法。
优选地,在第一方面提供的区块链的节点间通讯的方法中,在第二节点接收第一节点发送的第一通讯请求之前,所述方法还包括:
将所述第一节点的数字证书通过写入区块链的方式存储在所述第一节点和第二节点所属的区块链上。
优选地,在第一方面提供的区块链的节点间通讯的方法中,所述证书合法性信息,依据所述区块链接收到的被吊销的非法的数字证书和/或合法的数字证书确定。
优选地,在第一方面提供的区块链的节点间通讯的方法中,所述第二节点接收到的所述第一通讯请求,由所述第一节点按照SSL或TLS协议发送。
第二方面,本申请实施例提供一种基于区块链管理数字证书的方法,包括:
接收证书授权中心发送的节点的数字证书及该数字证书的合法性状态信息;
依据所述数字证书的合法性状态信息,确定用于反映数字证书的合法性状态信息的证书合法性信息;
将所述数字证书和所述证书合法性信息存储在所述区块链上,用于在所述区块链中的第二节点接收到第一节点发送的第一通讯请求之后,验证所述第一通讯请求中包括的第一节点的数字证书是否合法。
优选地,在第二方面提供的基于区块链管理数字证书的方法中,所述方法还包括:
所述区块链中的第一节点向证书授权中心发送证书申请请求,所述证书申请请求中包括所述第一节点的申请信息,用于向所述证书授权中心申请签发所述第一节点的数字证书。
第三方面,本申请实施例提供一种基于区块链管理数字证书的方法,包括:
将区块链的节点的数字证书及该数字证书的合法性状态信息发送到区块链,供所述区块链依据所述数字证书的合法性状态信息,确定用于反映数字证书的合法性状态信息的证书合法性信息,并存储所述数字证书和所述证书合法性信息以便用于在所述区块链中的第二节点接收到第一节点发送的第一通讯请求之后,验证所述第一通讯请求中包括的第一节点的数字证书是否合法。
优选地,在第三方面提供的基于区块链管理数字证书的方法中,还包括:
接收所述区块链中的节点发送的证书申请请求,所述证书申请请求中包括所述第一节点的申请信息,用于向所述证书授权中心申请签发所述第一节点的数字证书;
受理并审核所述第一节点的申请信息;
当审核通过时,为所述第一节点签发数字证书,所述数字证书的合法性状态信息为合法。
第四方面,本申请实施例提供一种区块链的节点间通讯的装置,用于所述区块链中的第二节点,包括:
通讯请求接收模块,接收第一节点发送的第一通讯请求,所述第一通讯请求中包括所述第一节点的数字证书,所述第一节点的数字证书存储在所述第一节点和第二节点所属的区块链上;
合法性验证模块,依据所述第一通讯请求和证书合法性信息,验证所述第一节点的数字证书是否合法;其中,所述证书合法性信息存储在所述区块链上,用于反映节点的数字证书的合法性状态信息;
通讯连接建立模块,当所述第一节点的数字证书合法时,确定是否与所述第一节点建立通讯连接。
优选地,在第四方面提供的区块链的节点间通讯的装置中,还包括:
通讯请求发送模块,向所述第一节点发送第二通讯请求,所述第二通讯请求中包括所述第二节点的数字证书,供所述第一节点依据所述第二通讯请求和所述证书合法性信息,验证所述第二节点的数字证书是否合法;
则所述通讯连接建立模块,具体用于:
当所述第一节点的数字证书合法,并且所述第二节点的数字证书经所述第一节点验证为合法时,与所述第一节点建立通讯连接。
第五方面,本申请实施例提供一种电子设备,应用于区块链中的第二节点,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
接收第一节点发送的第一通讯请求,所述第一通讯请求中包括所述第一节点的数字证书,所述第一节点的数字证书存储在所述第一节点和第二节点所属的区块链上;
依据所述第一通讯请求和证书合法性信息,验证所述第一节点的数字证书是否合法;其中,所述证书合法性信息存储在所述区块链上,用于反映节点的数字证书的合法性状态信息;
当所述第一节点的数字证书合法时,确定是否与所述第一节点建立通讯连接。
优选地,在第五方面提供的电子设备中,所述可执行指令在被执行时使所述处理器还执行以下操作:
向所述第一节点发送第二通讯请求,所述第二通讯请求中包括所述第二节点的数字证书,供所述第一节点依据所述第二通讯请求和所述证书合法性信息,验证所述第二节点的数字证书是否合法;
当所述第一节点的数字证书合法,并且所述第二节点的数字证书经所述第一节点验证为合法时,所述第二节点与所述第一节点建立通讯连接。
第六方面,本申请实施例提供一种基于区块链管理数字证书的装置,用于所述区块链,包括:
证书信息接收模块,接收证书授权中心发送的节点的数字证书及该数字证书的合法性状态信息;
证书合法性信息确定模块,依据所述数字证书的合法性状态信息,确定用于反映数字证书的合法性状态信息的证书合法性信息;
存储模块,将所述数字证书和所述证书合法性信息存储在所述区块链上,用于在所述区块链中的第二节点接收到第一节点发送的第一通讯请求之后,验证所述第一通讯请求中包括的第一节点的数字证书是否合法。
第七方面,本申请前实施例提供一种电子设备,应用于所述区块链,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
接收证书授权中心发送的节点的数字证书及该数字证书的合法性状态信息;
依据所述数字证书的合法性状态信息,确定用于反映数字证书的合法性状态信息的证书合法性信息;
将所述数字证书和所述证书合法性信息存储在所述区块链上,用于在所述区块链中的第二节点接收到第一节点发送的第一通讯请求之后,验证所述第一通讯请求中包括的第一节点的数字证书是否合法。
第八方面,本申请实施例提供一种基于区块链管理数字证书的装置,用于证书授权中心,包括:
发送模块,将区块链的节点的数字证书及该数字证书的合法性状态信息发送到区块链,供所述区块链依据所述数字证书的合法性状态信息,确定用于反映数字证书的合法性状态信息的证书合法性信息,并存储所述数字证书和所述证书合法性信息以便用于在所述区块链中的第二节点接收到第一节点发送的第一通讯请求之后,验证所述第一通讯请求中包括的第一节点的数字证书是否合法。
优选地,在第八方面提供的基于区块链管理数字证书的装置中,还包括:
申请请求接收模块,接收所述区块链中的节点发送的证书申请请求,所述证书申请请求中包括所述第一节点的申请信息,用于向所述证书授权中心申请签发所述第一节点的数字证书;
受理审核模块,受理并审核所述第一节点的申请信息;
签发发送模块,当审核通过时,为所述第一节点签发数字证书,所述数字证书的合法性状态信息为合法。
第九方面,本申请实施例提供一种电子设备,应用于证书授权中心,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
将区块链的节点的数字证书及该数字证书的合法性状态信息发送到区块链,供所述区块链依据所述数字证书的合法性状态信息,确定用于反映数字证书的合法性状态信息的证书合法性信息,并存储所述数字证书和所述证书合法性信息以便用于在所述区块链中的第二节点接收到第一节点发送的第一通讯请求之后,验证所述第一通讯请求中包括的第一节点的数字证书是否合法。
优选地,在第九方面提供的电子设备中,所述可执行指令在被执行时使所述处理器还执行以下操作:
接收所述区块链中的节点发送的证书申请请求,所述证书申请请求中包括所述第一节点的申请信息,用于向所述证书授权中心申请签发所述第一节点的数字证书;
受理并审核所述第一节点的申请信息;
当审核通过时,为所述第一节点签发数字证书,所述数字证书的合法性状态信息为合法。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
采用本申请的技术方案,第一节点发送通讯请求时所需的数字证书是存储在区块链上的,第二节点在验证第一节点的数字证书是否合法时所依据的证书合法性信息也是存储在区块链上的。由于区块链去中心化、公开透明、不可篡改等优点,黑客即使攻陷了CA中心,也无法篡改存储在区块链中的数字证书和证书合法性信息,也就无法利用非法的数字证书加入区块链。因此,采用存储在区块链中、能够正确的反映节点数字证书的合法性状态信息的证书合法性信息验证节点的合法性,就能够避免非法节点加入区块链,有利于保障区块链中节点间通讯的安全,从而提高区块链网络的安全性。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,区块链系统主要可分为三类,分别是公有链、私有链和联盟链。这三类区块链的主要区别在于开放对象的不同。公有链可对所有人开放,任何人都可读取,能发送交易且交易能获得有效确认,任何人都可以参与共识过程,典型应用包括比特币、以太坊、超级账本等。私有链仅对单独的个人或实体组织开放,写入权限仅由一个组织掌握,读取权限可以对外开放,也可以任意进行限制,典型应用包括Linux基金会、R3CEVCorda平台以及GemHealth网络的超级账本项目等。而联盟链介于公有链和私有链之间,对特定的个人或实体组织开放,而对之外的其他个人或实体组织加以限制。
在区块链中,尤其是在面向多个特定组织的联盟链中,为了提高通讯安全,通常会设计证书授权中心(全称Certificate Authority,可简称为CA中心)。证书授权中心,又可称为证书授权机构,作为电子商务交易中受信任的第三方,承担着公钥体系中公钥的合法性检验的责任。CA中心会为每个使用公开密钥的节点用户发放一个数字证书,数字证书的作用是证明证书中列出的用户已合法拥有证书中列出的公开密钥。为了使攻击者不能伪造和篡改证书,CA中心会对每份数字证书进行数字签名。
在区块链应用中,区块链CA中心能够实现区块链中节点间的互相认证,提高节点间通讯的安全性。区块链维护一个CA中心,为每个参与区块链通讯的节点签发节点的数字证书(也可简称为节点证书),使得持有合法证书的节点才能够互相通讯。
在某些实现中,会将签发的节点证书以及与证书有效性(可以反映是否允许该证书对应的节点加入区块链)有关的信息,都存储在CA中心的服务器中,供区块链中各节点在通讯时调用、查询,以完成对通讯过程的验证。这种方式存在较大的安全隐患,原因在于:区块链各节点间的安全通讯,都依赖于在建立通讯连接时对节点证书有效性的验证。在上述实现方案中,CA中心签发的节点证书以及与证书有效性有关的信息均存储在CA中心的服务器中,则一旦CA中心被黑,黑客就可以任意修改与证书有效性有关的信息,例如,可以篡改证书吊销列表,使得已吊销的证书恢复正常。黑客利用这些原本被吊销的问题证书就能够非法加入区块链,从而对区块链的安全造成威胁。
除此之外,上述实现方案中,为了验证节点证书的有效性,区块链需要远程调用CA中心处存储的与证书有效性有关的信息,从而可能会出现响应速度慢、信息传输过程被截取等问题,在信息调用的速度和安全性上存在隐患,从而影响到对节点证书有效性的验证。
因此,本申请实施例提供一种区块链的节点间通讯的方法、装置及对应的电子设备,以及基于区块链管理数字证书的方法、装置及对应的电子设备,旨在提高区块链的节点间通讯的安全性,从而提高区块链网络的安全性。
以下结合附图,详细说明本申请各实施例提供的技术方案。
参见图1所示,本申请实施例提供了一种区块链的节点间通讯的方法,可具体包括:
S101:第二节点接收第一节点发送的第一通讯请求,第一通讯请求中包括第一节点的数字证书,第一节点的数字证书存储在第一节点和第二节点所属的区块链上;
S103:第二节点依据第一通讯请求和证书合法性信息,验证第一节点的数字证书是否合法;其中,证书合法性信息存储在区块链上,用于反映节点的数字证书的合法性状态信息;
S105:当第一节点的数字证书合法时,第二节点与第一节点建立通讯连接。
可以理解到,上述实施例中的第一节点和第二节点可以是区块链中的任意两个不同的节点。当区块链中第一节点(可以是区块链中的任一节点)希望与第二节点(可以是区块链中第一节点以外的任一节点)进行通讯时,第一节点可以将自己的数字证书包含在通讯请求中发送到第二节点,以便向第二节点证明自己经过CA中心认证的合法身份。这一交互过程适用的场景可以是,第一节点希望与第二节点进行通讯,第二节点在建立通讯连接之前,先验证请求通讯的第一节点是否为合法节点,以便确定是否同意第一节点的通讯请求。在此场景下,与第二节点相对的第一节点,会向第二节点发送上述第一通讯请求,将自身的数字证书发送到第二节点供验证;然后等待接收第二节点的响应或反馈,例如,可能是数字证书验证的结果——合法或非法,可能是第二节点对第一节点的数字证书经验证合法后确定建立通讯连接的信息,也可能是第二节点将自身的数字证书发送到第一节点,供第一节点进行验证。
上述实施例还可以理解为,当区块链中第二节点(可以是区块链中的任一节点)希望与第一节点(可以是区块链中第二节点以外的任一节点)进行通讯时,在步骤S101之前,还可以包含前置步骤:第二节点向第一节点发起握手请求,请求与第一节点建立会话,并请求第一节点将其数字证书发送过来以便进行验证;作为响应,第一节点可以继而向第二节点发送上述第一通讯请求,将自身的数字证书发送到第二节点供验证。这一交互过程适用的场景可以是,第二节点希望与第一节点进行通讯,在建立通讯连接时,第二节点希望先验证区块链中的第一节点是否为合法的节点,以便确定是否与第一节点建立通讯连接。与以上场景类似地,第二节点可以向第一节点反馈多种内容和形式的信息,此处不再赘述。
可以理解到,为保证通讯的安全性,接收到通讯请求的第二节点需要验证拟与之建立通讯连接的第一节点是否具有合法身份,具体地可体现为验证第一节点发送的通讯请求中所包含的第一节点的数字证书是否为合法的数字证书。在具体实施时,本申请采用存储在区块链上的证书合法性信息对第一节点的数字证书进行验证。
在本申请的各实施例中,区块链中各节点的数字证书和上述证书合法性信息均存储在节点所属的区块链上,数字证书可通过写入区块链的方式存储在区块链上。因此,本申请实施例可以利用区块链去中心化、不可篡改等特性,避免黑客对数字证书以及反映数字证书的合法性状态信息的证书合法性信息进行篡改,从而有利于保证证书合法性验证结果的正确和准确,有利于区块链网络的安全性和稳定性。除此之外,本申请实施例中,第二节点进行数字证书的合法性验证时,可以直接读取存储在节点本地的证书合法性信息,而无需远程调用存储在CA中心的证书合法性信息,有利于提高合法性验证的速度和安全性;并且,从本地调用证书合法性信息等信息,也能够消除区块链对CA中心的单点依赖,还有利于提高区块链网络的可靠性。
在本申请实施例中,数字证书的合法性状态信息可以分为两种,一种表示证书合法,还有一种表示证书非法,非法的数字证书通常会被证书授权中心吊销。
在实施步骤S103之前,为从第一节点和第二节点所属的区块链上调用证书合法性信息以进行数字证书合法性的验证,可以提前将区块链接收到数字证书及其合法性状态信息的记录进行整理,构成供第二节点查询的证书合法性信息。更具体地,证书合法性信息既可以体现为依据接收到合法的数字证书的记录组装而成的合法证书列表,又可以体现为依据接收到非法的数字证书的记录组装而成的吊销证书列表。
进一步地,若上述证书合法性信息中记录有被吊销的非法的数字证书,例如,体现为依据接收到非法的数字证书的记录组装而成的吊销证书列表的形式,则上述步骤S103第二节点依据第一通讯请求和证书合法性信息,验证第一节点的数字证书是否合法,可具体包括:
依据第一通讯请求,第二节点确定第一节点的数字证书;
依据存储在区块链上的证书合法性信息,第二节点验证第一节点的数字证书是否记录在上述证书合法性信息中;
若第一节点的数字证书记录在证书合法性信息中,表示第一节点的数字证书已经被吊销,则第一节点的数字证书验证为非法。
类似地,若上述证书合法性信息中记录有合法的数字证书,例如,体现为依据接收到合法的数字证书的记录组装而成的合法证书列表的形式,则上述步骤S103第二节点依据第一通讯请求和证书合法性信息,验证第一节点的数字证书是否合法,可具体包括:
依据第一通讯请求,第二节点确定第一节点的数字证书;
依据存储在区块链上的证书合法性信息,第二节点验证第一节点的数字证书是否记录在证书合法性信息中;
若第一节点的数字证书记录在证书合法性信息中,表示第一节点的数字证书已被认证,则第一节点的数字证书验证为合法。
在具体实施时,第二节点可以对第一节点发送来的第一通讯请求进行解析,确定第一节点的数字证书。
节点的数字证书可以由证书授权中心(可具体化为上述CA中心)签发,用于验证参与区块链通信的各节点的实体身份。在互联网通讯中,数字证书可体现为标志通讯各方身份信息的一串数字,可以携带包含证书版本号、证书持有者信息(例如,可以具体体现为证书所对应的节点的身份信息)、证书签发者(CA中心)信息、证书起止有效期、证书序列号、证书签发者的签名等内容。
在上述实施例中,描述了第二节点对第一节点的数字证书进行验证的过程,当第一节点的数字证书合法时,第二节点可进一步确定是否与第一节点建立通讯连接。更具体地,可以依据第一节点与第二节点所在区块链关于节点间的通讯协议确定。以下将举例详细说明。
例如,若通讯协议中约定节点间的通讯进行单向验证即可,则当第二节点验证第一节点的数字证书合法时,第二节点则可以直接与第一节点建立通讯连接。
例如,若通讯协议中约定节点间的通讯需进行双向验证,则本申请实施例中,除第二节点需要对第一节点的合法性进行验证之外,第二节点也需要将自身的数字证书发送到第一节点,供第一节点验证第二节点的合法性。具体地,本申请实施例的方法还可以包括:第二节点向第一节点发送第二通讯请求,其中,第二通讯请求中包括第二节点的数字证书。第二节点将自身的数字证书发送到第一节点,供第一节点依据第二通讯请求中的数字证书、以及存储在第一节点本地的证书合法性信息,验证第二节点的数字证书是否合法。进而,当第二节点和第一节点对对方的数字证书验证合法后,第二节点与第一节点之间建立通讯连接。对于区块链的节点间通讯这种点对点的应用场景而言,节点之间双向验证的方式更优。
在具体实施时,某一节点充当通讯请求发起方的角色,另一节点充当通讯请求接受方的角色,双方节点之间交互的时序可以由双方的通讯协议确定,只要最终能够实现对对方节点的数字证书的验证即可,本申请实施例所提供的方案并不对具体的步骤及执行顺序进行限定。
在具体实施时,优选在区块链的节点之间采用安全套接层协议(即SSL协议,全称Secure Sockets Layer协议)或安全传输层协议(即TLS协议,全称Transport LayerSecurity协议)建立通讯连接;相匹配的,第二节点接收到的第一通讯请求,也由第一节点按照SSL协议或者TLS协议发送,从而在节点之间建立加密通信通道。采用SSL协议或TLS协议,可以在传输层对网络连接进行加密,有利于保障网络数据传输安全;还能利用数据加密技术,确保数据在网络传输过程中不会被截取及窃听。
以上实施例详细说明了本申请中区块链节点间通讯方法的多个方面,图2简略的呈现出了该方法的信息交互过程,此处仅以单向认证为例:
S01:第一节点向第二节点发送通讯请求;
S02:第二节点在本地调取证书合法性信息,验证第一节点的数字证书是否合法;
S03:若第一节点的数字证书合法,则第二节点与第一节点建立通讯连接。
本申请实施例的核心之一在于,区块链的数字证书存储在区块链上,用于反映节点的数字证书的合法性状态信息的证书合法性信息也存储在区块链上,从而利用这些不可被篡改的信息进行数字证书的验证,能够保证验证结果的正确性和准确性,保证区块链中节点的通讯安全。
以下将详细介绍区块链及证书授权中心在基于区块链管理数字证书时的具体实施。
参见图3所示,本申请实施例提供了一种基于区块链管理数字证书的方法,该方法适用于区块链系统,可具体包括:
S201:接收证书授权中心发送的节点的数字证书及该数字证书的合法性状态信息;
S203:依据数字证书的合法性状态信息,确定用于反映数字证书的合法性状态信息的证书合法性信息;
S205:将数字证书和证书合法性信息存储在区块链上,用于在区块链中的第二节点接收到第一节点发送的第一通讯请求之后,验证第一通讯请求中包括的第一节点的数字证书是否合法。
具体地,执行步骤S203依据数字证书的合法性状态信息,确定用于反映数字证书的合法性状态信息的证书合法性信息时,可以如前述实施例中所介绍,将区块链接收到数字证书及其合法性状态信息的记录进行整理,确定供第二节点查询的证书合法性信息。更具体地,证书合法性信息既可以体现为依据接收到合法的数字证书的记录组装而成的合法证书列表,又可以体现为依据接收到非法的数字证书的记录组装而成的吊销证书列表。
在具体实施时,区块链根据执行步骤S201接收到的节点的数字证书及该数字证书的合法性状态信息,可以存储新的数字证书,也可以存储数字证书的新的合法性状态信息,从而区块链上存储的证书合法性信息也可能做相应的更新,以保障验证结果的准确性。
与上述区块链系统管理数字证书的方法相对地,证书授权中心也会将区块链的节点的数字证书及该数字证书的合法性状态信息发送到区块链,供区块链依据数字证书的合法性状态信息,确定用于反映数字证书的合法性状态信息的证书合法性信息,并存储数字证书和证书合法性信息以便用于在区块链中的第二节点接收到第一节点发送的第一通讯请求之后,验证第一通讯请求中包括的第一节点的数字证书是否合法。
对于区块链而言,除接收证书授权中心发送的数字证书及其合法性状态信息之外,申请加入区块链的节点,还可以向证书授权中心发送证书申请请求,证书申请请求中包括第一节点的申请信息,用于向证书授权中心申请签发第一节点的数字证书。
与之相对地,证书授权中心(CA中心)可接收区块链中的节点发送的证书申请请求,证书申请请求中包括第一节点的申请信息,用于向证书授权中心申请签发第一节点的数字证书;证书授权中心进一步受理并审核第一节点的申请信息;当审核通过时,证书授权中心为第一节点签发数字证书,数字证书的合法性状态信息为合法。
图4简化的呈现出了区块链系统与证书授权中心的交互过程示例,在区块链中的节点向证书授权中心申请数字证书阶段,可具体包括:
S10:区块链系统(例如,第一节点)向证书授权中心(包括负责受理证书申请的RA机构和用于签发证书的CA机构)发送用于申请数字证书的申请;
S12:RA机构(受理机构)受理上述申请,并对申请进行审核,审核通过后转至CA机构(认证机构)处理;
S14:CA机构签发数字证书,证书授权中心将签发的数字证书发送至区块链系统;
S16:区块链系统接收到签发的数字证书后,将证书入链,存储到区块链系统中的每一个节点(例如图4中所示的第一节点、第二节点、第三节点和第四节点等等)。
进一步地,当证书授权中心签发的数字证书被吊销时,该数字证书的合法性状态信息将由“合法”变更为“非法”(或可称为“吊销”),则证书授权中心将执行步骤S20,将更新证书的合法性状态信息的指令发送到区块链系统,具体实施时,证书授权中心可与签发新的数字证书类似地,将数字证书及其合法性状态信息一并发送到区块链,区别仅在于,此时数字证书的合法性状态信息为“非法”或“吊销”。区块链接收到上述信息后,将执行步骤S22,依据证书的新的合法性状态信息更新证书合法性信息,并入链,从而可在验证节点的数字证书时提供准确的证书合法性信息。
本申请实施例还提供了区块链的节点间通讯的装置,参见图5所示,用于区块链中的第二节点,包括:
通讯请求接收模块101,接收第一节点发送的第一通讯请求,第一通讯请求中包括第一节点的数字证书,第一节点的数字证书存储在第一节点和第二节点所属的区块链上;
合法性验证模块103,依据第一通讯请求和证书合法性信息,验证第一节点的数字证书是否合法;其中,证书合法性信息存储在区块链上,用于反映节点的数字证书的合法性状态信息;
通讯连接建立模块105,当第一节点的数字证书合法时,确定是否与第一节点建立通讯连接。
参见图6所示,上述装置还可以包括:
通讯请求发送模块107,向第一节点发送第二通讯请求,第二通讯请求中包括第二节点的数字证书,供第一节点依据第二通讯请求和证书合法性信息,验证第二节点的数字证书是否合法;
则通讯连接建立模块105,可具体用于:
当第一节点的数字证书合法,并且第二节点的数字证书经第一节点验证为合法时,与第一节点建立通讯连接。
图7是本申请的一个实施例电子设备的结构示意图。请参考图7,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成区块链节点间通讯装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
接收第一节点发送的第一通讯请求,第一通讯请求中包括第一节点的数字证书,第一节点的数字证书存储在第一节点和第二节点所属的区块链上;
依据第一通讯请求和证书合法性信息,验证第一节点的数字证书是否合法;其中,证书合法性信息存储在区块链上,用于反映节点的数字证书的合法性状态信息;
当第一节点的数字证书合法时,确定是否与第一节点建立通讯连接。
上述如本申请图1所示实施例揭示的区块链节点间通讯装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central ProcessingUnit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图1中区块链节点间通讯装置执行的方法,并实现区块链节点间通讯装置在图1所示实施例的功能,本申请实施例在此不再赘述。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图1所示实施例中区块链节点间通讯装置执行的方法,并具体用于执行:
接收第一节点发送的第一通讯请求,第一通讯请求中包括第一节点的数字证书,第一节点的数字证书存储在第一节点和第二节点所属的区块链上;
依据第一通讯请求和证书合法性信息,验证第一节点的数字证书是否合法;其中,证书合法性信息存储在区块链上,用于反映节点的数字证书的合法性状态信息;
当第一节点的数字证书合法时,确定是否与第一节点建立通讯连接。
更进一步地,图7所示的电子设备中,可执行指令在被执行时使处理器还执行以下操作:
向第一节点发送第二通讯请求,第二通讯请求中包括第二节点的数字证书,供第一节点依据第二通讯请求和证书合法性信息,验证第二节点的数字证书是否合法;
当第一节点的数字证书合法,并且第二节点的数字证书经第一节点验证为合法时,第二节点与第一节点建立通讯连接。
本申请实施例还提供一种基于区块链管理数字证书的装置,参见图8所示,用于区块链,包括:
证书信息接收模块201,接收证书授权中心发送的节点的数字证书及该数字证书的合法性状态信息;
证书合法性信息确定模块203,依据数字证书的合法性状态信息,确定用于反映数字证书的合法性状态信息的证书合法性信息;
存储模块205,将数字证书和证书合法性信息存储在区块链上,用于在区块链中的第二节点接收到第一节点发送的第一通讯请求之后,验证第一通讯请求中包括的第一节点的数字证书是否合法。
图9是本申请的一个实施例电子设备的结构示意图。请参考图9,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成基于区块链管理数字证书的装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
接收证书授权中心发送的节点的数字证书及该数字证书的合法性状态信息;
依据数字证书的合法性状态信息,确定用于反映数字证书的合法性状态信息的证书合法性信息;
将数字证书和证书合法性信息存储在区块链上,用于在区块链中的第二节点接收到第一节点发送的第一通讯请求之后,验证第一通讯请求中包括的第一节点的数字证书是否合法。
上述如本申请前述实施例揭示的基于区块链管理数字证书的装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(CentralProcessing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行基于区块链管理数字证书的装置执行的方法,并实现基于区块链管理数字证书的装置在前述实施例的功能,本申请实施例在此不再赘述。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行前述实施例中基于区块链管理数字证书的装置执行的方法,并具体用于执行:
接收证书授权中心发送的节点的数字证书及该数字证书的合法性状态信息;
依据数字证书的合法性状态信息,确定用于反映数字证书的合法性状态信息的证书合法性信息;
将数字证书和证书合法性信息存储在区块链上,用于在区块链中的第二节点接收到第一节点发送的第一通讯请求之后,验证第一通讯请求中包括的第一节点的数字证书是否合法。
本申请实施例还提供一种基于区块链管理数字证书的装置,用于证书授权中心,包括:
发送模块,将区块链的节点的数字证书及该数字证书的合法性状态信息发送到区块链,供区块链依据数字证书的合法性状态信息,确定用于反映数字证书的合法性状态信息的证书合法性信息,并存储数字证书和证书合法性信息以便用于在区块链中的第二节点接收到第一节点发送的第一通讯请求之后,验证第一通讯请求中包括的第一节点的数字证书是否合法。
进一步地,上述装置还包括:
申请请求接收模块,接收区块链中的节点发送的证书申请请求,证书申请请求中包括第一节点的申请信息,用于向证书授权中心申请签发第一节点的数字证书;
受理审核模块,受理并审核第一节点的申请信息;
签发发送模块,当审核通过时,为第一节点签发数字证书,数字证书的合法性状态信息为合法。
图10是本申请的一个实施例电子设备的结构示意图。请参考图10,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成基于区块链管理数字证书的装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
将区块链的节点的数字证书及该数字证书的合法性状态信息发送到区块链,供区块链依据数字证书的合法性状态信息,确定用于反映数字证书的合法性状态信息的证书合法性信息,并存储数字证书和证书合法性信息以便用于在区块链中的第二节点接收到第一节点发送的第一通讯请求之后,验证第一通讯请求中包括的第一节点的数字证书是否合法
上述如本申请前述实施例揭示的基于区块链管理数字证书的装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(CentralProcessing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行基于区块链管理数字证书的装置执行的方法,并实现基于区块链管理数字证书的装置在前述实施例的功能,本申请实施例在此不再赘述。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行前述实施例中基于区块链管理数字证书的装置执行的方法,并具体用于执行:
将区块链的节点的数字证书及该数字证书的合法性状态信息发送到区块链,供区块链依据数字证书的合法性状态信息,确定用于反映数字证书的合法性状态信息的证书合法性信息,并存储数字证书和证书合法性信息以便用于在区块链中的第二节点接收到第一节点发送的第一通讯请求之后,验证第一通讯请求中包括的第一节点的数字证书是否合法
进一步地,图10所示电子设备中,可执行指令在被执行时使处理器还执行以下操作:
接收区块链中的节点发送的证书申请请求,证书申请请求中包括第一节点的申请信息,用于向证书授权中心申请签发第一节点的数字证书;
受理并审核第一节点的申请信息;
当审核通过时,为第一节点签发数字证书,数字证书的合法性状态信息为合法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。