区块链密码证书服务方法、系统、存储介质及装置

阅读: 评论:0

著录项
  • CN202110737690.9
  • 20210630
  • CN113472783A
  • 20211001
  • 杭州云象网络技术有限公司
  • 黄步添;方航;苑振霞;罗春凤;许浩;王海涛
  • H04L29/06
  • H04L29/06 H04L9/32

  • 浙江省杭州市余杭区仓前街道余杭塘路海智中心7号楼
  • 浙江(33)
  • 杭州五洲普华专利代理事务所(特殊普通合伙)
  • 徐晶晶
摘要
本发明公开了区块链密码证书服务方法、系统、存储介质及装置,方法包括:响应于证书客户端获取证书申请者的标识名和公钥信息请求;区块链密码服务模块通知加密机生成证书签名请求,并将证书申请者的公私钥信息和证书签名请求返回到证书客户端,再由证书客户端发送到证书服务器;证书服务器基于所述证书签名请求生成证书,并采用根证书私钥签名生成证书公钥信息,并将此证书公钥信息同步到证书客户端;证书客户端将证书内容写入文件最终生成证书文件,并存储于区块链密码服务模块。本发明能够实现对联盟链网络内各个实体的身份证书进行管理。
权利要求

1.一种区块链密码证书服务方法,其特征在于,具体实现步骤包括:

响应于证书客户端获取证书申请者的标识名和公钥信息请求;

区块链密码服务模块通知加密机生成证书签名请求,并将证书申请者的公私钥信息和证书签名请求返回到证书客户端,再由证书客户端发送到证书服务器;

证书服务器基于所述证书签名请求生成证书,并采用根证书私钥签名生成证书公钥信息,并将此证书公钥信息同步到证书客户端;

证书客户端将证书内容写入文件最终生成证书文件,并存储于区块链密码服务模块。

2.根据权利要求1所述的区块链密码证书服务方法,其特征在于,所述区块链密码服务模块基于加密机提供加解密服务,所述加密机通过调用所述区块链密码服务模块连接证书服务模块的国密证书接口解耦数字证书服务和具体数字证书库,插件化证书库。

3.根据权利要求2所述的区块链密码证书服务方法,其特征在于,所述证书库包括插件化标准加密证书库和国密证书库,所述插件化过程通过在对等节点和排序节点的配置文件增加配置项设置使用证书库插件的类型,所述类型包括加密证书库插件和国密证书库插件,创建证书库插件后存储于证书服务模块。

4.根据权利要求2所述的区块链密码证书服务方法,其特征在于,所述证书服务模块通过所述国密证书接口调用功能函数接口获取证书服务,功能函数接口包括证书创建函数接口、解析证书函数接口、证书池函数接口、DER格式转换函数接口、PEM格式转换函数接口。

5.根据权利要求1所述的区块链密码证书服务方法,其特征在于,所述生成证书,具体实现包括:

通过国密算法解析所述证书服务器的申请证书请求及签发证书;

所述国密算法通过包数据工具类扩展,所述数据工具类实现证书的编解码操作;

区块链密码服务模块引用包工具类对外提供国密算法证书服务。

6.根据权利要求1或5所述的区块链密码证书服务方法,其特征在于,所述证书服务器由服务器集组成,以树形架构组织一个根证书和多个中间证书,由根证书所述生成证书的具体实现步骤包括:

根据证书申请者信息生成证书请求;

区块链密码服务模块调用包数据工具类中的密钥请求生成函数生成公私钥对;

若选择配置国密算法,调用创建国密证书函数来生成根证书;或者,

调用云端的新签名者生成根证书;或者,

所述创建国密证书函数首先将证书请求转化为国密的证书签名请求;

然后调用解析证书请求函数对证书签名请求进行解析,生成证书模版;

最后调用证书服务模块的创建证书函数,用私钥对证书模版进行签名生成根证书。

7.根据权利要求1所述的区块链密码证书服务方法,其特征在于,由证书服务器基于所述证书签名请求计算证书签名的具体实现步骤包括:

调用解析证书请求函数,解析国密证书生成请求,获得需要签发的证书模版;

通过调用包数据工具类中的获取签名证书文件函数获取签名;

通过调用证书服务模块中的创建证书函数使用所述证书模版进行签名,得到国密证书。

8.一种区块链密码证书服务系统,其特征在于,具体组成包括:

