共享 SSL 证书的私钥会出现什么问题?

信息安全 tls 证书 公钥基础设施 pci-dss
2021-08-16 12:24:34

场景:我正在为我的客户托管一个网站,我们称之为 S。S 拥有该域s.com,而我拥有实际托管该网站的服务器。S 现在想在他们的网站上启用 SSL。

我在我的服务器上生成了一个私钥和 CSR,并将 CSR 发送给 S,以便他们可以将其提交给他们的 CA。

然而,像所有客户一样,S 很便宜。他们不想把钱花在新证书上。相反,他们想给我他们现有的 SSL 证书*.s.com及其对应的私钥。此证书和密钥已被 S 和 S 的一些其他供应商使用。

我已经知道这是一个坏主意,但为什么呢?这会在现在和将来造成什么问题?

对于奖励积分,像这样共享私钥是否会在 PCI 标准的背景下引起任何问题?

3个回答

通配符证书不好的原因有几个:

  • 相同的私钥必须在具有不同安全级别的系统上运行,因此您的密钥仅与受保护最少的系统一样好。将其提供给第三方供应商是一个非常糟糕的主意,因为它完全不受您的控制。
  • 您必须保留详细的记录,以准确显示通配符私钥的安装位置,这样当您必须更换它时,您就不必在所有站点上播放“Waldo 在哪里”。
  • 最重要的是,如果私钥和通配符证书在任何时候被盗,攻击者就可以冒充该通配符空间中的任何系统。常见的错误是说“我们将在低安全性系统上使用通配符证书,但在所有重要系统上使用命名证书”——你必须完全相反!如果攻击者拥有 *.s.com,他们可以冒充 .s.com 空间中的任何域,无论它是否使用任何其他证书。因此,如果您有带有通配符的“www.s.com”和带有一次性证书的“login.s.com”,攻击者可以冒充“login.s.com”,而不管“login.s.com”上有什么.
  • 利用被盗通配符密钥的最简单方法是通过 DNS 中毒或通过流氓无线 AP。

话虽如此,您必须评估风险。如果您的朋友 S 已经向所有供应商提供了这个通配符证书和密钥,那么拒绝接受它并不会显着降低他的风险。你只会显得固执和不合作,失去他的生意。尽你最大的努力去教育,但也要明白有些人根本不在乎。

但是,如果他必须遵守 PCI-DSS,那么我很确定他不遵守,因为我认为您应该拥有所有访问私有加密密钥的日志。我会让其他更熟悉 PCI-DSS 的人对此进行扩展。

任何有权访问 SSL 服务器使用的私钥的人都拥有以下技术能力:

  • 冒充任何名称与证书中记载的名称匹配的服务器。
  • 解密被被动窃听的会话(除非 SSL 会话使用提供完美前向保密的“DHE”密码套件之一,但默认情况下很少选择此类套件,必须有人明确配置它们)。

所以把同一个私钥给很多人,就是真正信任他们所有人,让他们互相信任。请记住,“你信任的人”是一个表达方式,真正的意思是“有能力背叛你的人”。

一般来说,一旦一个秘密值被两个以上的人知道,那么它就不再是秘密了,只是有点谨慎。此外,您不能强迫健忘,因此如果您的客户 S 想要停止与 S 提供了私钥副本的供应商之一做生意,他们必须取消整个事情(撤销证书,创建一个新的一个新的密钥,并分发它)——或者,S 可以在轻信的规模上再上一层,并假设每个人都是诚实和有能力的,并且与他们不再有任何业务关系的供应商仍然会小心他们的私钥,而不是通过备份磁带或不雅的实习生泄露。

此外,众所周知,对通配符证书的支持有点不稳定,因为它们在历史上一直是麻烦的根源(不是本身,但它们放大了窃取相应私钥的作恶者的滋扰能力)。浏览器供应商倾向于以任意和不断变化的方式限制它们。

有些 CA免费提供 SSL 服务器证书。你必须有多便宜,才能找到太贵的免费证书?

在许多(受信任的)服务器上使用相同的证书本身不会导致问题。

主要问题是私钥落入坏人之手(包括您在内的许多供应商中的任何一个)。

  • 很难知道违规行为——如果许多人/机器拥有证书,违规的可能性就会增加,而发现违规的可能性就会降低。如果 S.com 是一个相对高价值的目标,在所有服务上使用相同的证书也意味着潜在的黑客可以挑选最弱的服务器来利用。

  • 当证书必须被撤销时,所有供应商必须立即用新证书替换证书,以避免客户拒绝它。这也意味着客户可能不想撤销证书(因为它会“造成太多麻烦”)。如果不同的供应商拥有不同的证书,则只有泄露的证书必须被吊销,并且只有那个供应商必须安装新的证书。