用語集 · フィンガープリント
WebGLフィンガープリント
WebGL のグラフィックス情報とレンダリング出力を使用してデバイスを識別する。
定義
WebGL fingerprinting は、WebGL API(GPU 加速された 2D および 3D グラフィックス用のブラウザインターフェース)を使用して、デバイス固有のシグナル(グラフィックスベンダーとレンダラーの文字列、サポートされているパラメータと拡張機能、およびレンダリングされたシーンのピクセル)を収集します。
仕組み
- スクリプトがWebGLコンテキストを開き、getParameter()を使用して機能とサポートされている拡張機能のリストを照会します。
- 利用可能な場合、WEBGL_debug_renderer_info拡張機能は、グラフィックスドライバーのベンダーおよびレンダラー文字列であるUNMASKED_VENDOR_WEBGLとUNMASKED_RENDERER_WEBGLを公開します。
- また、キャンバスフィンガープリントと同様に、3Dシーンをレンダリングしてその結果をハッシュ化する場合もあります。
なぜ重要なのか
- GPUの詳細は時間の経過に対して安定しており、デバイス間で異なるため、強力なシグナルとなります。
- 不一致は重要です。Macであると主張しながら、Windows専用のGPUドライバー文字列を報告しているプロファイルは、簡単にフラグを立てることができます。
制限とよくある誤解
- 「どのサイトでも常に私のGPUモデルを読み取ることができる。」MDNは、ブラウザのプライバシー設定によっては、デバッグ拡張機能が特権コンテキストに限定されるか、全く機能しない可能性があると注記しています。Firefoxのprivacy.resistFingerprintingが有効な場合、これは無効になります。
- 「WebGLを無効にすれば、私は目に見えなくなる。」それをオフにすること自体が、稀で目立つ特徴であり、WebGLを必要とするサイトを壊してしまいます。
例: アンマスクされたレンダラー文字列を読み取るページは、特定のGPUとドライバーファミリーを確認できる可能性があり、それが画面サイズやフォントと組み合わさることで、デバイスをかなり絞り込むことができます。
いかなるブラウザやプロキシも、アカウントが制限されないことを保証することはできません。各プラットフォームのルールに従ってください。
関連用語
- Canvasフィンガープリント — HTMLキャンバスの描画方法のわずかな違いからデバイスを特定すること。
- ブラウザ・フィンガープリント — クッキーなしでブラウザを特定できる、ブラウザとデバイスの特性の組み合わせ。