基于区块链的数字证书管理方法及系统、设备、存储介质

阅读: 评论:0

著录项
  • CN202110190971.7
  • 20210219
  • CN113014392A
  • 20210622
  • 湖南大学
  • 马超;王一然;周中定;李信儒;兰秋军;万丽
  • H04L9/32
  • H04L9/32 H04L9/06 H04L29/06 G06F16/27 G06F21/60 G06F21/62 G06F21/64

  • 湖南省长沙市岳麓区湖南大学工商管理学院
  • 湖南(43)
  • 长沙智嵘专利代理事务所(普通合伙)
  • 颜汉华
摘要
本发明公开了一种基于区块链的数字证书管理方法及系统、设备、存储介质,在该方法中,凭证模板需要经过注册程序后才能发行,从证书发行的根源上进行了严格管控,并且,每个证书的凭证模板、发送记录均可溯源,彻底解决了证书伪造的问题,可降低证书检验成本、提高证书检验效率。在颁发证书和验证证书之前,申请者与颁发者之间、持有者与验证者需要先建立安全连接,采用的DID技术则为安全通信提供了基础,增加了证书传递的安全性。另外,证书验证者基于持有者提供的可验证声明即可完成证书的有效性验证,而可验证申明的生成过程结合了零知识证明、默克尔树等密码学技术来选择性地披露证书属性,可以保障证书持有者的隐私不被泄露,提高了安全性。
权利要求

1.一种基于区块链的数字证书管理方法,其特征在于,包括以下步骤:

步骤S1:在区块链的公共账本上注册凭证模板,注册成功后根据该模板对证书进行定义;

步骤S2:证书申请方节点和证书颁发机构节点互相确认身份后建立安全连接;

步骤S3:证书颁发机构节点为证书申请方节点发送数字证书,该证书的全部声明内容均拥有证书颁发机构节点的公钥DID签名;

步骤S4:证书验证机构节点与证书持有方节点互相确认身份后建立安全连接;

步骤S5:证书颁发机构节点基于证书持有方节点提供的可验证声明验证数字证书的有效性。

2.如权利要求1所述的基于区块链的数字证书管理方法,其特征在于,

所述步骤S2包括以下步骤:

步骤S21:证书颁发机构节点向证书申请方节点发送邀请信息;

步骤S22:证书申请方节点向公共账本申请该证书颁发机构节点的DID文档;

步骤S23:公共账本根据证书申请方节点的请求返回相应的DID文档,证书申请方节点通过对比DID文档公钥内容与邀请者的公钥信息以确认邀请信息的发送者是否为证书颁发机构节点;

步骤S24:证书申请方节点创建一个新的DID,该DID只用来与证书颁发机构节点交换信息;

步骤S25:证书申请方节点接受证书颁发机构节点的邀请请求,并向其发送建立连接请求,该请求中需要提供证书申请方节点新创建的DID及相应的DID文档,该请求内容发送时需要进行加密,且只有使用证书颁发机构节点的公钥才能进行解密;

步骤S26:证书颁发机构节点创建一对只用来与该证书申请方节点连接的DID;

步骤S27:证书颁发机构节点接受证书申请方节点建立连接的请求,并向证书申请方节点返回接受响应,该响应中需要提供证书颁发机构节点新创建的DID及相应的DID文档,该请求发送时需要进行加密,且只有使用证书申请方节点新创建的DID公钥才能进行解密。

3.如权利要求2所述的基于区块链的数字证书管理方法,其特征在于,

所述步骤S3包括以下步骤:

步骤S31:证书颁发机构节点向证书申请方节点发送请求,若建立连接阶段证书申请方节点向证书颁发机构节点提供了客户端点,则该阶段自动完成;

步骤S32:证书申请方节点在公共账本上下载证书的定义来确认该请求对应的证书类型与内容,公共账本返回证书申请方节点查询的证书定义;

步骤S33:证书申请方节点接受证书颁发机构节点发送的请求,并向其发送该证书的申请链接;

步骤S34:证书颁发机构节点向证书持有方节点发送生成该证书需要的数据属性,证书申请方节点向证书颁发机构节点提供相应的属性;

步骤S35:证书颁发机构节点根据证书申请方节点提供的相应属性生成属于该申请人的证书,并将该证书发放记录的哈希头存储在公共账本上;

步骤S36:证书颁发机构节点为证书申请方节点发送证书,该证书的全部声明内容都拥有证书颁发机构节点的公钥DID签名,以此保障该证书涉及的所有数据的真实性;

步骤S37:证书申请方节点收到证书后将其放入密钥管理系统中,以保障个人信息不被泄露。

4.如权利要求3所述的基于区块链的数字证书管理方法,其特征在于,

