-
Notifications
You must be signed in to change notification settings - Fork 4
/
644.txt
61 lines (47 loc) · 2.5 KB
/
644.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
[10]
[DFN[[RUBYB[JOSEヘッダー][JOSE Header]]]]は、
使用する
[[RFC 4949]] [[デジタル署名]]や
[[RFC 4949]] [[MAC]]
の[[演算]]や[[引数]]を記述する
[[JSONオブジェクト]]です。
[SRC[>>8, >>47]]
更に追加の情報も含めることが出来ます。
[SRC[>>47]]
* 仕様書
[REFS[
- [7] [CITE@en[[[RFC 7515]] - JSON Web Signature (JWS)]], [TIME[2019-11-24 17:13:01 +09:00]] <https://tools.ietf.org/html/rfc7515>
-- [8] [CITE@en[RFC 7515 - JSON Web Signature (JWS)]], [TIME[2020-03-29 16:13:43 +09:00]] <https://tools.ietf.org/html/rfc7515#section-2>
-- [47] [CITE@en[RFC 7515 - JSON Web Signature (JWS)]], [TIME[2020-03-29 16:13:43 +09:00]] <https://tools.ietf.org/html/rfc7515#section-4>
-- [148] [CITE@en[RFC 7515 - JSON Web Signature (JWS)]], [TIME[2020-03-29 16:13:43 +09:00]] <https://tools.ietf.org/html/rfc7515#section-10>
]REFS]
* データモデル
[13]
[DFN[[RUBYB[ヘッダー引数][Header Parameter]]]]は、
[[JOSEヘッダー]]の[[メンバー]]たる[RUBYB[[[名前]]][name]]と[RUBYB[[[値]]][value]]の[[組]]です。
[SRC[>>8]]
[48]
[[ヘッダー引数]]の名前は、[[JOSEヘッダー]]内で固有でなければ[MUST[なりません]]。
[[JWS]] [[構文解析器]]は、
[[JWS]]
が[[ヘッダー引数]]の重複を含む時、
これを拒絶するか、
または重複するメンバー名について字句的に最後のもののみ採用する
[[JavaScript]] [CODE[JSON.parse]]
と同じ挙動の [[JSON]] [[構文解析器]]を使うかしなければ[MUST[なりません]]。
[SRC[>>47, >>148]]
;; [49] [[JSONオブジェクト]]は、
[CODE[{"name": "value1", "name": "value2"}]]
のごとく同名のメンバーを複数含めることが出来ます。
[[JWS]] はこれを拒絶するか、最後の [CODE[value2]] のみ採用することを求めています。
挙動に曖昧性が認められるのは、
[[相互運用性]]の火種であり、
とりわけ[[セキュリティー]]技術には好ましからざる性質です。
どちらとも実装し得る [[JSON]] 仕様側の問題といえなくもないですが。
[[JSON]] の標準的な実装である [CODE[JSON.parse]]
の挙動、すなわちエラーとせず最後のもののみを採用するのが好ましいと考えられます。
[1] [[ヘッダー引数]]群にまたがっての[[ヘッダー引数]]の重複も禁止されています。
[SEE[ [[JWS]] ]]
* 文脈
[2] [[JWS]], [[JWE]] で使われています。
* メモ