一个网站是否可以有多个有效的 TLS 证书循环回多个根 CA,以防其中一个被泄露?

信息安全 tls 证书颁发机构 相信 备份
2021-08-21 19:32:54

有时,CA 会受到威胁,例如 Diginotar 或 Comodo。在这样的事件中,从单个证书被撤销到整个树从证书存储中清除,任何事情都可能发生。没有及时意识到这一点的公司可能会发现自己没有受信任的 CA。

如果发生这种情况,TLS 是否允许网站基本上拥有备份证书,以防另一个被吊销?还是会导致其他安全问题?

需要明确的是:我并不是说让多个根 CA 使用相同的证书验证您的网站以获得更多信任。我说的是有一个备份证书,已经部署到网站上,如果你的默认 CA 被撤销,它会自动检查,所以你的网站总是有信任的。

2个回答

您可以拥有来自不同 CA 的备份证书,但您不能在同一 TLS 连接中提供多个叶证书(即与主机名匹配的证书)。您也不能在同一个证书上有多个签名(即由不同的 CA),这是在这种情况下经常被问到的类似问题。但是您可以为不同的连接使用不同的证书,这样即使 CA 变得不受信任,也不是所有事情都会失败,即使这种情况并不常见,并且一些安全扩展可能会抱怨证书总是在变化。

没有及时意识到这一点的公司可能会发现自己没有受信任的 CA。

如果没有公众对妥协的强烈抗议,CA 不会突然被删除。并且在过去的删除中,通常以这样一种方式完成,即在妥协之前颁发的证书仍然有效一段时间,以便管理员有足够的时间来获得替换证书。由于 PKI 结构中没有允许这样做的机制,因此您在浏览器中有特殊的 hack 来支持这一点。

如果您在所有这些公众关注之后仍然没有意识到 CA 的删除并且没有及时获得替换,那么您的 IT 安全问题可能比失败的证书更严重。

TLS 只允许一个证书。

您需要进行一些监控以检查此问题并在发生时自动重新配置您的 Web 服务器。

可以得到由多个CA签署的CSR相同。每次您将获得由该单一 CA 签署的单独证书。您最好为每个备份证书使用完全独立的密钥对和 CSR,以避免混淆。

如果有人操纵 CA 的 CRL 来吊销您的站点证书(叶证书),您不太可能受到影响,因为 CRL 在实践中很少被检查。

与叶证书相比,根证书(又名受信任的 CA 证书)与发出 TLS 请求的操作系统或软件捆绑在一起。根证书只能通过端点重新配置或操作系统/软件更新来撤销。

除此之外,任何受信任的 CA(无论能力如何)都可以签署所有域名。许多 CA 使用的验证过程不是非常健壮,并且对社会工程来说很弱。

为了降低 CA 社会工程的风险,您可以使用 HPKP(pin cert 以防止替换)来限制攻击者的机会: https ://developer.mozilla.org/en-US/docs/Web/Security/Public_Key_Pinning