所述步骤S4包括以下步骤:

步骤S41:证书验证机构节点向证书持有方节点发送邀请信息;

步骤S42:证书持有方节点向公共账本申请证书验证机构节点的DID文档;

步骤S43:公共账本根据证书持有方节点的请求返回相应DID文档,证书持有方节点通过对比DID文档公钥内容与邀请发送者的公钥信息以确认邀请信息的发送者是否为证书验证机构节点;

步骤S44:证书持有方节点创建一个新的DID,该DID只用来与证书验证机构节点交换信息;

步骤S45:证书持有方节点接受证书验证机构节点的邀请请求,并向其发送建立连接请求,该请求中需要提供证书持有方节点新创建的DID及相应的DID文档,该请求内容发送时需要进行加密,且只有使用证书验证机构节点的公钥才能进行解密;

步骤S46:证书验证机构节点创建一对只用来与该证书持有者连接的DID;

步骤S47:证书颁发机构节点接受证书持有方节点建立连接的请求,并向持有者返回接受响应,该响应中需要提供证书验证机构节点新创建的DID及相应的DID文档,该请求发送时需要进行加密,且只有使用证书持有方节点新创建的DID公钥才能进行解密。

5.如权利要求4所述的基于区块链的数字证书管理方法,其特征在于,

所述步骤S5包括以下步骤:

步骤S51:证书验证机构节点通过建立连接阶段使用的DID向证书持有方节点发送声明请求的消息;

步骤S52:证书持有方节点判断是否要披露验证者需要的属性,并根据证书验证机构节点的要求为其提供可验证声明,该声明只披露证书的部分信息;

步骤S53:证书持有方节点对生成的可验证声明签字以确保证明由其生成,并将其发送给证书验证机构节点;

步骤S54:证书验证机构节点根据证书持有方节点提供的可验证声明向公共账本查询相应证明的发放记录以验证其真实性,同时通过累加器验证该声明的撤销状态;

步骤S55:公共账本向证书验证机构节点返回其查询证书的发放记录及撤销状态,证书验证机构节点通过返回的内容可以证实证书持有方节点所持有的数字证书的有效性。

7.如权利要求5所述的基于区块链的数字证书管理方法,其特征在于,

对可验证声明进行验证的过程包括以下内容:

对比声明中持有者公钥与提交者公钥相应的DID文档,验证声明签名的有效性,即声明的生成者与提交者一致;

根据声明中的发行机构的名称,从账本中下载相应的DID文档,从文档中获得发行机构的公钥,验证发行机构是否具有权威性;

对披露字段的相关数据进行验证,保证披露字段已经过发行机构认证;

经过上述验证步骤,即可显示可信的披露内容,同时不会获得除披露内容以外的信息,保障了证明持有者的隐私。

6.如权利要求3所述的基于区块链的数字证书管理方法,其特征在于,

生成可验证证书的过程具体包括以下内容:

通过RSA算法产生一对密钥,随机选择两个不相等的指数p和q,计算n=p*q以及n的欧拉函数随机选取与互质的整数计算e对应的模反元素d,可得到一对密钥Key=(Pub_K,Pri_K)=((n,e),(n,d));

输入证书主体的相关属性及签发机构的信息raw_data;

对输入证书主体的相关属性及签发机构的信息后生成的内容进行hash计算,得到hash值H:H=hash_function(raw_data);

使用签发机构的私钥对哈希值H进行RSA签名:signature=Hd mod n;

将输入证书主体的相关属性及签发机构的信息后生成的内容与使用签发机构的私钥对哈希值进行RSA签名后得到的内容连成一个文件就生成了可验证证书。

8.一种基于区块链的数字证书管理系统,采用如权利要求1~7任一项所述的数字证书管理方法,其特征在于,该系统包括:

模板注册模块,用于在区块链的公共账本上注册凭证模板,注册成功后可根据该模板对证书进行定义;

身份确认模块,用于供双方节点互相确认身份后建立安全连接;

数字证书颁发模块,用于供证书颁发机构节点为证书申请方节点发送数字证书,该证书的全部声明内容均拥有证书颁发机构节点的公钥DID签名;

证书验证模块,用于供证书颁发机构节点基于证书持有方节点提供的可验证声明验证数字证书的有效性。

9.一种设备,其特征在于,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行如权利要求1~7任一项所述的方法的步骤。

10.一种计算机可读取的存储介质,用于存储基于区块链进行数字证书管理的计算机程序,其特征在于,该计算机程序在计算机上运行时执行如权利要求1~7任一项所述的方法的步骤。

说明书
技术领域

本发明涉及数字证书管理技术领域,特别地,涉及一种基于区块链的数字证书管理方法及系统、设备、计算机可读取的存储介质。

