nonce数

nc 引数 (HTTP)

仕様書

意味

[6] 「nonce count」の意味です >>3

[4] credentials では、すべての実装が使わなければなりません >>3

[5] 「使う」とは具体的に何なのかは謎です。

[9] これは replay attack を検出するものです >>3

[15] Authentication-Info: ヘッダーProxy-Authentication-Info: ヘッダー >>18 では、 クライアント要求で指定した値です >>14

構文

[7] credentials では、 値は、本要求nonce 値を使ってクライアントが送信した要求 (本要求を含みます。) の数を十六進数で表したものです。 >>3

[11] 引用文字列でなく字句生成しなければなりません >>3, >>14

[8] 最初の要求では nc=00000001 を送信できます >>3

[16] Authentication-Info: ヘッダー >>14Proxy-Authentication-Info: ヘッダー >>18 では、 十六進数8文字でなければなりません

[17] credentials における桁数はなぜか規定されていませんが、 サーバー>>16 の要件を満たすためには、クライアント>>16 の要件に従う値にしておく必要があります。
[19] RFC 2617 時代には8桁の LHEX と規定されていました >>1 が、 RFC 7616 ではなぜか削除されています。 (たぶん何も考えていないでうっかり削除した、 ただのミスでしょう。 IETF ではよくあることです。) RFC 2617LHEX十六進数ですが、 小文字を使って定義しているものの、 ABNF"..." を使っていて、大文字・小文字不区別と解釈されます。 LHEXL小文字を意図しているようにも思えますが、 謎です。 RFC 7616 は何も言っていません。

文脈

[10] ダイジェスト認証credentialsauth-param で指定できます >>3

[13] ダイジェスト認証が成功したら、 サーバーAuthentication-Info: ヘッダー >>11Proxy-Authentication-Info: ヘッダー >>18 に指定できます。 qop=authqop=auth-int が指定された場合には、 必須です >>14

処理

[12] credentials の値は、response 引数の値の計算に使われます。

歴史

[2] この引数RFC 2069 になく、 RFC 2617 で追加されました。