H04L9/32
1.一种基于区块链的CA认证管理方法,其特征在于,所述区块链进一步包括创世区块 以及常规区块,且所述创世区块用于存储根CA证书,所述方法包括:
接收待认证节点在区块链网络中发送的包含未签名证书的申请证书交易;
获取所述申请证书交易中包含的未签名证书,根据所述未签名证书生成已签名证书;
在区块链网络中向所述待认证节点发送包含所述已签名证书的颁发证书交易。
2.根据权利要求1所述的方法,其中,进一步包括:将所述申请证书交易对应的第一交 易记录以及所述颁发证书交易对应的第二交易记录分别写入所述区块链的常规区块中,并 在区块链网络中对包含所述第一交易记录以及所述第二交易记录的区块进行广播。
5.根据权利要求2所述的方法,其中,所述将所述申请证书交易对应的第一交易记录以 及所述颁发证书交易对应的第二交易记录分别写入所述区块链的常规区块中的步骤之后, 进一步包括:
从所述常规区块中查所述第二交易记录,根据所述第二交易记录获取所述已签名证 书;
向所述待认证节点发送包含所述已签名证书的撤销证书交易。
6.根据权利要求5所述的方法,其中,所述向所述待认证节点发送包含所述已签名证书 的撤销证书交易的步骤之后进一步包括:将所述撤销证书交易对应的第三交易记录写入所 述区块链的常规区块中,并在区块链网络中对包含所述第三交易记录的区块进行广播。
3.根据权利要求1所述的方法,其中,所述未签名证书中包括验证信息,则所述根据所 述未签名证书生成已签名证书的步骤具体包括:
根据所述验证信息对所述未签名证书进行验证,当验证通过后,对所述未签名证书进 行数字签名。
4.根据权利要求3所述的方法,其中,所述验证信息包括以下中的至少一种:待认证节 点公钥、待认证节点信息、待认证节点地址、认证节点信息、认证节点地址、证书有效期、以 及证书颁发时间。
7.根据权利要求1所述的方法,其中,进一步包括:
接收用户终端发送的证书查询请求,获取所述证书查询请求中包含的证书信息;
根据所述证书信息从所述常规区块中查对应的交易记录,并根据查到的交易记录 获取对应的已签名证书;
向所述用户终端发送所述已签名证书。
8.一种基于区块链的CA认证管理装置,其特征在于,所述区块链进一步包括创世区块 以及常规区块,且所述创世区块用于存储根CA证书,所述装置包括:
接收模块,适于接收待认证节点在区块链网络中发送的包含未签名证书的申请证书交 易;
获取模块,适于获取所述申请证书交易中包含的未签名证书,根据所述未签名证书生 成已签名证书;
发送模块,适于在区块链网络中向所述待认证节点发送包含所述已签名证书的颁发证 书交易。
9.根据权利要求8所述的装置,其中,进一步包括:
记录模块,适于将所述申请证书交易对应的第一交易记录以及所述颁发证书交易对应 的第二交易记录分别写入所述区块链的常规区块中,并在区块链网络中对包含所述第一交 易记录以及所述第二交易记录的区块进行广播。。
10.一种基于区块链的CA认证管理系统,其特征在于,包括上述权利要求8-9任一所述 的CA认证管理装置,以及待认证节点。
本发明涉及网络通信技术领域,具体涉及一种基于区块链的CA认证管理方法、装 置及系统。
数字证书是一种由权威机构颁发的、用于在网络上证明用户身份的证明文件,颁 发数字证书的过程也可以称为认证授权(Certification Authority,简称CA)过程。传统的 证书颁发体系包括根CA以及根CA下属的多级CA,其中,根CA是证书颁发体系中最受信任的 证书颁发机构,可以独立地颁发证书,根CA通过自签名生成证书,不需要由其它CA机构为其 颁发证书。其他各级CA机构可以由其上级CA机构为其颁发证书,也可以为其下级CA机构及 其客户颁发证书,其中,CA机构的客户可以为各种网络实体,例如,可以是网站(website)。
由于CA机构的数量众多,且层级不同,因此,在传统的CA认证过程中,为了鉴别一 个证书的真伪,不仅要对该证书进行签名验证,而且,还要对签发该证书的机构进行验证, 并且,如果签发该证书的机构存在上级CA机构,还需要进一步对上级CA机构进行验证,直至 根CA。为此,需要用户预先在浏览器中内置根CA所对应的证书,以便于验证根CA的真伪。但 是,用户内置在浏览器中的根CA证书很容易遭遇黑客的攻击,因而导致根CA证书的安全性 较低,而且一旦根CA证书被恶意篡改,则会影响整个验证过程的结果。
由此可见,现有的验证方式由于需要用户预先保存根CA证书,因而不仅增加了用 户的操作量、占用了用户的本地存储空间,还导致根CA证书的安全性难以保证,进而导致整 个验证过程的准确性降低。
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上 述问题的基于区块链的CA认证管理方法、装置及系统。
依据本发明的一个方面,提供了一种基于区块链的CA认证管理方法,所述区块链 进一步包括创世区块以及常规区块,且所述创世区块用于存储根CA证书,所述方法包括:接 收待认证节点在区块链网络中发送的包含未签名证书的申请证书交易;获取所述申请证书 交易中包含的未签名证书,根据所述未签名证书生成已签名证书;在区块链网络中向所述 待认证节点发送包含所述已签名证书的颁发证书交易。
可选地,所述在区块链网络中向所述待认证节点发送包含所述已签名证书的颁发 证书交易的步骤之后进一步包括:将所述申请证书交易对应的第一交易记录以及所述颁发 证书交易对应的第二交易记录分别写入所述区块链的常规区块中,并在区块链网络中对包 含所述第一交易记录以及所述第二交易记录的区块进行广播。
可选地,所述未签名证书中包括验证信息,则所述根据所述未签名证书生成已签 名证书的步骤具体包括:根据所述验证信息对所述未签名证书进行验证,当验证通过后,对 所述未签名证书进行数字签名。
可选地,所述验证信息包括以下中的至少一种:待认证节点公钥、待认证节点信 息、待认证节点地址、认证节点信息、认证节点地址、证书有效期、以及证书颁发时间。
可选地,所述将所述申请证书交易对应的第一交易记录以及所述颁发证书交易对 应的第二交易记录分别写入所述区块链的常规区块中的步骤之后,进一步包括:从所述常 规区块中查所述第二交易记录,根据所述第二交易记录获取所述已签名证书;向所述待 认证节点发送包含所述已签名证书的撤销证书交易。
可选地,所述向所述待认证节点发送包含所述已签名证书的撤销证书交易的步骤 之后进一步包括:将所述撤销证书交易对应的第三交易记录写入所述区块链的常规区块 中,并在区块链网络中对包含所述第三交易记录的区块进行广播。
可选地,进一步包括:接收用户终端发送的证书查询请求,获取所述证书查询请求 中包含的证书信息;根据所述证书信息从所述常规区块中查对应的交易记录,并根据查 到的交易记录获取对应的已签名证书;向所述用户终端发送所述已签名证书。
可选地,所述向所述用户终端发送所述已签名证书的步骤之后,进一步包括:查询 所述常规区块中存储的与所述已签名证书对应的交易记录,判断所述已签名证书对应的交 易记录的次数,根据判断结果返回证书有效消息或证书无效消息。
可选地,所述判断所述已签名证书对应的交易记录的次数,根据判断结果返回证 书有效消息或证书无效消息的步骤具体包括:查询所述已签名证书对应的交易记录中由认 证节点发送给待认证节点的交易次数,若所述交易次数为奇数,则返回证书有效消息;若所 述交易次数为偶数,则返回证书无效消息。
可选地,所述判断所述已签名证书对应的交易记录的次数,根据判断结果返回证 书有效消息或证书无效消息的步骤具体包括:查询所述已签名证书对应的交易记录中由认 证节点发送给待认证节点的交易次数,若所述交易次数为1,则返回证书有效消息;反之,则 返回证书无效消息。
可选地,所述根CA证书包括:根CA公钥、根CA信息、根CA地址、证书有效期、证书颁 发时间、以及数字签名。
依据本发明的另一方面,提供了一种基于区块链的CA认证管理装置,所述区块链 进一步包括创世区块以及常规区块,且所述创世区块用于存储根CA证书,所述装置包括:接 收模块,适于接收待认证节点在区块链网络中发送的包含未签名证书的申请证书交易;获 取模块,适于获取所述申请证书交易中包含的未签名证书,根据所述未签名证书生成已签 名证书;发送模块,适于在区块链网络中向所述待认证节点发送包含所述已签名证书的颁 发证书交易。
可选地,进一步包括:记录模块,适于将所述申请证书交易对应的第一交易记录以 及所述颁发证书交易对应的第二交易记录分别写入所述区块链的常规区块中,并在区块链 网络中对包含所述第一交易记录以及所述第二交易记录的区块进行广播。
可选地,所述未签名证书中包括验证信息,则所述获取模块具体用于:根据所述验 证信息对所述未签名证书进行验证,当验证通过后,对所述未签名证书进行数字签名。
可选地,所述验证信息包括以下中的至少一种:待认证节点公钥、待认证节点信 息、待认证节点地址、认证节点信息、认证节点地址、证书有效期、以及证书颁发时间。
可选地,进一步包括:撤销模块,适于从所述常规区块中查所述第二交易记录, 根据所述第二交易记录获取所述已签名证书;向所述待认证节点发送包含所述已签名证书 的撤销证书交易。
可选地,所述记录模块进一步用于:将所述撤销证书交易对应的第三交易记录写 入所述区块链的常规区块中,并在区块链网络中对包含所述第三交易记录的区块进行广 播。
可选地,进一步包括:查询模块,适于接收用户终端发送的证书查询请求,获取所 述证书查询请求中包含的证书信息;根据所述证书信息从所述常规区块中查对应的交易 记录,并根据查到的交易记录获取对应的已签名证书;向所述用户终端发送所述已签名 证书。
可选地,所述查询模块进一步用于:查询所述常规区块中存储的与所述已签名证 书对应的交易记录,判断所述已签名证书对应的交易记录的次数,根据判断结果返回证书 有效消息或证书无效消息。
可选地,所述查询模块具体用于:查询所述已签名证书对应的交易记录中由认证 节点发送给待认证节点的交易次数,若所述交易次数为奇数,则返回证书有效消息;若所述 交易次数为偶数,则返回证书无效消息。
可选地,所述查询模块具体用于:查询所述已签名证书对应的交易记录中由认证 节点发送给待认证节点的交易次数,若所述交易次数为1,则返回证书有效消息;反之,则返 回证书无效消息。
可选地,所述根CA证书包括:根CA公钥、根CA信息、根CA地址、证书有效期、证书颁 发时间、以及数字签名。
依据本发明的再一方面,提供了一种基于区块链的CA认证管理系统,包括上述的 CA认证管理装置,以及待认证节点。
在本发明提供的基于区块链的CA认证管理方法、装置及系统中,利用区块链网络 管理各级CA机构的证书以及客户证书,并且,将根CA证书存储到区块链网络的创世区块中, 由于创世区块为第一个区块,因此,安全性极高,很难被篡改。相应地,本发明将颁发证书的 过程转化为区块链网络中的交易过程,并利用区块链记录交易记录的方式将所有关于证书 的操作过程全部记录到区块链中,从而使用户无需在本地预存根CA证书,只需根据区块链 网络进行查询即可,由此不仅简化了用户操作、节约了用户空间,且大幅提升了根CA证书的 安全性以及后续验证过程的准确性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段, 而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够 更明显易懂,以下特举本发明的具体实施方式。
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通 技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明 的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例的区块链网络中的节点分布图;
图2示出了本发明一个实施例提供的基于区块链的CA认证管理方法的流程图;
图3示出了根CA的证书结构;
图4示出了其他CA机构的证书生成过程的流程图;
图5示出了下级CA机构向上级CA机构发送的申请证书交易的交易示意图;
图6示出了已签名证书的格式示意图;
图7示出了上级CA机构向下级CA机构发送的颁发证书交易的交易示意图;
图8示出了CA机构的客户的证书生成过程的流程图;
图9示出了本发明上述实施例中涉及到的各个环节的流程图;
图10示出了本发明另一实施例提供的一种基于区块链的CA认证管理装置的结构 图;
图11示出了本发明另一实施例提供的一种基于区块链的CA认证管理系统的结构 示意图。
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开 的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例 所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围 完整的传达给本领域的技术人员。
本发明实施例提供了一种基于区块链的CA认证管理方法、装置及系统,至少能够 解决现有的CA验证方式所导致的根CA证书的安全性难以保证,进而导致整个验证过程的准 确性降低的技术问题。
在本发明实施例中,区块链网络中具体涉及如下几类网络实体:(1)根CA,是最受 信任的证书机构;(2)其它各级CA(非根CA),需要依靠上级CA机构为其颁发证书来标识其身 份;(3)客户服务器,向CA机构请求颁发证书的用户对应的服务器,例如网站服务器,可理解 为CA机构的客户;(4)普通用户,在网络通信过程中需要验证对方证书的用户对应的用户终 端。其中,在本发明实施例中,前三类网络实体作为区块链网络中的节点接入到区块链网络 中,因而可以查询区块链中的全部信息,第四类网络实体未作为区块链网络中的节点接入 到区块链网络中,因而需先连接到区块链网络中的任一节点进行查询。当然,在本发明其他 的实施例中,也可以将第四类网络实体也作为区块链网络中的轻节点接入到区块链网络 中,以便于查询。另外,在上述几类网络实体中,CA机构属于区块链网络中的完全节点,具有 打包权,既能够向区块链中写入交易记录,也能够读取区块链中的交易记录;客户服务器可 以为完全节点或非完全节点,但是不具有打包权,不能够向区块链中写入交易记录,只能够 读取区块链中的交易记录。图1示出了本发明实施例的区块链网络中的节点分布图。如图1 所示,第一层为根CA,由于根CA的证书是自签名证书,因此,预先通过硬编码方式写入创世 区块中,以实现无法更改的目的,进而提高安全性。CAn为其他CA机构,该类CA机构的证书需 由上级CA机构颁发。例如,在图1中,CA1、CA2和CA3为根CA的下级CA,其需由根CA为其颁发证 书,以证明自己的身份。CA11和CA12为CA1的下级CA,其需由CA1为其颁发证书以证明身份。 客户服务器为需要向CA机构请求颁发证书的客户,其中,客户角包括但不仅限于网站服 务器,为了方便理解,在本实施例中以网站服务器为例进行说明。例如,在图1中,客户服务 器1和客户服务器2均为CA11的客户。
图2示出了本发明一个实施例提供的基于区块链的CA认证管理方法的流程图。图2 所示的方法的执行主体既可以是根CA,也可以是其他各级CA。如图2所示,该方法包括:
步骤S210:接收待认证节点在区块链网络中发送的包含未签名证书的申请证书交 易。
其中,待认证节点泛指各类需要由CA机构为其颁发证书的网络实体,例如,可以是 下级CA机构,也可以是客户服务器。
步骤S220:获取上述申请证书交易中包含的未签名证书,根据该未签名证书生成 已签名证书。
其中,通过对未签名证书进行签名的方式生成已签名证书。具体地,可以通过各类 数字签名算法进行签名,本发明对具体的签名算法不做限定。
步骤S230:在区块链网络中向待认证节点发送包含已签名证书的颁发证书交易。
其中,根据已签名证书生成并发送颁发证书交易,以通知待认证节点证书申请成 功。
可选地,本发明实施例中的方法进一步包括下述的步骤S240:将申请证书交易对 应的第一交易记录以及颁发证书交易对应的第二交易记录分别写入区块链的常规区块中, 并在区块链网络中对包含所述第一交易记录以及所述第二交易记录的区块进行广播。
具体地,在本发明中,区块链进一步包括创世区块以及常规区块,且创世区块用于 存储根CA证书,常规区块用于存储各类证书颁发操作所对应的交易记录,以便后续查询。所 谓创世区块,是指区块链中的第一个区块,其生成时间最早,安全性最高,后续其他区块均 无权对创世区块进行更改,因此,将根CA证书存储到创世区块中能够显著提升根CA证书的 安全性。区块链中除创世区块之外的其他区块统称为常规区块,用于存储各次交易记录,以 供查询。
另外,步骤S240的执行主体既可以是上文提到的发送申请证书交易的待认证节 点,也可以是区块链网络中的其他网络节点,本发明对步骤S240的执行主体不做限定,因 此,步骤S240是一个可选的步骤,在本发明其他的实施例中也可以省略步骤S240。其中,在 步骤S240中,申请证书交易和颁发证书交易既可以由上述的待认证节点(即广播上述处理 申请证书交易的网络节点)打包进入到区块中,也可以由其他的网络节点打包到区块中,区 块随后会被广播到区块链网络,其他网络节点验证区块通过后会将其中的颁发证书交易加 入自身的区块链副本,由此区块链网络就对该区块中的申请证书交易和颁发证书交易形成 了共识,从而保证区块链的一致性。
由此可见,在本发明提供的基于区块链的CA认证管理方法中,利用区块链网络管 理各级CA机构的证书以及客户证书,并且,将根CA证书存储到区块链网络的创世区块中,由 于创世区块为第一个区块,因此,安全性极高,很难被篡改。相应地,本发明将颁发证书的过 程转化为区块链网络中的交易过程,并利用区块链记录交易记录的方式将所有关于证书的 操作过程全部记录到区块链中,从而使用户无需在本地预存根CA证书,只需根据区块链网 络进行查询即可,由此不仅简化了用户操作、节约了用户空间,且大幅提升了根CA证书的安 全性以及后续验证过程的准确性。
下面结合具体实例详细描述本发明提供的基于区块链的CA认证管理方法的具体 实现细节。其中,主要涉及三种管理类型,分别为颁发证书、撤销证书以及查询证书,下面通 过三个实施例分别介绍每种类型的管理操作的具体流程:
实施例一、
本实施例主要用于实现颁发证书类管理操作。具体地,颁发证书涉及根CA证书的 生成过程、下级CA向上级CA申请证书的过程以及客户向CA机构申请证书的过程,下面分别 加以介绍:
(1)根CA机构的证书生成过程:
由于根CA是最受信任的证书机构,并且根CA的证书是自签名证书,无上级CA认证, 因此,根CA的证书是能够长期信任的、几乎不需要更改的。所以,在本发明实施例中将根CA 证书通过硬编码方式写入创世区块,由于其余区块都是建立在创世区块之后,所以区块链 上各节点的操作无法对创世区块进行更改,由此保障了即使区块链中的节点被恶意攻击也 无法更改根CA的证书。图3示出了根CA的证书结构,由于根CA的证书是自签名证书,无需上 级CA机构为其签名,所以证书中只需记录根CA自身的信息。如图3所示,根CA证书中包括:证 书机构的公钥、证书机构信息、证书机构的地址、证书有效期、证书颁发时间等其他信息以 及数字签名。其中,证书机构的地址是指该机构在区块链网络上所对应的账户地址。
(2)其他CA机构的证书生成过程:
图4示出了其他CA机构的证书生成过程的流程图。如图4所示,其他CA机构的证书 生成过程包括如下步骤:
步骤S410:下级CA机构在区块链网络中向上级CA机构发送申请证书交易。
这里,下级CA机构也可以理解为待认证节点,上级CA机构也可以理解为认证节点。 本发明可基于公有区块链的交易格式实现,每笔交易可包括输入和输出两部分。图5示出了 该笔交易的示意图,其中,输入部分可以为空,输出部分中包含下级CA机构的未签名证书, 即不完整的证书。其中,为了防止区块链上的其他节点任意颁发证书,在未签名证书中写入 了上级CA机构的相关信息。
步骤S420:上级CA机构获取上述申请证书交易中包含的未签名证书,根据未签名 证书生成已签名证书。
为了提高安全性,可选地,在本步骤中,上级CA机构获取到上述申请证书交易中包 含的未签名证书之后,进一步对该未签名证书进行验证,并仅在验证通过后执行后续操作。 为了便于验证,在上述的未签名证书中可以进一步包含验证信息,该验证信息除上述提到 的上级CA机构的相关信息之外,还可以是待认证节点公钥、待认证节点信息、待认证节点地 址、认证节点信息、认证节点地址、证书有效期、以及证书颁发时间等信息。具体验证时,上 级CA机构根据上述验证信息对下级CA机构的身份进行验证,并对未签名证书的合法性进行 验证。而且,上级CA机构还要进一步验证未签名证书中包含的证书机构地址是否与该上级 CA机构的地址相匹配,若匹配,则说明下级CA机构指定的颁发证书机构为该上级CA机构,因 而继续执行后续步骤;若不匹配,则说明下级CA机构指定的颁发证书机构并非该上级CA机 构,因而向下级CA机构返回错误消息,以提示下级CA机构重新发送正确的交易信息。
当上述验证过程均通过后,上级CA机构对未签名证书进行签名,即补充完整未签 名证书,得到已签名证书。图6示出了已签名证书的格式示意图,如图6所示,已签名证书中 包含:用户的公钥、用户的信息、用户的地址、证书机构信息、证书机构的地址、证书有效期、 证书颁发时间等其他信息以及数字签名。其中,用户是指下级CA机构,证书机构是指上级CA 机构,数字签名是指上级CA机构对图6所示的证书中除数字签名外的其他信息的哈希进行 私钥加密的结果。
步骤S430:上级CA机构在区块链网络中向下级CA机构发送包含已签名证书的颁发 证书交易。
上级CA机构向下级CA机构发起一笔颁发证书交易,将已签名证书写入该笔交易的 输出部分,如图7所示,其中,sig(cert)表示经过签名的完整格式证书。
步骤S440:上级CA机构将上述颁发证书交易对应的交易记录写入区块链的常规区 块中。
其中,步骤S440的执行主体不限于上级CA机构,也可以是下级CA机构或区块链网 络中的其他网络节点,本发明对步骤S440的执行主体不做限定,因此,步骤S440是一个可选 的步骤。另外,在本实施例中,还可以在区块链网络中进一步对写入交易记录的区块进行广 播,以便网络中的其他节点迅速获知对应的交易记录。
(3)客户的证书生成过程:
图8示出了CA机构的客户的证书生成过程的流程图,在本例中,以客户为网站服务 器为例进行说明,实际上,除网站服务器外,还可以是其他类型的客户服务器。如图8所示, 客户的证书生成过程包括如下步骤:
步骤S810:网站服务器在区块链网络中向CA机构发送申请证书交易,并将申请证 书交易对应的交易记录写入区块链的常规区块中。
这里,网站服务器也可以理解为待认证节点,CA机构也可以理解为认证节点。该笔 交易的输出部分中包含网站服务器的未签名证书,即不完整的证书。其中,为了防止区块链 上的其他节点任意颁发证书,在未签名证书中还写入了CA机构的相关信息。
步骤S820:CA机构获取上述申请证书交易中包含的未签名证书,根据未签名证书 生成已签名证书。
为了提高安全性,可选地,在本步骤中,CA机构获取到上述申请证书交易中包含的 未签名证书之后,进一步对该未签名证书进行验证,并仅在验证通过后执行后续操作。为了 便于验证,在上述的未签名证书中可以进一步包含验证信息,该验证信息除上述提到的CA 机构的相关信息之外,还可以是待认证节点公钥、待认证节点信息、待认证节点地址、认证 节点信息、认证节点地址、证书有效期、以及证书颁发时间等信息。具体验证时,CA机构根据 上述验证信息对网站服务器的身份进行验证,并对未签名证书的合法性进行验证。而且,CA 机构还要进一步验证未签名证书中包含的证书机构地址是否与本CA机构的地址相匹配,若 匹配,则说明网站服务器指定的颁发证书机构为本CA机构,因而继续执行后续步骤;若不匹 配,则说明网站服务器指定的颁发证书机构并非本CA机构,因而向网站服务器返回错误消 息,以提示其重新发送正确的交易信息。
当上述验证过程均通过后,CA机构对未签名证书进行签名,即补充完整未签名证 书,得到已签名证书。
步骤S830:CA机构在区块链网络中向网站服务器发送包含已签名证书的颁发证书 交易。
CA机构向网站服务器发起一笔颁发证书交易,将已签名证书写入该笔交易的输出 部分。
步骤S840:CA机构将上述颁发证书交易对应的交易记录写入区块链的常规区块 中。
其中,步骤S840的执行主体不限于上级CA机构,也可以是网站服务器或区块链网 络中的其他网络节点,本发明对步骤S840的执行主体不做限定,因此,步骤S840是一个可选 的步骤。另外,在本实施例中,还可以在区块链网络中进一步对写入交易记录的区块进行广 播,以便网络中的其他节点迅速获知对应的交易记录。
实施例二、
本实施例主要用于实现撤销证书类管理操作。具体地,撤销证书涉及上级CA机构 撤销其为下级CA机构颁发的证书的操作,以及CA机构撤销其为客户颁发的证书的操作,由 于两类撤销操作的流程类似,因此,下面主要介绍第一类撤销操作:
上级CA机构从区块链上查该CA机构向其下级CA机构发起交易的交易记录,到 最新的交易并取出其中包含的已签名证书。其中,若能从最新的交易中取出证书,则说明有 可撤销的证书,否则没有,直接返回。如果有可撤销的证书,则该上级CA机构向拥有该证书 的下级CA机构发起包含该已签名证书的撤销证书交易,在交易的输出部分中写入已签名证 书。然后,该上级CA机构可将本次撤销证书交易对应的交易记录写入区块链的常规区块中。
CA机构为其客户撤销证书的流程与此类似。例如,CA机构向客户发起一笔撤销证 书交易,以撤销其为该客户颁发的证书,并可将该笔交易对应的交易记录写入区块链的常 规区块中。
由于同一个机构不会向一个申请者重复颁发证书,一次颁发对应一次撤销,即本 发明中一次交易对应一次证书的颁发或者撤销的过程。若要审查证书是否被撤销,只需要 统计区块链上某一张证书的颁发机构向持有证书的客户发起的交易的次数。如果次数为奇 数(一般情况下为1),则说明证书有效,若为偶数,则说明证书被撤销。
另外,在本发明其他的实施例中,还可以在次数大于或等于2时则确定证书被撤 销。例如,仅在次数为1时认为证书有效,否则认为证书无效。总之,本领域技术人员可根据 实际情况确定证书状态,本发明对具体确定方式不做限定。
实施例三、
本实施例主要用于实现查询(验证)证书类管理操作。其中,证书的验证通常是由 与证书拥有者(例如网站服务器)存在信息交互的用户去验证,验证过程不仅要验证证书拥 有者本身所拥有的证书是否有效,还要逐层向上验证证书颁发机构的证书。具体地,验证过 程的主要步骤如下:
步骤一、用户终端访问网站服务器,网站服务器向用户终端发送网站服务器所拥 有的证书。
步骤二、用户终端向区块链网络中的任一网络节点发送证书查询请求,该网络节 点接收并处理该证书查询请求。
其中,接收并处理该证书查询请求的网络节点既可以是CA机构,也可以是网站服 务器,由于区块链网络去中心化的分布式存储特点,在每个网络节点上都保存了完整的区 块链信息。该网络节点根据证书查询请求获取其中包含的证书信息。
步骤三、该网络节点根据证书信息从常规区块中查对应的交易记录,并根据查 到的交易记录获取对应的已签名证书,将该已签名证书发送给用户终端。
具体地,该网络节点首先根据证书中记载的证书颁发机构的地址和证书拥有者 (例如网站服务器)的地址向区块链查该证书颁发机构向证书拥有者发起的交易,查询出 最新的一条交易,并取出其中的已签名证书。然后,该网络节点将该已签名证书发送给用户 终端。
步骤四、用户终端根据区块链上的证书信息审查网站服务器,若查询结果正确,则 继续执行后续步骤,否则认定证书无效。
步骤五、查询常规区块中存储的与已签名证书对应的交易记录,判断所述已签名 证书对应的交易记录的次数为奇数或偶数,根据判断结果确定证书有效或无效。其中,根据 交易记录的次数确定证书状态的具体方式可参照实施例二中相关部分的描述,另外,在本 发明其他的实施例中,还可以在次数大于或等于2时则确定证书被撤销。总之,本领域技术 人员可根据实际情况确定证书状态,本发明对具体确定方式不做限定。
其中,步骤五既可以在用户终端的请求下触发,也可以在步骤四执行完之后自动 触发。步骤五的执行主体可以是区块链网络中的任一网络节点,例如可以是上述步骤三中 的网络节点。该网络节点查询常规区块中存储的与已签名证书对应的交易记录,根据交易 记录的次数确定证书状态。例如,在一种实现方式中,该网络节点查询已签名证书对应的交 易记录中由认证节点发送给待认证节点的交易次数,若该交易次数为奇数(通常为1),说明 证书有效,则返回证书有效消息;若该交易次数为偶数(通常为2),说明证书被撤销,则返回 证书无效消息。
步骤六、递归向上审查证书颁发机构的证书,直到根证书。
其中,步骤六既可以在用户终端的请求下触发,也可以在步骤五执行完之后自动 触发。为了确保证书的有效性,需要进一步审查该证书的颁发机构的合法性,即,进一步审 查该证书的颁发机构的证书是否有效。该部分的审查过程与对网站服务器证书的审查类 似,主要从证书的正确性和有效性两方面审查,此处不再赘述。
通过上述流程,就实现了证书的审查过程。另外,为了更深入地理解本发明,图9示 出了本发明上述实施例中涉及到的各个环节的流程图。如图9所示,本发明上述实施例中主 要涉及根CA、CA、区块链、网站服务器以及user(即用户终端)。在步骤1中,根CA生成自签名 证书,写入创世区块。在步骤2中,CA向根CA发起交易,发送未签名证书。在步骤3中,根CA审 查CA机构,生成证书(即已签名证书)。在步骤4中,根CA向CA发起交易,将交易及证书写入区 块链。在步骤5中,网站服务器向CA机构发起交易,发送未签名证书。在步骤6中,CA机构审查 网站服务器,生成已签名证书。在步骤7中,CA向网站服务器发起交易,将交易及证书写入区 块链。在步骤8中,根CA向CA发起一笔交易,撤销证书,将交易写入区块链。在步骤9中,CA向 网站服务器发起一笔交易,撤销证书,将交易写入区块链。在步骤10中,user访问网站服务 器。在步骤11中,网站服务器发送证书给user。在步骤12中,user向区块链查询证书。在步骤 13中,区块链返回对应证书。在步骤14中,用户验证证书是否正确完整。在步骤15中,返回区 块链上该证书颁发机构向持有机构发起交易的次数。在步骤16中,根据交易次数的奇偶验 证证书是否被撤销。在步骤17中,审查证书颁发机构的证书,并在步骤18中返回审查结果。
由此可见,本发明利用区块链来进行CA证书的颁发、撤销和查询等管理操作,充分 利用了区块链的不易篡改和公开化的特点,弥补了传统CA认证中的不足,使得CA的颁发和 撤销信息传播更快,提高了证书颁发机构的可信度,尤其是根CA,用户可以通过实时查询区 块链上的记录来审查证书,更加可靠。另外,依赖于区块链的分布式特点,使得即使CA节点 在遭受恶意攻击的情况下也不会影响整个CA网络的安全性,并且区块链网络有可能在短时 间内感知到问题。
另外,本领域技术人员可以对上述实施例进行各种改动和变形,例如,本领域技术 人员还可以从以下几方面进行改动:
(1)在上述实施例中,区块链上的节点包含CA机构和申请证书的机构(如网站服务 器),而普通用户验证证书时通过访问区块链上的任一节点进行验证。可选地,可以让普通 用户也作为区块链上的一个节点接入进来,以提高验证过程的灵活性。
(2)由于根CA的证书是通过硬编码写入创世区块的,区块链网络上存在多个根CA, 一旦某个根CA被攻破,若要更改根CA,将会破坏整个区块链网络。可选地,为所有的根CA建 立一个上级根,写入创世区块。由上级根来为根CA颁发证书。
(3)本发明实施例通过审查区块链上所有的交易来获取证书颁发机构向证书申请 机构发送的交易的次数。可选地,为了防止某张已经无效的证书(如超过证书有效期)未发 送撤销交易而打乱区块链上的交易次数,可以只统计交易记录中保存的证书与当前证书完 全一致的交易次数。并且由于证书的交易被写入区块链的时间一定在证书生成的时间之 后,所以只需要去遍历写入时间在这个时间之后的区块,以提高遍历的效率。
(4)在本发明实施例的证书中,包含一个选项是证书颁发机构和申请机构的地址, 即其在区块链网络上对应的账户地址。可选地,为了保持与传统证书格式的统一,这部分也 可以不放入证书中,而直接写入每笔交易的输出部分内容里面,如下:
图10示出了本发明另一实施例提供的一种基于区块链的CA认证管理装置的结构 图。其中,区块链进一步包括创世区块以及常规区块,且创世区块用于存储根CA证书,所述 装置包括:
接收模块101,适于接收待认证节点在区块链网络中发送的包含未签名证书的申 请证书交易;
获取模块102,适于获取所述申请证书交易中包含的未签名证书,根据所述未签名 证书生成已签名证书;
发送模块103,适于在区块链网络中向所述待认证节点发送包含所述已签名证书 的颁发证书交易。
可选地,进一步包括:记录模块104,适于将所述申请证书交易对应的第一交易记 录以及所述颁发证书交易对应的第二交易记录分别写入所述区块链的常规区块中,并在区 块链网络中对包含所述第一交易记录以及所述第二交易记录的区块进行广播。
可选地,所述未签名证书中包括验证信息,则所述获取模块具体用于:根据所述验 证信息对所述未签名证书进行验证,当验证通过后,对所述未签名证书进行数字签名。
可选地,所述验证信息包括以下中的至少一种:待认证节点公钥、待认证节点信 息、待认证节点地址、认证节点信息、认证节点地址、证书有效期、以及证书颁发时间。
可选地,该装置进一步包括:撤销模块,适于从所述常规区块中查所述第二交易 记录,根据所述第二交易记录获取所述已签名证书;向所述待认证节点发送包含所述已签 名证书的撤销证书交易,并且记录模块进一步用于将所述撤销证书交易对应的第三交易记 录写入所述区块链的常规区块中,并在区块链网络中对包含所述第三交易记录的区块进行 广播。
可选地,该装置进一步包括:查询模块,适于接收用户终端发送的证书查询请求, 获取所述证书查询请求中包含的证书信息;根据所述证书信息从所述常规区块中查对应 的交易记录,并根据查到的交易记录获取对应的已签名证书;向所述用户终端发送所述 已签名证书。
可选地,所述查询模块进一步用于:查询所述常规区块中存储的与所述已签名证 书对应的交易记录,判断所述已签名证书对应的交易记录的次数为奇数或偶数,根据判断 结果返回证书有效消息或证书无效消息。例如,所述查询模块具体用于:查询所述已签名证 书对应的交易记录中由认证节点发送给待认证节点的交易次数,若所述交易次数为奇数, 则返回证书有效消息;若所述交易次数为偶数,则返回证书无效消息。例如,若交易次数为 1,则返回证书有效消息;反之,则返回证书无效消息。
其中,根CA证书包括:根CA公钥、根CA信息、根CA地址、证书有效期、证书颁发时间、 以及数字签名。
上述各个模块的具体工作细节可参照方法实施例中相应部分的描述,此处不再赘 述。
另外,上述的基于区块链的CA认证管理装置通常为上文提到的各级CA机构。
图11示出了本发明另一实施例提供的一种基于区块链的CA认证管理系统的结构 示意图,如图11所示,该系统包括:上述CA认证管理装置100,以及待认证节点110。其中,CA 认证管理装置100既可以是根CA,也可以是其他各级CA;待认证节点110既可以是各级CA机 构,也可以是客户服务器。
综上所述,在本发明的技术方案中,主要包括如下几个技术关键点:
首先,将证书作为交易的一部分写入区块链上,区块链的信任由所有节点共同参 与完成。因此保证了证书的正确性。
其次,将根证书写入创世区块中,使得即使区块链上的某个节点被恶意攻击,也无 法随意更改根证书。
再次,利用交易的次数来判断证书是否被撤销。每次验证的过程实时审查当前区 块链上最新的记录,解决了用户无法及时获知证书是否被撤销的问题。
最后,结合区块链分布式的特点,所有节点都保存了交易的记录,因此用户可以连 接到任意节点去进行审查。使得审查过程不依赖于单个来源,降低了记录被恶意篡改的风 险。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。 各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求 的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种 编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发 明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施 例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构 和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在 上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施 例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保 护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面 的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此, 遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身 都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地 改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单 元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或 子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何 组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任 何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权 利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代 替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所 包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围 之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之 一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行 的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用 微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的装置中的一些或者全部部 件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全 部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序 可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以 从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领 域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中, 不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未 列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的 元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实 现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项 来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名 称。
本发明公开了:A1、一种基于区块链的CA认证管理方法,其中,所述区块链进一步 包括创世区块以及常规区块,且所述创世区块用于存储根CA证书,所述方法包括:
接收待认证节点在区块链网络中发送的包含未签名证书的申请证书交易;
获取所述申请证书交易中包含的未签名证书,根据所述未签名证书生成已签名证 书;
在区块链网络中向所述待认证节点发送包含所述已签名证书的颁发证书交易。
A2、根据A1所述的方法,其中,进一步包括:将所述申请证书交易对应的第一交易 记录以及所述颁发证书交易对应的第二交易记录分别写入所述区块链的常规区块中,并在 区块链网络中对包含所述第一交易记录以及所述第二交易记录的区块进行广播。
A3、根据A1所述的方法,其中,所述未签名证书中包括验证信息,则所述根据所述 未签名证书生成已签名证书的步骤具体包括:
根据所述验证信息对所述未签名证书进行验证,当验证通过后,对所述未签名证 书进行数字签名。
A4、根据A3所述的方法,其中,所述验证信息包括以下中的至少一种:待认证节点 公钥、待认证节点信息、待认证节点地址、认证节点信息、认证节点地址、证书有效期、以及 证书颁发时间。
A5、根据A2所述的方法,其中,所述将所述申请证书交易对应的第一交易记录以及 所述颁发证书交易对应的第二交易记录分别写入所述区块链的常规区块中的步骤之后,进 一步包括:
从所述常规区块中查所述第二交易记录,根据所述第二交易记录获取所述已签 名证书;
向所述待认证节点发送包含所述已签名证书的撤销证书交易。
A6、根据A5所述的方法,其中,所述向所述待认证节点发送包含所述已签名证书的 撤销证书交易的步骤之后进一步包括:将所述撤销证书交易对应的第三交易记录写入所述 区块链的常规区块中,并在区块链网络中对包含所述第三交易记录的区块进行广播。
A7、根据A1所述的方法,其中,进一步包括:
接收用户终端发送的证书查询请求,获取所述证书查询请求中包含的证书信息;
根据所述证书信息从所述常规区块中查对应的交易记录,并根据查到的交易 记录获取对应的已签名证书;
向所述用户终端发送所述已签名证书。
A8、根据A7所述的方法,其中,所述向所述用户终端发送所述已签名证书的步骤之 后,进一步包括:
查询所述常规区块中存储的与所述已签名证书对应的交易记录,判断所述已签名 证书对应的交易记录的次数,根据判断结果返回证书有效消息或证书无效消息。
A9、根据A8所述的方法,其中,所述判断所述已签名证书对应的交易记录的次数, 根据判断结果返回证书有效消息或证书无效消息的步骤具体包括:
查询所述已签名证书对应的交易记录中由认证节点发送给待认证节点的交易次 数,若所述交易次数为奇数,则返回证书有效消息;若所述交易次数为偶数,则返回证书无 效消息。
A10、根据A8所述的方法,其中,所述判断所述已签名证书对应的交易记录的次数, 根据判断结果返回证书有效消息或证书无效消息的步骤具体包括:查询所述已签名证书对 应的交易记录中由认证节点发送给待认证节点的交易次数,若所述交易次数为1,则返回证 书有效消息;反之,则返回证书无效消息。
A11、根据A1所述的方法,其中,所述根CA证书包括:根CA公钥、根CA信息、根CA地 址、证书有效期、证书颁发时间、以及数字签名。
本发明还公开了:B12、一种基于区块链的CA认证管理装置,其中,所述区块链进一 步包括创世区块以及常规区块,且所述创世区块用于存储根CA证书,所述装置包括:
接收模块,适于接收待认证节点在区块链网络中发送的包含未签名证书的申请证 书交易;
获取模块,适于获取所述申请证书交易中包含的未签名证书,根据所述未签名证 书生成已签名证书;
发送模块,适于在区块链网络中向所述待认证节点发送包含所述已签名证书的颁 发证书交易。
B13、根据B12所述的装置,其中,进一步包括:
记录模块,适于将所述申请证书交易对应的第一交易记录以及所述颁发证书交易 对应的第二交易记录分别写入所述区块链的常规区块中,并在区块链网络中对包含所述第 一交易记录以及所述第二交易记录的区块进行广播。
B14、根据B12所述的装置,其中,所述未签名证书中包括验证信息,则所述获取模 块具体用于:
根据所述验证信息对所述未签名证书进行验证,当验证通过后,对所述未签名证 书进行数字签名。
B15、根据B14所述的装置,其中,所述验证信息包括以下中的至少一种:待认证节 点公钥、待认证节点信息、待认证节点地址、认证节点信息、认证节点地址、证书有效期、以 及证书颁发时间。
B16、根据B13所述的装置,其中,进一步包括:
撤销模块,适于从所述常规区块中查所述第二交易记录,根据所述第二交易记 录获取所述已签名证书;向所述待认证节点发送包含所述已签名证书的撤销证书交易。
B17、根据B16所述的装置,其中,所述记录模块进一步用于:将所述撤销证书交易 对应的第三交易记录写入所述区块链的常规区块中,并在区块链网络中对包含所述第三交 易记录的区块进行广播。
B18、根据B12所述的装置,其中,进一步包括:
查询模块,适于接收用户终端发送的证书查询请求,获取所述证书查询请求中包 含的证书信息;根据所述证书信息从所述常规区块中查对应的交易记录,并根据查到 的交易记录获取对应的已签名证书;向所述用户终端发送所述已签名证书。
B19、根据B18所述的装置,其中,所述查询模块进一步用于:
查询所述常规区块中存储的与所述已签名证书对应的交易记录,判断所述已签名 证书对应的交易记录的次数,根据判断结果返回证书有效消息或证书无效消息。
B20、根据B19所述的装置,其中,所述查询模块具体用于:查询所述已签名证书对 应的交易记录中由认证节点发送给待认证节点的交易次数,若所述交易次数为奇数,则返 回证书有效消息;若所述交易次数为偶数,则返回证书无效消息。
B21、根据B19所述的装置,其中,所述查询模块具体用于:查询所述已签名证书对 应的交易记录中由认证节点发送给待认证节点的交易次数,若所述交易次数为1,则返回证 书有效消息;反之,则返回证书无效消息。
B22、根据B12所述的装置,其中,所述根CA证书包括:根CA公钥、根CA信息、根CA地 址、证书有效期、证书颁发时间、以及数字签名。
本发明进一步公开了:C23、一种基于区块链的CA认证管理系统,其中,包括上述 B12-B22任一所述的CA认证管理装置,以及待认证节点。
本文发布于:2023-04-15 01:23:00,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/3/86968.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |