パスワードと鍵認証について尋ねるものではありません。
私はSSHに深刻な脆弱性がある場合でも、キー認証を使用すると、これらの脆弱性を脆弱にする可能性があると何度も言及したことがわかりました(Amazon AWSでも)。ところで、鍵検証方式に脆弱性があるとしたらどうでしょうか?これは単に認証メカニズムに基づいて仮定するのではありませんか?
なぜそう思いますか?パスワードが悪い認証形式であることを私たち全員が知っているので、単に「秘密鍵を使用する」と仮定するのでしょうか?
答え1
いわゆると思います。チャレンジ - 応答モデル。これにより、パスワードが有線経由で送信される場合と同様に、有線を介してスニッフィングされる可能性のある方法でキーペアが公開されなくなります。したがって、より安全であると考えられます。
の一つ回答このセキュリティSE Q&Aの質問は次のとおりです。パスワードを保存するよりも、公開鍵を使用してSSHにログインする方が良いですか?公開/秘密鍵のペアを使用する利点を説明してください。
抜粋
公開鍵の場合、状況は非常に異なります。この場合、サーバーはユーザーの公開鍵を保存します。次のことは、サーバーが任意の値を生成し、公開鍵を使用して暗号化してユーザーに送信することです。ユーザーが元の人であれば、彼はチャレンジを復号化してサーバーに送り返し、ユーザーの身元を確認できます。これが典型的な挑戦 - 応答モデルです。
したがって、NONCEを送信してキーペアを使用する方法を考えると、仲介者にはまったく知られておらず、キーの公開部分のみが公開されます。
本当に疑わしい場合は、そのキーペアの使用を中止し、まったく新しいキーペアセットを再生成できます。
乱数とは何ですか?
抜粋
セキュリティエンジニアリングでは、nonceは暗号化された通信で一度だけ使用される番号です。これは本質的に乱数に似ているため、名前が付けられました。これは通常、再生攻撃で以前の通信を再利用できないように認証プロトコルで送信されるランダムまたは擬似乱数です。たとえば、HTTPダイジェストアクセス認証では、パスワードのMD5ダイジェストを計算するために乱数を使用します。 401認証チャレンジレスポンスコードが発生するたびにノンスが変わるため、プレイ攻撃はほとんど不可能になります。
引用する
答え2
はい、SSHの公開鍵認証メカニズムは脆弱です。ただし、パスワードまたは試行応答認証メカニズムにも脆弱性がある可能性があります。したがって、基本的に、この要素だけでも両方の認証方法は同じと見なされます。
公開鍵認証の利点
秘密鍵はネットワーク経由で送信されません。サーバーには公開鍵があり、その公開鍵を使用して任意のデータを暗号化します。このデータは秘密鍵でのみ復号化できます。暗号化されたデータはクライアントに送信され、クライアントはそれを復号化してサーバーに送信します。
このデータの無差別代入クラッキングもできません。クライアントは一度だけ復号化を試みることができます。間違いが発生した場合は、新しく暗号化されたデータで再起動する必要があります。その後、クライアントが応答するのに数秒しかかからない時間制限があります。
公開鍵認証の欠点
SSH秘密鍵はパスワードで保護することができます。これはセキュリティ上の理由からお勧めします。しかし、これは必須ではありません。
これにより、クライアントシステムが秘密鍵のパスワードで保護されておらず、誰かがシステムに物理的にアクセスしたり、その鍵のコピーを取得したりすると、リモートシステムにアクセスできます。
プロキシキー配信の欠点
クライアントシステムでは、「鍵エージェント」を使用してSSH秘密鍵を保存することが可能であり、一般的です。 SSHクライアントが秘密鍵を使用していくつかの操作を実行する必要がある場合は、鍵エージェントに要求を送信します。
SSH接続を介してこのキーエージェントへのアクセスを転送することも一般的であるため、リモートシステムでローカルSSHキーを使用できます(たとえば、他のシステムにSSHとして接続する場合)。
このタスクの欠点はい、リモートシステムが破損している場合、または他の人がrootアクセス権を持っている場合は、そのシステムに接続するときにSSHキーを使用できます。
キー転送を使用すると、SSHデーモンはSSHキーエージェントと通信するためにリモートシステムに名前付きソケットを配置します。ソケットはデフォルトのファイルシステム権限で保護されているため、そのユーザーだけがアクセスできます。しかし、root は何をしたいのか、ファイルシステム権限は何の意味も持たないので、root ユーザーはソケットにアクセスして秘密鍵を使用できます。
これは彼らがあなたの秘密鍵を持っているという意味ではありません。ただ彼らがそれを使うことができるということです。 SSH鍵エージェントは鍵自体を送信せず、公開鍵認証に必要な「このデータの復号化」要求にのみ応答します。