签发证书
所以的证书都是由CA中心签发的,如CFCA、北京CA、四川CA等,还有公司可能自己建CA。CA中心首先自己有一对公私钥,签发证书的过程可以有以下几步:
- 将用户身份信息和用户公钥信息,组成特定的数据格式D。
- 选择摘要算法对数据D进行计算得到摘要H。
- 使用CA的私钥对摘要H进行加密得到数字签名S。
- 将用户信息、用户公钥信息和数字签名S,按照特定的格式组成数字证书。
管理私钥
如果使用公钥对数据加密,则只有对应的私钥才能对数据解密,万一用户的私钥丢失了,则数据永远无法得到正确的解密,这就需要对私钥进行备份,如果丢失可以进行恢复。为了解决这一问题,使用了KMC(Key Management Center)。
用户的公私秘钥对由KMC产生,提交CA签发数字证书后,将私钥和数字证书同时发给客户,KMC对私钥进行备份,方便以后恢复证书。公司秘钥对也可以用户的设备产生(USBKey),发给CA中心签发证书时,同时也将私钥发给KMC备份。
双证书
为了防止用户被冒用,应该保证用户私钥的唯一性,不允许备份恢复。为了防止公钥加密后的数据无法解密,应该对私钥进行备份。如何解决这一对矛盾呢?PKI引入了双证书机制:签名证书和加解密证书。
签名证书及私钥只用于签名验签,不可加解密,该签名私钥时唯一的,由用户自己产生,保存在硬件设备中,无法导出复制。证书签发过程中CA中心不知道该私钥,只对其公钥操作。该私钥不可恢复。
加解密证书及私钥只用于加密解密,不能签名验签。公私钥由KMC产生,私钥KMC备份,CA中心签发完证书发给用户。