现有的证书颁发和验证流程为:X1:证书颁发者向某项资质合格者颁发证书;X2:证书持有者向验证者提供所持有的证书,供其验证;X3:验证者对证书持有者提供的证书进行验证。其中,现有的证书颁发和验证流程具有以下缺点:

1、在传统的证书颁发验证过程中,牵扯到了大量纸质证明的开立和验证,多数情况下,验证者与证书颁发者没有直接联系,因此需要通过电话沟通等形式向证书颁发者进行核实,降低了验证效率,造成大量人力、物力等资源的浪费。

2、纸质或电子证书存在的可能,且监管难度大,不利于证书验证过程的顺利进行。

3、纸质证书不易保管,一旦丢失,可能会造成重要隐私信息泄露;同时补办证明流程繁琐、时间成本高。

4、验证过程需要提供完整的证书,其中可能披露某些重要的、验证过程中不必要的信息,增加了隐私泄露的风险。

5、传统的证书颁发者的数据库为中心数据库,这种类型的数据库一旦遭到恶意攻击,会造成大量成员的隐私泄露。

本发明提供了一种基于区块链的数字证书管理方法及系统、设备、计算机可读取的存储介质,以解决传统的证书颁发和验证流程存在的效率低、安全性差的技术问题。

根据本发明的一个方面,提供一种基于区块链的数字证书管理方法,包括以下步骤:

步骤S1:在区块链的公共账本上注册凭证模板,注册成功后根据该模板对证书进行定义;

步骤S2:证书申请方节点和证书颁发机构节点互相确认身份后建立安全连接;

步骤S3:证书颁发机构节点为证书申请方节点发送数字证书,该证书的全部声明内容均拥有证书颁发机构节点的公钥DID签名;

步骤S4:证书验证机构节点与证书持有方节点互相确认身份后建立安全连接;

步骤S5:证书颁发机构节点基于证书持有方节点提供的可验证声明验证数字证书的有效性。

进一步地,所述步骤S2包括以下步骤:

步骤S21:证书颁发机构节点向证书申请方节点发送邀请信息;

步骤S22:证书申请方节点向公共账本申请该证书颁发机构节点的DID文档;

步骤S23:公共账本根据证书申请方节点的请求返回相应的DID文档,证书申请方节点通过对比DID文档公钥内容与邀请者的公钥信息以确认邀请信息的发送者是否为证书颁发机构节点;

步骤S24:证书申请方节点创建一个新的DID,该DID只用来与证书颁发机构节点交换信息;

步骤S25:证书申请方节点接受证书颁发机构节点的邀请请求,并向其发送建立连接请求,该请求中需要提供证书申请方节点新创建的DID及相应的DID文档,该请求内容发送时需要进行加密,且只有使用证书颁发机构节点的公钥才能进行解密;

步骤S26:证书颁发机构节点创建一对只用来与该证书申请方节点连接的DID;

步骤S27:证书颁发机构节点接受证书申请方节点建立连接的请求,并向证书申请方节点返回接受响应,该响应中需要提供证书颁发机构节点新创建的DID及相应的DID文档,该请求发送时需要进行加密,且只有使用证书申请方节点新创建的DID公钥才能进行解密。

进一步地,所述步骤S3包括以下步骤:

步骤S31:证书颁发机构节点向证书申请方节点发送请求,若建立连接阶段证书申请方节点向证书颁发机构节点提供了客户端点,则该阶段自动完成;

步骤S32:证书申请方节点在公共账本上下载证书的定义来确认该请求对应的证书类型与内容,公共账本返回证书申请方节点查询的证书定义;

步骤S33:证书申请方节点接受证书颁发机构节点发送的请求,并向其发送该证书的申请链接;

步骤S34:证书颁发机构节点向证书持有方节点发送生成该证书需要的数据属性,证书申请方节点向证书颁发机构节点提供相应的属性;

步骤S35:证书颁发机构节点根据证书申请方节点提供的相应属性生成属于该申请人的证书,并将该证书发放记录的哈希头存储在公共账本上;

步骤S36:证书颁发机构节点为证书申请方节点发送证书,该证书的全部声明内容都拥有证书颁发机构节点的公钥DID签名,以此保障该证书涉及的所有数据的真实性;

步骤S37:证书申请方节点收到证书后将其放入密钥管理系统中,以保障个人信息不被泄露。

进一步地,所述步骤S4包括以下步骤:

步骤S41:证书验证机构节点向证书持有方节点发送邀请信息;

步骤S42:证书持有方节点向公共账本申请证书验证机构节点的DID文档;

步骤S43:公共账本根据证书持有方节点的请求返回相应DID文档,证书持有方节点通过对比DID文档公钥内容与邀请发送者的公钥信息以确认邀请信息的发送者是否为证书验证机构节点;

