Answers:
您的理解是正确的。其他所有条件都是平等的,没关系;但有皱纹。
在相关服务器上生成密钥的一个优势是,它最大程度地减少了密钥在传输过程中受到破坏的机会。只要您使用安全的计算机来生成它们,并使用安全的方法(不受MITM攻击)将它们移至服务器,您就可以避免这种情况。除非您有意保留副本并进行相应保护,否则请不要忘记在生成系统上安全擦除它们。
在单独的计算机上生成的一个优点:通常,这将是您的桌面。台式机上的熵池几乎总是比无人照管的服务器更深,因为台式机通过键盘和鼠标电缆(例如,您!)连接了大量随机性源。熵的不足可能导致密钥生成花费很长时间,或者使密钥生成使用/dev/urandom
PRNG输出,这取决于生成工具的偏执程度,这可能导致密钥更弱。台式机通常不会出现此问题。
以后的编辑:根据此处链接的其他讨论,提出了两点。首先,您可以通过在桌面上生成熵来进行半途而废,例如dd if=/dev/random bs=1k count=10 of=/tmp/entropy.dat
,将其复制到远程服务器,然后直接将其馈送到密钥生成过程,或者通过加深远程服务器的熵池。我还没有找到一种方法来做前者,而后者通常需要施加特权,如果您和远程服务器之间的通道不安全(这是整个异议的重点),那么这也是不安全的。
其次,可估计的mjg59引发了硬件安全模块的问题-即您放入或在其中创建私钥的设备,然后在执行这些私钥操作时却始终不放开密钥。这是一个很好的观点,但是超出了这个问题的范围。
但是,线程的更一般的结果-您应该具有精确的威胁模型,并适当选择响应-是一个很好的结果。我的威胁模型是我的通信通道很安全,但是我的端点受到了智能攻击。这意味着我将在本地生成熵强的SSL密钥对并将其分发。如果事实证明我的模型不正确,并且我的通信很容易受到攻击,那么我将立即知道我的所有SSL密钥对均已受损。 如果威胁模型不同,则应相应地调整实践。