首页 / 专利库 / 专利权 / 申请 / 国际申请 / 请求书 / 基于区块链的证书验证方法及装置、存储介质、电子装置

基于链的证书验证方法及装置、存储介质、电子装置

阅读:268发布:2020-05-12

专利汇可以提供基于链的证书验证方法及装置、存储介质、电子装置专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种基于 区 块 链 的证书验证方法及装置、存储介质、 电子 装置,其中,该方法包括:接收终端证书的验证 请求 ,其中,所述验证请求携带一个或多个目标终端证书的标识信息,所述目标终端证书为私钥证书;根据所述标识信息在区块链上查询所述目标终端证书的证书链,其中,所述证书链包括私钥证书和公钥证书,所述公钥证书包括:签发所述私钥证书的CA证书,签发所述CA证书的上级根证书,签发根证书的自签名根证书;根据所述证书链验证所述目标终端证书是否合法。通过本发明,解决了 现有技术 中验证终端证书时效果低下的技术问题。,下面是基于链的证书验证方法及装置、存储介质、电子装置专利的具体信息内容。

1.一种基于链的证书验证方法,其特征在于,包括:
接收终端证书的验证请求,其中,所述验证请求携带一个或多个目标终端证书的标识信息,所述目标终端证书为私钥证书;
根据所述标识信息在区块链上查询所述目标终端证书的证书链,其中,所述证书链包括私钥证书和公钥证书,所述公钥证书包括:签发所述私钥证书的CA证书,签发所述CA证书的上级根证书,签发根证书的自签名根证书;
根据所述证书链验证所述目标终端证书是否合法。
2.根据权利要求1所述的方法,其特征在于,根据所述标识信息在区块链上查询所述目标终端证书的证书链包括:
响应所述验证请求,触发所述区块链上的智能合约程序;
调用所述智能合约程序执行以下步骤:根据所述标识信息检索对应的私钥证书,在检索得到所述私钥证书后,使用所述私钥证书查询所述私钥证书所在的证书链的公钥证书。
3.根据权利要求1所述的方法,其特征在于,根据所述标识信息在区块链上查询所述目标终端证书的证书链包括:
在所述区块链上根据证书链的方向在所述证书链的最下游查询与所述标识信息对应的目标终端证书,查询签发所述目标终端证书的CA证书,根据所述CA证书查询签发所述CA证书的上级根证书,直到上溯至签发根证书的自签名根证书。
4.根据权利要求1所述的方法,其特征在于,根据所述证书链验证所述终端证书是否合法包括:
在所述区块链上查询得到所述目标终端证书的证书链之后,判断所述目标终端证书与所述证书链的CA证书是否匹配;
在所述目标终端证书与所述证书链的CA证书匹配时,判断所述证书链从最下游的终端证书到最上游的自签名根证书是否完整;
在所述证书链从最下游的终端证书到最上游的自签名根证书均完整时,确定所述终端证书合法。
5.根据权利要求1述的方法,其特征在于,在根据所述标识信息在区块链上查询所述目标终端证书的证书链之前,所述方法还包括:
基于终端证书的标识信息从证书服务器采集多个终端证书的多个证书链;
对所述多个证书链进行汇总得到与多个终端证书的标识信息一一对应的证书链条目,并发布到所述区块链。
6.根据权利要求1述的方法,其特征在于,在根据所述标识信息在区块链上查询所述目标终端证书的证书链之前,所述方法还包括:
根据所述验证请求的请求内容判断所述验证请求是否有效;
在所述验证请求有效时,确定根据所述标识信息在区块链上查询所述目标终端证书的证书链,并生成与所述验证请求对应的查询记录,将所述查询记录公布到所述区块链。
7.根据权利要求6述的方法,其特征在于,根据所述验证请求的请求内容判断所述验证请求是否有效包括:
从所述请求内容中解析所述验证请求携带的地址信息;
在所述携带的地址信息与发送或转发所述验证请求的客户端地址或节点地址相同时,确定所述验证请求有效,在所述携带的地址信息与发送或转发所述验证请求的客户端地址或节点地址不相同时,确定所述验证请求无效。
8.一种基于区块链的证书验证装置,其特征在于,包括:
接收模块,用于接收终端证书的验证请求,其中,所述验证请求携带一个或多个终端证书的标识信息,所述终端证书为私钥证书;
查询模块,用于根据所述标识信息在区块链上查询所述终端证书的证书链,其中,所述证书链包括私钥证书和公钥证书,所述公钥证书包括:签发所述终端证书的CA证书,签发所述CA证书的上级根证书,签发根证书的自签名根证书;
验证模块,用于根据所述证书链验证所述终端证书是否合法。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至7任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至7任一项中所述的方法。

