パフォーマンス、セキュリティ、柔軟性の観点から、HTTPダイジェスト認証とSSLの違いは何ですか?
HTTPダイジェスト認証の長所と短所は このトピックに関するウィキペディアの記事 -で非常に明確に説明されています-あなたはそれを読むべきです!
率直に言って、HTTP Digest Authは、攻撃者にクリアテキストパスワードを失うことからあなたを保護するだけです(そしてMD5セキュリティの状態を考慮すると、おそらくそれさえも)。
ただし、Man-in-the-Middle攻撃に対しては広く開かれており、実装によっては、高度な機能のほとんどがオプションであるため、再生、辞書、およびその他の形式の攻撃も可能です。
ただし、HTTPS接続とDigest Authで保護されたHTTP接続の最大の違いは、前者ではすべてが公開鍵暗号化で暗号化されるのに対し、後者のコンテンツは平文で送信されます。
パフォーマンスに関しては:上記の点から、(CPUサイクルで)あなたが支払うものを手に入れることは非常に明白であるはずです。
「柔軟性」のために私は一緒に行きます:ハァッ?
ダイジェスト認証は、認証資格情報(つまり、ブラウザの認証ダイアログに入力するユーザー名とパスワード)のみを暗号化します... SSLはページ内のすべてを暗号化します。そのため、SSLの効率は低下し、通常はセットアップがより複雑になります。ただし、SSLには、信頼できる証明書がある場合に、両方の当事者が互いのIDを確認できるという利点があります。 HTTPダイジェスト認証はそれを行わないため、SSLなしでHTTPダイジェストを使用する場合、ログイン情報を送信するサーバーが正しいサーバーなのか、詐欺師なのかがわかりません。
HTTPダイジェスト認証の一部のサーバー実装では、クリアテキストパスワードをサーバーに保存する必要があります。より適切な実装では、save username:realm:MD5(username:realm:password)
これには salting 保存されたパスワードの効果があり、攻撃者がパスワードファイルを取得しました。