-
Notifications
You must be signed in to change notification settings - Fork 4
/
425.txt
74 lines (49 loc) · 3.66 KB
/
425.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
63
64
65
66
67
68
69
70
71
72
73
74
* 仕様書
[REFS[
- [1] '''[CITE@en[RFC 7469 - Public Key Pinning Extension for HTTP]] ([TIME[2015-05-05 21:00:37 +09:00]] 版) <https://tools.ietf.org/html/rfc7469#section-2.1.4>'''
- [20] [CITE@en[RFC 7469 - Public Key Pinning Extension for HTTP]] ([TIME[2015-05-05 21:00:37 +09:00]] 版) <https://tools.ietf.org/html/rfc7469#section-2.5>
]REFS]
* 意味
[4] [[利用者エージェント]]が [[Pin Validation]] の失敗を報告する[['''べき''']]ことと、
その報告先 [[URL]] を指定するものです [SRC[>>1]]。
* 構文
[11] 指定する[[ホスト]]が本[[応答]]の[[ホスト]]と一致している必要はありません [SRC[>>1]]。
* 文脈
[2] [[PKP]] [[ヘッダー]]に指定できます。
[3] 省略可能です [SRC[>>1]]。
* 処理
[6] [[URL]] が指定されている場合で [[Pin Validation]] に失敗した時は、
報告を指定された [[URL]] に送信する[['''べきです''']] [SRC[>>1]]。
[[利用者エージェント]]は報告するよう最善の努力を尽くすべきですが、
例外的状況で報告できなくても構いません [SRC[>>1]]。
[EG[
[12] 例えば報告先が [[Pinning Validation]] その他の[[証明書]]の検証に失敗するなら、
[[接続]]を中止しなければなりません [SRC[>>1]]。
]EG]
[5] [[利用者エージェント]]は、指定された [[URL]] に報告を [CODE(HTTP)[[[POST]]]]
します [SRC[>>1]]。
[7] [[利用者エージェント]]は、指定された [[URL scheme]] が [[TLS]]
を使うものなら、[[ホスト]]が [[Known Pinned Host]] であるなら [[Pinning Validation]]
をしなければ[['''なりません''']] [SRC[>>1]]。
[8] [[利用者エージェント]]は、指定された[[ホスト]]が[[既知HSTSホスト]]なら、
[[HSTS]] を適用しなければ[['''なりません''']] [SRC[>>1]]。
;; [9] [[リダイレクト]]をどう処理するべきかは不明です。
;; [10] 趣旨からすると [[HSTS]] 適用後に [[TLS]] を使うなら [[Pin Validation]]
を行うべきと思われます (が仕様書にはそうは書いていません)。
[13] 報告先ホストが [[Pin Validation]] に失敗し、元のホストに報告するよう求めるようなループを検出し、報告をやめる[['''べき''']]です [SRC[>>1]]。
;; [14] なぜこれが MUST でなくて SHOULD なのかは謎です。無限ループに陥る実装が正当である理由など無いと思うのですが...
[15] 報告失敗時には、後から再送を試みても構いません [SRC[>>1]]。
[16] 報告送信頻度は制限する[['''べきです''']] [SRC[>>1]]。
同じ報告をむやみに繰り返さないよう努力する[['''べきです''']] [SRC[>>20]]。
[EG[
[17] 例えば同じ組の [[Pin]] に関して同じ [[URL]] に同じ報告を何度も送る必要はありません
[SRC[>>1]]。
]EG]
;; [21] [[PKP-RO]] は当該[[応答]]の処理後は検証のために情報を保持しないことになってはいますが、
報告の重複チェックのために保持することは禁止されていない (むしろ求められている)
ようです。
* メモ
[18] 任意の他サイトに報告を送って良いのかどうかは謎です。とはいえ同じホストに送ってもおそらく
[[Pin Validation]] エラーになることは変わらないので、違うホストに送る必要があるのでしょうが...
;; [19] [[DDoS]] に使えそうですが、 [CODE(HTMLe)@en[[[img]]]] や [CODE(HTMLe)@en[[[script]]]]
で他のホストに[[要求]]を送らせること自体は既にできるので、新たな脅威ではなさそうです。