在使用“RSA Shared Primes”之前,我应该测试我的 SSL 证书吗?

信息安全 加密 tls 威胁缓解 RSA diffie-hellman
2021-09-05 00:55:38

2012 年有几篇论文说可以通过分解共享素数来分解多个模数。上面的链接包含用于验证和测试这一事实的 python 源代码。

鉴于这些知识,作为一名 IT 安全专家,我应该如何处理我的所有服务器的 SSL 证书以及其他可能易受攻击或不易受攻击的加密工件。

问题

  • 如果 SSL 易受攻击,测试并重新颁发受影响的证书对我来说是个好主意吗?还是我应该简单地更改我的 Web 服务器使用的密码?

  • 来自基于 RSA 或 DHE 的会话的先前加密数据是否容易受到攻击?

2个回答

如果测试足够简单,那么您不妨这样做。我不知道有任何服务或其他机制可以为你做这个测试,但如果你这样做了,那就去做吧。攻击的可能性可能非常小,但严重性非常极端。如果您检测到它,当然值得修复。

是的,如果可以导出您的私钥,任何先前的会话(如果捕获)都可以被解密。除非您使用 Diffie-Hellman 生成临时会话密钥(目前非常罕见);只需搜索“Perfect Forward Secrecy”以获取有关保护今天的会话免受明天的攻击的信息。

请注意,您的素数是在您生成密钥时确定的,而不是您的证书生成密钥不需要任何费用(但需要您的时间),并且可以根据需要进行多次。因此,如果您要进行测试,您不妨提前生成密钥(或者一次进行多次)测试,然后仅根据“强”密钥生成 CSR。具有良好 TRNG(例如最近的 Linux 和 BSD)的计算机在这里很有帮助,因为错误的 PRNG 通常是您的错误密钥的来源。

此外,几个 CA 将允许您“重新加密”证书,这实质上意味着颁发具有原始到期日期的新证书。因此,如果在任何时候您的密钥都是可疑的,那可能是一种选择。

如果您刚刚创建了一个新密钥,请不要费心对其进行测试。相反,您最好确保在创建新密钥时使用良好的随机性。在这种情况下,预防比检测容易得多。

研究人员发现,您所指的问题主要出现在嵌入式设备(例如,消费者无线接入点、DSL 路由器等)上生成的私钥上。这些设备往往具有较差的 PRNG 和(通常)草率的密钥生成代码。相比之下,如果您使用信誉良好的软件(例如,OpenSSL)在服务器上生成您的密钥,那么您可能没问题。

(例外:Debian 的失败影响了一些人,但那是很久以前的事了,应该不会影响过去一两年内生成的密钥。)