web-dev-qa-db-ja.com

SSHキー認証がパスワード認証よりも優れているのはなぜですか?

これは概念的なものであるため、技術的な質問ではありません。 SSHキーで使用されている暗号化が通常のパスワードよりもはるかに強力であることは理解していますが、なぜそれがより安全であると考えられているのかわかりません。

私が読んだほとんどのチュートリアルでは、パスワード認証ではなくSSHキー認証を使用することをお勧めします。しかし、私の理解では、事前に承認されたクライアントマシンにアクセスできれば誰でもサーバーに接続できるようになります。つまり、SSHキーによって提供されるセキュリティのレベルは、物理的なセキュリティのレベルと同じくらい強力です。クライアントマシン。

たとえば、自分の電話にSSHキーを設定して自宅のマシンに接続した場合、自分の電話を紛失して誰かがなんとかロックを解除できた場合、自宅のマシンに接続できます。その後、自分の電話のキーを自宅のマシンから削除できることはわかっていますが、クライアントデバイスが紛失または侵害されたことに気づくまでは脆弱です。

私は何かを誤解しましたか、それともそれらの正当な懸念ですか?

46
BoomShaka

SSHサービスがパスワードベースの認証を許可している場合、インターネットに接続されたSSHサーバーは、ユーザー名とパスワードを推測しようとするボットネットによって昼夜問わず攻撃されます。ボットネットは情報を必要とせず、一般的な名前と一般的なパスワードを試すことができます。 johnという名前でqwerty123のパスワードを持っている人は非常にたくさんいます。他のものとは別に、これはログを詰まらせます。

SSHサービスが公開鍵認証のみを許可している場合、攻撃者はサーバーに保存されている公開鍵に対応する秘密鍵のコピーを必要とします。ランダムな攻撃を行うだけでなく、ユーザーに関する事前の知識があり、SSHサーバーの承認されたユーザーのPCから秘密キーを盗む必要があります。

秘密鍵が長いパスフレーズによって保護されることが多いという事実は、二次的な重要性があります。

更新:

コメントが指摘するように、そして私が経験したように、SSHサービスをポート22から大きな番号のポートに移動すると、ログに表示される不正なログイン試行の数が劇的に異なります。これは実行する価値がありますが、私はそれをあいまいさ(セキュリティの誤った感覚)によるセキュリティの形式と見なしています。遅かれ早かれボットネットは低速のステルスポートスキャンを実装するか、意図的にターゲットにされます。準備するほうがいい。

私は常に長いパスフレーズを使用して秘密鍵を保護しています。これは、紛失や盗難に遭いやすいモバイルデバイスでは特に重要だと思います。

また、 http://xkcd.com/538/

Security

40
RedGrittyBrick

論理は、パスワードよりもSSHキーの組み合わせの方がはるかに多いため、推測するのがはるかに難しいということです。 SSHキーを使用すると、パスワード認証を無効にすることもできます。これは、インターネットを回る自動攻撃のほとんどが役に立たなくなることを意味します。

物理的なセキュリティに関しては、パスワードを保存することと、紛失したり盗まれたりした場合に、デバイスに暗号化されていないSSHキーを用意することに違いはありません。あなたが持つ唯一の利点は、誰もあなたのパスワードを持っていないことです。理論的にはすべてのデバイスが異なるSSH証明書を持っていることを確認できるので、電話の証明書を無効にできます。

SSHキーをパスワードで保護することも可能だと思います。

8

また、キーボードが「肩越しに」監視されているため、パスワードが侵害される可能性もあります。さらに、多くの場所で同様のパスワードを使用することは、特にパスワードがキーロガーの可能性のある安全性の低いコンピューターで使用される場合は特に弱点です。

コンピュータが盗まれた場合、暗号化されていないキーがハードディスクから読み取られる可能性があるので、パスワードで暗号化してください。

お使いのコンピュータがマルウェアに感染している場合、あなたは関係なく詰め込まれます。

1
eug