步骤S44:证书持有方节点创建一个新的DID,该DID只用来与证书验证机构节点交换信息;

步骤S45:证书持有方节点接受证书验证机构节点的邀请请求,并向其发送建立连接请求,该请求中需要提供证书持有方节点新创建的DID及相应的DID文档,该请求内容发送时需要进行加密,且只有使用证书验证机构节点的公钥才能进行解密;

步骤S46:证书验证机构节点创建一对只用来与该证书持有者连接的DID;

步骤S47:证书颁发机构节点接受证书持有方节点建立连接的请求,并向持有者返回接受响应,该响应中需要提供证书验证机构节点新创建的DID及相应的DID文档,该请求发送时需要进行加密,且只有使用证书持有方节点新创建的DID公钥才能进行解密。

进一步地,所述步骤S5包括以下步骤:

步骤S51:证书验证机构节点通过建立连接阶段使用的DID向证书持有方节点发送声明请求的消息;

步骤S52:证书持有方节点判断是否要披露验证者需要的属性,并根据证书验证机构节点的要求为其提供可验证声明,该声明只披露证书的部分信息;

步骤S53:证书持有方节点对生成的可验证声明签字以确保证明由其生成,并将其发送给证书验证机构节点;

步骤S54:证书验证机构节点根据证书持有方节点提供的可验证声明向公共账本查询相应证明的发放记录以验证其真实性,同时通过累加器验证该声明的撤销状态;

步骤S55:公共账本向证书验证机构节点返回其查询证书的发放记录及撤销状态,证书验证机构节点通过返回的内容可以证实证书持有方节点所持有的数字证书的有效性。

进一步地,生成可验证证书的过程具体包括以下内容:

通过RSA算法产生一对密钥,随机选择两个不相等的指数p和q,计算n=p*q以及n的欧拉函数随机选取与互质的整数计算e对应的模反元素d,可得到一对密钥Key=(Pub_K,Pri_K)=((n,e),(n,d));

输入证书主体的相关属性及签发机构的信息raw_data;

对输入证书主体的相关属性及签发机构的信息后生成的内容进行hash计算,得到hash值H:H=hash_function(raw_data);

使用签发机构的私钥对哈希值H进行RSA签名:signature=Hd mod n;

将输入证书主体的相关属性及签发机构的信息后生成的内容与使用签发机构的私钥对哈希值进行RSA签名后得到的内容连成一个文件就生成了可验证证书。

进一步地,对可验证声明进行验证的过程包括以下内容:

对比声明中持有者公钥与提交者公钥相应的DID文档,验证声明签名的有效性,即声明的生成者与提交者一致;

根据声明中的发行机构的名称,从账本中下载相应的DID文档,从文档中获得发行机构的公钥,验证发行机构是否具有权威性;

对披露字段的相关数据进行验证,保证披露字段已经过发行机构认证;

经过上述验证步骤,即可显示可信的披露内容,同时不会获得除披露内容以外的信息,保障了证明持有者的隐私。

另外,本发明还提供一种基于区块链的数字证书管理系统,采用如上所述的数字证书管理方法,该系统包括:

模板注册模块,用于在区块链的公共账本上注册凭证模板,注册成功后可根据该模板对证书进行定义;

身份确认模块,用于供双方节点互相确认身份后建立安全连接;

数字证书颁发模块,用于供证书颁发机构节点为证书申请方节点发送数字证书,该证书的全部声明内容均拥有证书颁发机构节点的公钥DID签名;

证书验证模块,用于供证书颁发机构节点基于证书持有方节点提供的可验证声明验证数字证书的有效性。

另外,本发明还提供一种设备,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行如上所述的方法的步骤。

另外,本发明还提供一种计算机可读取的存储介质,用于存储基于区块链进行数字证书管理的计算机程序,该计算机程序在计算机上运行时执行如上所述的方法的步骤。

本发明具有以下效果:

本发明的基于区块链的数字证书管理方法,用于生成证书的凭证模板需要经过注册程序后才能发行,从证书发行的根源上进行了严格管控,提高了证书伪造的门槛,提高了公信度,并且,每个证书的凭证模板、发送记录均可溯源,彻底解决了证书伪造的问题,可降低证书检验成本、提高证书检验效率。并且,在颁发证书和验证证书之前,申请者与颁发者之间、持有者与验证者需要先建立安全连接,本发明采用的DID技术则为安全通信提供了基础,消息发送时使用公钥对信息进行加密,并将其发送到指定的服务端点,只有使用对应的私钥才能对密文进行解密,增加了证书传递的安全性。另外,在证书验证阶段,证书验证者基于持有者提供的可验证声明即可完成证书的有效性验证,而可验证申明的生成过程结合了零知识证明、默克尔树等密码学技术来选择性地披露证书属性,可以保障证书持有者的隐私不被泄露,提高了安全性。

