ブラウザフィンガープリント
約 4 分で読めます
最終更新: 2026-03-12
ブラウザフィンガープリントとは
ブラウザフィンガープリントとは、Web ブラウザの設定や環境情報を組み合わせて、個々のユーザーを識別する技術です。指紋 (フィンガープリント) のように、ブラウザの特徴の組み合わせがほぼ一意になることを利用しています。
Cookie と異なり、ブラウザに何も保存せずにユーザーを追跡できるため、Cookie を削除しても追跡が継続する点が特徴です。
収集される情報
フィンガープリントの生成に使われる主な情報は以下のとおりです。
- User-Agent: ブラウザの種類、バージョン、OS 情報
- 画面解像度: ディスプレイのサイズと色深度
- インストール済みフォント: システムにインストールされたフォントの一覧
- Canvas 描画結果: HTML5 Canvas に描画した結果のハッシュ値 (GPU やドライバーの違いで異なる)
- WebGL 情報: GPU のベンダーやレンダラー情報
- タイムゾーン・言語設定: ブラウザの言語と地域設定
- プラグイン一覧: インストールされた拡張機能
これらの情報を単独で見れば一般的ですが、組み合わせると数百万人の中から個人を特定できるほどの一意性を持ちます。EFF の研究によると、ブラウザフィンガープリントの一意性は約 83.6% に達するとされています。
対策方法
完全な防御は困難ですが、以下の方法でフィンガープリントの一意性を下げることができます。
- Tor Browser の使用: すべてのユーザーが同一のフィンガープリントを持つよう設計されており、最も効果的な対策です。
- Firefox の強化型トラッキング防止: 「厳格」モードで既知のフィンガープリント収集スクリプトをブロックします。
- ブラウザ分離: 用途ごとに異なるブラウザプロファイルを使い分けることで、サイト間の追跡を分断できます。
- JavaScript の制限: NoScript 等の拡張機能で JavaScript を制限すると、多くのフィンガープリント手法が無効化されます。ただし、Web サイトの機能が制限される副作用があります。
フィンガープリントの種類と技術的仕組み
フィンガープリント技術は、情報の取得方法によって大きく 2 種類に分類されます。
パッシブフィンガープリントは、HTTP リクエストヘッダーに含まれる情報だけで識別する手法です。User-Agent、Accept-Language、Accept-Encoding などのヘッダー値は、ブラウザが自動的に送信するため、JavaScript を無効にしていても収集されます。サーバー側のログ解析だけで実行できるため、ユーザーが検知することは極めて困難です。
アクティブフィンガープリントは、JavaScript を実行してブラウザの詳細な環境情報を能動的に取得する手法です。代表的な技術を以下に示します。
- Canvas フィンガープリント: HTML5 Canvas にテキストや図形を描画し、その結果をピクセル単位で読み取ってハッシュ化する。GPU、グラフィックドライバー、フォントレンダリングエンジンの違いにより、同じ描画命令でも出力が微妙に異なる
- AudioContext フィンガープリント: Web Audio API でオシレーターノードを生成し、音声信号の処理結果を比較する。オーディオスタックの実装差異が端末ごとの一意性を生む。Canvas と組み合わせると識別精度がさらに向上する
- WebGL フィンガープリント: 3D グラフィックスのレンダリング結果を取得する手法。GPU のベンダー名やレンダラー名に加え、シェーダーの精度やテクスチャの処理結果が端末ごとに異なる
- フォント列挙: JavaScript でさまざまなフォント名を指定した要素を生成し、描画幅の変化からインストール済みフォントを推定する。OS やユーザーが追加したフォントの組み合わせは高い一意性を持つ
これらの手法を組み合わせた商用フィンガープリントライブラリ (FingerprintJS など) は、99% 以上の識別精度を謳っています。
不正検知での正当な利用
フィンガープリント技術はプライバシー侵害の文脈で語られがちですが、セキュリティ上の正当な用途も存在します。
不正ログインの検知では、ユーザーの通常のフィンガープリントと異なる環境からのログイン試行を検出し、追加認証を要求します。たとえば、普段 Windows + Chrome でアクセスしているアカウントに、突然 Linux + Firefox からログインがあった場合、クレデンシャルスタッフィング攻撃の可能性を疑い、二要素認証を強制できます。
ボット検知では、自動化ツール (Selenium、Puppeteer など) が生成するフィンガープリントの特徴を識別します。ヘッドレスブラウザは navigator.webdriver プロパティが true になる、Canvas の描画結果が均一になるなど、人間のブラウザとは異なるパターンを示します。EC サイトの買い占めボットやチケット転売ボットの排除に活用されています。
アカウントセキュリティの分野では、同一フィンガープリントから大量のアカウント作成が試みられた場合に不正登録として検知したり、フィンガープリントの急激な変化をアカウント乗っ取りの兆候として警告したりする用途があります。金融機関のオンラインバンキングでは、取引時のリスクスコアリングにフィンガープリント情報を組み込み、高リスクと判定された場合に取引を一時保留する仕組みが一般的です。
よくある誤解
- シークレットモード (プライベートブラウジング) でフィンガープリントを防げる
- シークレットモードは閲覧履歴や Cookie を保存しないだけで、ブラウザの環境情報は通常モードと同じです。フィンガープリントの防御にはなりません。
- VPN を使えばフィンガープリントも防げる
- VPN は IP アドレスを隠しますが、ブラウザの環境情報には影響しません。フィンガープリント対策には別途ブラウザ側の設定が必要です。
Cookie トラッキングとフィンガープリントの違い
Cookie トラッキング
ブラウザにデータを保存して追跡。ユーザーが削除・ブロック可能。法規制 (GDPR 等) で同意が必要。
ブラウザフィンガープリント
ブラウザに何も保存せず環境情報で追跡。ユーザーが検知・削除しにくい。規制の対象になりにくい。