ブログに戻る

ブラウザ指紋とは何か?識別のしくみ、よく使われる信号、プライバシー保護のガイド

ブラウザ指紋は、もともと端末に入っている ID ではありません。ウェブサイトがブラウザや OS、画面、Canvas、WebGL、ネットワークなどの信号を組み合わせて作り出す識別結果です。本記事では収集のしくみ、用途、リスク、そして多層でできる防御策を整理します。

ウェブサイトは、端末に Cookie を保存しなくても、2 回のアクセスが同じ端末から来ている可能性を推測できます。ブラウザのバージョン、OS、画面サイズ、言語、タイムゾーン、フォント、グラフィックのレンダリング、ハードウェアの能力、ネットワークの特徴などが組み合わさって、区別度の高い「ブラウザ指紋」を作り出すことがあります。

ブラウザ指紋は、パソコンにあらかじめ埋め込まれている固定 ID ではなく、誰一人として必ず完全にユニークだという保証もありません。より正確には、観測できる一連の属性を標準化・組み合わせ・ハッシュ化・モデル採点して得られる識別結果です。ウェブサイトはそれを使って、現在のアクセスが以前のアクセスと同じブラウザ/端末である確率を推定し、セキュリティ検証、不正対策、互換性調整、統計、広告計測などに利用します。

この技術には正当な用途もありますが、ユーザーが気づかないうちにサイトをまたいだトラッキングに使われることもあります。重要なのは、すべての項目を「完全に消せる」ボタンを探すことではなく、何が公開されるのか、どの防御策が識別性を下げるのか、プライバシー・互換性・業務安定性のバランスをどう取るのかを理解することです。

ブラウザ指紋とは?

一般的なブラウザ指紋は、ブラウザのブランドとエンジン、OS、画面とウィンドウ、タイムゾーン、言語、地域フォーマット、フォント、プラグイン、Canvas、WebGL、オーディオとメディアの能力、ネットワークなどの属性で構成されます。この分類は研究と実務の共通認識です。一方で、「どの指紋も唯一無二である」や「1 つの項目を隠せば関連付けられなくなる」という主張は厳密ではありません。

1 つの項目だけでは、それほど特有ではありません。たとえば Windows・Chrome・中国語を使っている人は多くいますが、具体的なウィンドウサイズ、タイムゾーン、フォント一覧、GPU のレンダリング差、ハードウェアの並列度、ネットワークの特徴が加わると、同じ組み合わせに該当する人数は明らかに減ります。識別システムでは信号の安定性も考慮されます。ブラウザは更新でバージョンが変わりますし、モバイルネットワークの IP も変わりますが、一部のハードウェアやレンダリングの特徴は比較的安定しています。

そこで、実用的な定義は次のとおりです。

ブラウザ指紋とは、ウェブサイトが、ブラウザから見えるソフトウェア・ハードウェア、設定、レンダリング、ネットワークの信号を使って、訪問環境を区別・分類・関連付けする技術です。

指紋はハッシュ値として保存されることもあれば、リスクモデルの入力の一部としてしか使われないこともあります。2 つのハッシュが違っても、必ずしも別端末からのアクセスとは限りません。2 つのハッシュが同じでも、それだけで同じ人とは証明できません。

ブラウザ指紋はどう収集されるのか?

収集は受動的と能動的の 2 種類に大別されます。

受動的な指紋

受動的な指紋は、ブラウザが接続を確立し、ページをリクエストするときに自然に送る情報から得られます。複雑なスクリプトを実行しなくても、ウェブサイト側の一部は次のような情報を確認できます。

  • IP アドレス、通信プロトコル、リクエスト時刻
  • HTTP ヘッダー、言語、圧縮対応
  • User-Agent または User-Agent Client Hints
  • TLS ハンドシェイクとネットワークスタックの挙動
  • Cookie の有効状態や既存のセッション ID

MDN の Client Hints ガイドでは、サーバーが Accept-CH を使って、後のリクエストで端末・ネットワーク・ユーザーエージェント・設定情報を送るようにブラウザに要求できると説明されています。デフォルトの低エントロピーヒントには、ブラウザブランド、プラットフォーム、モバイル状態、データセーバー設定が含まれます。高エントロピー情報にはより厳しい制限がありますが、それでも識別性を高める可能性があります。

