Curious TechieDev Toolbox
すべてのガイド/プライバシー & セキュリティ8 min read

ブラウザフィンガープリントとCanvas追跡の仕組み

Cookieを使用せずに端末を特定する技術:Canvas描画、AudioContext、WebGLパラメータ、およびプライバシー対策を解説。

重要ポイント (要約)
  • ブラウザフィンガープリントは、ハードウェアやOSの微小な差異を組み合わせて端末固有の識別子を生成します。
  • Cookieやローカルストレージに依存せず、シークレットモードでも追跡が継続します。
  • Canvasフィンガープリントは、GPUのレンダリングやフォント描画の微妙な違いを読み取ります。
  • AudioContext追跡は、サウンドカード処理時の浮動小数点計算の僅かな差異を分析します。
  • 対抗策として、Canvasへのノイズ注入やTor Browserのようなパラメータ均一化が有効です。

1. ブラウザフィンガープリントの概要

ブラウザフィンガープリント(Browser Fingerprinting)とは、利用者のブラウザ設定、グラフィックボード(GPU)、オペレーティングシステム、ハードウェア構成などの多角的な技術情報を収集・結合して個々の端末を識別する高度な追跡技術です。

1920x1080の画面解像度といった単一の要素は多数のユーザーと共通ですが、数十種類に及ぶ微細なシステム環境変数を掛け合わせることで、統計的にほぼ重複しない唯一無二のデジタル指紋が形成され、端末内にCookieを保存することなく複数サイトを横断したユーザー行動の追跡が可能となります。

2. 主要なエントロピー採取ベクトル

Canvasラスタライズ差異GPUドライバーやフォントレンダラーのアンチエイリアス処理によるピクセル単位の微小な色ブレ。
WebGL GPUプロファイリング非マスキング状態のGPUベンダー名、レンダラー型番、浮動小数点シェーダー精度限界の取得。
AudioContext音響解析合成音声シグナルがDAC(デジタル-アナログ変換器)やバッファで減衰する微細な周波数差の測定。
ハードウェア並列度(コア数)論理CPUコア数(navigator.hardwareConcurrency)および大まかなRAM容量(navigator.deviceMemory)。

3. CanvasおよびWebGL描画の個体差

不可視のHTML5 <canvas> 要素上で複雑な2Dグラデーションやフォントテキストを描画する際、OSの描画サブシステム(DirectX、Metal、OpenGL)や物理的なGPU半導体の演算精度の違いにより、生成されるRGBピクセル値にナノレベルの差異が生じます。

この描画結果をBase64データURLとして抽出し暗号学的ハッシュ化を行うことで、セッションを超えて有効な永続識別子が生成されます。

4. シークレットモードで追跡を防げない理由

シークレットモード(プライベートブラウジング)は、ブラウザを閉じた際にCookie、ローカルストレージ、閲覧履歴を破棄する機能にすぎません。端末の物理GPU、CPUアーキテクチャ、画面解像度、フォント描画エンジン自体は同一のままであるため、フィンガープリント追跡を回避することはできません。

5. 最新のプライバシー保護と対抗防御策

プライバシー重視の先進的ブラウザは主に2つのアプローチで対抗しています:

  • 画一化(Uniformity - 例: Tor Browser): 全ユーザーの環境変数を同一値に固定します(標準解像度への丸め、汎用フォント指定、UTCタイムゾーンへの強制偽装)。
  • ノイズ注入(Noise Injection - 例: Brave, Safari): CanvasやWebGLのピクセル演算結果に微小な擬似乱数ノイズを混入させ、アクセスするたびにハッシュ値をランダムに変化させます。