ダイジェスト認証は、チャレンジ/レスポンスメカニズムの風味に似ています:theresは、クライアントとサーバーの両方でパスワード(MD5など)と混在し、そのようなミキシングの結果のみがネットワーク経由で送信されるランダムな文字列です。クライアントはダイジェストHTTP認証でチャレンジ(nonce)を選択できますか?
通常、チャレンジ(nonce)はサーバーによって選択され、クライアントに送信されます。 Wikipedia articleダイジェスト認証では、サンプルの「セッション」がリストされます。チャレンジ(「ノンス」)は、そこのサーバーによって選択されます。私は私のマシン上のIISで同じことをテストしました - もう一度、挑戦はIISによって生成されます。
like this oneいくつかの投稿では、クライアントがチャレンジを生成します。クライアントはランダムな文字列を生成し、チャレンジとパスワードとそのチャレンジの結果を含むリクエストを送信します。
後者は許可されて広く受け入れられていますか?クライアントはチャレンジを選択できますか(ノンス)?
リンクされた例では、クライアントはサーバーにチャレンジをまったく発行しません。サーバーからチャレンジを先取りしています。 –
@ Phil:本当ですか?つまり、クライアントは自分自身を認証するためにノンスを実際に選択することができます。次に、真正性の検証はサーバー側のようにどのように見えますか?幸いにも、通信はHTTPS経由です。 – Gumbo
私の答えにリンクしているWSSEの記事を読んでください。クライアントは、パスワードハッシュとナンスを送信します。ノンスは、サーバーが独自のパスワードハッシュを生成してクライアントが送信したものと比較するために使用します。これは、ダイジェストに対する小さな最適化を可能にします。サーバーからノンスを取得するための特別なラウンドトリップはありません。 –