SSHへの Logjam 関連の攻撃に対して推奨される緩和策の1つは、次のようなものを使用してカスタムSSH Diffie-Hellmanグループを生成することです(以下はOpenSSH用です)
ssh-keygen -G moduli-2048.candidates -b 2048
ssh-keygen -T moduli-2048 -f moduli-2048.candidates
続いて、システム全体のmoduliファイルを出力ファイルmoduli-2048
に置き換えます。 (ssh-keygen -G
はDH-GEX素数の候補を生成するために使用され、ssh-keygen -T
は生成された候補の安全性をテストするために使用されます。)
これは、他の方法では事前計算に適した既知のグループを使用するSSHサーバーで実行するのにかなり合理的ですが、カスタムSSH DHグループをにデプロイすることにはセキュリティ上の利点があります。クライアントのみのシステム?(つまり、SSHサーバーに接続するが、それ自体はSSHサーバーとして機能しないシステム)
私は主にLinux上のOpenSSHに関する回答に関心がありますが、より一般的な回答もいただければ幸いです。
本当に望めばできますが、OpenSSH用に2048ビットのDHパラメータを再生成する必要はありません。 弱い暗号を無効にするなど、SSHを保護するために必要なこと 。
私がすることが行うことは、2048ビット未満の既存のものを削除することです。
awk '$5 >= 2000' /etc/ssh/moduli > /etc/ssh/moduli.strong && \
mv /etc/ssh/moduli.strong /etc/ssh/moduli
気づかなかったかもしれませんが、OpenSSHには事前に生成された多数のモジュライが8192ビットまで出荷されています。今日は確かに1024ビットの素数を心配していますが、2048ビットの素数は当面は安全であると考えられています。そして、それは最終的には変化しますが、来週になる可能性もありますが、年金受給者になった後、もっと長くなる可能性が高くなります...
ssh-keygen
のマニュアルページにも、この興味深いビットがあります。
このファイルにビット長の範囲の係数が含まれていること、および接続の両端が共通の係数を共有していることが重要です。
これは、既存の係数を置き換えることに反対するようですが、実際にそうする理由はありません。
答えは次のとおりです。いいえ。メリットはありません。 :)
/etc/ssh/moduli
ファイルはサーバー側でのみ使用されます。
SSHクライアント側では、そのファイルについて心配する必要はありません。
SSHクライアントの実行を追跡し、そのファイルを開かないことを確認できます。
$ strace -e openat ssh user@localhost