ハードウェア・システム関連
-
OSの種類・バージョン
-
CPUアーキテクチャ、コア数
-
メモリ量
-
GPUの型番、描画能力(WebGL情報)
-
画面解像度、カラーデプス
-
接続デバイス(キーボード、マウス、タッチスクリーンの有無)
ブラウザ関連
-
ブラウザの種類・バージョン
-
User-Agent
-
インストールされているフォント
-
言語設定
-
タイムゾーン
-
Do Not Trackの有無
-
拡張機能の一部の挙動
-
Cookie有効/無効
ネットワーク関連
-
*IPアドレス
-
HTTPヘッダーの特徴
-
TLSハンドシェイクの指紋(JA3フィンガープリント)
描画系の特徴
- Canvas Fingerprinting
→ ブラウザに文字や図形を描画させ、その微妙な差異(フォントレンダリング、アンチエイリアスの違いなど)をハッシュ化
- WebGL Fingerprinting
→ GPUごとの描画結果や拡張機能サポートの差異を収集
- AudioContext Fingerprinting
→ 音声処理APIの出力のわずかな違いを利用
2. 情報源・実装方法
-
JavaScript API
-
navigatorオブジェクト(OS、ブラウザ、言語、デバイス情報) -
screenオブジェクト(解像度、カラーデプス) -
Intl.DateTimeFormat().resolvedOptions()(タイムゾーン) -
canvas/WebGLRenderingContext(描画差異) -
AudioContext(音声処理差異) -
HTTPヘッダー
-
User-Agent -
Accept-Language -
Accept-Encoding -
Referer -
低レイヤー情報
-
TLSハンドシェイク(JA3)による指紋
-
TCP/IPスタックの挙動差異
3. 利用例
-
広告トラッキング(Cookieが無効でも追跡可能)
-
ボット検出・不正アクセス検知
-
セキュリティ(多要素認証の一部に組み込み)
4. 対策方法
-
ブラウザ拡張(Privacy Badger, uBlock Origin, CanvasBlockerなど)
-
Tor Browser / Brave(フィンガープリント情報を統一する)
-
JavaScript無効化(ただしWeb利用に不便)
-
VPN / プロキシ(ネットワーク情報を偽装)