能動的な指紋

能動的な指紋は、ページ内の JavaScript、CSS、またはブラウザ API を使ってテストを実行します。ブラウザに図形を描かせたり、フォント幅を測定させたり、GPU に問い合わせたり、メディア能力を読んだりします。より多くの項目を集められますが、スクリプトのブロック、権限設定、ブラウザのプライバシー方針の影響も受けやすくなります。

よくある流れは次のとおりです。

  1. ページスクリプトがアクセス可能なブラウザ属性を取得する。
  2. 生の結果を整形し、異常値を取り除く。
  3. 複数の項目をまとめてダイジェストや特徴ベクトルにする。
  4. 履歴と比較して類似度と安定性を評価する。
  5. アカウント、行動、IP、Cookie の信号と合わせてスコア化する。
  6. スコアに応じて、通すか、追加認証を求めるか、機能を制限するか、分析イベントとして記録する。

実際のシステムで「指紋ハッシュ」だけを見ることは稀です。アカウントの履歴、操作リズム、ログイン場所、決済情報なども同じ判断に加味されます。

ブラウザ指紋にはどんな情報が含まれるのか?

信号カテゴリ主な項目変わりうる理由
ブラウザとプロトコルブランド、エンジン、バージョン、HTTP ヘッダー、Client Hintsブラウザの更新、プライバシー設定、サーバー要求のヒントの違い
OS と端末OS、CPU アーキテクチャ、タッチ点数、ハードウェア並列度、端末メモリ端末変更、仮想マシン設定、ブラウザによる精度の縮小
画面とウィンドウ解像度、利用可能領域、色深度、ズーム、ウィンドウサイズ外部ディスプレイ、ズーム調整、ウィンドウサイズ変更
地域の設定言語、地域フォーマット、タイムゾーン、日付・数値の書式旅行、システム設定、リモートデスクトップや環境構成
フォントと拡張機能検出可能なフォント、コンテンツブロッカーの影響、拡張機能の注入痕跡フォントの追加・削除、拡張機能の変更、ブラウザの列挙制限
グラフィックのレンダリングCanvas、WebGL、GPU ベンダーとレンダラー、グラフィックス精度GPU、ドライバ、OS、ブラウザのランダム化方針
オーディオとメディアAudioContext の出力、コーデック、メディア機器数ドライバ、権限、外部機器、ブラウザの方針
ストレージと権限Cookie、LocalStorage、IndexedDB、権限状態サイトデータ消去、プライベートセッション、権限変更
ネットワーク公開 IP、IPv6、DNS、WebRTC 候補アドレス、TLS 特徴ネットワーク切り替え、プロキシ・VPN、プロトコル設定

Canvas 指紋

Canvas 指紋は、ブラウザに文字や図形を描かせて、結果をピクセル単位で読み取る手法です。フォントのラスタライズ、OS、GPU、ドライバ、ブラウザ実装のわずかな違いが出力に影響します。Canvas 自体は通常の Web グラフィックス機能なので、まとめて無効化すると図表、エディタ、Captcha、ゲームが壊れることがあります。

WebGL と GPU 指紋

WebGL はレンダラー、対応拡張、精度、描画結果を露出させます。正確なハードウェア名が取れなくても、レンダリング挙動から端末の範囲を絞り込めます。新しい WebGPU のような API でも、機能と識別性のバランス調整は引き続き必要です。

フォント、言語、タイムゾーン

フォント一覧は OS・言語環境・インストール傾向を推測させます。言語、タイムゾーン、IP の所在地が一致しなくても、必ずしも不正ではなく、旅行・リモートワーク・越境チームが原因になることもありますが、リスク管理側では他の証拠と突き合わせて確認すべき信号として扱われることがあります。

ネットワークと WebRTC

プロキシや VPN はウェブサイト側に見える公開 IP を変えられますが、画面・フォント・GPU・ブラウザ設定までは自動では変わりません。WebRTC、IPv6、DNS、プロキシ失敗時のフォールバック経路は、期待と違ったネットワーク情報を返すことがあります。そのため、ネットワークのプライバシー確認は、IP 一回の照会だけでなく、通常接続、切断、ノード切り替え、システム側のネットワーク変化まで含めて行うべきです。

