1

ダイジェスト認証は、チャレンジ/レスポンス メカニズムのフレーバーのように見えます。クライアントとサーバーの両方によってパスワード (MD5 など) と混合されるランダムな文字列があり、そのような混合の結果のみがネットワーク経由で送信されます。

通常、チャレンジ ("ノンス") はサーバーによって選択され、クライアントに送信されます。ダイジェスト認証に関するウィキペディアの記事には、サンプルの「セッション」がリストされています。チャレンジ (「ノンス」) は、サーバーによって選択されます。私は自分のマシンの IIS で同じことをテストしました - 繰り返しますが、課題は IIS によって生成されます。

しかし、このような一部の投稿では、チャレンジはクライアントによって生成されます。クライアントはランダムな文字列を生成し、チャレンジとパスワードの積とそのチャレンジを含むリクエストを送信します。

後者は許可され、広く受け入れられていますか? クライアントはチャレンジ (「ノンス」) を選択できますか?

4

2 に答える 2

2

HTTP ダイジェスト認証では、サーバーは常に nonce を生成します。

ただし、HTTP 認証は拡張可能であり、アプリケーションは (基本およびダイジェスト以外の) 他の認証方法を実装する場合があります。リンク先の例では、クライアントは(主に SOAP ベースの) Web サービスの認証形式であるWSSEを使用して認証しています。WSSE では、クライアントが nonce を生成します。

于 2011-02-09T09:03:31.223 に答える
1

ダイジェスト アクセス認証方式は、クライアントがサーバーに対して自分自身を認証する一方向の認証にすぎませんが、その逆はありません。サーバーのみが、クライアントが認証されるために正しく応答する必要があるチャレンジを発行します。したがって、クライアントが本物かどうかはサーバーだけが知っていますが、クライアントはサーバーが本物かどうかを知りません。

ここで、リンクされたコードは正反対のことを行います。クライアントは、認証のためにサーバーにチャレンジを発行します。したがって、クライアントはサーバーが本物かどうかを認識します。

最良の方法は、相互認証を使用することです。

于 2011-02-09T09:07:32.670 に答える