[发明专利]一种基于SCEP协议的国密证书签发方法和系统有效
申请号: | 202110547073.2 | 申请日: | 2021-05-19 |
公开(公告)号: | CN113239379B | 公开(公告)日: | 2022-02-11 |
发明(设计)人: | 孙晓鹏;史亚光;吴永飞;廖正赟;崔永飞 | 申请(专利权)人: | 郑州信大捷安信息技术股份有限公司 |
主分类号: | G06F21/60 | 分类号: | G06F21/60;G06F21/64 |
代理公司: | 郑州德勤知识产权代理有限公司 41128 | 代理人: | 武亚楠 |
地址: | 450000 河南省*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 scep 协议 证书 签发 方法 系统 | ||
1.一种基于SCEP协议的国密证书签发方法,其特征在于,所述方法包括:
构建用于申请双数字证书的新PKCSReq消息结构体,构建用于响应双证书申请请求的新CertRep数据结构体,基于所述新PKCSReq消息结构体和所述新CertRep数据结构体,对服务端和客户端进行预配置;
客户端生成用于申请双数字证书的申请书P10数据,所述客户端通过SCEP协议基于所述新PKCSReq消息结构体对所述申请书P10数据进行封装获得双数字证书请求消息体,并将所述双数字证书请求消息体发送至服务端,以发起双数字证书请求;
所述服务端接收到所述双数字证书请求消息体后,基于所述新PKCSReq消息结构体对所述双数字证书请求消息体进行解析,获取所述申请书P10数据;所述服务端还根据所述申请书P10数据签发签名证书和加密证书,并采用所述签名证书的公钥加密所述加密证书的私钥以生成私钥密文数据;
所述服务端通过SCEP协议基于所述新CertRep数据结构体对所述签名证书、所述加密证书以及所述私钥密文数据进行封装获得双数字证书响应消息体,并将所述双数字证书响应消息体返回给所述客户端;
所述客户端收到所述双数字证书响应消息体后,基于所述新CertRep数据结构体对所述双数字证书响应消息体进行解析,得到服务端回执的签名证书、加密证书以及加密证书的私钥;
构建用于申请双数字证书的新PKCSReq消息结构体时,执行:
生成用于标识新PKCSReq消息结构体的请求结构体版本号Version;
生成签发双数字证书的服务端信息RecipientInfos子结构体,以指定服务端证书,以及指定用服务端证书对应的公钥加密对称密钥Ⅰ所使用的算法为国密SM2算法,以及存放对称密钥Ⅰ密文;
生成加密后的内容信息EncryptedContentInfo子结构体Ⅰ,以存放用于申请双数字证书的申请书P10数据密文,以及指定加密所述申请书P10数据的对称密钥算法为SM4算法;
基于请求结构体版本号Version、服务端信息RecipientInfos子结构体和内容信息EncryptedContentInfo子结构体,组成PKCS#7规范定义的加密数据EnvelopedData数据结构体Ⅰ,以获得用于申请双数字证书的新PKCSReq消息结构体;
所述加密数据EnvelopedData数据结构体Ⅰ的构建过程为:
随机产生一个国密SM4算法的对称密钥Ⅰ;
获取服务端的公钥,使用服务端的公钥通过国密SM2算法加密所述对称密钥Ⅰ,以得到对称密钥Ⅰ密文;
将所述对称密钥Ⅰ密文放入服务端信息RecipientInfos子结构体中;
使用所述对称密钥Ⅰ通过国密SM4算法加密所述申请书P10数据,以得到申请书P10数据密文,将所述申请书P10数据密文放入加密后的内容信息EncryptedContentInfo子结构体Ⅰ中;
将服务端信息RecipientInfos子结构体和加密后的内容信息EncryptedContentInfo子结构体Ⅰ一并放入加密数据EnvelopedData数据结构体Ⅰ中;
构建用于响应双证书申请请求的新CertRep数据结构体时,执行:
生成签名数据SignedData(A) 数据结构体;
生成用于存放签名证书、加密证书和私钥密文数据的加密数据EnvelopedData数据结构体Ⅱ;
基于签名数据SignedData(A)数据结构体生成新的数据类型ContentType子结构体,基于加密数据EnvelopedData数据结构体Ⅱ生成新的数据内容Content子结构体;
通过新的数据类型ContentType子结构体和新的数据内容Content子结构体,构建新CertRep数据结构体;
所述签名数据SignedData(A)数据结构体包括:第一版本号Version、第一摘要算法标识DigestAlgorithmIdentifiers、签名的内容ContentInfo、证书集合Certificates、签名者信息集合SignerInfos子数据结构体,所述证书集合Certificates是X.509证书格式的CA证书;
所述签名者信息集合SignerInfos子数据结构体包括:第二版本号Version、CA证书的序列号SN和可识别名DN、第二摘要算法标识DigestAlgorithmIdentifier、签名者用于签名的属性集合authenticatedAttributes、非对称算法DigestEncryptionAlgorithmIdentifier、签名者的私钥签名摘要后的结果值EncryptedDigest,所述结果值EncryptedDigest是使用签名者的私钥对属性集合authenticatedAttributes进行签名得到的,所述第二摘要算法标识DigestAlgorithmIdentifiers为MD5摘要算法;
所述服务端生成用于存放签名证书、加密证书和私钥密文数据的加密数据EnvelopedData数据结构体Ⅱ时,执行:
生成用于标识新CertRep数据结构体的响应结构体版本号Version,生成用于存放对称密钥Ⅱ密文和终端实体标识的客户端信息RecipientInfos子数据结构体,生成用于存放签名数据SignedData(B)密文的加密后的内容信息EncryptedContentInfo子结构体Ⅱ,基于响应结构体版本号Version、客户端信息RecipientInfos子数据结构体和加密后的内容信息EncryptedContentInfo子结构体Ⅱ,构建加密数据EnvelopedData数据结构体Ⅱ;
所述服务端生成用于存放对称密钥Ⅱ密文和终端实体标识的客户端信息RecipientInfos子数据结构体时,具体执行:
获取终端实体的可识别名DN和序列号SN,并放入IssuerAndSerialNumber终端实体标识结构体中;所述服务端随机生成对称密钥Ⅱ,并使用签名证书对应的公钥通过国密SM4算法加密所述对称密钥Ⅱ得到的对称密钥Ⅱ密文,将对称密钥Ⅱ密文放入被加密的对称密钥EncryptedKey结构体中;基于IssuerAndSerialNumber终端实体标识结构体和被加密的对称密钥EncryptedKey结构体,得到客户端信息RecipientInfos子数据结构体;
所述服务端生成用于存放签名数据SignedData(B)密文的加密后的内容信息EncryptedContentInfo子结构体Ⅱ时,具体执行:
所述服务端将签发的签名证书和加密证书放入证书集合Certificates结构体中,采用所述签名证书的公钥加密所述加密证书的私钥以生成私钥密文数据,并将私钥密文数据放入签名的内容ContentInfo结构体中,所述服务端基于证书集合Certificates结构体和签名的内容ContentInfo结构体,构建签名数据SignedData(B);
所述服务端使用对称密钥Ⅱ通过国密SM2算法加密所述签名数据SignedData(B),以得到签名数据SignedData(B)密文,将所述签名数据SignedData(B)密文放入加密后内容EncryptedContent结构体中;基于加密后内容EncryptedContent结构体,获得加密后的内容信息EncryptedContentInfo子结构体Ⅱ。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州信大捷安信息技术股份有限公司,未经郑州信大捷安信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110547073.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种河水水质净化提升方法
- 下一篇:一种可承载外挂重荷载的装配式外墙及方法