SSL 认证的 CSR 和密钥文件在哪里生成有关系吗?

SSL 认证的 CSR 和密钥文件在哪里生成有关系吗?

我必须为通配符 SSL 证书创建 CSR。一些 SSL 提供商的常见问题解答说我应该在要安装证书的机器上生成 CSR 文件?我的理解是,只要我稍后将文件移动到正确的位置,在哪里生成 CSR 或密钥文件都无关紧要。

所以我的问题是:SSL 认证的 CSR 和密钥文件在哪里生成重要吗?

答案1

你的理解是正确的。在其他条件相同的情况下,这并不重要;但存在一些问题。

在相关服务器上生成密钥的一个优点是,它最大限度地降低了密钥在传输过程中被泄露的可能性。只要您使用安全的机器来生成密钥,并使用安全的方法(不受 MITM 攻击)将它们移动到服务器,您就能避免这种情况。不要忘记在生成系统上安全地擦除密钥,除非您有意保留副本,并采取了相应的安全措施。

在单独的机器上生成密钥的一个优点是:通常,这台机器是您的台式机。台式机上的熵池几乎总是比无人值守的服务器上的熵池更深,因为台式机通过键盘和鼠标电缆连接了大量的随机源(即您!)。熵不足可能会导致密钥生成需要很长时间,或者导致它改用/dev/urandomPRNG 输出,具体取决于生成工具的偏执程度,这可能会导致密钥更弱;台式机往往不会出现此问题。

后期编辑:根据在其他地方的讨论链接至此处,提出了两点。首先,您可以通过生成在您的桌面上,例如dd if=/dev/random bs=1k count=10 of=/tmp/entropy.dat复制到远程服务器,并将其直接或通过加深远程服务器的熵池提供给您的密钥生成过程。我还没有找到前者的方法,而后者通常需要施加特权,如果您和远程服务器之间的通道不安全,这也是整个反对意见的重点,那么这也是不安全的。

其次,可估计mjg59提出了硬件安全模块的问题 - 即你在其中放置或创建私钥的设备,然后执行密钥操作而不会泄露密钥。这是一个非常好的观点,但超出了这个问题的范围。

但该主题的更普遍结果是,您应该有一个精确的威胁模型,并适当地选择您的响应。我的威胁模型是我的通信渠道是安全的,但我的端点受到智能攻击。这意味着我将在本地生成熵强的 SSL 密钥对并分发它们。如果事实证明我的模型不准确并且我的通信变得脆弱,我将立即知道假设我的所有 SSL 密钥对都已泄露。 如果您的威胁模型不同,您应该相应地调整您的做法。

答案2

这有点重要。

如果您在另一台机器上生成密钥,密钥在生成机器上和服务器上都很容易受到攻击。如果您使用受感染的机器生成密钥,某些病毒可能会窃取密钥,甚至在密钥被转移到安全服务器之前。

如果您在安全服务器上生成它们,并且仅移动 CSR/cert,那么某人/某物获取私钥的机会比第一种情况要小,因为私钥仅位于一台机器上。

相关内容