/
363.txt
169 lines (135 loc) · 4.76 KB
/
363.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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
* 仕様書
[REFS[
- [1] [CITE@en[[[RFC 7517]] - JSON Web Key (JWK)]]
([TIME[2015-05-20 09:55:17 +09:00]] 版)
<https://tools.ietf.org/html/rfc7517>
-- [14] 移転確認 [TIME[2022-11-25T08:11:12.100Z]]
-- [15]
[CITE@en[[[RFC 7517]]: JSON Web Key (JWK)]], [TIME[2022-11-25T08:11:02.000Z]] <https://www.rfc-editor.org/rfc/rfc7517.html>
---
[16]
[CITE@en[[[RFC 7517]]: JSON Web Key (JWK)]], [TIME[2022-11-25T08:35:10.000Z]] <https://www.rfc-editor.org/rfc/rfc7517.html#section-2>
--
[23]
[CITE@en[[[RFC 7517]]: JSON Web Key (JWK)]], [TIME[2022-11-25T08:41:52.000Z]] <https://www.rfc-editor.org/rfc/rfc7517.html#section-4>
--
[12]
[CITE[RFC Errata Report » [[RFC Editor]]]], [TIME[2022-11-25T08:08:58.000Z]] <https://www.rfc-editor.org/errata/rfc7517>
- [2] [CITE@en[RFC 7638 - JSON Web Key (JWK) Thumbprint]]
([TIME[2015-09-09 04:51:29 +09:00]] 版)
<https://tools.ietf.org/html/rfc7638>
- [18] [CITE@en[[[RFC 7518]] - JSON Web Algorithms ([[JWA]])]], [TIME[2019-11-27 04:11:14 +09:00]]
<https://tools.ietf.org/html/rfc7518#section-7.1>
- [20] [CITE[JSON Object Signing and Encryption (JOSE)]], [TIME[2019-03-14 06:55:09 +09:00]] <https://www.iana.org/assignments/jose/jose.xhtml#web-signature-encryption-algorithms>
- [5] [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.1.3>
- [9]
[CITE@en[[[RFC 7516]] - JSON Web Encryption (JWE)]], [TIME[2022-11-23T08:37:24.000Z]] <https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.5>
]REFS]
* データモデル
[22]
[DFN[JSON Web Key]] ([DFN[JWK]])
は、
[[暗号鍵]]を表現する[[JSONオブジェクト]]です。
[SRC[>>16, >>23]]
[24]
[[JSONオブジェクト]]の[[メンバー]]が[[鍵]]の[[特性]]を表します。
[SRC[>>16, >>23]]
[25]
[[JWK]] 本体仕様 [[RFC 7517]] は、
[[算法]]固有ではなく多くの[[鍵]]に共通の[[鍵引数]]を定義しています。
[[鍵型]] ([CODE[kty]]) に応じて他の引数も指定できます。
[[JWA]] は各[[算法]]用の[[鍵引数]]を定義しています。
(別の[[鍵型]]で同じ[[鍵引数]]の名前を共用することもあります。)
[SRC[>>23]]
[27]
[[JWK]]
にはその他の[[メンバー]]があるかもしれません。
実装は理解しない[[メンバー]]を無視しなければ[MUST[なりません]]。
[SRC[>>23]]
[28]
[[JWK]] の[[メンバー]]の名前は、
[[IANA登録簿]]に登録された値か、
[[耐衝突名]]を含む値である[RUBYB[べき][should]]です。
[SRC[>>23]]
[26]
[[メンバー]]の名前は、[[JWK]]
内で固有でなければ[MUST[なりません]]。
[[JWK]] [[構文解析器]]は、
[[JWK]]
が[[メンバー]]名の重複を含む時、
これを拒絶するか、
または重複するメンバー名について字句的に最後のもののみ採用する
[[JavaScript]] [CODE[JSON.parse]]
と同じ挙動の [[JSON]] [[構文解析器]]を使うかしなければ[MUST[なりません]]。
[SRC[>>23]]
[FIG(list short)[ [29] [[JWK]] [[鍵引数]]
- [CODE[alg]]
- [CODE[key_ops]]
- [CODE[kid]]
- [CODE[kty]] (必須)
- [CODE[use]]
- [CODE[x5c]]
- [CODE[x5t]]
- [CODE[x5t#S256]]
- [CODE[x5u]]
]FIG]
-*-*-
[17]
[[JWK集合]]
* アルゴリズム値
[FIG(short list)[ [3] [[JWK]] 用アルゴリズム値
- [CODE[RS1]]
- [CODE[A128CBC]]
- [CODE[A192CBC]]
- [CODE[A256CBC]]
- [CODE[A128CTR]]
- [CODE[A192CTR]]
- [CODE[A256CTR]]
- [CODE[HS1]]
]FIG]
[4] いずれも [[JOSE]] での利用が禁止されています [SRC[>>20]]。
[19] [[IANA登録簿]] [SRC[>>20]] があります。 [SRC[>>18]]
[21]
[CODE[enc]] や [CODE[alg]] の登録簿と共通になっていますが、
種別で区別されており、
現時点で複数の場面で使えるものはありません。
[TIME[2019-12-06T04:44:58.100Z]]
* ヘッダー引数 [CODE[jwk]] (JOSE ヘッダー)
[6]
[[JWS]]
の[[ヘッダー引数]]
[DFN[[CODE[jwk]]]]
(JSON Web Key)
は、
[[JWS]]
を
[[RFC 4949]] [[デジタル署名]]するため用いた[[鍵]]に対応する[[公開鍵]]を表します。
[SRC[>>5]]
[10]
[[JWE]]
の[[ヘッダー引数]]
[CODE[jwk]]
は、
それに対して [[JWE]]
が[[暗号化]]された[[公開鍵]]を表します。
[[JWE]] を[[解読]]するため必要な[[秘密鍵]]を決定するため使えます。
[SRC[>>9]]
[7]
[[公開鍵]]は、
[[JWK]]
で表します。
[SRC[>>1]]
[8]
[CODE[jwk]]
[[ヘッダー引数]]の利用は[MAY[任意]]です。
[SRC[>>1]]
[11] [[JOSE鍵識別]]参照。
* 歴史
[13]
[TIME[西暦2015年5月][2015-05]]、
[[RFC Editor]]
は[[標準化過程RFC]]
[DFN[RFC 7517]]
を[[提案標準]]として出版しました。
[SRC[>>15]]
* メモ