说明书全文

基于链的证书验证方法及装置、存储介质、电子装置

技术领域

[0001] 本发明涉及计算机领域,具体而言,涉及一种基于区块链的证书验证方法及装置、存储介质、电子装置。

背景技术

[0002] 现有技术中,传统数字证书由各CA签发,可以通过轻量目录访问协议(Lightweight Directory Access Protocol,LDAP)或超文本传输协议(HTTP,Hyper Text Transfer Protocol)方式发布,第三方通过访问LDAP或HTTP服务获取公钥证书,通常使用用户DN或用户唯一标识或证书序列号作为检索条件,但对于多CA的应用场景,应用服务需要访问各CA的LDAP或HTTP服务以获取证书来验证终端证书,应用需要根据终端证书的颁发者连接不同CA的LDAP服务或HTTP服务。
[0003] 现有技术在业务应用的可靠性取决于网络和各CA服务能,复杂网络场景中,很难保证各CA的性能和可靠性,尤其是在海量用户场景中,LDAP存储能力和性能都无法满足需求,导致验证终端证书的效率低下,不能满足互联网的爆炸性需求。
[0004] 针对现有技术中存在的上述问题,目前尚未发现有效的解决方案。

发明内容

[0005] 本发明实施例提供了一种基于区块链的证书验证方法及装置、存储介质、电子装置,以解决现有技术中验证终端证书时效果低下的技术问题。
[0006] 根据本发明的一个实施例,提供了一种基于区块链的证书验证方法,包括:接收终端证书的验证请求,其中,所述验证请求携带一个或多个目标终端证书的标识信息,所述目标终端证书为私钥证书;根据所述标识信息在区块链上查询所述目标终端证书的证书链,其中,所述证书链包括私钥证书和公钥证书,所述公钥证书包括:签发所述私钥证书的CA证书,签发所述CA证书的上级根证书,签发根证书的自签名根证书;根据所述证书链验证所述目标终端证书是否合法。
[0007] 可选的,根据所述标识信息在区块链上查询所述目标终端证书的证书链包括:响应所述验证请求,触发所述区块链上的智能合约程序;调用所述智能合约程序执行以下步骤:根据所述标识信息检索对应的私钥证书,在检索得到所述私钥证书后,使用所述私钥证书查询所述私钥证书所在的证书链的公钥证书。
[0008] 可选的,根据所述证书链验证所述终端证书是否合法包括:在所述区块链上查询得到所述目标终端证书的证书链之后,判断所述目标终端证书与所述证书链的CA证书是否匹配;在所述目标终端证书与所述证书链的CA证书匹配时,判断所述证书链从最下游的终端证书到最上游的自签名根证书是否完整;在所述证书链从最下游的终端证书到最上游的自签名根证书均完整时,确定所述终端证书合法。
[0009] 可选的,根据所述标识信息在区块链上查询所述目标终端证书的证书链包括:在所述区块链上根据证书链的方向在所述证书链的最下游查询与所述标识信息对应的目标终端证书,查询签发所述目标终端证书的CA证书,根据所述CA证书查询签发所述CA证书的上级根证书,直到上溯至签发根证书的自签名根证书。
[0010] 可选的,在根据所述标识信息在区块链上查询所述目标终端证书的证书链之前,所述方法还包括:基于终端证书的标识信息从证书服务器采集多个终端证书的多个证书链;对所述多个证书链进行汇总得到与多个终端证书的标识信息一一对应的证书链条目,并发布到所述区块链。
[0011] 可选的,在根据所述标识信息在区块链上查询所述目标终端证书的证书链之前,所述方法还包括:根据所述验证请求的请求内容判断所述验证请求是否有效;在所述验证请求有效时,确定根据所述标识信息在区块链上查询所述目标终端证书的证书链,并生成与所述验证请求对应的查询记录,将所述查询记录公布到所述区块链。
[0012] 可选的,根据所述验证请求的请求内容判断所述验证请求是否有效包括:从所述请求内容中解析所述验证请求携带的地址信息;在所述携带的地址信息与发送或转发所述验证请求的客户端地址或节点地址相同时,确定所述验证请求有效,在所述携带的地址信息与发送或转发所述验证请求的客户端地址或节点地址不相同时,确定所述验证请求无效。
[0013] 根据本发明的另一个实施例,提供了一种基于区块链的证书验证装置,包括:接收模块,用于接收终端证书的验证请求,其中,所述验证请求携带一个或多个目标终端证书的标识信息,所述终端证书为私钥证书;查询模块,用于根据所述标识信息在区块链上查询所述目标终端证书的证书链,其中,所述证书链包括私钥证书和公钥证书,所述公钥证书包括:签发所述终端证书的CA证书,签发所述CA证书的上级根证书,签发根证书的自签名根证书;验证模块,用于根据所述证书链验证所述目标终端证书是否合法。
[0014] 可选的,所述查询模块包括:触发单元,用于响应所述验证请求,触发所述区块链上的智能合约程序;检索单元,用于调用所述智能合约程序执行以下步骤:根据所述标识信息检索对应的私钥证书,在检索得到所述私钥证书后,使用所述私钥证书查询所述私钥证书所在的证书链的公钥证书。
[0015] 可选的,所述验证模块包括:第一判断单元,用于在所述区块链上查询得到所述目标终端证书的证书链之后,判断所述目标终端证书与所述证书链的CA证书是否匹配;第二判断单元,用于在所述目标终端证书与所述证书链的CA证书匹配时,判断所述证书链从最下游的终端证书到最上游的自签名根证书是否完整;确定单元,用于在所述证书链从最下游的终端证书到最上游的自签名根证书均完整时,确定所述终端证书合法。
[0016] 可选的,所述查询模块包括:查询单元,用于在所述区块链上根据证书链的方向在所述证书链的最下游查询与所述标识信息对应的目标终端证书,查询签发所述目标终端证书的CA证书,根据所述CA证书查询签发所述CA证书的上级根证书,直到上溯至签发根证书的自签名根证书。
[0017] 可选的,所述装置还包括:采集模块,用于在所述查询模块根据所述标识信息在区块链上查询所述终端证书的证书链之前,基于终端证书的标识信息从证书服务器采集多个终端证书的多个证书链;发布模块,用于对所述多个证书链进行汇总得到与多个终端证书的标识信息一一对应的证书链条目,并发布到所述区块链。
[0018] 可选的,所述装置还包括:判断模块,用于在所述查询模块根据所述标识信息在区块链上查询所述目标终端证书的证书链之前,根据所述验证请求的请求内容判断所述验证请求是否有效;处理模块,用于在所述验证请求有效时,确定根据所述标识信息查询所述目标终端证书的证书链,并生成与所述验证请求对应的查询记录,将所述查询记录公布到区块链。
[0019] 可选的,所述判断模块包括:解析单元,用于从所述请求内容中解析所述验证请求携带的地址信息;确定单元,用于在所述携带的地址信息与发送或转发所述验证请求的客户端地址或节点地址相同时,确定所述验证请求有效,在所述携带的地址信息与发送或转发所述验证请求的客户端地址或节点地址不相同时,确定所述验证请求无效。
[0020] 根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
[0021] 根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
[0022] 通过本发明,根据所述标识信息在区块链上查询所述目标终端证书的证书链并根据所述证书链验证所述目标终端证书是否合法,通过区块链的共享特性可以同时处理多个目标终端证书的多个证书验证请求,利用区块链上的证书链,提高了验证数字证书的并发能力,能够避免CA服务器的服务能力不足或网络单点故障引起的服务失效,提高了验证效率,解决了现有技术中验证终端证书时效果低下的技术问题。附图说明
[0023] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0024] 图1是本发明实施例的一种基于区块链的证书验证服务器的硬件结构框图
[0025] 图2是根据本发明实施例的一种基于区块链的证书验证方法的流程图
[0026] 图3是本发明实施例验证终端证书是否合法的流程示意图;
[0027] 图4是根据本发明实施例证书链的示意图。
[0028] 图5是根据本发明实施例的基于区块链的证书验证装置的结构框图。

