3rd パーティクッキーの廃止計画が世間を賑わせています。一方で、3rdパーティクッキーには、トラッキング目的でないユースケースもあります。それらのために、3rdパーティクッキーの制限を緩和する「Cookies Having Independent Partitioned State (CHIPS)」という仕組みが検討されています。
この仕組みに則っていれば、制限のもと3rdパーティクッキーを使えるようになります。
もちろん、これはトラッキングが出来ないようになっています。
仕様: https://github.com/WICG/CHIPS
Chromeの実装計画: 「Intent to Prototype: Cookies Having Independent Partitioned State (CHIPS)」
ユースケースについては、仕様の中で述べられていますのでそちらを参照ください。
CHIPS以前の3rdパーティクッキー
CHIPSがどのようにCookiを制限するか説明する前に、今の3rdパーティクッキーについて軽く説明をします。
次の例では
- https://a.example , https://b.example が https://cookie.example を埋め込んでいます
- https://cookie.exampleはcookieを設定します
クッキーは払い出したドメイン(ホスト名)をキーにブラウザに保存されます。そのため、どのサイトにサブリソースと埋め込まれても共通してCookieが共有されます。ですので、ユーザのトラッキングに使用できました。
CHIPSの緩和
「Cookies Having Independent Partitioned State (CHIPS)」では、払い出したドメインだけでなく、トップレベルのサイトもキーにして保存領域が分割されます。
先の例と同じように、https://a.example と https://b.example に https://cookie.example を埋め込んでいます。https://cookie.exampleから払い出されたCookieは異なる領域に保存されます。そのため、クロスサイトでのトラッキングには使う事はできません。
CHIPSのオプトイン
CHIPSで定義されるように、Cookieを動作させるために、set-cookieする際にpartitioned属性を付与する必要があります。
Set-Cookie: __Host-SID=31d4d96e407aad42; SameSite=None; Secure; HttpOnly; Path=/; Partitioned;
その他にも以下の制約がある
- Cookie Prefixesで定義される __Hostプレフィックスがついている必要がある (Domain属性を上書き設定不可になる)
- SameSite属性はNoneが指定される必要がある
- Secure属性がついている必要がある
- HttpOnly属性がついている必要がある
将来的には、3rdパーティリクエストするさいPartitioned属性のついたCookieのみが送信され、Partitionedの無いCookieは送信されないようになるものと思われます。