2013-09-01 8 views
5

私の知る限り、ダイジェスト認証(片方向操作)はパスワードをハッシュし、ハッシュされたデータをサーバーに送信します。サーバーは保存されたパスワードを使用してハッシュし、受信したハッシュパスワードと同等かどうかを比較します。ミドルマンの攻撃から安全であると考えられています。ダイジェスト認証の概念 - 実際に動作しますか?

私が理解していないのは、私が中高年者のハッカーである場合、元のパスワードは必要ないということです。ハッシュパスワードはサーバーが比較するパスワードなので、ハッシュパスワードを使用してください。

このダイジェスト認証メカニズムの使用は何ですか? この一般的な概要からは機能していないようです。

答えて

13

ダイジェスト認証は、あなたの説明どおりに動作しません。

  1. サーバには、ハッシュされていないパスワードは保存されません。サーバーはUsername:realm:passwordのハッシュを格納します。
  2. クライアントは、すべての認証で同じハッシュを送信しません。

ダイジェスト認証は、チャレンジレスポンスプロトコルです。プロセスを開始するために、クライアントは保護されたURLを要求し、サーバーは領域とnonceで応答します。クライアントが計算する領域とnonceを使用しています。

md5(md5(username:realm:password):nonce:md5(httpMethod:uri)) 

ナンスは異なるハッシュ値を生成するために、各認証が発生し、そうすることでリプレイ攻撃を防ぐことができます。さらに、プレーンテキストのパスワードがワイヤを通過しないため、通信に耳を傾けている攻撃者に対して(弱い)保護を提供しますが、攻撃者がいったんハッシュを解読してもそれを解消するわけではありません。

+0

@ yapkm01:これはあなたの質問に答えますか?不明な点はありますか? – Syon

+0

はい。どうもありがとう!ところで、あなたはここの領域で何を意味していますか? – yapkm01

+0

レルムは、認証プロセス中にユーザー名とパスワードの入力を求めるプロンプトが表示されたときに、ユーザーに表示される文字列です。この文字列の値は、認証を行っているシステムによって異なりますが、一般的には、使用するログイン資格情報をユーザーが理解するのに役立ちます。たとえば、gmailのダイジェスト認証を行っていた場合、その領域は「gmail.com」のようなものかもしれません。 – Syon