WebGLフィンガープリントとは?GPU情報がブラウザ指紋になる仕組み
WebサイトがGPU情報を読み取る道は2つあります。1つはパラメータを尋ねる方法、もう1つは描画結果を見る方法です。フィンガープリント検出ページを初めて開いたとき、WebGL Rendererの欄に自分のGPU型番が表示されて、「なぜWebページに分かるのか」と驚く方は少なくありません。読み取られるのはハードウェアのシリアル番号ではなく、ブラウザが晒すグラフィック環境の特徴です。その特徴は、半分がインターフェースが直接報告するパラメータ、残り半分がGPUに描画させて読み取った結果です。1項目だけでは身元を特定できませんが、組み合わせると識別力のあるパズルの1片になります。
WebGLはブラウザが提供するグラフィックインターフェースです。Webページ上の3Dモデル、地図、可視化チャートは、いずれもこれを通じてGPUに描画を依頼します。同じインターフェースが、グラフィック環境の一部も手渡します。MostMateは、アカウントごとに独立したブラウザ環境を用意するアンチデテクトブラウザです。GPUとグラフィック関連のパラメータも、同製品が管理する環境シグナルの1種です。扱いは同じです。
2種類の情報:尋ねるパラメータと描画の結果
WebGLフィンガープリントの情報源は2種類あり、収集方法はまったく異なります。1つ目は「尋ねる」方式です。ページがインターフェースに問い合わせ、GPUベンダー、レンダラー型番、対応バージョンなどの回答を得ます。2つ目は「描画させる」方式です。固定内容の描画をGPUに依頼し、結果を読み取ります。出力は機種ごとに微妙に異なります。2つを合わせると、サイトから見たグラフィック環境の肖像になります。

まずは、パラメータ側から見てみましょう。表のとおりです。
| 項目 | 内容 | よくある値の例 |
|---|---|---|
| Vendor | GPUベンダー | Google Inc.(NVIDIA) |
| Renderer | レンダラー型番 | ANGLE(NVIDIA, GeForce RTX 3060) |
| WebGL Version | インターフェースのバージョン | WebGL 2.0 |
| Extensions | 対応拡張の一覧 | 拡張名の集合 |
この一覧には、注目すべき点がいくつかあります。Vendorの欄は、多くのブラウザでGoogle Inc.と共通表示され、実際のベンダーは括弧の中に隠れています。Rendererの値はブラウザの実装によって異なります。同じNVIDIA製GPUでも、ブラウザが報告する文字列の形式は変わることがあります。拡張一覧の差はさらに顕著です。どの拡張に対応し、どの順で並ぶかも、追加情報になります。
これらのパラメータの読み取り入口が、WEBGL_debug_renderer_infoという拡張です。2つの定数を公開します。マスク前のベンダー文字列と、レンダラー文字列です。MDNのドキュメントは、この拡張がもともとデバッグ用であり、ブラウザのプライバシー設定によって変わると明記しています。FirefoxはresistFingerprintingのプライバシー設定を有効にすると、これを無効化します。つまり、同じGPUでも、ブラウザやプライバシー設定次第で報告内容が変わる可能性があります。検出時は要注意です。
GPUはなぜ環境特徴になるのか
識別力は組み合わせから生まれ、単一の項目からは生まれません。GPU市場は高度に集中しています。NVIDIA、AMD、Apple、Intelの4社で大多数の端末をカバーするため、Rendererの1項目だけでは個人を特定できません。しかし、話はここからです。他のシグナルと組み合わせると、識別力が高まる可能性があります。たとえばWindows端末でChromeを使う場合、WebGLが晒すグラフィック環境は通常、対応するOSとブラウザの構成と一致します。ブラウザ情報がWindowsなのに、グラフィック環境にmacOS端末特有の特徴が見えたら、要注意です。タイムゾーンなど他のパラメータも想定と合わなければ、構成全体に矛盾したシグナルが生じている可能性があります。

