🔒

Google のプライバシーサンドボックス関連の提案の概要と資料をまとめました

2021/10/10に公開

はじめに

最近目にする FLoC や First-Party Sets について調べていると、Google がサードパーティ Cookie を廃止するための様々な提案を「プライバシーサンドボックス」という名前でまとめているということを知りました。

Google の動向はやはり気になりますし、広告だけでなくプライバシーに関する提案もあるので、とりあえずどういうことをやろうとしているのかの概要と資料をまとめておきたいと思い、この記事を書きました。

おことわり

なるべく正確な情報をまとめることを心がけていますが、私はあまり広告の領域に詳しくはありませんし、各提案を完全に理解しているわけではありません。
また現在は提案の段階なので、今後変わっていく可能性もあります。
最新の正確な情報は The Privacy Sandbox: Technology for a More Private Webプライバシーサンドボックス - Chrome Developers、各提案の内容をご参照ください。

誤った情報などありましたら、コメントなどでご指摘いただけますと幸いです。

プライバシーサンドボックスとは

プライバシーサンドボックスは、サードパーティの Cookie やその他の追跡メカニズムを使用せずにクロスサイトのユースケースを満たすことを目指す一連の提案です。

https://developer.chrome.com/ja/docs/privacy-sandbox/

Google はサードパーティ Cookie を廃止することを目指しています。
その代替として、サードパーティ Cookie に頼らないターゲティング広告の仕組みや、プライバシーを向上させるための提案をまとめて「プライバシーサンドボックス」と呼んでいるようです。

この記事では Privacy Sandbox とは何ですか? - Chrome Developers に書かれている以下の提案の概要と資料をまとめています。

  • FLoC
  • FLEDGE
  • アトリビューションレポート
  • SameSite Cookieの変更
  • First-Party Sets
  • Trust Tokens
  • Privacy Budget
  • User-Agent Client Hints
  • Gnatcatcher
  • WebID

FLoC

ブラウザ内で閲覧履歴など元に、機械学習によって閲覧者の興味のある領域を区分し、その情報をベースにターゲティング広告を行う、というもののようです。
サーバーではなくブラウザ内で閲覧履歴などを処理し、興味のある領域という数千人単位のグループに振り分けるようです。
数千人のグループであれば個人を特定できないので、プライバシーを守りつつターゲティング広告ができる、というロジックのようです。

FLoC は Federated Learning of Cohorts の略で、コホートの連合学習 と訳されたりするようです。

2022-02-18 追記

Google は FLoC の提案をやめ、新たに The Topics API という提案をしました。
以下の記事に The Topics API の概要をまとめています。

https://zenn.dev/mryhryki/articles/2022-01-30-the-topics-api

Backup

批判

FLoC は、サードパーティ Cookie に代わるターゲティング広告の中心的な技術であり、批判も多くあります。
詳しくは参考リンクの記事を参考にしてください。

参考リンク

FLEDGE

ユーザーの関心に基づいて広告を配信できるが、ユーザーを特定させないための仕様のようです。

具体的には、あるサイトにアクセスすると特定の広告グループに紐付けられ、ブラウザ内で オークションが行われて広告が決定されるようです。
そのため、広告主はどのページを見たなどの情報はわからないが、適した広告を配信できるという仕組みのようです。

TURTLEDOVE

FLEDGE は TURTLEDOVE という提案の最初の実験的な API という位置づけのようです。

Chrome expects to build and ship a first experiment in this direction during 2021. For details of the current design, see FLEDGE.
https://github.com/WICG/turtledove/blob/main/README.md

First Experiment (FLEDGE)
https://github.com/WICG/turtledove/blob/main/FLEDGE.md

参考リンク

アトリビューションレポート

サードパーティ Cookie を使わず、ユーザーのコンバージョンを測定する仕様です。
特定の広告要素をクリックした時に、キャンペーンなどを識別する情報だけを送ってどの程度コンバージョンしたかを測定できるようです。
またレポートを遅延して送信したり、ノイズを含めることでよりプライバシーを高めるようです。

Safari の場合

Safari / Webkit ではサポートされておらず、Private Click Measurement (プライベート クリック測定)と呼ばれる広告コンバージョンを測定する別の API が提案されています。
https://developer.chrome.com/ja/docs/privacy-sandbox/attribution-reporting-introduction/#ブラウザのサポート

リンク先のこちらの動画がわかりやすかったです。
(日本語字幕あり)

