ブラウザの指紋: サイトが訪問を見分ける仕組み

ブラウザの指紋: サイトが訪問を見分ける仕組み

サイトはブラウザや端末の情報を組み合わせ、Cookie がなくても訪問を見分けることがあります。指紋テストで分かること、各対策の限界、リモートブラウザで変わることを解説します。

セキュリティ・プライバシー
Browser.lol
27.10.2024
読了目安 20 分
シェア

プライベートウィンドウを開き、Cookie を消してから、ブラウザの指紋を調べるサイトに アクセスしてみましょう。サイトはそれでもブラウザや端末の特徴を観測できます。 一つ一つはありふれた特徴でも、組み合わせると、テストを受けたブラウザの中で 区別できる場合があります。サイトが氏名を知ったり、今後の訪問を必ず追えたりする わけではありません。ただ、Cookie の削除だけでは対処できないことが分かります。

ブラウザ指紋採取は、言語、タイムゾーン、画像の描画結果、対応機能などを組み合わせる 手法です。スクリプトが Web API から取得する情報もあれば、通信時に送られる情報も あります。保存済みの識別子がなくても、訪問を照合する手掛かりになり得ます。 ただし精度はブラウザ、スクリプト、比較対象、情報の安定性によって変わります。 仕組みと研究結果を確認しながら、対策に何ができるかを見ていきます。

ブラウザの指紋とは何か

ブラウザの周囲に画面、チップ、文字、時計、地球、信号のアイコンが並び、観測できる特徴を示す図

言語、タイムゾーン、画面サイズ、画像の描き方を考えてみてください。 どれか一つで個人が分かる必要はありません。組み合わせによって、訪問者の中で 特定のブラウザが目立つことがあります。サイトや複数のサイトに組み込まれた 第三者は、後の訪問で情報を比較できます。Cookie を置かなくても照合は試せますが、 Cookie、アカウント、IP アドレスがあれば手掛かりは増えます。

Cookie はブラウザに保存され、決まった条件で送られる値です。ブラウザの設定に 応じて、多くの Cookie は削除やブロックができます。一方、指紋は観測できる 特性から計算されます。削除できる単一の「指紋ファイル」はありませんが、 特性がずっと同じとは限りません。設定や更新、端末、ブラウザの防御機能によって 変わります。同じ訪問でも、スクリプトによって異なる指紋が得られます。

プライベートブラウジングでは通常、ウィンドウを閉じた後に残る履歴や保存データが 制限されます。ただし、サイトに見える情報がすべて隠れるわけではありません。 一部のブラウザはプライベートモードで指紋採取への防御も強めるため、効果は 製品ごとに異なります。既知の採取スクリプトが実行前にブロックされる場合もあります。W3C の指紋採取に関する指針は、リスクと、Web の機能を保ちながら識別の手掛かりをすべてなくす難しさを説明しています。

サイトが組み合わせる可能性のある情報

ブラウザの周囲に端末やブラウザの特徴を示す八つのアイコンが並ぶ図

指紋を採取するスクリプトは多様な情報を使えますが、取得できる範囲はブラウザ、 端末、設定、許可によって異なります。画面と描画、システム情報、ブラウザの機能、 利用者の設定という四つに分けて考えると分かりやすいでしょう。どのサイトでも すべての端末の詳しい仕様を読み取れるわけではありません。

画面と描画。ページからは、ウィンドウや画面の大きさ、 色に関する特性、対応する描画機能、Canvas や WebGL で描いた結果などが 分かる場合があります。描画結果をハッシュ化して比較することもできます。 GPU の正確な型番やモニターの配置まで、どのブラウザでも同じように分かるわけではありません。

システム情報。通信のヘッダーや API から、OS や ハードウェアのおおまかな情報を得たり推測したりできます。ブラウザ各社は一部の 情報を減らしてきました。バッテリーやセンサーの API は必ず使えるわけではなく、 利用できる環境や必要な許可も異なります。Battery Status API の資料でも、対応環境は限られるとされています。

ブラウザの機能。バージョンを示す情報、対応する API や コーデック、描画の挙動から、候補となるブラウザを絞れる場合があります。 古いプラグインの一覧は、初期の研究当時ほど役立ちません。拡張機能が外から 見える挙動を変えることはあっても、サイトがインストール済みの拡張機能を すべて列挙できるわけではありません。

設定と音声の出力。言語、タイムゾーン、一部のフォント情報、 Web Audio の出力も手掛かりになり得ます。フォント情報をどこまで公開するか、 また値を揃えるかはブラウザによって異なります。ローカルストレージに対応するか 確かめることはできますが、その有無だけで訪問者を見分けるのは難しいでしょう。

情報を組み合わせるとブラウザを区別しやすくなりますが、項目を増やせば必ず 正確に照合できるわけではありません。多くの人に共通する値もあれば、更新で 変わる値や、サイトごとに意図的に変えられる値もあります。追跡する側は、 変化した情報が同じブラウザのものか判断する必要があります。EFF の Panopticlick 原著論文は 2010 年の参加者集団でこの仕組みを示しました。一定数の特徴があれば 誰でも必ず特定できるという、現在にも通用する法則ではありません。

