我想知道怎样才能让我的服务器尽可能安全。我使用 OpenSSH 连接它,使用 RSA 密钥。但是,这种方法让我有些困扰:为了生成 RSA 密钥,我没有生成“熵”。
以下是示例:在 Windows 上,要使用 VeraCrypt 加密文件夹,用户需要执行交互(鼠标移动)以使 RSA 密钥更加随机。我们可以在 openssl 或 libressl 中重现该操作吗?
此外,我读到过一些文章说,如果你了解 CPU 的设计(通常是政府),你就可以大大减少暴力破解 RSA 私钥的时间。
答案1
我读到过一些文章说,如果你了解 CPU 的设计(通常是政府),你就可以大大减少暴力破解 RSA 私钥的时间。
了解原因很重要,您描述的熵不适用于 RSA 密钥。
在 RSA 中,这种不对称性基于两个大素数乘积的因式分解的实际难度,即“因式分解问题”。
来源:RSA(密码系统)
同样地,
证书生成的整个目的是从您的文件或随机数生成器中创建随机数,作为算法的噪声输入以生成非常大的素数。诀窍是获取这些素数。在 4096 位的熵池中,始终处于满负荷状态,正如 haveged(8) 将提供的那样,即使某人完全了解您的系统,他们也极不可能重新生成相同的素数。
OpenSSL 和 LibreSSL 默认使用操作系统的内核作为熵源。 除了暴力破解之外,没有其他已知漏洞可以破解重要且适当大小的 RSA 密钥。
OpenSSL 和 LibreSSL 本身不支持您想要的功能。但是,您可以使用类似PuTTY 密钥生成器,做你想做的事。当使用 OpenSSL 生成证书时,您需要使用使用适当的 OpenSSL 命令生成的密钥。
我们可以在 openssl 或 libressl 中重现该情况吗?
OpenSSL 和 LibreSSL 不支持从鼠标移动收集熵。