web-dev-qa-db-ja.com

OpenSSHでセッションキーのサイズをどのように設定しますか?

SSHプロトコルのバージョン1では、sshd_configのServerKeyBits設定を使用してエフェメラルセッションキーのサイズを設定することができました。 sshプロトコルのバージョン2でこれを行う方法はありますか?

SSHプロトコルでは、次の3つの暗号化キーが使用されます。

  1. サーバーキー
  2. (中間)エフェメラルセッションキー
  3. 最終的な対称暗号鍵

中間エフェメラルセッションキーは、そのセッション専用に作成された非対称暗号キーです。これは、最終的な対称鍵が渡されたときに、サーバー鍵で暗号化する必要がないように作成されています。これは、サーバーキーが危険にさらされた場合、それを使用して、以前に「記録された」セッションから最終対称暗号キーを回復できないようにするためです。これはフォワードシークレットです。

サーバーキーのサイズは、ユーザーが作成するときにユーザーが設定します。最終対称暗号のサイズはRFCによって事前設定されており、選択された対称暗号に固有のものです。中間キー、エフェメラルセッションキー、そのキーのサイズを設定する方法がわかりません。彼女のSSHプロトコルのバージョン1では、ServerKeyBits設定で設定できます。プロトコルのバージョン2でこれを設定する方法は何ですか?

鍵交換方式としてdiffie-hellman-group-exchange-sha256を使用する場合、クライアントが最小、優先、および最大のモジュラスサイズを指定しているようです。これは、サーバーのモジュラスファイルから小さいビットサイズを削除することを意味しますか(推奨されるように ここ )、クライアントが要求した場合に小さいエフェメラルキーサイズが実際に使用されるのを防ぎますか、それともサーバーは単にその1つを使用しますか?壊れたクライアントが本当に小さいものだけを必要とする場合、組み込みの固定係数?

3
Kurt Fitzner

SSH 2プロトコルではプロトコルバージョン1と比較して多くのセキュリティ改善が行われ、そのオプションを削除することもその1つだったと思います。

私が理解できる限り、セッションキーのサイズは、Ciphersディレクティブで提供される暗号化アルゴリズムの選択においてサーバーによって暗黙的に課されます。実際のセッションキーサイズは、最終的には実際の暗号がクライアントとサーバー間でネゴシエートされるものになります。

OpenSSHでサポートされている暗号は次のとおりです。

               3des-cbc
               aes128-cbc
               aes192-cbc
               aes256-cbc
               aes128-ctr
               aes192-ctr
               aes256-ctr
               [email protected]
               [email protected]
               arcfour
               arcfour128
               arcfour256
               blowfish-cbc
               cast128-cbc
               [email protected]

RFC 425 は、各暗号に関連付けられたキーサイズを定義しますが、暗号名からすぐにはわからないものは次のとおりです。

  • 「3des-cbc」-非推奨になりますが、歴史的な理由でまだ含まれています-有効なキーの長さは112ビットです
  • プレーンな「arcfour」はRC4であり、弱いキーに問題があるため、注意して使用する必要があります-キー長128ビット(「arcfour」と「arcfour128」の違いについては このQ&A を参照)
  • [email protected] -- RFC 7539 AFAIKにも256ビットキーがあります
2
HBruijn