ブラウザフィンガープリント完全ガイド 2026
ブラウザフィンガープリントとは、ウェブサイトやサービスが多くの小さな情報を収集することでブラウザやデバイスを識別・追跡する技術です。このガイドでは、ブラウザフィンガープリントとは何か、サイトがどのようにデバイスデータを収集するか、セキュリティやトラッキングにどう使われるか、主要な信号の種類、そして自分のブラウザフィンガープリントをテストする方法について解説します。
ブラウザフィンガープリントとは?
ブラウザフィンガープリントとは、ウェブブラウザとその環境に関する詳細情報(インストール済みフォント、画面サイズ、ブラウザ設定など)を収集し、おそらく一意となるプロファイルを作成するプロセスです。削除やブロックが可能な保存データファイルであるCookieとは異なり、フィンガープリントはブラウザが通常の使用中に公開するパッシブおよびアクティブな情報から構築されます。これらの信号を組み合わせることで、Cookieが消去されてもデバイスやブラウザセッションを一意に識別できます。
ウェブサイトがデバイスデータを収集する方法
ウェブサイトは、標準的なウェブ技術(HTML、CSS、JavaScript)とHTTPリクエストを使用してフィンガープリントデータを収集します。一部のデータはネットワークリクエスト(HTTPヘッダー)で確認でき、一部はブラウザのAPI(navigatorオブジェクト、screenオブジェクト)から返され、一部はグラフィックスやフォントをレンダリングして出力を読み取ることで生成されます(CanvasおよびWebGL)。運営者はページの読み込み中にバックグラウンドで多くの小さな情報をリクエストする短いスクリプトを実行します。ウェブサイトはこれらの情報を組み合わせて単一のフィンガープリントプロファイルを作成します。
ブラウザフィンガープリントが使用される理由
ブラウザフィンガープリントは主に3つの目的で使用されます:
- セキュリティ:異常または不審なログインの検出。ログイン試行がアカウントの通常のフィンガープリントからのものであれば正常に見えます。大きく異なるフィンガープリントからの試行は追加認証をトリガーできます。
- マルチアカウント検出:金融サービスやEコマースはフィンガープリントを使用してマルチアカウントの可能性をフラグします。本来別々であるべき複数のアカウントが同じフィンガープリントから操作されている場合、アラームが発生する可能性があります。
- トラッキングと広告:広告主やアナリティクス企業は、Cookieが存在しないか制限されている場合にフィンガープリントを使用してサイト間でユーザーを追跡します。フィンガープリントは時間の経過とともにブラウジングセッションを結び付けることができます。
主要なフィンガープリント信号とその内容
個々の信号が単独で一意になることはまれですが、組み合わせることで強力な識別子を形成します。以下は、フィンガープリントで使用される最も一般的な信号です。
Canvasフィンガープリント
Canvas APIを使用すると、ウェブページは図形やテキストを描画できます。ブラウザ、GPU、フォント、ドライバーのわずかな違いにより、同じ描画操作でもマシンごとにわずかに異なるレンダリング結果が生じます。サイトはCanvas要素に隠しテキストやグラフィックスを描画し、ピクセル出力を文字列またはハッシュとして読み取ります。
WebGLフィンガープリント
WebGLはデバイスのGPUとドライバーを使用してブラウザ内で3Dグラフィックスをレンダリングします。Canvasと同様に、WebGLの出力はハードウェア、ドライバー、システムのグラフィックススタックによって異なります。サイトは3Dシーンをレンダリングし、レンダラー文字列、サポートされている拡張機能、精度値、レンダリングされたピクセル結果などの詳細を収集します。
HTTPヘッダー
HTTPヘッダーはすべてのネットワークリクエストとともに送信され、User-Agent、Accept-Language、Accept-Encodingなどのフィールドが含まれます。ヘッダーはブラウザ名とバージョン、オペレーティングシステム、優先言語、受け入れ可能なファイルタイプ、そして時にはプラットフォーム固有の特徴を明らかにします。
タイムゾーン
ブラウザはローカルタイムゾーンのオフセットや、場合によってはタイムゾーン識別子を報告できます。タイムゾーンは地理的な地域を絞り込み、言語やロケールと組み合わせることでフィンガープリントを強化します。
フォント
システムにインストールされている、または利用可能なフォントのリストです。ウェブサイトはどのフォントがレンダリングされるかを検出したり、テキストを測定してフォントの利用可能性を推測できます。インストール済みフォントリストは、特にオペレーティングシステムやカスタム設定間で大きく異なるため、高エントロピーの信号となります。
画面解像度とディスプレイ
画面の幅、高さ、ピクセル比(devicePixelRatio)、利用可能な画面領域。画面メトリクスはデバイスクラス(スマートフォン、タブレット、デスクトップ)の識別、ブラウザウィンドウサイズの特定、類似デバイスの区別に役立ちます。
ブラウザプロパティ
navigator.platform、navigator.plugins、インストール済み拡張機能(間接的に検出)、Do Not Track設定、利用可能なAPIなどの組み込みプロパティとAPI。これらのプロパティは明示的なブラウザの詳細を提供し、設定やインストール済みソフトウェアの違いを明らかにします。
信号が組み合わさって一意のプロファイルを作成する仕組み
通常、単一の信号だけでブラウザを一意に識別することはできません。フィンガープリントは、多くの低エントロピー信号を高エントロピーの署名に組み合わせることで機能します。サービスは数十から数百の小さな属性を収集し、組み合わせたデータからハッシュまたは識別子を作成します。収集される属性が多く、多様であるほど(グラフィックス、ネットワーク、フォント、タイムゾーン、ヘッダー)、結果のフィンガープリントが一意になる可能性が高くなります。
実例:ブラウザ名、OS、画面サイズ、タイムゾーン、言語の5つの属性を記録すると想像してください。各属性が一致するデバイスのプールを絞り込みます。Canvasハッシュとフォントリストを追加すると、プールはさらに縮小します。組み合わせたハッシュは、大規模なデータセットの中で1人または少数のユーザーにのみ一致する可能性があります。
オンラインでブラウザフィンガープリントをテストする方法
フィンガープリントをテストすることで、サイトが何を確認できるか、そしてあなたの設定がどれほど一意であるかを理解できます。以下は簡単なテストとそのチェック内容です:
- Canvasフィンガープリントテスト — Canvas APIがどのようにレンダリングしハッシュを生成するかをチェックします。
- WebGLテスト — GPU関連のレンダラー文字列とレンダリング出力をチェックします。
- HTTPヘッダーアナライザー — ブラウザが送信するヘッダーを検査します。
- タイムゾーン整合性チェック — タイムゾーンとロケール設定を検証します。
推奨アプローチ:数日間にわたって、また設定変更後に複数のテストを実行してください。結果を比較して、どの属性が安定しているか、どの属性が変化するかを確認しましょう。
アンチディテクトブラウザとフィンガープリント整合性テスト
アンチディテクトブラウザは、異なるまたは一貫したアイデンティティとして表示されるようにフィンガープリント信号を制御または変更すると主張しています。これは以下の方法で行われます:
- ヘッダーとnavigatorプロパティのスプーフィング
- CanvasおよびWebGL出力のブロックまたは変更
- 一致するフォント、タイムゾーン、画面サイズを持つ事前設定済みプロファイルの提供
フィンガープリント整合性テストとは、スプーフィングされたプロファイルが複数回の訪問で同じままであるか、また合成的に見えないほど現実的であるかを確認するプロセスです。効果的なアンチディテクト設定は、すべての信号を一貫させることを目指します(例:タイムゾーンを言語やIPリージョンに一致させる、フォントを主張するOSに一致させる)。不適切に設定されたスプーフィングは、元のフィンガープリントよりも疑わしい矛盾を生み出す可能性があります。
ユーザーへの実践的アドバイス
トラッキングやフィンガープリントの一意性を減らしたい場合は、以下の手順を検討してください:
- 多くの独自の拡張機能やカスタム設定なしで、主流の最新ブラウザを使用する。
- 利用可能な場合は、フィンガープリントスクリプトをブロックするプライバシー保護やブラウザ設定を有効にする。
- 区分化のためにブラウザプロファイルやコンテナを試す(仕事用と個人用のプロファイルを分離)。
- 上記のリンク先のテストを使用して、設定変更の前後にテストし、実際の効果を確認する。
注意:すべてのフィンガープリントを完全に停止することは困難です。多くの防御策はフィンガープリントの一意性を減らしますが、慎重に行わないと不自然に見える形でフィンガープリントを変更してしまう可能性もあります。