ブラウザの指紋を採取する技術

スクリプトは通信のヘッダーだけでなく、ブラウザの API に情報を尋ねたり、 画像を描いたり、機能の動作を比べたりできます。取得できる情報はブラウザの仕様や ブロック機能によって変わります。VPN が変えるのは通信経路で、ブラウザの API ではありません。プライベートブラウジングは保存データを変え、製品によっては 指紋採取への防御も変えます。

Canvas と WebGL による描画。図形や画面を描き、その結果を 読み取って比較します。画像の細部は描画装置、ソフトウェア、フォント、ブラウザの 設定に左右されますが、必ずしも固有で安定しているわけではありません。ブラウザは 特定の出力をブロックしたり、値を揃えたり、わずかに変えたりできます。一方で API を全面的に止めると、正規のサイトの機能まで使えなくなることがあります。

Canvas に描かれた三角形の下に、描画結果のハッシュを表す長方形が並ぶ図

音声などの API。Web Audio の出力は実装や設定によって 異なることがあり、画像や言語の情報と組み合わせられます。バッテリー情報が 取得できるのは一部のブラウザや環境だけで、誰にでも使える情報ではありません。 ブラウザが API の精度を下げたり返答を変えたりすれば、訪問間の照合に使いにくくなります。

処理速度や操作の特徴。実行時間や操作のしかたからも情報は 得られます。ただし結果は端末の負荷、ネットワーク、その時の行動によって変わり、 安定した識別子ほど解釈しやすくありません。新しい環境で一部の情報は変わっても、 アカウント、IP アドレス、行動から訪問を結び付けられる可能性は残ります。

訪問間の照合。指紋をアカウント、IP アドレス、過去の訪問と 組み合わせることもできます。情報の一部が変わっても照合できる手法はありますが、 精度はデータ次第で、誰にでも当てはまる割合はありません。User-Agent だけを 変えても、他の特徴が同じなら効果は小さく、かえって珍しい組み合わせになることもあります。

指紋は訪問を結び付ける手掛かりであり、本人確認の決め手ではありません。 既知のスクリプトをブロックする、公開する情報を減らす、ブラウザ間の差を小さくするなど、 複数の対策が役立ちます。別の環境でページを開くと一部の情報は変わりますが、 通信経路やサービスへの信頼も考える必要があります。端末に残る情報とオンラインでの 追跡の違いは プライベートブラウジングの解説をご覧ください。

過去の調査結果は何を示すか

EFF が 2010 年に発表した Panopticlick 論文は、自らテストを訪れた人の ブラウザ 470,161 件を調べました。プライバシーに関心の高い人に偏った標本で、 当時の Flash や Java を使う環境も含まれます。数字はその環境で指紋採取が 成り立ったことを示しますが、現在の全利用者に当てはまる割合ではありません。 新しいテストの結果と併せて原著論文を確認してください。

470,161 件

2010 年の EFF 調査に参加したブラウザ

83.6 %

当時の標本内で指紋が重ならなかった割合

18.1 ビット

調査で求めた指紋情報量の下限

論文のモデルでは、18.1 ビットは約 286,777 件に 1 件の一致に相当します。 また、情報が変わった再訪ブラウザを結び付ける特定の実験では、99.1 % の推定が 正しかったと報告しています。現在の人々を再識別できる一般的な割合ではありません。 ブラウザや防御機能も変わりました。参加者に偏りのあるテストの点数だけで、 あるサイトが後から訪問を見分けられるかは分かりません。

ブラウザが伝える情報を調べる

テストでは一部の情報を確認できますが、匿名性の証明や、あらゆるサイトによる追跡の予測はできません。

  1. 1

    先にデータの扱いを確認する

    EFF の Cover Your Tracks はブラウザの情報を受け取り、匿名化した結果を 比較に使います。実行前にテストの説明を読んでください。指紋のテストでは情報がテスト先に送られ、端末内だけで 完結するわけではありません。
  2. 2

    情報と設定を記録する

    表示された情報、ブラウザのバージョン、プライベートモードの有無、ブロック機能の 設定を書き留めます。珍しさを示す点数は、そのテストの参加者と測定方法に対する 値です。意外な項目があっても、それだけで Web 全体での追跡状況は分かりません。
  3. 3

    リモートブラウザと比較する

    Browser.lol を使う場合は、リモートセッションで同じテストを開きます。 ページのコードはリモート環境で動くため、手元のブラウザや端末とは一部の情報が 違う可能性があります。結果は選んだブラウザ環境、セッション状態、保存済み プロファイル、テスト内容によって変わります。プロファイルにはブラウザの状態が 残る場合があり、新しく起動しても新しい指紋や訪問間の分離は保証されません。
  4. 4

    二つの結果を見比べる

    サイトから見える IP アドレスと、ブラウザが公開する情報を分けて考えます。 リモートブラウザには独自の出口があります。手元の端末で VPN を使っても、 変わるのはリモートサービスまでの通信であり、その出口ではありません。 同じ値が出ても原因がネットワークとは限らず、違う値が出てもアカウントなどを 通じた結び付きは否定できません。
