概述
本次需要进行的实验研究是国密算法的ekey的使用。对于一个或者多个应用来说,每个应用可以包含一个或多个容器(Container),每个容器中可以存放两对分别用于加密和签名的密钥对,以及两个相应的证书或证书链。每一个容器只能为ECC或RSA一种类型,一个容器中不能混用ECC密钥和RSA密钥。根据个人的理解,ekey的作用就是生成容器,将需要加密的消息或文件利用相应的加密算法加密后,生成证书,将证书导入ekey的容器中。这样以便于在其他终端上用到该文件时,使用ekey,其容器中的对应的证书可以进行身份验证,确保安全。
实验环境
- Windows 7
- Linux Debian Kali
- The GmSSL Project
这里使用SM2算法对相关文件进行加密
实验过程
实验主要分为以下几个流程:
- 生成SM2密钥对
- 生成SM2自签证书作为根CA
- 生成SM2密钥对
- 生成证书请求CSR
- 用CA进行签名
- 验签
- 生成PKCS12格式的证书文件
- 在win环境下验证证书
具体过程如下:
生成SM2密钥对cakeyGM.pem:
生成 SM2 自签证书,作为根CA ,输入相关的详细信息,生成cacertGM.crt:
生成SM2密钥对 testUserGM.key:
之后,生成证书请求CSR:
gmssl req -new -key testUserGM.com.key -out testUserGM.com.csr
再后,用一开始生成的CA进行签名:
gmssl ca -in testUserGM.com.csr -out testUserGM.com.crt -cert demoCA/cacertGM.crt -keyfile demoCA/private/cakeyGM.pem
验签:
gmssl verify -verbose -x509_strict -CAfile demoCA/cacertGM.crt testUserGM.crt
生成PKCS12格式的证书文件:
上述操作已经生成了PKCS12格式的证书,并已经导入到了ekey,之后打开win7系统,配置好ekey的管理工具,发现已经生成了ContainerGuo的容器,里面显示出了上面生成的证书,如下图所示:
点击证书的详细信息,查看证书颁发者的详细信息,与上面配置输入的相关信息一致,如下图所示:
至此,ekey里已经存入了生成的证书,并且信息与配置的一致,验证成功。
以上,即为ekey的基本使用的介绍。
原文地址:https://www.cnblogs.com/intoxication/p/10963932.html