一种基于区块链的证书管理方法及系统

文档序号:30069586发布日期:2022-05-18 01:45阅读:327来源:国知局
一种基于区块链的证书管理方法及系统

1.本发明涉及区块链技术领域,具体涉及一种基于区块链的证书管理方法及系统。


背景技术:

2.公钥基础设施(pki)通过使用非对称加密技术和数字证书,来保证通信数据的机密性、完整性、可用性和不可抵赖性,从而实现对网络通信过程中的敏感数据和用户隐私的保护。在pki中,数字证书包括证书拥有者的公钥及相关身份信息,证书颁发机构(ca)对每个数字证书进行数字签名以声明证书拥有者身份与证书的绑定。由于证书私钥泄露、证书主体更改或其他原因,证书需要在有效性内被撤销。
3.已有方法如证书撤销列表(crl)和在线证书状态协议(ocsp),由于是中心化架构,容易单点故障而影响证书状态验证服务的可用性。crl周期性的发布被撤销证书的序列号,不能及时分发撤销证书的信息,而且随着云计算和物联网的发展,数字证书规模变大,crl的长度也越来越大,导致证书验证过程中的通信开销和时延增加。此外,用于更新证书状态的ca在pki系统中管理证书的权利过大,恶意ca会因主观或客观因素颁发虚假证书以及不能及时处理证书撤销请求。
4.区块链技术为分布式证书撤销方案提供了一种新的方法。利用区块链去中心化、不可篡改性、公开透明等优点可以建立一个分布式的可公开审计的证书撤销系统,以解决集中式方案带来的安全问题。证书有关操作都记录在区块链上,区块链保证了证书操作记录不被篡改,通过对证书操作记录溯源可以达到公开审计的效果。尽管现有的基于区块链的证书撤销方案在一定程度上解决了传统方案的单点故障问题,但仍有几个问题需要解决:
5.证书状态验证效率受到限制。已有的方法在验证证书状态时,需要检索区块链上和待验证证书相关的事务,区块链的遍历检索机制限制了证书状态的验证效率。
6.证书更新间隔长。现有的大多数方法在区块链上分发的证书撤销信息的来源是crl,因此它们的更新周期与crl相同。此外,证书的撤销对ca的依赖性较强,行为不端的ca可能会延迟分发证书撤销信息。


技术实现要素:

7.为了解决上述技术问题,本发明提供一种基于区块链的证书管理方法及系统。
8.本发明技术解决方案为:一种基于区块链的证书管理方法,包括:
9.步骤s1:证书注册:服务器在证书注册申请过程中使用私钥csk
sub
向ca发送签名ca验证后使用私钥csk
ca
对证书进行签名然后发给区块链中的peer节点;所述peer节点利用公钥cpk
sub
和cpk
ca
验证所述私钥csk
sub
和csk
ca
的签名和均正确后,根据证书注册信息生成certinfo数据结构,并将证书指纹插入到validcertcf中,将该证书注册的交易信息经peer节点广播、验证
后存储到所述区块链的账本中;
10.步骤s2:证书撤销:所述服务器或ca发现待撤销证书时,使用所述私钥csk
sub
或csk
ca
对所述待撤销证书进行签名或后发给所述peer节点;所述peer节点利用公钥cpk
sub
或cpk
ca
验证所述签名或之一正确后,所述peer节点将所述证书对应的certinfo中的opercode字段修改为1,保存新的certinfo,并将所述证书指纹从validcertcf中删除,并插入到revokedcertcf中,将该证书撤销的交易信息经peer节点广播、验证后存储到所述区块链的账本中;
11.步骤s3:证书验证:客户端向所述peer节点发送证书验证请求,所述peer节点首先根据所述证书的哈希值hash
certt
查询revokedcertcf,返回存在证书指纹时,继续查询validcertcf,当所述validcertcf也返回证书指纹存在时,则所述peer节点再根据id
cert
查询opercode字段的值以确定证书是否合法;当revokedcertcf或validcertcf之一返回不存在证书指纹时,获所述证书的当前状态;
12.步骤s4:证书删除:ca将包含证书唯一标识符id
cert
的删除请求发送给所述peer节点,所述peer节点查询所述证书的有效期,如果所述有效期小于当前日期,则将所述证书指纹从validcertcf或revokedcertcf中删除,将该证书删除的交易信息经peer节点广播、验证后存储到所述区块链的账本中。
13.本发明与现有技术相比,具有以下优点:
14.1、本发明公开了一种基于区块链的证书管理方法,可确保证书操作记录和证书当前状态不可篡改,可溯源;提高证书状态验证的效率和可用性。
15.2、本发明提供的分布式证书管理方法,能够抵抗dos攻击和单点故障引起的证书验证服务失效,分散ca在证书管理过程中的权力,可以及时分发证书撤销信息。
附图说明
16.图1为本发明实施例中证书操作在区块链中的存储结构示意图;
17.图2为本发明实施例中一种基于区块链的证书管理方法的流程图;
18.图3为本发明实施例中一种基于区块链的证书管理方法的系统框架示意图;
19.图4为本发明实施例中一种基于区块链的证书管理系统的结构框图。
具体实施方式
20.本发明提供了一种基于区块链的证书管理方法,提高证书状态验证和证书撤销信息分发的效率。
21.为了使本发明的目的、技术方案及优点更加清楚,以下通过具体实施,并结合附图,对本发明进一步详细说明。
22.为了更好理解以下实施例,首先对于本发明实施例中的证书操作在区块链中的存储结构进行说明。
23.如图1所示,为证书操作在区块链中的存储结构。
24.区块链以链的方式连接每个区块,每个区块头都包含上一个区块的哈希值;
25.每个区块中包含的交易的哈希值以merkle树的方式存储;
26.每个区块内容包括区块头和区块体,区块头中包括区块序列号number,前一个区块的区块头哈希值prehash,前一个区块的区块体哈希值predatahash;区块体包括数据字段data和数据的关键元信息metadata,data包含该区块所有交易哈希值构成的merkle树根值merkleroot;
27.每个交易内容包括certinfo、validcertcf和revokedcertcf。
28.certinfo中包括证书唯一标识符id
cert
,证书有效期validity,证书哈希值hash
cert
,证书颁发机构ca,ca事务发布公钥cpk
ca
,证书主体subject,证书主体事务发布公钥cpk
sub
,操作码opercode,opercode为0时表示证书注册操作,为1时表示证书撤销操作。
29.validcertcf是用来存储已注册未被撤销的证书的指纹的布谷鸟过滤器,revokedcertcf是用来存储已被撤销的证书的指纹的布谷鸟过滤器。validcertcf和revokedcertcf是对偶的,即每个证书的指纹只能存储在validcertcf或者revokedcertcf其一,不能同时存在。
30.本发明实施例的区块链由peer节点维护,保证账本的一致性。客户端,服务器和ca都可以兼任peer节点,参与账本的维护。
31.实施例一
32.如图2所示,本发明实施例提供的一种基于区块链的证书管理方法,包括下述步骤:
33.步骤s1:证书注册:服务器在证书注册申请过程中使用私钥csk
sub
向ca发送签名ca验证后使用私钥csk
ca
对证书进行签名然后发给区块链中的peer节点;peer节点利用公钥cpk
sub
和cpk
ca
验证私钥csk
sub
和csk
ca
的签名和均正确后,根据证书注册信息生成certinfo数据结构,并将证书指纹插入到validcertcf中,将该证书注册的交易信息经peer节点广播、验证后存储到区块链的账本中;
34.步骤s2:证书撤销:服务器或ca发现待撤销证书时,使用私钥csk
sub
或csk
ca
对待撤销证书进行签名或后发给peer节点;peer节点利用公钥cpk
sub
或cpk
ca
验证签名或之一正确后,peer节点将证书对应的certinfo中的opercode字段修改为1,保存新的certinfo,并将证书指纹从validcertcf中删除,并插入到revokedcertcf中,将该证书撤销的交易信息经peer节点广播、验证后存储到区块链的账本中;
35.步骤s3:证书验证:客户端向peer节点发送证书验证请求,peer节点首先根据证书的哈希值hash
certt
查询revokedcertcf,返回存在证书指纹时,继续查询validcertcf,当validcertcf也返回证书指纹存在时,则peer节点再根据id
cert
查询opercode字段的值以确定证书是否合法;当revokedcertcf或validcertcf之一返回不存在证书指纹时,获证书的当前状态;
36.步骤s4:证书删除:ca将包含证书唯一标识符idcert的删除请求发送给peer节点,peer节点查询证书的有效期,如果有效期小于当前日期,则将证书指纹从validcertcf或
revokedcertcf中删除,将该证书删除的交易信息经peer节点广播、验证后存储到区块链的账本中。
37.如图3所示,在一个实施例中,上述步骤s1:证书注册:服务器在证书注册申请过程中向ca发送签名ca验证后使用私钥csk
ca
对证书进行签名然后发给区块链中的peer节点;peer节点利用公钥cpk
sub
和cpk
ca
验证私钥csk
sub
和csk
ca
的签名和均正确后,根据证书注册信息生成certinfo数据结构,并将证书指纹插入到validcertcf中,将该证书注册的交易信息经peer节点广播、验证后存储到区块链的账本中,具体包括:
38.步骤s11:服务器向ca发送证书注册信息;
39.步骤s12:ca审核证书注册信息,审核通过后,将拟发布的证书发送给服务器;
40.此时,ca需判断待注册的证书是否有效期内,即validity需大于当前时间,而且还需判断证书的id
cert
是否已经在区块链中存在,以判断是否通过审核。
41.步骤s13:服务器收到拟发布的证书后,使用私钥csk
sub
向ca发送签名
42.步骤s14:ca验证后,使用私钥csk
ca
对拟发布的证书进行签名并将注册申请材料和签名发给区块链中的peer节点;
43.步骤s15:peer节点利用公钥cpk
sub
和cpk
ca
验证私钥csk
sub
和csk
ca
的签名和均正确后,按照证书注册信息生成certinfo数据结构,其中,操作码opercode置为0,并将证书指纹插入到validcertcf中;
44.步骤s16:将该证书注册的交易信息经peer节点广播、验证后存储到区块链的账本中。
45.如下所示为证书注册的伪码:
[0046][0047]
在一个实施例中,上述步骤s2:证书撤销:服务器或ca发现待撤销证书时,使用私钥csk
sub
或csk
ca
对待撤销证书进行签名或后发给peer节点;peer节点利用公钥cpk
sub
或cpk
ca
验证签名或之一正确后,peer节点将证书对应的certinfo中的opercode字段修改为1,保存新的certinfo,并将证书指纹从validcertcf中删除,并插入到revokedcertcf中,将该证书撤销的交易信息经peer节点广播、验证后存储到区块链的账本中,具体包括:
[0048]
步骤s21:服务器或ca发现待撤销证书时,使用私钥csk
sub
或csk
ca
对待撤销证书进行签名或将证书唯一标识符id
cert
和签名发给peer节点;
[0049]
步骤s22:peer节点利用公钥cpk
sub
或cpk
ca
验证签名或之一正确后,根据证书对应的certinfo中的opercode字段修改为1,并将证书指纹从validcertcf中删除,并插入到revokedcertcf中;
[0050]
步骤s23:将该证书撤销的交易信息经peer节点广播、验证后存储到区块链的账本中。
[0051]
在一个实施例中,上述步骤s3:证书验证:客户端向peer节点发送证书验证请求,peer节点首先根据证书的哈希值hash
certt
查询revokedcertcf,返回存在证书指纹时,继续查询validcertcf,当validcertcf也返回证书指纹存在时,则peer节点再根据id
cert
查询opercode字段的值以确定证书是否合法;当revokedcertcf或validcertcf之一返回不存在
证书指纹时,获证书的当前状态,具体包括:
[0052]
步骤s31:客户端向peer节点发送证书验证请求;
[0053]
步骤s32:peer节点根据证书唯一标识符id
cert
和证书哈希值hash
cert
,首先查询revokedcertcf中是否存在该证书指纹,如返回结果为无,则该证书为合法证书,否则执行步骤s33;
[0054]
步骤s33:查询validcertcf中是否存在该证书指纹,如返回结果为无,则该证书已被撤销,否则执行步骤s34;
[0055]
步骤s34:查询区块链中的该证书对应的certinfo,检查其opercode值,如为0,则表示该证书是合法证书,如为1,则表示该证书已被撤销。
[0056]
如下所示为证书验证的伪码:
[0057][0058][0059]
在一个实施例中,上述步骤s4:证书删除:ca将包含证书唯一标识符id
cert
的删除请求发送给peer节点,peer节点查询证书的有效期,如果有效期小于当前日期,则将证书指纹从validcertcf或revokedcertcf中删除,将该证书删除的交易信息经peer节点广播、验证后存储到区块链的账本中,具体包括:
[0060]
步骤s41:ca将包含证书唯一标识符idc。rt的删除请求发送给peer节点;
[0061]
步骤s42:peer节点判断证书的idcert在区块链中会否存在;如果存在则判断待删除的证书是否在有效期内;如果有效期小于当前时间,将证书指纹从validcertcf或revokedcertcf中删除;
[0062]
步骤s43:将该证书删除的交易信息经peer节点广播、验证后存储到区块链的账本中。
[0063]
本发明公开了一种基于区块链的证书管理方法,可确保证书操作记录和证书当前状态不可篡改,可溯源;提高证书状态验证的效率和可用性。本发明提供的分布式证书管理
方法,能够抵抗dos攻击和单点故障引起的证书验证服务失效,分散ca在证书管理过程中的权力,可以及时分发证书撤销信息。
[0064]
实施例二
[0065]
如图4所示,本发明实施例提供了一种基于区块链的证书管理系统,包括下述模块:
[0066]
证书注册模块51,用于服务器在证书注册申请过程中使用私钥csk
sub
向ca发送签名ca验证后使用私钥csk
ca
对证书进行签名然后发给区块链中的peer节点;peer节点利用公钥cpk
sub
和cpk
ca
验证私钥csk
sub
和csk
ca
的签名和均正确后,根据证书注册信息生成certinfo数据结构,并将证书指纹插入到validcertcf中,将该证书注册的交易信息经peer节点广播、验证后存储到区块链的账本中;
[0067]
证书撤销模块52,用于服务器或ca发现待撤销证书时,使用私钥csk
sub
或csk
ca
对待撤销证书进行签名或后发给peer节点;peer节点利用公钥cpk
sub
或cpk
ca
验证签名或之一正确后,peer节点将证书对应的certinfo中的opercode字段修改为1,保存新的certinfo,并将证书指纹从validcertcf中删除,并插入到revokedcertcf中,将该证书撤销的交易信息经peer节点广播、验证后存储到区块链的账本中;
[0068]
证书验证模块53,用于客户端向peer节点发送证书验证请求,peer节点首先根据证书的哈希值hash
certt
查询revokedcertcf,返回存在证书指纹时,继续查询validcertcf,当validcertcf也返回证书指纹存在时,则peer节点再根据id
cert
查询opercode字段的值以确定证书是否合法;当revokedcertcf或validcertcf之一返回不存在证书指纹时,获证书的当前状态;
[0069]
证书删除模块54,用于ca将包含证书唯一标识符idcert的删除请求发送给peer节点,peer节点查询证书的有效期,如果有效期小于当前日期,则将证书指纹从validcertcf或revokedcertcf中删除,将该证书删除的交易信息经peer节点广播、验证后存储到区块链的账本中。
[0070]
提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1