证书客户端:用于发出获取证书申请者的标识名和公钥信息请求;用于将证书申请者的公私钥信息和证书签名请求发送到证书服务器;用于将证书内容写入文件最终生成证书文件,并存储于区块链密码服务模块;

区块链密码服务模块:用于通知加密机生成证书签名请求,并将证书申请者的公私钥信息和证书签名请求返回到证书客户端;用于存储证书文件;用于调用包数据工具类中的密钥请求生成函数生成公私钥对;用于引用所述包工具类对外提供国密算法证书服务;

加密机:用于生成证书签名请求;用于提供加解密服务,用于调用所述区块链密码服务模块;

证书服务模块:用于通过国密证书接口解耦数字证书服务和具体数字证书库,插件化证书库;用于通过所述国密证书接口调用功能函数接口获取证书服务

证书服务器:用于生成证书和证书公钥信息,并将此证书公钥信息同步到证书客户端;

云端:用于提供新签名者生成根证书。

9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任意一项所述的方法步骤。

10.一种区块链密码证书服务装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任意一项所述的方法步骤。

说明书
技术领域

本发明属于区块链加密技术领域,具体涉及区块链密码证书服务方法、系统、存储介质及装置。

BCCSP(Blockchaincryptoprovider)即区块链加密提供商,用于定义选择使用的密码学实现库,该模块主要负责摘要生成,非对称密钥的签名与验证,根据证书查私钥等功能,该模块提供了一系列的接口,这些接口定义了摘要的生成,签名,验证,加密,解密等方法,另外,所有自定义的密码学实现库都需要实现这些接口,以此达到密码学算法的可插拔。

基于BCCSP实现的联盟链数字证书认证中心,提供诸如用户信息注册,数字证书发行等功能。联盟链提供国密算法服务以及支持各种密码算法后,需要同时使用基于国密或各种密码算法的数字证书服务,因此,需要区块链密码证书服务方法、系统、存储介质及装置。

本发明基于上述背景和现有技术所存在的问题,拟设计区块链密码证书服务方法、系统、存储介质及装置,本发明的方法提高了密码证书服务的效率,能够对联盟链网络内各个实体的身份证书进行管理,支持各种加密算法的区块链数字证书的生成与签发。本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。

为了实现本发明的这些目的和其它优点,提供了一种区块链密码证书服务方法,具体实现步骤包括:

响应于证书客户端ca-client获取证书申请者的标识名DN和公钥信息请求;

区块链密码服务模块通知加密机生成证书签名请求CSR,并将证书申请者的公私钥信息和证书签名请求返回到证书客户端ca-client,再由证书客户端ca-client发送到证书服务器ca-server;

证书服务器ca-server基于所述证书签名请求CSR生成证书,并采用根证书私钥签名生成证书公钥信息,并将此证书公钥信息同步到证书客户端ca-client;

证书客户端ca-client将证书内容写入文件最终生成证书文件,并存储于区块链密码服务模块,这样信安加密机就能根据证书内容中的DN到加密机内部的公私钥,以此进行一些签名、验签,加解密操作。

进一步地,所述区块链密码服务模块基于加密机提供加解密服务,所述加密机通过调用所述区块链密码服务模块连接证书服务模块的国密证书接口解耦数字证书服务和具体数字证书库,插件化证书库。

在上述方案中,所述证书库包括插件化标准加密证书库和国密证书库,所述插件化过程通过在对等节点和排序节点的配置文件增加配置项设置使用证书库插件的类型,所述类型包括加密证书库插件和国密证书库插件,创建证书库插件后存储于证书服务模块,使证书服务模块支持标准加密证书和国密证书。

在上述方案中,所述证书服务模块通过所述国密证书接口调用功能函数接口获取证书服务,功能函数接口包括证书创建函数接口、解析证书函数接口、证书池函数接口、DER格式转换函数接口、PEM格式转换函数接口等。

进一步地,所述生成证书,具体实现包括:

通过国密算法解析所述证书服务器的申请证书请求及签发证书;

所述国密算法通过包数据工具类扩展,所述数据工具类实现证书的编解码操作;

区块链密码服务模块引用包工具类对外提供国密算法证书服务。

进一步地,所述证书服务器由服务器集组成,以树形架构组织一个根证书和多个中间证书,由根证书所述生成证书的具体实现步骤包括:

根据证书申请者信息生成证书请求;