比較項目Cookieブラウザ指紋
保存場所ウェブサイトがブラウザストレージに書き込むその場で観測され、多くはサーバー側で組み合わされる
ユーザー制御確認・拒否・削除できる項目ごとに発見して削除するのが難しい
安定性削除や期限切れで失効データ削除後も残る信号があるが、更新や端末変更で変わる
精度同じ Cookie は通常は明確な識別子多くは確率的な判定で、誤検知・検知漏れが起こり得る
ブラウザ横断デフォルトでは共有されない端末の信号は似るが、それだけではブラウザ横断の識別を保証しない
主な防御策Cookie 制御、パーティション、削除信号エントロピーの低下、標準化、ランダム化、スクリプト制限、環境分離

Cookie を削除すると一部のログイン・トラッキング状態を断てますが、GPU・画面・フォントは変わりません。反対に、指紋の区別度を下げても、ウェブサイトがすでに保存したアカウントや Cookie は消えません。この 2 つの問題は分けて対処する必要があります。

ブラウザ指紋の正当な用途

ブラウザ指紋は広告トラッキングだけの技術ではありません。よく使われる正当な用途には次のようなものがあります。

  • アカウントセキュリティ: 普段のログイン環境と違う兆候を検知し、リスクの高い操作に追加認証を要求する
  • 決済と不正対策: 端末の信号を注文・アカウント・行動のデータと組み合わせてスコアリングする
  • 悪用対策: 自動化された攻撃、クレデンシャルスタッフィング、大量登録、プロモーション悪用を検知する
  • 互換性調整: ブラウザの能力に応じてグラフィックス、ビデオ、入力方式を切り替える
  • 統計と頻度制御: アクセス数を見積もり、イベントの重複を除き、表示頻度を調整する

これらの用途でも、適用される地域のプライバシー・データ保護ルールに従う必要があります。目的の明示、最小限の収集、保存期間の設定、サーバーデータの保護、ユーザーが選べる仕組みの用意が含まれます。セキュリティが必要だからといって、無制限に収集してよいというわけではありません。

ブラウザ指紋がもたらすプライバシーリスク

ユーザーは Cookie 通知を見ることはあっても、スクリプトがどんなフォント・図形・ハードウェア項目を取得したかは通常見えません。サーバーが組み合わせ結果だけを残している場合は、Cookie のように削除する手段がありません。

セッションをまたいだ関連付け

ある属性グループがしばらく安定していれば、ログアウトやサイトデータ削除後も、新しいセッションを古いセッションと似ていると判定されることがあります。複数のサイトが同じトラッキングサービスを共有していれば、関連付けの範囲はさらに広がる可能性があります。

誤判定と集団バイアス

指紋は確率的な信号です。会社の貸与端末、ネットカフェ、学校の PC ルーム、仮想デスクトップは似た環境を生成しやすく、ブラウザの更新、アクセシビリティ機能、プライバシー系のツールで同じユーザーの指紋が変わることもあります。指紋を唯一の証拠にすると、正常なユーザーが何度も再認証を求められたり、不当に制限されたりしがちです。

他のデータと組み合わさるとリスクが上がる

画面サイズ単体では感度が低くても、アカウント、位置、アクセス時刻、購入履歴、行動データと組み合わさると識別性が大きく上がります。プライバシーリスクを評価するときは、項目ごとに孤立して見るのではなく、データの流れ全体を見るべきです。

ブラウザ指紋の識別リスクを下げるには

すべてのサイトで機能に支障なく動く「ワンクリックの不可視モード」は存在しません。現実的なのは、不要な露出とシナリオ横断の関連付けを層状に下げることです。

1. 指紋対策が組み込まれたブラウザを選ぶ

ブラウザごとに方針が異なります。Tor Browser は多くのユーザーが似た特徴に見えるように設計されています。Tor の指紋対策解説では、ウィンドウサイズのバケッティングと Letterboxing、User-Agent の標準化、フォント制限、Canvas 読み取り制限、ファーストパーティ分離などの手法が紹介されています。すべての OS とハードウェアを完全に偽装するのは現実的ではなく、過度なカスタマイズは逆に小さな集団にユーザーを閉じ込めるとも注意喚起しています。