另外,本发明的基于区块链的数字证书管理系统、设备、存储介质同样具有上述优点。

除了上面所描述的目的、特征和优点之外,本发明还有其它的目的、特征和优点。下面将参照图,对本发明作进一步详细的说明。

构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明优选实施例的基于区块链的数字证书管理方法的流程示意图。

图2是图1中的步骤S2的子流程示意图。

图3是图1中的步骤S3的子流程示意图。

图4是图1中的步骤S4的子流程示意图。

图5是图1中的步骤S5的子流程示意图。

图6是本发明优选实施例中的数字证书的生命周期包含的各个阶段的示意图。

图7是本发明另一实施例的基于区块链的数字证书管理系统的模块结构示意图。

以下结合附图对本发明的实施例进行详细说明,但是本发明可以由下述所限定和覆盖的多种不同方式实施。

如图1所示,本发明的优选实施例提供一种基于区块链的数字证书管理方法,包括以下步骤:

步骤S1:在区块链的公共账本上注册凭证模板,注册成功后根据该模板对证书进行定义;

步骤S2:证书申请方节点和证书颁发机构节点互相确认身份后建立安全连接;

步骤S3:证书颁发机构节点为证书申请方节点发送数字证书,该证书的全部声明内容均拥有证书颁发机构节点的公钥DID签名;

步骤S4:证书验证机构节点与证书持有方节点互相确认身份后建立安全连接;

步骤S5:证书颁发机构节点基于证书持有方节点提供的可验证声明验证数字证书的有效性。

可以理解,根据功能的不同,区块链网络内用于证明的材料可分为凭证模板、可验证证书和可验证声明三种类型。其中,各证明的数据结构介绍如下:

凭证模板是注册到分布式数据库中的证书模板,其由证书发行机构设计,经机构签名后注册到分布式账本上,凭证模板可包含凭证类型、凭证版本号、凭证数据结构、发行机构公钥及签名等内容,注册到分布式账本上的凭证模板可被系统中的所有人下载查看。

可验证证书是根据凭证模板生成的数字证书,被个人、机构等实体所持有。一般来说,可验证证书需要包括以下内容:1、证书元数据,包含相关凭证的内容,如发行机构、凭证类型等;2、声明,一组关于持有主体的描述性说明;3、发行机构的数字签名,可验证证书的本质是一个DID给另一个DID的某些属性做背书而发出的描述性声明,因此需要附加背书方的数字签名,以保障证书的真实性;4持有者公钥,用来描述证书持有者的身份,由于可验证证书中包含用户的隐私信息,所以一般保存在私有设备或需要授权的网络地址中。

可验证声明则是基于零知识证明原理、由可验证证书生成的、可选择性披露部分属性的、具有验证作用的声明,DID持有者可以通过可验证声明向其他组织或个人证明自己的某些断言是可信的,同时,结合零知识证明、默克尔树等密码学技术选择性地披露证书属性,可以保障证书持有者的隐私不被泄露。一般来说,可验证声明需要包括以下内容:1、证明列表,即披露的属性;2、持有者公钥,用来描述该声明生成者的身份;3、披露字段索引,通过索引可以在不泄露其他信息的情况下展示需要披露的属性;4、经过发证机构签名的默克尔根,证明披露的声明属性由颁发机关认证,且未被篡改。其中,DID是一个特定格式的字符串,用来代表一个实体的数字身份,DID标识独立于任何集中注册表、身份提供者或证书颁发机构,具有全球唯一性、可解析、可用性高、可加密验证等特点,每一个DID标识都会对应一个DID文档,该文档是一组JSON字符串,文档一般包含DID主题、公钥、服务端点、授权等内容。

可以理解,本实施例的基于区块链的数字证书管理方法,用于生成证书的凭证模板需要经过注册程序后才能发行,从证书发行的根源上进行了严格管控,提高了证书伪造的门槛,提高了公信度,并且,每个证书的凭证模板、发送记录均可溯源,彻底解决了证书伪造的问题,可降低证书检验成本、提高证书检验效率。并且,在颁发证书和验证证书之前,申请者与颁发者之间、持有者与验证者需要先建立安全连接,本发明采用的DID技术则为安全通信提供了基础,消息发送时使用公钥对信息进行加密,并将其发送到指定的服务端点,只有使用对应的私钥才能对密文进行解密,增加了证书传递的安全性。另外,在证书验证阶段,证书验证者基于持有者提供的可验证声明即可完成证书的有效性验证,而可验证申明的生成过程结合了零知识证明、默克尔树等密码学技术来选择性地披露证书属性,可以保障证书持有者的隐私不被泄露,提高了安全性。因此,本发明的基于区块链的数字证书管理方法,设计了一种基于区块链的数字证书注册、颁发及验证方法,提升证书验证过程的效率,降低人力、物力成本,利用非对称加密、Hash算法、数字签名等技术实现了证书的数字化,并确保证书不可篡改、不可伪造,从而保证业务中用到的各种证书的真实性,并利用分布式账本技术,打破信息孤岛,实现数据共享,保证各类证书的真实性,还利用基于零知识证明的技术对敏感数据进行可控分享,在保证业务顺利进行的基础上,最大程度地保护了证书持有者的隐私,同时,利用区块链技术规范了各类证书注册流程及结构,有利于政府部门进行系统化监管。

