はじめまして、開発基盤部フロントエンドエキスパートチームの小林(@koba04)です。 チームメンバーがまだひとりなので、仲間を募集中です!
macOS High Sierra及びiOS11のSafariで導入されたIntelligent Tracking Preventionについて紹介します。
詳細は、下記のWebKitのブログに書かれていますが、Intelligent Tracking Preventionはクロスサイトトラッキングを制限することを目的とした機能です。
クロスサイトトラッキングとは
まず最初にクロスサイトトラッキングとは、複数サイト間でのユーザーの行動をトラッキングすることです。 クロスサイトトラッキングを行うには、トラッキングしたいサイトに、Cookieを設定した共通のリソースを埋め込みます。 これにより、トラッキングしたいサイトでのユーザーの行動を、共通のリソースによって設定されたCookieを通じて紐付けることができます。
また、この時に利用されるCookieを一般的にサードパーティCookieと呼びます。
これまでの挙動
Intelligent Tracking Preventionが導入されるまでは、SafariのCookieに対する設定は「訪問したWebサイトを許可」がデフォルトになっていました。 したがって、これまでもユーザーが一度も訪れていないサイトによるトラッキングはできませんでした。
ただし、リダイレクトなどを用いてユーザーが認識してないうちに訪問させることが可能でした。
Intelligent Tracking Prevention
macOS High Sierra及びiOS11のSafariでは、SafariのCookieに対する設定は「サイト越えトラッキングを防ぐ」がデフォルトになります。 この設定により、Intelligent Tracking Preventionが有効になります。
Intelligent Tracking Preventionは、ユーザーの行動データを収集し、それによってサイト毎にCookieを含むストレージデータの扱いを変更します。
データ収集
Intelligent Tracking Preventionは、リソースの読み込みだけでなく、タップ、クリック、テキスト入力のようなユーザーインタラクションのデータを収集します。
収集したこれらの情報は、サブドメインを含まないトップレベルのドメインごとに集計されます。
blog.cybozu.io
の場合は、cybozu.io
ごとに集計されます。
その後収集したデータを元に機械学習を行い、クロスサイトトラッキングを行っている疑いがあるドメインを分類します。 今のところ、次の3つの要素が分類に対して強い影響を与えていることが明らかになっているようです。
- 多数のユニークドメインに配置されているリソース
- 多数のユニークドメインに配置されているフレーム
- 多数のユニークドメインに対するリダイレクト
ただし、分類の詳細については明らかにされていません。
また、これらのデータ収集及び分類は、全てデバイス上で行われます。Appleには送信されません。
分類後
上記の機械学習による分類で、クロスサイトトラッキングを行っている疑いがあると判定されたドメインは、下記のように扱われます。 「分類されてから」や「最後に訪問してから」ではなく、「最後のユーザーインタラクションから」というのがポイントです。
最後のユーザーインタラクションから24時間以内
そのドメインのCookieを、サードパーティーCookieとして利用することが出来ます。 したがって、この段階ではクロスサイトトラッキングが可能です。
最後のユーザーインタラクションから24時間以上30日未満
Cookieなどのデータを、Cookieを発行したドメインとアクセス元のドメインの組み合わせごとに異なる保存領域に保存します。 このドメインは、サブドメインを含まないトップレベルのドメインとなります。 この状態になると、サブドメインを含む同じドメインの中ではサードパーティCookieを共有できますが、別ドメインとは保存領域が異なるためCookieを共有できません。 そのため、クロスサイトトラッキングはできなくなります。
最後のユーザーインタラクションから30日以上経過している
Cookieなどのデータは即時に削除されて、その後追加されるデータも削除されます。 したがって、Cookieやストレージが使えない状態となります。
影響
クロスサイトトラッキングを行っている疑いがあると分類される基準が不明なため、影響範囲を特定するのは難しいですが、下記のような影響が考えられます。
- サードパーティのCookieに依存した計測が出来なくなる
- ユーザーが実際に利用するようなサイトでも、クロスサイトトラッキングを行っている疑いがあるドメインと分類されてしまうと、最後のユーザーインタラクションから24時間経過した時点で、サードパーティCookieとして使えなくなります
- したがって、Cookieに頼らずURLのクエリーとして値をドメイン間で受け渡しするなどの対策が必要となります
- ログイン情報の共有が出来なくなる
- 最後のユーザーインタラクションから24時間以上経過するとCookieの共有が出来なくなるため、例えばソーシャルサービスのボタンを別サイトに設置した場合、サービス自体にはすでにログイン済みにも関わらず、ボタンを利用する際に再度ログインが必要となる状況が発生します
- ユーザーインタラクションのないサイトでCookieやストレージが利用出来なくなる
- ユーザーインタラクションのないサイトでCookieやWebStorageなどを利用している場合、クロスサイトトラッキングを行っている疑いがあるドメインと分類されてしまうと、これらのデータを保存することが出来なくなります
質問してみた
冒頭で紹介したブログ記事に質問があったらTwitterで聞いてとあったので、いくつか質問してみました。
- どのドメインがIntelligent Tracking Preventionで分類されたのかわからないけど何か知る方法はあるのか?
- 一度機械学習で分類されても、その後頻繁にサイトを利用するようになることで分類から除外されることはあるのか?