別の方向性として、識別可能な値を部分的に細かくランダム化する方法もあります。Brave の指紋ランダム化解説では、サイト単位・セッション単位で一部の出力を変えることで、トラッカーが同じ結果を安定して再利用しづらくする考え方が説明されています。標準化とランダム化にはそれぞれ得失があり、どちらもサイト互換性の問題にぶつかる可能性があります。

2. ブラウザを最新の状態に保ち、珍しい設定を避ける

古いエンジンはセキュリティリスクがあり、ユーザー母数が小さいため目立ちやすくなります。ブラウザと OS を最新の状態に保ち、出所不明の拡張機能はインストールしないでください。多数の珍しいフォント、特異なプラグイン、独特なウィンドウサイズ、過度にカスタマイズしたプライバシー設定は、1 つの項目を隠す代わりに新しい差を生むことがあります。

3. サードパーティのスクリプトとサイトの権限を制限する

ブラウザのトラッキング保護、コンテンツブロッカー、サードパーティ Cookie のパーティション化は、一部のクロスサイトスクリプトを減らします。カメラ、マイク、位置、通知、クリップボードの権限は本当に必要なときだけ許可します。厳格なブロックによって信頼できるサイトでログイン・決済・編集に問題が出る場合は、そのサイトだけに最小限の例外を作り、保護をまとめてオフにはしないでください。

4. 用途ごとに異なるコンテキストを割り当てる

個人向けの SNS、仕事用バックエンド、決済、临時のブラウジングを別々のブラウザ設定や独立した環境に分けると、Cookie、LocalStorage、IndexedDB、キャッシュ、拡張機能の状態が意図せず混ざるのを防げます。分離の目的はデータ境界を制御することであって、なりすましではありません。

一人のユーザーやチームが、認可された複数の業務アカウントを長期間管理する場合、ブラウザレベルでの環境分離は特に重要になります。PurpleMark のワークスペースではアカウントごとに独立したブラウザ環境を作れ、各環境は OS、User-Agent、解像度、タイムゾーン、フォント、WebGL と WebRTC、Canvas とオーディオの指紋パラメータをそれぞれ保持し、加えて独立した Cookie、LocalStorage、拡張機能、キャッシュを持ちます。これで各アカウントは再現可能で互いに混ざらないブラウザ環境に入り、アカウント横断の指紋関連付け、Cookie の取り違え、ローカルデータの混入が下がります。

ただし、環境分離はブラウザ層でのデータ境界を解決するだけで、アカウント情報・コンテンツ・行動・関係ネットワークをプラットフォームがどう評価するかは変わりません。アカウントの認可、実情報、運営コンテンツの質、コンプライアンスは依然として安定運用の土台です。こうしたワークスペースを素早く立ち上げるには、PurpleMark ウェブ版を開き、最初の独立環境を作成して、アカウントと地域に合わせて指紋パラメータを設定し、その環境にアカウントを紐付けてください。

5. ネットワーク漏洩は別個に管理する

公開 IP を隠したいときは、信頼できるプロキシや VPN を選び、DNS、IPv6、WebRTC の実際の挙動を確認します。プロキシ失敗時にブロックする設定は、ローカルネットワークへ静かにフォールバックするより制御しやすいです。ただし、IP を変えてもネットワーク層の問題が解決するだけで、ブラウザ層の指紋は消えません。

6. シークレットモードの境界を理解する

シークレット/プライベートウィンドウは、セッション終了後に本機に残る履歴・Cookie・サイトデータを減らすことが中心です。セッション中も、ウェブサイトは IP、ブラウザの能力、画面、タイムゾーン、レンダリング結果を見られます。临时的なセッションには向いていますが、指紋対策モードではありません。

自分のブラウザ指紋を確認するには