可以理解,在所述步骤S1中,可以是证书颁发机构或者公共机构将凭证模板注册到公共账本上,凭证模板注册成功后,可以根据该模板对证书进行定义,例如证书名称、证书版本等。

可以理解,如图2所示,所述步骤S2包括以下步骤:

步骤S21:证书颁发机构节点向证书申请方节点发送邀请信息;

步骤S22:证书申请方节点向公共账本申请该证书颁发机构节点的DID文档;

步骤S23:公共账本根据证书申请方节点的请求返回相应的DID文档,证书申请方节点通过对比DID文档公钥内容与邀请者的公钥信息以确认邀请信息的发送者是否为证书颁发机构节点;

步骤S24:证书申请方节点创建一个新的DID,该DID只用来与证书颁发机构节点交换信息;

步骤S25:证书申请方节点接受证书颁发机构节点的邀请请求,并向其发送建立连接请求,该请求中需要提供证书申请方节点新创建的DID及相应的DID文档,该请求内容发送时需要进行加密,且只有使用证书颁发机构节点的公钥才能进行解密;

步骤S26:证书颁发机构节点创建一对只用来与该证书申请方节点连接的DID;

步骤S27:证书颁发机构节点接受证书申请方节点建立连接的请求,并向证书申请方节点返回接受响应,该响应中需要提供证书颁发机构节点新创建的DID及相应的DID文档,该请求发送时需要进行加密,且只有使用证书申请方节点新创建的DID公钥才能进行解密。至此,证书申请方节点与证书颁发机构节点已互相确认身份,且拥有安全交流的密钥,双方正式建立安全连接。

可以理解,在正式颁发证书之前,申请者和颁发者基于DID技术进行身份的互相确认,且申请者和颁发者之间通过独一无二的DID来进行信息交互,建立了专属的信息通道,防止信息被泄露,确保了证书传递的安全性。

可以理解,如图3所示,所述步骤S3包括以下步骤:

步骤S31:证书颁发机构节点向证书申请方节点发送请求,若建立连接阶段证书申请方节点向证书颁发机构节点提供了客户端点,则该阶段自动完成;

步骤S32:证书申请方节点在公共账本上下载证书的定义来确认该请求对应的证书类型与内容,公共账本返回证书申请方节点查询的证书定义;

步骤S33:证书申请方节点接受证书颁发机构节点发送的请求,并向其发送该证书的申请链接;

步骤S34:证书颁发机构节点向证书持有方节点发送生成该证书需要的数据属性,证书申请方节点向证书颁发机构节点提供相应的属性;

步骤S35:证书颁发机构节点根据证书申请方节点提供的相应属性生成属于该申请人的证书,并将该证书发放记录的哈希头存储在公共账本上;

步骤S36:证书颁发机构节点为证书申请方节点发送证书,该证书的全部声明内容都拥有证书颁发机构节点的公钥DID签名,以此保障该证书涉及的所有数据的真实性;

步骤S37:证书申请方节点收到证书后将其放入密钥管理系统中,以保障个人信息不被泄露。

可以理解,证书颁发机构与申请者建立安全连接后,颁发机构即可根据凭证模板和申请者提供的数据属性生成证书,通过加密的方式将证书发送给申请者,只有使用申请者的私钥才能对加密内容进行解密,并且将证书发放记录的哈希头存储在公共账本中,便于后期进行证书验证,并且,数字证书被存储在申请者的密钥管理系统中,与传统纸质证书相比不易丢失,减少了因补办证明而花费的时间、人力成本。

可以理解,如图4所示,所述步骤S4包括以下步骤:

步骤S41:证书验证机构节点向证书持有方节点发送邀请信息;

步骤S42:证书持有方节点向公共账本申请证书验证机构节点的DID文档;

步骤S43:公共账本根据证书持有方节点的请求返回相应DID文档,证书持有方节点通过对比DID文档公钥内容与邀请发送者的公钥信息以确认邀请信息的发送者是否为证书验证机构节点;

