/
449.txt
62 lines (41 loc) · 2.49 KB
/
449.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
* 仕様書
[REFS[
- [3] '''[CITE@en[RFC 7616 - HTTP Digest Access Authentication]] ([TIME[2015-11-10 07:05:08 +09:00]] 版) <https://tools.ietf.org/html/rfc7616#section-3.4>'''
- [14] [CITE@en[RFC 7616 - HTTP Digest Access Authentication]] ([TIME[2015-11-10 07:05:08 +09:00]] 版) <https://tools.ietf.org/html/rfc7616#section-3.5>
]REFS]
* 意味
[6] 「nonce count」の意味です [SRC[>>3]]。
[4] [[credentials]] では、すべての実装が使わなければなりません [SRC[>>3]]。
;; [5] 「使う」とは具体的に何なのかは謎です。
[9] これは [[replay attack]] を検出するものです [SRC[>>3]]。
[15] [CODE(HTTP)@en[[[Authentication-Info:]]]] [[ヘッダー]]では、
[[クライアント]]が[[要求]]で指定した値です [SRC[>>14]]。
* 構文
[7] [[credentials]] では、
値は、本[[要求]]の [CODE[[[nonce]]]] 値を使って[[クライアント]]が送信した[[要求]]
(本[[要求]]を含みます。) の数を[[十六進数]]で表したものです。 [SRC[>>3]]
[11] [[引用文字列]]でなく[[字句]]を[[生成]]しなければ[['''なりません''']] [SRC[>>3, >>14]]。
[EG[
[8] 最初の[[要求]]では [CODE[nc=00000001]] を送信できます [SRC[>>3]]。
]EG]
[16] [CODE(HTTP)@en[[[Authentication-Info:]]]]
[[ヘッダー]]では、
[[十六進数]]8文字でなければ[['''なりません''']] [SRC[>>14]]。
;; [17] [[credentials]] における桁数はなぜか規定されていませんが、
[[サーバー]]が >>16 の要件を満たすためには、[[クライアント]]も >>16
の要件に従う値にしておく必要があります。
* 文脈
[10] [[ダイジェスト認証]]の [[credentials]] の [CODE(ABNF)@en[[[auth-param]]]]
で指定できます [SRC[>>3]]。
[13] [[ダイジェスト認証]]が成功したら、
[[サーバー]]は [CODE(HTTP)@en[[[Authentication-Info:]]]]
[[ヘッダー]]に指定できます [SRC[>>11]]。
[CODE[[[qop]]=[[auth]]]] や [CODE[[[qop]]=[[auth-int]]]] が指定された場合には、
[['''必須''']]です [SRC[>>14]]。
* 処理
[12] [[credentials]] の値は、[CODE[[[response]]]] [[引数]]の値の計算に使われます。
* 歴史
[2] この[[引数]]は [[RFC 2069]] になく、 [[RFC 2617]] で追加されました。
[REFS[
- [1] [CITE@en[RFC 2617 - HTTP Authentication: Basic and Digest Access Authentication]] ([TIME[2012-01-09 21:04:30 +09:00]] 版) <http://tools.ietf.org/html/rfc2617#page-12>
]REFS]