機微なアカウントにログインしていないテスト環境で、公開されている検出ページを使えば、ブラウザが露出させる項目を観察できます。意味のあるテストは「完全な匿名スコア」を狙うことではなく、再現性のある比較をすることです。

  1. ブラウザ、システム、ネットワーク、テスト時刻を記録する。
  2. 同じ環境で閉じてから開き直して同じテストを繰り返す。
  3. ブラウザやシステムを更新した後に再度比較する。
  4. ネットワークを切り替え、どの項目が公開 IP と一緒に変わるか見分ける。
  5. 別の独立環境を使って Cookie とローカルストレージが分離できているか確認する。
  6. サイトの機能異常を記録し、保護と互換性のトレードオフを評価する。

検出サイトはあくまで自分自身が取得できる項目しか表示できず、他のサイトが同じスクリプトやリスクモデルを採用しているかは証明できません。「ユニーク」と表示される結果もサンプルとテスト時刻に依存し、永続的な ID ではありません。「一般的」と表示される結果も、他のデータで関連付けられなくなるとは限りません。

企業がブラウザ指紋を使うときの注意点

ログインセキュリティや不正対策のために端末信号を収集するサイトは、次の原則を参考にしてください。

  • 明確な目的に関係する項目だけを収集し、「とりあえず全部集める」を避ける。
  • プライバシー通知に目的、保存期間、共有先を明記する。
  • 生の機微信号、ダイジェスト、モデル結果にアクセス制御を掛ける。
  • 指紋をアカウント停止・支払い拒否・本人特定の唯一の証拠にしない。
  • 異常な結果には二要素認証、手動レビュー、救済手段を用意する。
  • 共有端末、アクセシビリティ利用者、プライバシー系ブラウザ利用者への誤判定を定期的に確認する。
  • ベンダーや SDK が変わったら、データの流通と越境転送を再評価する。

合理的なデバイス識別はリスクを下げるためのものであって、ユーザーが知り、誤りを正す機会を奪うものではありません。

よくある質問

ブラウザ指紋は本当に人を一人に絞り込めますか?

保証はありません。指紋が識別するのはブラウザや端末環境の類似性であって、法律上の自然人ではありません。一人で複数の端末を使うことも、複数人で一つの端末を共有することもあります。項目は変化し、モデルが間違うこともあります。

消えません。Cookie を削除するとサイト側に保存された識別子やセッションの一部は消えますが、画面、フォント、GPU、システム、ブラウザの能力は再取得される可能性があります。

プロキシや VPN を使えば指紋で識別されなくなりますか?

なりません。プロキシや VPN は主にネットワーク出口を変えるもので、ブラウザ層・端末層の信号は残ります。DNS、IPv6、WebRTC、切断時のフォールバックが想定どおり動くかも別途確認が必要です。

JavaScript を無効にすれば一番効きますか?

能動的な収集の多くは止まりますが、ログイン・決済・操作に支障が出るサイトが多く、HTTP ヘッダー・IP・TLS などの受動信号は残ります。高リスクの临时的な場面を除けば、ブラウザ内蔵の段階的保護のほうが現実的です。

ランダム性が強いほど安全ですか?

一概には言えません。項目が頻繁に変動すると安定的な関連付けは妨げられますが、整合性のない組み合わせや極端に珍しい組み合わせは逆に目立ち、互換性やリスク管理の問題を引き起こすことがあります。重要なのは、ランダム化がブラウザで体系的に実装されているか、項目間の整合が取れているか、対象サイトが正常に動作するかです。

指紋ブラウザがあれば全ての関連付けやアカウント停止を防げますか?

防げません。Cookie、ストレージ、プロキシ、環境設定を分離してデータの取り違え確率を下げることはできますが、プラットフォームはアカウント情報・コンテンツ・決済・行動・関係ネットワークも評価します。適切な認可と安定した運用が基本です。

まとめ

ブラウザ指紋は、ブラウザ、端末、レンダリング、設定、ネットワークの信号を組み合わせた識別技術です。アカウントセキュリティや不正対策に役立つ一方で、気づきにくいトラッキング手段にもなります。プライバシー保護の要点は、すべての項目を消すことではなく、区别度の高い不要な情報を減らし、サードパーティの収集を制限し、権限を制御し、用途を分離し、ネットワークとブラウザの方針が想定どおり動くかを確認することです。

指紋を絶対的な ID ではなく確率的な信号として扱えば、ユーザーはプライバシーツールを現実的に評価でき、サイトはセキュリティ判断に検証と訂正の余地を残しやすくなります。