大切なのは、各パラメータを無作為に改変することではなく、環境シグナル同士の整合を確認することです。1項目だけ無作為に変えても、環境全体がより妥当になるとは限りません。追うべきは整合です。指紋の無作為改変が招く問題については、指紋のランダム化がなぜ危険なのかを参照してください。
次に描画される側を見ます。GPUに固定画像を描画させ、出力を読み取る方式は、Canvasフィンガープリントと発想が同じです。Canvasフィンガープリントの記事では、2D描画差異の仕組みを解説しました。WebGLは3Dパイプラインを通ります。描画はGPUドライバーと低レベルのグラフィックライブラリを経由します。GPUが違えば、ドライバーの版が違えば、ブラウザの実装が違っても、出力が数ピクセルずれることがあります。人の目には見えません。しかしスクリプトは正確に読み取れます。
補足は2点です。1点目、画像差異の識別力は噂ほど誇張されていません。同型番GPU・同版ドライバーの端末同士では、差が出ないこともあります。2点目、画像差異はパラメータ型の情報とは別の収集方式です。検出結果は分けて解釈してください。
WebGL・Canvas・WebGPUの違いは何か
3つの名前、対象は異なります。表でまとめます。
| パラメータ | 観察対象 | 収集方式 |
|---|---|---|
| Canvas | 2D描画の結果 | 描画して差異を読む |
| WebGL | グラフィック能力パラメータと3D描画画像 | パラメータを尋ねる+描画 |
| WebGPU | 新世代グラフィックインターフェースのシグナル | 問い合わせ+演算力の探り |
| AudioContext | 音声処理の出力 | アルゴリズム処理の結果を読む |
WebGPUとWebGLの関係は、一言で説明できます。WebGPUはブラウザが普及を進める新世代のグラフィックインターフェースです。能力が高く、パラメータの幅も広がりました。WebGPUフィンガープリントの記事では、晒される端末特徴を解説しました。一方のWebGLは、現行では対応範囲が最も広いインターフェースです。ほぼすべてのブラウザが対応しています。両者は長く共存します。検出ページに並んで表示されることも多いです。調査時は両方です。
自分のWebGLフィンガープリントを確認する方法
検出の要点は、記録と照合です。眺めて閉じることではありません。手順は3ステップです:
- 環境内でIP検出ページやBrowserLeaksなどのツールを開き、WebGLの欄を探します。Vendor、Renderer、WebGL Version、拡張の数の4項目を記録してください。
- 間隔をあけて同じ環境を再測定し、2回の結果を比べます。パラメータが実GPUからSwiftShaderなどのソフトウェアレンダリングに変わる、拡張の数が明らかに変わる、いずれも環境が変動した合図です。
- WebGLの結果を環境構成全体の中で照らし合わせます。WebGLがWindowsとNVIDIAを報告するなら、UAもOSもWindowsである必要があります。タイムゾーン、言語、出口地域も互いに一致させてください。1項目ずつは正常でも、組み合わせが矛盾する環境はやはり目立ちます。
1種類の表示には、別途の説明が必要です。検出ページにSwiftShaderやANGLE (Google)などのソフトウェアレンダリング表示が出ることがあります。環境にGPUが存在しないケースか、ブラウザがソフトウェアレンダリングへ切り替わったケースです。実機では稀です。長期運用する環境では、対処が必要なシグナルに当たります。
MostMateのWebGL imageパラメータの使い方
MostMateの「指紋設定」では、WebGL imageは単独で調整できるパラメータです。設定ページでは、Canvasなどのグラフィック系パラメータの傍らに並んでいます。環境を作成または編集する際、WebGL imageの欄にはRealとNoiseの2段階があります。Realは実値を保持します。Noiseに切り替えると、出力はノイズモードになります。
切り替えたら、右側の指紋プレビューパネルで該当行を確認します。値は6桁のコード付きの形式に変わります。このコードは他のパラメータと互換がありません。識別するのはノイズ構成です。実際に晒されるハッシュは、環境内で検出ページを開いて確認しましょう。

段階の選び方は、環境が誰を演じるかで決まります。長期育成する環境にはRealがおすすめです。実GPUのパラメータとドライバーの挙動は、最も偽装が難しい部分です。安定していれば、触れる必要はありません。同種の業務のために複数環境を用意するなら、Noiseが差別化された画像出力を提供します。複数の環境がグラフィックの次元で同じ顔を報告することはなくなります。Noiseを選んでも、パラメータを作り直すわけではありません。指紋プレビューパネルの各項目の値はすべて目に見える状態で、構成は一目で確認できます。
限界もはっきり述べておきます。パラメータ管理が下げるのは、環境同士の混用と矛盾のリスクです。WebGLのほか、画面解像度やフォントなどのシグナルはそれぞれ独立しています。項目ごとの揃え方は、アンチアソシエーション一貫性の記事にチェックリストがあります。環境をどれだけ整えても、判定はプラットフォームが行います。この記事は「設定すれば検出されない」という約束は一切しません。
WebGLフィンガープリントのよくある質問
Webサイトは本物のGPU型番を見られますか?
Renderer欄の型番文字列は見られます。ただし、ブラウザがWEBGL_debug_renderer_info拡張を制限していない場合に限ります。これはブラウザが晒すグラフィックの記述情報であり、ハードウェア身元の読み取りではありません。Firefoxなどのブラウザはプライバシー保護を有効にすると、この類の情報を隠したり一般化したりします。
WebGLを無効化すれば指紋識別を避けられますか?
おすすめしません。現代のWebページはWebGLによる描画に大きく依存しており、無効化するとページ機能に支障が出ます。さらに、主要ブラウザはすべてWebGLに対応しています。非対応のブラウザ自体が異常シグナルであり、かえって個別に分類されやすくなります。
WebGLフィンガープリントとCanvasフィンガープリントは同じものですか?
違います。どちらも描画差異を利用しますが、Canvasは2D描画、WebGLは3Dパイプラインで、能力パラメータの層が加わります。検出ページでは別々のセクションになり、値は互いに代用になりません。
指紋ブラウザはWebGLを任意のGPUに変更できますか?
製品の実装次第です。MostMateは実値とノイズの2段階を用意し、ノイズモードは差別化された画像出力を返します。要点は、環境全体のパラメータを互いに整合させることであり、1項目だけを特定の値に変えることではありません。
おわりに
WebGLフィンガープリントの本質は、ブラウザがグラフィック環境のパラメータと描画挙動をWebサイトに手渡すことにあります。パラメータは「どんなGPUか」に答え、画像は「どんな描画になるか」に答えます。複数アカウント運用で扱うべきは、GPUを隠すことではありません。各環境のグラフィックパラメータを、UA・タイムゾーン・出口地域と同じ物語を語らせることが要点です。
MostMateはWebGL imageなどのパラメータを環境構成にまとめて管理します。確認も整合も一元化できます。手間が減ります。環境を立てるのは始まりにすぎず、日常の確認習慣こそが長期の変数です。グラフィックパラメータの対応策は公式ホームページに一覧があります。複数アカウント用に境界の明確な環境を整えるなら、MostMateをダウンロードして、最初の環境から始めてください。
MOSTMATE
安全な複数アカウント管理を、もっと簡単に
最初のアカウントから、MostMate でより安全でスマート、効率的な複数アカウント運用を始めましょう。
- 独立したプロファイル。一貫した識別情報。
- AI 自動化 · アカウント健全性 · チーム運用



