見出し画像

[W3C PING]Mitigating Browser Fingerprinting in Web Specificationsの要点まとめ

W3CのPrivacy Interest Group(PING)が公開している、「Mitigating Browser Fingerprinting in Web Specificationn(Web仕様におけるブラウザフィンガープリントの緩和について)」というGroup Noteの大事なところを日本語でまとめていきます。英語の原文は以下です。

概要

ブラウザーフィンガープリントができてしまうことにより、ブラウザの設定等が第三者から参照されてしまうのは、ユーザーのプライバシーの侵害になります。この文書では、フィンガープリントの種類と関連するリスクの対処法(緩和策)を定義しています。また、ウェブの新規機能を設計している仕様作成者が、これらの懸念の中、どのようにバランスをとって設計すべきかを示します。

ブラウザーフィンガープリントについて

ブラウザーフィンガープリントとは、ブラウザの設定等の情報によって、ユーザーを識別が可能になることです。これによって、ユーザーが知らぬ間にセッションを超えたユーザーの行動のトラッキングも使うことができてしまいます。

フィンガープリントの種類について

1. 受動的なフィンガープリント

ブラウザーフィンガープリントはユーザーからのウェブのリクエストから情報を得るものなので、クライアント側でスクリプト等の実行の必要はありません。例としては、HTTPリクエストのヘッダー・IPアドレス・ネットワーク情報などが含まれます。

2. アクティブ(能動的)なフィンガープリント

Javascriptなどのコードをクライアント側で実行させ、ブラウザー・ユーザー・端末等の情報を得ることなどが含まれます。例としては、ウィンドウのサイズや、フォント・プラグインの一覧の取得などが挙げることができます。

3. Cookieのような(cookie-like)フィンガープリント

Cookieのようなフィンガープリントの場合、初回サイト訪問時に保存した情報を参照することによって、再度訪問時に再び同じ人・端末で閲覧していることがわかります。

フィンガープリントとなり得るデータを探す

ブラウザーフィンガープリントに使われ得るデータは以下のようなものがあります。

- ユーザーの設定
- 使用している端末の情報
- センサーの値などの周りの環境の情報
- OSの情報
- ユーザーの行動
- ブラウザーの情報

そして、プライバシー侵害の影響を「情報量」・「検出可能性」・「永続性」・「可用性」・「複数のオリジンで共通するデータかどうか」という指標から考察してみましょう。

ベストプラクティス

  1. 特に受動的なフィンガープリントを避けるため、不必要なフィンガープリントとなり得る情報の公開を止める

  2. 実装する機能が必要な分だけを考え、フィンガープリントとなり得る情報のスコープと可用性を絞り込む

  3. フィンガープリントとなり得る機能にアイコン等をつけ、ユーザーがわかるようにする

  4. 配列データ等の順番を標準化し、ユーザーの環境に寄らないものにする(例えばFlashやJavaのプラグインを通してシステムフォントの一覧を取得する際に、取得したフォントの順番はユーザーのシステム環境によって変わる。これにより「ユーザーAがXXのシステムを使っている」という情報がわかってしまい、フィンガープリントになり得る。)

  5. APIを必要最低限の情報量のみにアクセスできるように設計する

  6. 広告等に使うデータにアクセスするために、それ専用の受け取り口(servers)を作る(例えばClient Hintsの仕様ではAccept-CHというヘッダーを作成した。これはユーザーのコンテンツ交渉に使われるデータを入れることができる。このように全てのユーザーが全てのリクエストにその情報を入れるのではなく、必要な時にのみそのヘッダーを使うようにした)

  7. グレースフルデグラデーションを採用する (リンク : Graceful degradation (グレースフルデグラデーションとは - MDN web docs) 

  8. ユーザーのローカル環境の状態がわかってしまうような仕組みを採用しない

  9. ユーザーのローカル環境の状態がわかってしまうような仕組みがあることを仕様書に明記すること。そして、実装者がそのようなデータのクリア機能を実装するように促す

  10. 永続的なデータを制限する

まとめ

仕様を設計する上でブラウザーフィンガープリントがどんなところでできてしまうのか・そしてそれを設計上に組み込まないように何を気をつけたら良いのかがわかりました。

関連するトピックのリンク