https://developer.apple.com/videos/play/wwdc2021/10033/

Google Chrome と Safari で違う方法で計測が必要になりそうです。

参考リンク

SameSite Cookieの変更

Cookie の設定時に付与される SameSite 属性についての話のようです。
すでにモダンブラウザの多くは実装済みですね。

SameSite 属性はクロスオリジンへの Cookie の送信を制御するための属性で、適切に設定することで CSRF などの攻撃を防ぐことができます。
詳しくは以下の MDN のサイトなどを参照してください。

参考リンク

First-Party Sets

First-Party Sets は、異なるオリジンをファーストパーティとして扱うための仕様です。
例えば site-b.example にアクセスした時に、site-a.example のファーストーパーティのメンバーだと指定されていた場合、site-b.examplesite-a.example (ファーストーパーティ)と同等に扱われるようです。

具体的には .well-known/first-party-set というファイルをそれぞれのドメインに設置することで、ファーストパーティであることを検証するようです。

参考リンク

Trust Tokens

アクセスしているのが人間かボットなのかを、ユーザーを識別することなく判定できるようにする仕様のようです。
ただし、どのように人間かボットかを判定するかは、仕様には含まれていないようです。

fetch のオプションに trustToken という設定を与えてアクセスすることで Trust Token の発行・認証ができるようにするようです。
提案の Sample API Usage を参照)

参考リンク

Privacy Budget

Privacy Budget は Font, Canvas, User-Agent などブラウザの識別(ブラウザフィンガープリント)のために使える API に対して、一定の制限を設ける、という仕様のようです。
ただし、現時点では実験段階で絶対的な基準はまだ存在しないようです。

参考リンク

User-Agent Client Hints

User-Agent ヘッダーに含まれる情報量を減らすために Sec-CH-UA* というヘッダーを使って必要な情報を渡すことができるという仕様のようです。
User-Agent ヘッダーは情報量が多く、ブラウザフィンガープリントとしても使われるため、プライバシーを守るため情報量を減らしていきたい、という背景があるようです。

参考リンク

Gnatcatcher

ユーザーをIPアドレスで識別させないための仕様のようです。
以下の2つの要素で構成されているようです。

  • Near-path NAT は別のサーバーを介してアクセスすることでIPアドレスを隠すようです
  • Willful IP Blindness は Web サイトが IP アドレスをユーザーに関連付けしていないことをブラウザに通知できるようです
    • (どういう風に実現するのかが私もまだ理解できていません。理解できたら書きたい)

参考リンク

WebID

IDフェデレーションを使った認証フローを、サードパーティCookieやリダイレクトを使わず、ブラウザで連携するための仕様のようです。

この図がイメージを掴みやすいです。
Federated Credential Management API - 5. High Level Design

参考リンク

補足

ブラウザフィンガープリント

ブラウザフィンガープリントは、ブラウザから取得できる環境などの情報からブラウザを特定する手法です。

ブラウザの識別なので、ブラウザフィンガープリント単体で複数の端末やブラウザを使っているユーザーを識別することはできません。
ただし、Cookie などと併用すればできる可能性があります。

ブラウザフィンガープリントでは、ブラウザバージョン、プラグイン、ハードウェア情報、履歴、フォント、Canvas(WebGL) などの情報を組み合わせてブラウザを特定するようです。
AmIUnique のようにブラウザフィンガープリントのテストができるサイトもあります。

参考リンク

おわりに

ブラウザに依存する部分が大きくなるので、Google Chrome 以外のブラウザがどこまで実装されるのか疑問ですね。
将来的にはそれぞれのブラウザで、広告配信のやり方が変わったりするのでしょうか。(現状を知らないので、既にそうなのかもしれませんが)
広告に大きなメリットがないブラウザベンダーは、広告関連の提案を実装するモチベーションがあまりない気もしました。

ただ、プライバシーサンドボックス(特にFLoC)は批判も多いようですが、それでもこれらの提案がオープンに誰でも閲覧・参加ができる形で議論されているのは Web の良さかな、と私は感じました。

私は正直広告は好きではないですが、Web の発展を支える一部であることは確かだと思います。
サードパーティ Cookie よりプライバシーが尊重された Web の未来が来ると良いな、と調べながら思いました。

参考リンク

全体または複数の提案に関わる資料や、Privacy Sandbox 自体の資料などはこちらにおいておきます。

GitHubで編集を提案

Discussion