步骤S44:证书持有方节点创建一个新的DID,该DID只用来与证书验证机构节点交换信息;

步骤S45:证书持有方节点接受证书验证机构节点的邀请请求,并向其发送建立连接请求,该请求中需要提供证书持有方节点新创建的DID及相应的DID文档,该请求内容发送时需要进行加密,且只有使用证书验证机构节点的公钥才能进行解密;

步骤S46:证书验证机构节点创建一对只用来与该证书持有者连接的DID;

步骤S47:证书颁发机构节点接受证书持有方节点建立连接的请求,并向持有者返回接受响应,该响应中需要提供证书验证机构节点新创建的DID及相应的DID文档,该请求发送时需要进行加密,且只有使用证书持有方节点新创建的DID公钥才能进行解密。

可以理解,在正式进行证书验证之前,持有者(即之前的申请者)和验证机构基于DID技术进行身份的互相确认,且持有者和验证者之间通过独一无二的DID来进行信息交互,建立了专属的信息通道,防止信息被泄露,确保了信息传递的安全性。

可以理解,如图5所示,所述步骤S5包括以下步骤:

步骤S51:证书验证机构节点通过建立连接阶段使用的DID向证书持有方节点发送声明请求的消息;

步骤S52:证书持有方节点判断是否要披露验证者需要的属性,并根据证书验证机构节点的要求为其提供可验证声明,该声明只披露证书的部分信息;

步骤S53:证书持有方节点对生成的可验证声明签字以确保证明由其生成,并将其发送给证书验证机构节点;

步骤S54:证书验证机构节点根据证书持有方节点提供的可验证声明向公共账本查询相应证明的发放记录以验证其真实性,同时通过累加器验证该声明的撤销状态;若该声明处于撤销状态,则该数字证书处于失效状态;

步骤S55:公共账本向证书验证机构节点返回其查询证书的发放记录及撤销状态,证书验证机构节点通过返回的内容可以证实证书持有方节点所持有的数字证书的有效性。

可以理解,证书持有者根据验证者的要求为其提供可验证声明进行验证,而不是直接提供证书进行验证,可验证声明是基于零知识证明原理、由可验证证书生成的、可选择性披露部分属性的、具有验证作用的声明,可以选择性地披露证书属性,既确保了证书验证有效进行,又可以保障证书持有者的隐私不被泄露,在提高数据分享、打破数据孤岛、增加验证各方互信的同时,保护了各个节点的敏感数据,对敏感数据进行了可控分享。

可以理解,如图6所示,数字证书的整个生命周期可分成生成、颁发、生成可验证声明、验证、撤销五个阶段,在生成阶段:证书颁发机构与申请者建立安全连接后,颁发者根据凭证模板和申请者的属性生成证书;在颁发阶段:证书颁发机构通过加密的方式将证书发送给申请者,只有使用申请者的私钥才能对加密内容进行解密;在生成可验证声明阶段:以可验证证书为基础,结合默克尔树、数字签名等密码学技术,生成具有验证功能的、只披露部分属性的可验证声明的过程;在验证阶段:验证者收到可验证声明后,对声明的真实性和有效进行检验;在撤销阶段:因时效或其他原因,撤销可验证证书的定义,撤销后证书不再具有证明功能。

具体地,可验证证书的生成主要包括以下几个环节:

1、通过RSA算法产生一对密钥,随机选择两个不相等的指数p和q,计算n=p*q以及n的欧拉函数随机选取与互质的整数计算e对应的模反元素d;可得到一对密钥:Key=(Pub_K,Pri_K)=((n,e),(n,d));

2、输入证书主体的相关属性及签发机构的信息raw_data;

3、对步骤2生成的内容进行hash计算,得到hash值H:

H=hash_function(raw_data)

4、使用签发机构的私钥对哈希值H进行RSA签名:

signature=Hd mod n

5、将步骤2和步骤4得到的内容连成一个文件就生成了可验证证书。

另外,可验证证书的颁发过程具体为:

当颁发者向申请者发送证书时,应用端需要对发送内容进行加密,申请者收到密文后需要进行解密,解密和解密的数学描述如下:

1、加密过程:信息发送者sender选取一个非重复的随机数Nsender、当前时间tsender、对方的标志信息IDrecipient以及其他需要加密的内容Csender;用Nsender、tsender、IDrecipient、Csender组成明文信息msender={Nsender,tsender,IDrecipient,Csender},并将msender表示成一个域元素然后在[1,n-1]内随机选取一个随机数k,以及信息接收方的公钥信息PbIrecipient=(F(sender),G,n,Qrecipient);计算点(x1,y1)=kG,点(x2,y2)=kQrecipient,生成以下密文:

若(x2,y2)=0,需要重新选取随机数k。

2、解密过程:对于密文申请者可以使用自己的私钥d rcipient对内容进行解密:

解密后消息接收方就可获取明文msender的内容,同时通过标志信息IDrecipient可以验证自己是否为消息接收者。

另外,可验证声明的生成阶段具体为:

为了保障证书持有者的隐私数据,本发明结合零知识证明理论,采用随机盐和默克尔树两种方法生成可验证证明。首先对证书里的所有属性内容进行随机盐加密:

attr'=Hash_function(attr+random_seed)

然后确定数据索引index,方便快速查询定位披露属性在默克尔树中的位置,最后提供默克尔根签名rootsignature保证数据没有被改动。

可验证声明的验证阶段具体为:

验证者收到可验证声明后,需要通过以下步骤验证可验证声明的真实性:

1、对比声明中持有者公钥与提交者公钥相应的DID文档,验证声明签名的有效性,即声明的生成者与提交者一致;

2、根据声明中的发行机构的名称,从账本中下载相应的DID文档,从文档中获得发行机构的公钥,验证发行机构是否具有权威性;

3、对披露字段的数据索引、随机盐、默克尔根等相关数据进行验证,保证披露字段已经过发行机构认证;

4、经过上述验证步骤,即可显示可信的披露内容,同时不会获得除披露内容以外的信息,保障了证明持有者的隐私。

证书的撤销具体为:

证书的撤销过程使用基于密码学的累加器算法来实现。首先,令某个实体持有的证书集合为S=x1,x2…xn,用:

作为集合S的累加器;其中N=p*q,p、q为值很大的素数,g是模N上的生成元。当撤销集合S中的证书x1时,将累加器的状态更新为:

此时,根据裴蜀定理,在不知道x1的具体内容的情况下,实体无法证明x1∈S。

另外,如图7所示,本发明的另一实施例还提供一种基于区块链的数字证书管理系统,优选采用如上所述的数字证书管理方法,该系统包括:

模板注册模块,用于在区块链的公共账本上注册凭证模板,注册成功后可根据该模板对证书进行定义;

身份确认模块,用于供双方节点互相确认身份后建立安全连接;

数字证书颁发模块,用于供证书颁发机构节点为证书申请方节点发送数字证书,该证书的全部声明内容均拥有证书颁发机构节点的公钥DID签名;

证书验证模块,用于供证书颁发机构节点基于证书持有方节点提供的可验证声明验证数字证书的有效性。

可以理解,本实施例的基于区块链的数字证书管理系统,用于生成证书的凭证模板需要经过注册程序后才能发行,从证书发行的根源上进行了严格管控,提高了证书伪造的门槛,提高了公信度,并且,每个证书的凭证模板、发送记录均可溯源,彻底解决了证书伪造的问题,可降低证书检验成本、提高证书检验效率。并且,在颁发证书和验证证书之前,申请者与颁发者之间、持有者与验证者需要先建立安全连接,本发明采用的DID技术则为安全通信提供了基础,消息发送时使用公钥对信息进行加密,并将其发送到指定的服务端点,只有使用对应的私钥才能对密文进行解密,增加了证书传递的安全性。另外,在证书验证阶段,证书验证者基于持有者提供的可验证声明即可完成证书的有效性验证,而可验证申明的生成过程结合了零知识证明、默克尔树等密码学技术来选择性地披露证书属性,可以保障证书持有者的隐私不被泄露,提高了安全性。

另外,本发明还提供一种设备,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行如上所述的方法的步骤。

另外,本发明还提供一种计算机可读取的存储介质,用于存储基于区块链进行数字证书管理的计算机程序,该计算机程序在计算机上运行时执行如上所述的方法的步骤。

一般计算机可读取介质的形式包括:软盘(floppy disk)、可挠性盘片(flexibledisk)、硬盘、磁带、任何其与的磁性介质、CD-ROM、任何其余的光学介质、打孔卡片(punchcards)、纸带(paper tape)、任何其余的带有洞的图案的物理介质、随机存取存储器(RAM)、可编程只读存储器(PROM)、可抹除可编程只读存储器(EPROM)、快闪可抹除可编程只读存储器(FLASH-EPROM)、其余任何存储器芯片或卡匣、或任何其余可让计算机读取的介质。指令可进一步被一传输介质所传送或接收。传输介质这一术语可包含任何有形或无形的介质,其可用来存储、编码或承载用来给机器执行的指令,并且包含数字或模拟通信信号或其与促进上述指令的通信的无形介质。传输介质包含同轴电缆、铜线以及光纤,其包含了用来传输计算机数据信号的总线的导线。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

本文发布于:2023-04-15 03:21:18,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/87017.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图