異なる指紋の模様を表示する二つのブラウザ画面を矢印で結んだ比較図
手元のブラウザとリモートセッションを比較します。差は設定次第で、どちらの結果も匿名性の証明にはなりません。

誰が何のために情報を使うのか

同じ情報でも用途は異なります。サイトが再訪を見分けたり、不正利用を抑えたり、 サービスを調整したりするために使うことがあります。複数のサイトに入った 第三者のスクリプトも、ブラウザの防御と与えられたアクセスの範囲で情報を 比較できます。W3C の指針は、サイトをまたぐ照合をプライバシー上のリスクとして挙げています。 広告やアクセス解析の製品にもさまざまな方式があり、ページに入っているだけで 指紋採取をしているとは言えません。

虫眼鏡、値札、鍵、かばんのアイコンが、解析、広告、不正対策、データ取引の用途を示す図

セキュリティや不正対策の仕組みも、ログインや自動化された要求を評価する際に ブラウザと通信の情報を比べることがあります。判断には複数の材料が使われ、 指紋が変われば必ず警告が出るわけではありません。例えばCloudflare はボット検出におけるブラウザ側の情報の利用を説明しています。有益な用途でも、データの扱いと利用者への説明は重要です。

サイトは、指紋に似た観測結果を、入力したアカウントやメールアドレスと 結び付けることもできます。それまで仮名で扱われていた記録から、個人が分かる ようになる可能性があります。マーケティング企業やデータ仲介業者は多様な情報を 組み合わせますが、特定のサービスが指紋を利用しているかは個別の根拠が必要です。 記録が既知のアカウントに結び付けば、ブラウザの防御だけではその関係を消せません。

対策ごとに変わること

道具ごとに守る範囲が異なります。効果はブラウザの版や設定、サイト、情報を見る相手によって変わります。

方法保存される識別情報指紋採取と訪問間の照合
プライベートブラウジング終了後に残る端末内のデータを制限追加の防御が働く場合もあるが、匿名性は保証しない
閲覧データの削除選択した保存データを削除すべての信号やサイトのアカウントは消えない
Cookie の制御設定に応じて Cookie をブロックまたは分離Cookie による照合は減るが、API の読み取りは残り得る
手元の端末の VPNブラウザの保存データは消さない対象の通信経路は変えるが、ブラウザが公開する特徴は変えない
ブラウザ内蔵の保護サイト間で共有される状態を制限する場合が多いスクリプトの遮断や値の統一、変化で対処する場合がある
Tor Browserセッション間に残る状態を制限訪問の結び付きを減らす設計だが、完全な匿名性はない
Browser.lol のリモートセッション手元とは別のブラウザ状態を使う。保存済みプロファイルは残り得るページ実行とサイトへの出口が移るが、訪問の分離は保証しない

Tor Browser は利用者同士の違いを減らし、通信を Tor 経由にする設計です。 有用ですが、匿名性を保証するものではありません。アカウントへのログインや ダウンロードしたファイル、通信を広く観測できる相手から情報が漏れる可能性は 残ります。Tor の出口に追加の確認を求めるサイトや、厳しいセキュリティ設定で 動作が変わるサイトもあります。機微な用途ではTor Project の安全に関する案内を確認してください。

ほかのブラウザにも保護機能があります。Firefox の厳格モードや プライベートブラウジングは一部の信号を制限し、Brave は一部の出力を変化させ、 Safari は既知の指紋採取スクリプトを制限します。仕組みは製品ごとに異なり、 更新も続いています。詳しくはMozilla、 Brave、 WebKitの説明をご覧ください。

目的に合う境界を選ぶ

大きめの角丸の入れ物に、点線の輪郭で描かれたブラウザウィンドウが収まっている図。隔離の泡を象徴している

ブラウザの指紋は、保存された識別子がなくても訪問を関連付ける手段になります。 Cookie の制御やプライベートウィンドウは本来の目的に今も役立ち、最近の ブラウザには指紋採取への防御も増えています。ただし、匿名性を一度に実現する 万能な設定はありません。端末内の履歴、サイト間の追跡、IP アドレス、 手元の端末でページのコードを動かすことのうち、何を気にしているか整理しましょう。

日常の閲覧ではブラウザを更新し、内蔵の保護機能を活用してください。 ページの実行を手元の端末から切り離したい場合は、リモートブラウザを検討し、 実際に使うブラウザ環境、プロファイルの状態、通信の出口を確認しましょう。 アカウント、入力した情報、転送したファイル、サービスまでの通信経路は別の 問題です。手元の端末の VPN が変えるのは Browser.lol までの経路であり、 リモートブラウザからサイトに見える IP アドレスではありません。使う設定で 試してください。指紋が違っても匿名性の証明にはなりません。

次の作業には、隔離されたセッションを。

隔離されたデスクトップブラウザを、今使っているブラウザから開けます。

セッションを開始

ブラウザの追加インストールは不要・利用できる機能はプランによって異なります

調査やテストに活用できます
デスクトップブラウザの画面を端末に配信
数ステップで開始

新着記事

記事一覧