当您购买证书时,证书颁发机构是否拥有(副本)私钥?

信息安全 证书 证书颁发机构
2021-09-05 20:48:37

我一直认为获取(受信任的,非自签名的)证书的过程或多或少是这样的:

  1. 您生成一个公钥和私钥对
  2. 从此密钥对生成证书
  3. 您将您的公钥、证书和其他(公司)信息提交给 CA
  4. CA 检查您提供的信息是否正确
  5. CA 签署您的证书

但是,最近我对此表示怀疑。人们告诉我,实际上 CA 本身会生成公钥和私钥对以及证书并对其进行签名并将所有内容发送给您……在我看来,从所有证书的所有私钥的意义上来说,这非常不安全将掌握在少数 CA 手中。

我一直很感兴趣地阅读这个问题: 证书颁发机构如何存储他们的私钥?. 然而,它只讨论了 CA 自己的私钥。

那么 CA 是否有他们签署的证书的私钥的副本?

2个回答

根据 CA 做事的方式,它可能有也可能没有你的私钥的副本。通常不会。

通常的方法在自己的机器上生成您的私钥/公钥对,然后将公钥作为证书请求的一部分发送给CA。CA 组装并签署证书,然后将其发回给您。你的私钥从未离开你的机器,CA 也从未看到它。

但是,在某些情况下,最好让 CA 生成密钥对并将其发送给您。对于非对称加密密钥来说,这是可取的一种情况:如果您丢失了私钥,那么您将丢失所有已使用相应公钥加密的数据,因为您无法再对其进行解密。因此,加密私钥应该备份在某个地方,让 CA 生成私钥可以让 CA 轻松实施一个全面的、不可避免的备份系统。

要了解特定 CA 会发生什么,请查看它们返回给您的内容:如果 CA 向您发送 PFX (PKCS#12) 存档,则 CA 拥有私钥,或者至少拥有私钥(无论是它保存了它是另一回事)。另一方面,如果 CA 只向您发送原始证书,则它没有私钥。

在任何情况下,与您有业务往来的 CA 都应记录整个过程;如果 CA 没有记录它所做的事情,特别是在哪里生成了私钥以及是否存储了它们,那么请找到另一个 CA。做事不透明的 CA 是不可信的。事实上, CA必须记录所有内容是所有“CA 最佳实践指南”(例如Web Trust)的基本要求。

当 CA 签署本地生成的密钥对时,CA 服务器永远不会看到私钥。

如果您在公司环境中使用 IE 或类似配置的 EXE,则该网站可能会请求 ActiveX 控件将私钥上传到 CA 用于密钥存档/托管目的。