国密SSL协议之双证书体系

背景

国密SSL协议使用双证书体系。本文描述了国密双证书体系的组成和差异,并描述了在U盾里面的使用状况。

国密SSL双证书

  国密SSL协议使用双证书体系,分别称为签名证书和加密证书,服务器和用户持有两对SM2独立的密钥对。其中加密证书和签名证书主要的区别就是密钥用法(KeyUsage)不同(固然对应的密钥等也不同),使用相同的DN。密钥用法具体是:
image.png
签名证书:Digital Signature, Non-Repudiation (c0)
image.png
加密证书:Key Encipherment, Data Encipherment, Key Agreement (38)git

国密SSL加密证书的颁发流程

  国密CA体系里面,加密密钥对是在CA端产生的,和一般的签名证书流程不同(签名密钥对一般是用户本身产生的,发送证书请求给CA来申请证书)。
  那用户怎么安全得到加密证书和私钥呢?国密规范规定,加密私钥须要经过数字信封使用用户的签名公钥加密。CA将加密私钥密文返回给用户,用户由于有对应的签名私钥,所以只有该用户才能够解开密文,得到加密私钥。过程以下:
  1)用户使用U盾产生签名密钥对,生成签名证书请求,发送签名证书请求给CA;
  2)CA审核生成签名证书,产生加密密钥对,生成加密证书;
  3)CA生成对称密钥,使用用户签名公钥加密,输出对称密钥密文;
  4)CA使用对称密钥,加密用户加密私钥,输出加密私钥密文;
  5)CA返回给用户签名证书、加密证书、对称密钥密文和加密私钥密文;
  6)用户导入对称密钥密文,使用U盾内部签名私钥解密,得到对称密钥句柄;
  7)用户使用对称密钥句柄解密加密私钥,得到加密私钥明文。
  用户使用SKF(U盾)接口时,6)和7)以及导入加密证书时,使用一个API一步完成的,所述过程是在U盾内部的处理。浏览器

国密U盾伴侣

  目前大部分国密U盾的管理工具,并不支持国密证书请求产生和国密证书应答导入。www.GMSSL.cn提供一个《国密U盾辅助工具》,支持国密生成证书请求/导入证书应答操做。目前支持龙脉科技的mToken GM3000。
下载请参见https://www.gmssl.cn/gmssl/in...
1)生成证书请求
image.png
2)提交签名证书请求给https://www.gmssl.cn/gmssl/in...
3)www.gmssl.cn生成签名证书/加密证书/加密私钥密文
4)导入证书应答
image.png安全

国密测试CA

  www.GMSSL.cn提供一个国密测试CA。经过国密CA,配合国密U盾伴侣,能够给用户生成国密双证书,而后能够经过国密浏览器,就使用证书登陆国密双向认证的网站了。
CA参见https://www.gmssl.cn/gmssl/in...服务器