開發與維運

國密SSL協議之雙證書體系

背景

國密SSL協議使用雙證書體系。本文描述了國密雙證書體系的組成和差別,並描述了在U盾裡面的使用情況。

國密SSL雙證書

  國密SSL協議使用雙證書體系,分別稱為簽名證書和加密證書,服務器和用戶持有兩對SM2獨立的密鑰對。其中加密證書和簽名證書主要的區別就是密鑰用法(KeyUsage)不一樣(當然對應的密鑰等也不一樣),使用相同的DN。密鑰用法具體是:
image.png
簽名證書:Digital Signature, Non-Repudiation (c0)
image.png
加密證書:Key Encipherment, Data Encipherment, Key Agreement (38)

國密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/index.jsp?go=ukey
1)生成證書請求
image.png
2)提交簽名證書請求給https://www.gmssl.cn/gmssl/index.jsp?go=ca
3)www.gmssl.cn生成簽名證書/加密證書/加密私鑰密文
4)導入證書應答
image.png

國密測試CA

  www.GMSSL.cn提供一個國密測試CA。通過國密CA,配合國密U盾伴侶,可以給用戶生成國密雙證書,然後可以通過國密瀏覽器,就使用證書登錄國密雙向認證的網站了。
CA參見https://www.gmssl.cn/gmssl/index.jsp?go=ca

Leave a Reply

Your email address will not be published. Required fields are marked *