ITP更新: IntelligentではなくなったIntelligent Tracking Prevention
iOS13.4やSafari13.1と一緒に新しいITPがリリースされました。主な変更点は二つ。
* 全ての3rd party cookieをブロック
* Local Storage等、クッキー以外のストレージを最後のインタラクションから7日後に削除
インタラクションとは、クリック・タップ・入力のことで、ドメイン毎に監視され、7日以内にインタラクションがないドメインのLocal Storageは削除されます。
その他に、JavaScriptからdocument.referrerで取得する全てのクロスサイトリファラーのダウングレード("https://store.example/baby/strollers/deluxe-stroller-navy-blue.html"の場合、"https://store.example/"しか取得できなくなる)、および5秒以内の自動ページ遷移の検知も追加されました。
3rd-party cookieブロックの歴史
ITPにおける3rd-party cookieブロックの直近の動きを振り返ると、
* ITP2.3(2019年9月)まではトラッカー判定されたドメインの3rd-party cookieだけがブロックされていました。トラッカーかどうかは、各端末で、ユーザが見ているサイトの3rd-partyリソース(画像、スクリプト)やリダイレクトの数をカウントして、機械学習により判定されます。基本的には同じドメインのリソースをたくさんのサイトにばら撒けばそのドメインが判定される可能性が高くなる仕組みです。
* 2019年12月にリリースされた前回のITP(「Preventing Tracking Prevention Tracking」として発表された、バージョン番号なしITP、以降「PTPT」と記述)では、ユーザがインタラクションしたことがないサイトにおいて、cookieのドメインにかかわらず、全ての3rd-party cookieをブロックすることになりました。
* 今回の変更ではインタラクションしたことがあるサイトでも、全ての3rd-party cookieをブロック。つまり、トラッカー判定(ITPの「Intelligent」な部分)は3rd-party cookieのブロックに利用されなくなりました。
トラッキング防止のトラッキング防止
PTPT(トラッキング防止を悪用したトラッキング防止機能)のリリースは、端末ごとに構築されるトラッカーリストを悪用したユーザー特定の可能性をGoogleがWebKitチームに指摘したことによるものでした。(その詳細については、後日公開されました)。
悪用の例としては、(実際はもっと複雑で、もっと多いですが)
* 特定のドメインのクッキーがブロックされているかどうかを確認すれば、そのドメインを訪問したかどうかを推定できる。
* 特定の複数ドメインのブロック状況をフィンガープリントとして、ユーザを一意に識別できる。
というものがあります。
その対策としてAppleは、昨年末から徐々にトラッカー判定リストに頼る処理(3rd-party cookieのブロック、リファラーのダウングレード)を減らし、今回はdocument.cookieの1日規制にしか使わなくなりました。ただ、それも悪用の可能性があるので、今後のバージョンアップではトラッカー判定そのものが完全撤去されるのではないかと推測しています。
Local Storageに待望の保存期限
ITP2.3では、トラッカードメインからのパラメータ付き(link decoration)流入の場合のみ、流入先ドメインのLocal Storageを最後のインタラクションから7日後に削除する機能が追加されましたが、今回は流入元やlink decorationの有無にかかわらず、7日後に削除することになりました。
ただし、インタラクションのないドメインでは数秒から〜1時間以内に削除することになっています。
例えば新しくドメインにアクセスして直帰した場合、
JavaScript(document.cookie)で設定されたcookieの有効期間と同程度の制限なので、Local Storageを使うメリットがほとんどなくなってきています。トラッカーからのパラメータ付き流入LPで設定されたcookieのみ、Local Storageの有効期間より短い(1日 vs. 7日)ということになります。
まとめ
各種ストレージの制限の有無と進化を下表にまとめます(×はブロックという意味)。
最後に
Intelligentなトラッキング防止機能でユーザのブラウジング履歴に合わせてトラッキングを制御しようとすると、今度はユーザのブラウジング履歴とそのユーザを特定できてしまうという根本的な欠落が明らかになったことを受けて、最近のITPはシンプルで無差別的なブロック方式に切り替わりつつあります。Intelligentからシンプル・安全に。
そしてChromeより2年も早く、Storage Access APIでユーザの許可を得たcookieを除く全ての3rd-party cookieをデフォルトでブロックされることになりました。