[6] 
[[JWE]]
の[[ヘッダー引数]]
[DFN[[CODE[zip]]]]
([RUBYB[compression algorithm][圧縮算法]])
は、
[[暗号化]]の前に[[平文]]に適用する [SRC[>>5]] 
[[圧縮]]算法を指定するものです。


* 仕様書

[REFS[
- [1] [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.3>
- 
[5] 
[CITE@en[[[RFC 7516]] - JSON Web Encryption (JWE)]], [TIME[2022-11-23T08:22:47.000Z]] <https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.3>
- [2] [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-encryption-compression-algorithms>
]REFS]

* 値

[7] 
[[大文字・小文字区別]]します。
[SRC[>>5]]

[FIG(short list)[ [11] [CODE[zip]] [[ヘッダー引数]]の値
- [CODE[DEF]]
]FIG]

[4] [CODE[DEF]] は、 
[[RFC 1591]] [[DEFLATE]] を表します。 
[SRC[>>1, >>2, >>5]]

[3] [[IANA登録簿]] [SRC[>>2]] があります。 [SRC[>>1]]

[12] 
令和4年時点で登録されているのは [CODE[DEF]] だけです。
[SRC[>>2]]

* 文脈

[8] 
[CODE[zip]]
[[ヘッダー引数]]は[MAY[省略可能]]です。
[CODE[zip]] [[ヘッダー引数]]が存在しないときは、
[[平文]]の[[暗号化]]前に[[圧縮]]を適用しないことを表します。
[SRC[>>5]]

[9] 
[CODE[zip]] [[ヘッダー引数]]を使うときは[[一貫性保護]]しなければならず、
従って [[JWE被保護ヘッダー]]でのみ使わなければ[MUST[なりません]]。
[SRC[>>5]]

[10] 
[[JWE]] の実装は、
[CODE[zip]]
[[ヘッダー引数]]を理解し処理しなければ[MUST[なりません]]。
[SEE[ [[ヘッダー引数]] ]]
[SRC[>>5]]

-*-*-

[14] 
[[圧縮]]と[[暗号化]]の組合せは [[BREACH]] のような重大な攻撃が可能な[[脆弱性]]となり得ることが知られています。
[CODE[zip]] によってまさにそれが可能であることが指摘されています [SRC[>>16, >>15]]。

[17] [[Web]] 業界で [[CRIME]] / [[BREACH]] が報告されて深刻な問題となったのが[TIME[西暦2012年][2012]]から[TIME[西暦2013年][2013]]頃のことで、
[[JWE]] の [[RFC]] 化が[TIME[西暦2015年][2015]]なのに、
[[RFC]] がこの問題をスルーしているのは不審です。

[18] 
[CODE[zip]] は、その利用が安全だとわかっていない限り、使うべきではありません。
たとえある時点で安全であっても、[[アプリケーション]]の進化に伴って[[暗号化]]されるデータが変化して、
安全でなくなる可能性もあります。従って取り扱いには細心の注意が求められます。
その判断を確実に行えないなら、 
[CODE[zip]]
は避けるべきです。

[19] 
新しい[[応用]]は、 [CODE[zip]] を使うべきではありません。
実装は、既存の[[応用]]との互換性のために必要な場合を除き、
[CODE[zip]] を使うべきではありません。
可能なら、 [CODE[zip]] が使われた入力は拒絶するべきです。

[REFS[
- [16] [CITE@en[7 Best Practices for JSON Web Tokens - DEV Community 👩‍💻👨‍💻]], [TIME[2022-12-15T11:03:09.000Z]] <https://dev.to/neilmadden/7-best-practices-for-json-web-tokens>
- [15] [CITE@en-US[Detailing a CRIME/BREACH-like attack against [[JWT]]: the REJECTS attack – rick osborne .org]], [TIME[2022-12-15T11:01:18.000Z]] <https://rickosborne.org/blog/2019/11/rejects/>
]REFS]

* メモ


[13] 
zip って[[一般名詞]]なんでしょうけど、どうしても [[ZIP]] を連想してしまうわけで...
なんでこの語を選んだし