具体实施方式

[0029] 为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0030] 需要说明的是,本申请的说明书权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0031] 实施例1
[0032] 本申请实施例一所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图1是本发明实施例的一种基于区块链的证书验证服务器的硬件结构框图。如图1所示,服务器10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述服务器还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述服务器的结构造成限定。例如,服务器10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
[0033] 存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的一种基于区块链的证书验证方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至服务器10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0034] 传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
[0035] 在本实施例中提供了一种基于区块链的证书验证方法,图2是根据本发明实施例的一种基于区块链的证书验证方法的流程图,如图2所示,该流程包括如下步骤:
[0036] 步骤S202,接收终端证书的验证请求,其中,所述验证请求携带一个或多个目标终端证书的标识信息,所述目标终端证书为私钥证书;
[0037] 私钥证书为在用户端使用的数字证书,基于公钥证书生成,一个私钥证书匹配一个公钥证书,但是一个公钥证书有可能与多个私钥证书匹配。目标终端证书的标识信息与目标终端证书对应,为目标终端证书的唯一标识符,如证书序列号;
[0038] 步骤S204,根据所述标识信息在区块链上查询所述目标终端证书的证书链,其中,所述证书链包括私钥证书和公钥证书,所述公钥证书包括:签发所述私钥证书的CA证书,签发所述CA证书的上级根证书,签发根证书的自签名根证书;
[0039] 本实施例的证书链预先已经发布到区块链上,目标终端证书是请求终端的私钥证书,由证书中心签发,基于根证书生成,可以是任一标准的数字证书,如CA证书,CA指CA认证中心(Certificate Authority),CA签发的指公钥证书中包含用户身份信息及用户使用的公钥,证书中不包含私钥,而私钥应由用户秘密保存,不可公开。CA证书将公钥的值绑定到持有对应私钥的个人、设备或服务的身份。
[0040] 步骤S206,根据所述证书链验证所述目标终端证书是否合法。
[0041] 通过上述步骤,根据所述标识信息在区块链上查询所述目标终端证书的证书链并根据所述证书链验证所述目标终端证书是否合法,通过区块链的共享特性可以同时处理多个目标终端证书的多个证书验证请求,利用区块链上的证书链,提高了验证数字证书的并发能力,能够避免CA服务器的服务能力不足或网络单点故障引起的服务失效,提高了验证效率,解决了现有技术中验证终端证书时效果低下的技术问题。
[0042] 本实施例中,根据所述标识信息在区块链上查询所述目标终端证书的证书链包括:
[0043] S11,响应所述验证请求,触发所述区块链上的智能合约程序;
[0044] 本实施例的目标终端证书可以为客户端证书,节点证书等各种类型的X.509标准证书。智能合约为运行于区块链网络节点中的程序,能够被客户端调用,响应根据客户端的查询请求,智能合约可以在区块链网络中查询符合条件的证书信息,并返回给客户端。
[0045] S12,调用所述智能合约程序执行以下步骤:根据所述标识信息检索对应的私钥证书,在检索得到所述私钥证书后,使用所述私钥证书查询所述私钥证书所在的证书链的公钥证书。
[0046] 证书链由私钥证书和多个公钥证书组成,形成一级一级的关系,证书链中的上一级证书签发与其相邻的下一级证书,因此可以使用下一级证书来检索上一级证书,由于私钥证书的级别最低,所以可以先通过标识信息查询私钥证书,再通过私钥证书来查询高级别的公钥证书。
[0047] 本实施例在使用区块链上的证书链验证目标终端证书是否合法时,可以在多个场景触发验证请求,如,区块链管理平台验证上链节点的身份是否合法,在节点双方通信时,验证对方的身份是否合法,在节点双方交易时,验证对方的身份是否合法等。
[0048] 图3是本发明实施例验证终端证书是否合法的流程示意图,在本实施例的一个实施场景中,携带所述终端证书的终端为待上链的区块节点,所述验证请求中包含由所述区块节点使用私钥签名生成的目标终端证书的标识信息。在接收到该区块节点发送的验证请求后,根据所述证书链验证所述终端证书是否合法包括:
[0049] 步骤S302,在所述区块链上查询得到所述目标终端证书的证书链之后,判断所述目标终端证书与所述证书链的CA证书是否匹配;
[0050] 在本实施例中,由于CA证书可能签发多个终端证书,因此只有在目标终端证书包含在证书链中私钥证书集合中时,所述目标终端证书与所述证书链的CA证书匹配;
[0051] 步骤S304,在所述目标终端证书与所述证书链的CA证书匹配时,判断所述证书链从最下游的终端证书到最上游的自签名根证书是否完整;
[0052] 所述证书链从最下游的终端证书到最上游的自签名根证书完整即表面证书链完整,说明终端证书有源可溯,不是伪造或者修改后的证书;
[0053] 步骤S306,在所述证书链从最下游的终端证书到最上游的自签名根证书均完整时,确定所述终端证书合法。
[0054] 在确定合法时,同意将所述区块节点接入所述区块链。
[0055] 具体的,根据所述标识信息在区块链上查询所述目标终端证书的证书链包括:在所述区块链上根据证书链的方向在所述证书链的最下游查询与所述标识信息对应的目标终端证书,查询签发所述目标终端证书的CA证书,根据所述CA证书查询签发所述CA证书的上级根证书,直到上溯至签发根证书的自签名根证书。图4是根据本发明实施例证书链的示意图,其中,中间根证书包括一级或多级,为自签名根证书到CA证书之间的根证书。
[0056] 在区块链管理平台验证上链节点的身份是否合法时,接收区块链节点发送的上链请求(验证请求的一个形式),所述数字证书上链请求中包含由所述节点使用私钥签名生成的待校验的目标终端证书的标识信息;使用证书链验证目标终端证书是否合法;依据校验结果,确定是否将节点接入所述区块链。使用证书链验证目标证书是否合法包括:判断是否存在与该目标终端证书中的私钥匹配的公钥证书,若存在公钥证书,进一步判断该公钥证书所在的证书链是否完整,若证书链完整,则验证通过。在判断该公钥证书所在的证书链是否完整之前,可以先在区块链上查询该目标终端证书是否存在查询记录,若存在查询记录,则存在证书链,可以进一步查询证书链是否完整,若不存在查询记录,则不存在该目标终端证书的证书链。此处除了是上链请求之外,还可以是携带私钥标识的其他请求。在合法时,允许上链,并记录该节点的上链时间,哈希值,与该节点连接的节点的哈希值等。
[0057] 本实施例中,一个完整的证书链包括终端证书(客户端的或节点的),签发出终端证书的CA证书,及签发出CA证书的上级根证书,直到最顶层的自签名根证书,由此组成一个信任链,证书链包含信任链上的所有证书,通常以PKCS#7文件格式组装,并存储在区块链上,作为一个多个区块节点的节点数据保存。所以根据证书链的方向来查询,先查询最下游的数字证书,即终端证书,然后一步步上溯,使用终端证书的上级身份信息(签发该终端证书的颁发者信息)查询得到签发出终端证书的CA证书,进而使用CA证书查询签发出CA证书的上级根证书,一直查询得到最顶层的自签名根证书。
[0058] 可选的,在根据所述标识信息在区块链上查询所述目标终端证书的证书链之前,所述方法还包括:基于终端证书的标识信息从证书服务器采集多个终端证书的多个证书链;对所述多个证书链进行汇总得到与多个终端证书的标识信息一一对应的证书链条目,并发布到所述区块链。各CA的根证书发布到区块链上保存,然后将CA签发的证书发布到区块链上保存。
[0059] 在采集得到证书链后,将CA证书和终端证书以证书链的形式保存在区块链网络上,每个终端证书对应一条证书链,每个证书链包含多个数字证书,后续可以通过查询记录来标识(该查询记录包括终端证书的唯一标识符)。
[0060] 通过将根证书及其相关证书发布到区块链上,并管理汇总区块链上的数字证书得到证书链,利用了区块链的共享特性,提高了验证数字证书的并发能力。
[0061] 传统的证书由CA机构自己管理,因此分散在各CA机构的平台中,本方案通过证书链将所有CA的根证书和签发的证书汇总起来,得到多条证书链,证书链上的CA证书包含公钥证书(该公钥证书与公户私下保存的私钥证书一一匹配),证书使用者可通过区块链网络获得所有CA的公钥证书,不必与各CA机构对接。
[0062] 可选的,在根据所述标识信息在区块链上查询所述目标终端证书的证书链之前,本实施例的方案还包括:
[0063] S21,根据所述验证请求的请求内容判断所述验证请求是否有效;
[0064] 具体的,根据所述验证请求的请求内容判断所述验证请求是否有效包括:从所述请求内容中解析所述验证请求携带的地址信息;在所述携带的地址信息与发送或转发所述验证请求的客户端地址或节点地址相同时,确定所述验证请求有效,在所述携带的地址信息与发送或转发所述验证请求的客户端地址或节点地址不相同时,确定所述验证请求无效。
[0065] S22,在所述验证请求有效时,确定根据所述标识信息在区块链上查询所述目标终端证书的证书链,并生成与所述验证请求对应的查询记录,将所述查询记录公布到所述区块链。
[0066] 在本实施例中,查询记录与目标终端证书的标识信息一一对应。在第一次查询目标终端证书的证书链时,如果查询成功,则在区块链上再发布一条查询记录或者更新查询记录为查询成功的状态,查询记录本身是可以告诉整个区块链本次对区块链执行了查询操作,但本实施例中,在查询成功时发布,可以用查询记录来指示区块链上是否与标识信息对应的证书链。
[0067] 在区块链上查询证书链包括,根据验证请求触发查询请求,在区块链上查询证书链。
[0068] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0069] 实施例2
[0070] 在本实施例中还提供了一种基于区块链的证书验证装置,可以是终端或服务器,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0071] 图5是根据本发明实施例的基于区块链的证书验证装置的结构框图,可以应用在客户端或服务器中,如图5所示,该装置包括:接收模块50,查询模块52,验证模块54,其中,[0072] 接收模块50,用于接收终端证书的验证请求,其中,所述验证请求携带一个或多个终端证书的标识信息,所述终端证书为私钥证书;
[0073] 查询模块52,用于根据所述标识信息在区块链上查询所述终端证书的证书链,其中,所述证书链包括私钥证书和公钥证书,所述公钥证书包括:签发所述终端证书的CA证书,签发所述CA证书的上级根证书,签发根证书的自签名根证书;
[0074] 验证模块54,用于根据所述证书链验证所述终端证书是否合法。
[0075] 可选的,所述查询模块包括:触发单元,用于响应所述验证请求,触发所述区块链上的智能合约程序;检索单元,用于调用所述智能合约程序执行以下步骤:根据所述标识信息检索对应的私钥证书,在检索得到所述私钥证书后,使用所述私钥证书查询所述私钥证书所在的证书链的公钥证书。
[0076] 可选的,所述验证模块包括:第一判断单元,用于在所述区块链上查询得到所述目标终端证书的证书链之后,判断所述目标终端证书与所述证书链的CA证书是否匹配;第二判断单元,用于在所述目标终端证书与所述证书链的CA证书匹配时,判断所述证书链从最下游的终端证书到最上游的自签名根证书是否完整;确定单元,用于在所述证书链从最下游的终端证书到最上游的自签名根证书均完整时,确定所述终端证书合法。
[0077] 可选的,所述查询模块包括:查询单元,用于在所述区块链上根据证书链的方向在所述证书链的最下游查询与所述标识信息对应的目标终端证书,查询签发所述目标终端证书的CA证书,根据所述CA证书查询签发所述CA证书的上级根证书,直到上溯至签发根证书的自签名根证书。
[0078] 可选的,所述装置还包括:采集模块,用于在所述查询模块根据所述标识信息在区块链上查询所述终端证书的证书链之前,基于终端证书的标识信息从证书服务器采集多个终端证书的多个证书链;发布模块,用于对所述多个证书链进行汇总得到与多个终端证书的标识信息一一对应的证书链条目,并发布到所述区块链。
[0079] 可选的,所述装置还包括:判断模块,用于在所述查询模块根据所述标识信息在区块链上查询所述目标终端证书的证书链之前,根据所述验证请求的请求内容判断所述验证请求是否有效;处理模块,用于在所述验证请求有效时,确定根据所述标识信息查询所述目标终端证书的证书链,并生成与所述验证请求对应的查询记录,将所述查询记录公布到区块链。
[0080] 可选的,所述判断模块包括:解析单元,用于从所述请求内容中解析所述验证请求携带的地址信息;确定单元,用于在所述携带的地址信息与发送或转发所述验证请求的客户端地址或节点地址相同时,确定所述验证请求有效,在所述携带的地址信息与发送或转发所述验证请求的客户端地址或节点地址不相同时,确定所述验证请求无效。
[0081] 需要说明的是,终端和服务器仅是方案在执行主体上的差异,上述识别终端中的各个示例和可选方案同样适应在服务器中,并产生相同的技术效果。
[0082] 需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
[0083] 实施例3
[0084] 本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
[0085] 可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
[0086] S1,接收终端证书的验证请求,其中,所述验证请求携带一个或多个目标终端证书的标识信息,所述目标终端证书为私钥证书;
[0087] S2,根据所述标识信息在区块链上查询所述目标终端证书的证书链,其中,所述证书链包括私钥证书和公钥证书,所述公钥证书包括:签发所述私钥证书的CA证书,签发所述CA证书的上级根证书,签发根证书的自签名根证书;
[0088] S3,根据所述证书链验证所述目标终端证书是否合法。
[0089] 可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
[0090] 本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
[0091] 可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
[0092] 可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
[0093] S1,接收终端证书的验证请求,其中,所述验证请求携带一个或多个目标终端证书的标识信息,所述目标终端证书为私钥证书;
[0094] S2,根据所述标识信息在区块链上查询所述目标终端证书的证书链,其中,所述证书链包括私钥证书和公钥证书,所述公钥证书包括:签发所述私钥证书的CA证书,签发所述CA证书的上级根证书,签发根证书的自签名根证书;
[0095] S3,根据所述证书链验证所述目标终端证书是否合法。
[0096] 可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
[0097] 上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
[0098] 在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0099] 在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0100] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0101] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0102] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0103] 以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