针对 SSH 上与Logjam相关的攻击的一种建议缓解策略是使用类似的东西生成自定义 SSH Diffie-Hellman 组(以下是针对 OpenSSH 的)
ssh-keygen -G moduli-2048.candidates -b 2048
ssh-keygen -T moduli-2048 -f moduli-2048.candidates
然后用输出文件替换系统范围的模数文件moduli-2048
。(ssh-keygen -G
用于生成候选 DH-GEX 素数,并ssh-keygen -T
测试生成的候选者的安全性。)
这显然是在 SSH 服务器上做的一件合理的事情,否则会使用众所周知的组来很好地进行预计算,但是将自定义 SSH DH 组部署到仅限客户端的系统上是否有任何安全优势?(也就是说,系统连接到 SSH 服务器,但本身从不充当 SSH 服务器。)
我主要对与 Linux 上的 OpenSSH 相关的答案感兴趣,但也欢迎更通用的答案。
如果你真的想要,你可以,但我不会费心为 OpenSSH 重新生成 2048 位 DH 参数。为了保护 SSH,您需要做更多重要的事情,例如禁用弱加密。
我要做的是删除现有的小于 2048 位的。
如果您没有注意到,OpenSSH 附带了大量预生成的模数,最高可达 8192 位。虽然我们今天肯定担心 1024 位素数,但相信 2048 位素数在可预见的未来是安全的。虽然这最终会改变,但可能是下周,但更有可能是在我们成为养老金领取者之后很久......
手册页中也有这个奇怪的部分
ssh-keygen
:这似乎反对替换现有的模数,尽管它并没有真正提供这样做的实际原因。
答案是:不。没有任何好处。:)
/etc/ssh/moduli
文件仅用于服务器端。您无需担心 SSH 客户端的该文件:
您可以跟踪 SSH 客户端的执行并检查它是否没有打开该文件。