web-dev-qa-db-ja.com

SSHキー交換はパスワード認証よりも安全ですか?

リモートユーザーは、SSHを使用してインターネット経由で本社のいくつかのサービスに接続します。 SSHパスワードは、LAN A/Dアカウントと同期されます。

ユーザーがCDや紙などを使用してSSHキーのコピーを持ち帰ることは、ユーザーにパスワードを入力させるよりも安全でしょうか?それとも両方必要ですか?

私の質問はおそらく次のように再定式化される可能性があります:SSHのパスワード認証プロトコルに脆弱性はありますか?

私を疑わせるのはこのメッセージです:

The authenticity of Host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:.
Are you sure you want to continue connecting (yes/no)?
9
srmark

表示されているメッセージは別の問題です。接続しているホストが実際に想定しているホストであることを確認するように求められます。サーバーから、ssh-keygen -l -f /etc/ssh/ssh_Host_rsa_key.pubを実行してフィンガープリントを取得できます。次に、初めてリモート接続するときに、指紋が一致していることを確認できます。

ここで実際に動作しているホストキーは、 中間者 攻撃の問題に対処します。おそらくDNSが破壊されており、自分のマシンではなく競合他社のマシンに接続しています。そのマシンはあなたの資格情報を収集し、あなたの接続を実サーバーに透過的に転送し、あなたが知らないうちにあなたの情報を盗みます。ホストキーが一致していることを確認することで、攻撃者が実際にサーバーの公開キーを盗んだ場合を除き、これが発生するのを防ぎます。

ただし、問題は残っています。どのキーが正しいかをどうやって知るのですか最初の接続後、公開鍵は~/.ssh/known_hostsファイルに保存されるため、それ以降の接続は問題ありません。ただし、初めて、指紋を取得するための帯域外の方法が必要になるか、「TOFU」モデル(trust-on-first-use)に従います。

しかし、これはパスワードとキーの関係はありませんが、キーとパスワードの両方がこの攻撃によって盗まれる可能性があることを除いて、ある意味で、それはあなたが求めている脆弱性です。

パスワードがキーよりも悪い理由は(少なくとも)3つあります。

  1. それらはブルートフォースされる可能性があります。一般的なユーザーが選択した8文字のパスワードには、約30ビットの推測エントロピーがあります。 sshの公開鍵と秘密鍵のペアは1024ビット以上です。 sshキーをブルートフォースすることは事実上不可能ですが、自動化されたパスワード推測は常に行われます。
  2. 彼らはばかげている可能性があります。ユーザーは、制限が設けられている場合でも、日常的に恐ろしいパスワードを選択し、複数の場所でより難しいパスワードを使用する傾向があります。これは明らかに攻撃を容易にします。
  3. パスワードはリモートで盗まれる可能性があります。 SSHを使用している場合、パスワードはネットワーク上で暗号化されますが、sshサーバーが侵害されたシステムですべてのパスワードをログに記録するシステムに置き換えられることは非常に一般的です。キーを使用すると、秘密キーはローカルシステムに残り、送信されることはありません。そのため、クライアントマシンを実際に危険にさらすことなく、秘密キーを盗むことはできません。

さらに、sshキーは、ssh-agentのようなものと一緒に使用すると便利です。適度なセキュリティを維持しながら、毎回再認証することなく接続するという手間のかからない操作が可能です。

秘密鍵を盗むのに十分なアクセス権を持つユーザーは、ユーザーのパスワードもかなり簡単に盗むことができるため、両方を要求しても大きなメリットはありません。これ以上のセキュリティが必要な場合は、RSA SecurIDや WiKID などの2要素認証システムを検討することを検討してください。

22
mattdm

あなたが本当に求めているのは、「他の要素よりも1つの要素が優れている」ということです。トピックは多要素認証であり、実際にはトピックを調べることをお勧めします。

通常、「要因」とは、あなたが知っているもの(パスワード)、持っているもの(sshファイルまたはキースワイプカード)、またはあなたが持っているもの(指紋)です。

1つはそれ自体よりも優れているわけではなく、無料です。キーファイルでCDを失うことは、それが必要なすべての場合にパスワードを漏らすのと同じくらい悪いことです。安全な環境では、2要素認証が一般的です。

1
Sirex