/
362.txt
141 lines (107 loc) · 3.99 KB
/
362.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
[5]
[DFN[JWE]] ([DFN[JSON Web Encryption]])
は、
[[暗号化]]したデータを交換できる
[[JSON応用]]です。
[6]
[[JWS]] 等で構成される [[JOSE]] 規格シリーズの1つです。
* 仕様書
[REFS[
-
[1] [CITE@en[[[RFC 7516]] - JSON Web Encryption (JWE)]]
([TIME[2015-05-20 09:55:47 +09:00]] 版)
<https://tools.ietf.org/html/rfc7516>
-- [3] 移転確認 [TIME[2022-11-23T02:40:26.800Z]]
-- [4] [CITE@en[[[RFC 7516]] - JSON Web Encryption (JWE)]], [TIME[2022-11-23T02:40:19.000Z]] <https://datatracker.ietf.org/doc/html/rfc7516>
--- [7]
[CITE@en[[[RFC 7516]] - JSON Web Encryption (JWE)]], [TIME[2022-11-23T02:52:15.000Z]] <https://datatracker.ietf.org/doc/html/rfc7516#section-2>
--- [17]
[CITE@en[[[RFC 7516]] - JSON Web Encryption (JWE)]], [TIME[2022-11-23T05:48:17.000Z]] <https://datatracker.ietf.org/doc/html/rfc7516#section-3>
]REFS]
* 暗号化
[16] [[JWA]] を使います。
[FIG(short list)[ [9] [[JWE]] の[[暗号化]]用語
- [[JWE]]
- [[AEAD]]
- [[AAD]]
- [[認証タグ]]
- [[CEK]]
- [[JWE被暗号化鍵]]
- [[JWE初期化ベクトル]]
- [[JWE AAD]]
- [[JWE暗号文]]
- [[JWE認証タグ]]
- [[鍵管理モード]]
]FIG]
* データモデル
[8]
[DFN[JSON Web Encryption]] ([DFN[JWE]])
は、
[[暗号化]]され[[一貫性保護]]された[[メッセージ]]を表現する[[データ構造]]です。
[SRC[>>7]]
[18]
1つの [[JWE]] は、
次により構成されます。
[SRC[>>17]]
[FIG(list members)[ [19] [[JWE]]
: [[JOSEヘッダー]] :
次の[[合同]]です。
[FIG(list members)[
: [DFN[[RUBYB[JWE被保護ヘッダー][JWE Protected Header]]]] :
[[被認証暗号化]]操作によって[[一貫性保護]]された[[ヘッダー引数]]群を含む
[[JSONオブジェクト]]です。
当該[[ヘッダー引数]]群は、 [[JWE]] のすべての[[受信者]]に適用されます。
[[JWE簡潔直列化]]においては、
[[JOSEヘッダー]]全体で構成されます。
[[JWE JSON直列化]]においては、
[[JOSEヘッダー]]の構成要素の1つです。
[SRC[>>7]]
: [DFN[[RUBYN[JWE被共有非被保護ヘッダー][JWE Shared Unprotected Header]]]] :
[[JWE]] のすべての[[受信者]]に適用される[[ヘッダー引数]]群であって[[一貫性保護]]されないものを含む
[[JSONオブジェクト]]です。
[[JWE JSON直列化]]にのみ出現できます。
[SRC[>>7]]
: [DFN[[RUBYB[JWE受信者毎非被保護ヘッダー][JWE Per-Recipient Unprotected Header]]]] :
[[JWE]] の単独の[[受信者]]に適用される[[ヘッダー引数]]群を含む
[[JSONオブジェクト]]です。
当該[[ヘッダー引数]]群は[[一貫性保護]]されません。
[[JWE JSON直列化]]にのみ出現できます。
[SRC[>>7]]
]FIG]
: [[JWE被暗号化鍵]] :
: [[JWE初期化ベクトル]] :
: [[JWE AAD]] :
: [[JWE暗号文]] :
: [[JWE認証タグ]] :
]FIG]
[10]
[[平文]]の[[機密性]]と[[一貫性]]、
並びに[[JWE被保護ヘッダー]]と [[JWE AAD]] の[[一貫性]]を保証するため、
[[被認証暗号化]]を使います。
[SRC[>>17]]
* 直列化
[20] [[JWE]] は、 [[RFC 7159]] [[JSON]] データや [[base64url]]
を使って記述されます。 [[JSON]] は、その定めるところにより、
値の前後に[[空白]]を挿入できます。 [SEE[ [[JSON]] ]]
[SRC[>>17]]
[14]
[DFN[[RUBYB[JWE簡潔直列化][JWE Compact Serialization]]]]は、
[[JWE]]
の簡潔で [[URL]] 安全な文字列としての表現です。
[SRC[>>7]]
[15]
[DFN[[RUBYB[JWE JSON直列化][JWE JSON Serialization]]]]は、
[[JWE]] の [[JSONオブジェクト]]としての[[直列化]]です。
[[JWE JSON直列化]]では複数の[RUBYB[当事者][parties]]に対して同じ内容を暗号化できます。
[SRC[>>7]]
* 歴史
[2]
[DFN[RFC 7516]]
は、
[TIME[西暦2015年5月][2015-05]]に
[[IETF]]
[[標準化過程RFC]]
([[提案標準]])
として出版されました。
[SRC[>>1]]
* メモ