区块链密码服务模块调用包数据工具类中的密钥请求生成函数生成公私钥对;

若选择配置国密算法,调用创建国密证书函数生成根证书;或者,

调用云端的新签名者生成根证书;

所述创建国密证书函数首先将证书请求转化为国密的证书签名请求;

然后调用解析证书请求函数对证书签名请求进行解析,生成证书模版;

最后调用证书服务模块的创建证书函数用自身私钥对证书模版进行签名生成根证书。

进一步地,由证书服务器基于所述证书签名请求计算证书签名的具体实现步骤包括:

调用解析证书请求函数,解析国密证书生成请求,获得需要签发的证书的模版。

通过调用包数据工具类中的获取签名证书文件函数获取签名者。

通过调用证书服务模块中的创建证书函数使用CA证书为模版进行签名,得到国密证书。

另一方面,本发明提出一种区块链密码证书服务系统,具体组成包括:

证书客户端ca-client:用于发出获取证书申请者的标识名DN和公钥信息请求;用于将证书申请者的公私钥信息和证书签名请求发送到证书服务器ca-server;用于将证书内容写入文件最终生成证书文件,并存储于区块链密码服务模块;

区块链密码服务模块:用于通知加密机生成证书签名请求CSR,并将证书申请者的公私钥信息和证书签名请求返回到证书客户端ca-client;用于存储证书文件;用于调用包数据工具类中的密钥请求生成函数生成公私钥对;用于引用所述包工具类对外提供国密算法证书服务;

加密机:用于生成证书签名请求CSR;用于提供加解密服务,用于调用所述区块链密码服务模块;

证书服务模块:用于通过国密证书接口解耦数字证书服务和具体数字证书库,插件化证书库;用于通过所述国密证书接口调用功能函数接口获取证书服务

证书服务器:用于生成证书和证书公钥信息,并将此证书公钥信息同步到证书客户端ca-client;

云端:用于提供新签名者生成根证书。

第三方面,本发明提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现以上任意一项的方法和步骤。

第四方面,本发明提出了一种区块链密码证书服务装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时可实现以上任意一项的方法和步骤。

本发明至少包括以下有益效果:本发明通过证书客户端、区块链密码服务模块、证书服务器和加密机来为联盟链网络内各个实体提供支持各种密码算法的身份证书服务,以便使用数字证书时,能验证国密的数字签名,辨别用户身份。

为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,图中显而易见可以的具体实现流程作为本发明进一步的具体实施例,落入本发明的保护范围。

图1为本发明关于证书客户端(client)和证书服务器(server)的申请证书交互流程图;

图2为本发明国密证书生成流程图;

图3为本发明生成根证书的流程图;

为了清晰地阐述本发明,使本发明实施例的目的、技术方案和优点更加清楚,下面结合了本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,以令本领域技术人员参照说明书文字能够据以实施。下面将附图结合具体实施方式对本发明的技术加以详细说明。

本发明的名称解释:

区块链密码服务模块:即BCCSP模块,Blockchaincryptoprovider,区块链加密提供商,本发明对其进行改造并称为区块链密码服务模块;

证书客户端:ca-client,或简称为client;

标识名:DN,distinguishedname

证书签名请求:CSR,certificatesigningrequest

证书服务器:ca-server,或简称为server;

证书服务模块:chain/x509模块;

对等节点:Peer节点;

排序节点:Orderer节点;

包数据工具类:chain-ca/util;

包工具类:chain-ca/vendor;

证书请求:CertificateRequest;

区块链密码服务模块调用包工具类中的密钥请求生成函数:util.BCCSPKeyRequestGenerate;

创建国密证书函数:createGmCert;

云端:cloudflare;

新签名者:NewFromSigner;

证书模版:template;

创建证书函数:createCertificate;

解析证书请求函数:parseCertificateRequest;

包数据工具类中的获取签名证书文件函数:util.GetSignerFromCertFile;

证书服务模块中的创建证书函数:x509.CreateCertificate。

本发明中基于以上解释说明本发明所涉及的名称内容,各实施例参照本发明的名称解释进行简化,本发明简化后的名称解释并不限于本发明的名称含义限定,本发明的名称解释中的名称及其解释或涉及到本发明技术方案实现的,落入本发明的保护范围内。

具体实施例1:

图1示出了根据本发明的一种实现形式,示出了本发明关于client和server的申请证书交互流程图,本实施例提供一种区块链密码证书服务方法,具体实现步骤包括:

Step1:响应于ca-client获取证书申请者的DN和公钥信息请求;

Step2:BCCSP模块通知加密机生成CSR,并将证书申请者的公私钥信息和证书签名请求返回到ca-client,再由ca-client发送到ca-server;所述BCCSP模块基于加密机提供加解密服务,所述加密机通过调用所述区块链密码服务模块连接chain/x509模块的国密证书接口解耦数字证书服务和具体数字证书库,插件化证书库。

其中,所述证书库包括插件化标准加密证书库和国密证书库,所述插件化过程通过在Peer节点和Orderer节点的配置文件增加配置项设置使用证书库插件的类型,所述类型包括加密证书库插件和国密证书库插件,创建证书库插件后存储于证书服务模块,使证书服务模块支持标准加密证书和国密证书。

另外,所述chain/x509模块通过所述国密证书接口调用功能函数接口获取证书服务,功能函数接口包括证书创建函数接口、解析证书函数接口、证书池函数接口、DER格式转换函数接口、PEM格式转换函数接口等。

Step3:ca-server基于所述证书签名请求CSR生成证书,并采用根证书私钥签名生成证书公钥信息,并将此证书公钥信息同步到ca-client;

其中,

S31:所述生成证书,如图2所述,为本发明采用国密算法的证书生成流程图,具体实现包括:

S311:通过国密算法解析所述证书服务器的申请证书请求及签发证书;

S312:所述国密算法通过chain-ca/util扩展,所述数据工具类实现证书的编解码操作;

S313:BCCSP模块引用所述chain-ca/vendor对外提供国密算法证书服务。

S32:所述证书服务器由服务器集组成,以树形架构组织一个根证书和多个中间证书,由根证书所述生成证书,如图3所述,具体实现步骤包括:

S321:根据证书申请者信息生成CertificateRequest;

S322:调用util.BCCSPKeyRequestGenerate生成公私钥对;

S323:若选择配置国密算法,调用createGmCert来生成根证书;或者,

S324:调用cloudflare的NewFromSigner生成根证书;或者,

S325:所述createGmCert首先将CertificateRequest转化为国密的CSR;

S326:然后调用parseCertificateRequest对CSR进行解析,生成template;

S327:最后调用chain/x509模块的createCertificate,用自身私钥对所述template进行签名生成根证书。

S33:由ca-server基于所述CSR计算证书签名,具体实现步骤包括:

S331:调用parseCertificateRequest,解析国密证书生成请求,获得需要签发的template。

S332:通过util.GetSignerFromCertFile获取签名者。

S333:通过调用x509.CreateCertificate使用所述template进行签名,得到国密证书。

Step4:ca-client将证书内容写入文件最终生成证书文件,并存储于BCCSP模块,这样信安加密机就能根据证书内容中的DN到加密机内部的公私钥,以此进行一些签名、验签,加解密等操作。

实施例2:

一种区块链密码证书服务系统,具体组成包括:

ca-client:用于发出获取证书申请者的标识名DN和公钥信息请求;用于将证书申请者的公私钥信息和证书签名请求发送到ca-server;用于将证书内容写入文件最终生成证书文件,并存储于区块链密码服务模块;

BCCSP模块:用于通知加密机生成CSR,并将证书申请者的公私钥信息和证书签名请求返回到ca-client;用于存储证书文件;用于util.BCCSPKeyRequestGenerate生成公私钥对;用于引用所述chain-ca/vendor对外提供国密算法证书服务;

加密机:用于生成CSR;用于提供加解密服务,用于调用所述BCCSP模块;

chain/x509模块:用于通过国密证书接口解耦数字证书服务和具体数字证书库,插件化证书库;用于通过所述国密证书接口调用功能函数接口获取证书服务

ca-server:用于生成证书和证书公钥信息,并将此证书公钥信息同步到ca-client;

cloudflare:用于提供NewFromSigner生成根证书。

这里说明的模块数量和处理规模是用来简化本发明的说明的。对本发明的区块链密码证书服务系统的应用、修改和变化对本领域的技术人员来说是显而易见的。

实施例3:

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以上所述的任意一项的方法步骤。对于存储介质实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

实施例4:

一种区块链密码证书服务装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以上所述的任意一项的方法步骤

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。

本文发布于:2023-04-15 01:16:58,感谢您对本站的认可!

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

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

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