web-dev-qa-db-ja.com

OpenSSHサーバーは、2048ビットのフォールバック、ハードコーディングされたDHパラメーターを使用していますか?

私はOpenSSH設定をいじって、Diffie-Hellmanパラメータを突っ込んでいます。 GDSSecurityの tool を使用してDH設定を確認し、 このページ を使用して他のSSH設定を表示しています。

ファンシーについては、/etc/ssh/moduliから4096ビット未満のすべての係数を削除しました。

$ awk '{print $5}' /etc/ssh/moduli | sort | uniq
4095
6143
8191

クライアントが2048ビットまたは3072ビットグループのみを受け入れる場合、キー交換は失敗するはずです。興味深いことに、後者の場合は失敗しますが、前者の2048ビットの場合は失敗しません

KEX proposal client: diffie-hellman-group-exchange-sha256
KEX proposal server: [email protected],diffie-hellman-group-exchange-sha256
KEX algorithm chosen: diffie-hellman-group-exchange-sha256
KEX client group sizes: min = 2048, nbits = 2048, max = 2048
KEX server-chosen group size in bits: 2048
Warning: Permanently added 'test,x.x.x.x' (ED25519) to the list of known hosts.
KEX proposal client: diffie-hellman-group-exchange-sha256
KEX proposal server: [email protected],diffie-hellman-group-exchange-sha256
KEX algorithm chosen: diffie-hellman-group-exchange-sha256
KEX client group sizes: min = 3072, nbits = 3072, max = 3072
ssh_dispatch_run_fatal: Connection to x.x.x.x: DH GEX group out of range

前述のサイトはまた、2048ビットグループを使用した鍵交換の成功を主張しています。

ここで何が起こっているのかを理解するには、SSHプロトコルやOpenSSHの詳細についてはほとんど知りません。 moduliファイルから適切なグループが利用できない場合、OpenSSHはフォールバックパラメーターを使用しますか?

5
tarleb

フォールバックDHグループが定義されています ここではソースコード 。現在のグループは2kまたは4kです。しかし、それは本当に使用しているバージョンに依存します(最近、いくつかの変更がありました)。

RFC 4419 に注意してください。

サーバーとクライアントは、kビットのモジュラス長を持つグループをサポートする必要があります(SHOULD、1024 <= k <= 8192)。最小と最大の推奨値は、それぞれ1024と8192です。

そして、将来のリリースノート openssh-7.2

  • ssh(1)、sshd(8):diffie-hellman-group-exchangeでサポートされる最小モジュラスサイズを2048ビットに増やしました。
5
Jakuje