WebGPUフィンガープリンティング:CanvasとWebGLに続く次世代技術
WebGPUはCanvasとWebGLを合わせたよりも深いハードウェア能力を公開します——そしてすでにChrome、Edge、Firefoxで利用可能です。何を明らかにできるのか、そしてなぜ今後2〜3年で旧来のフィンガープリンティング技術を置き換えていくのかを解説します。
WebGPUは2023年にChrome 113で出荷されました。2026年までに、すべての主要プラットフォーム上のすべての主要ブラウザで利用可能になっています。OpenGL ES 2.0をラップするブラウザAPIだったWebGLとは異なり、WebGPUは現代のGPU APIへの直接的なインターフェースです。LinuxではVulkan、macOSではMetal、WindowsではDirectX 12です。
これは、ブラウザが基盤となるハードウェアについて何を問い合わせられるかを変えます。CanvasとWebGLのフィンガープリンティングはレンダリング出力に依存していました。WebGPUはGPUそのものへの直接的な能力クエリを可能にし、レンダリング出力では示唆することしかできなかったアーキテクチャの詳細を公開します。
フィンガープリンティングにとって、これはシグナル品質の段階的な飛躍です。
WebGPUが公開する、WebGLが公開しないもの
WebGLの診断サーフェスは限定的です。最も有用な部分はWEBGL_debug_renderer_info拡張で、ベンダーとレンダラーの文字列を返します——アンチディテクトブラウザにしばしばなりすまされ、あるいはプライバシー機能によって削除されるものです。
WebGPUは、大幅に豊かなデータを持つGPUAdapterとGPUAdapterInfoオブジェクトを提供します:
- Vendor — GPUメーカーの識別子(NVIDIA、AMD、Intel、Apple、Qualcomm)。
- Architecture — GPUアーキテクチャのファミリー(Ampere、RDNA 2、Xe-LP、Apple M2、Adreno)。
- Device — 取得可能な場合、特定のモデル。
- Description — 人間が読める形式の文字列。
識別情報にとどまらず、WebGPUはGPUのリミット——ハードウェアの正確な数値的能力——を公開します。これらはGPUSupportedLimitsインターフェースを通じて問い合わせ可能で、30以上の数値プロパティを含みます:
- テクスチャの最大寸法 —
maxTextureDimension2D - バッファの最大サイズ —
maxBufferSize - バインドグループの最大数 —
maxBindGroups - コンピュートワークグループの最大寸法
- 頂点属性の最大数
- ストレージバッファのアライメント要件
これらの値はそれぞれ、ハードウェアの能力に基づいてGPUドライバーが設定します。同じベンダー内であっても、GPUの世代が異なればリミットの組み合わせも異なります。2019年のGPUは、同じベンダーファミリーの2023年のGPUとは異なるリミットを持ちます。
なぜこれはなりすましがより困難なのか
アンチディテクトブラウザは、API呼び出しをインターセプトして結果を改変することでCanvasとWebGLをなりすまします。Canvasの戻り値はレンダリングされたピクセルのハッシュです——ブラウザはレンダリングした後、ハッシュをすり替えられます。WebGLへの問い合わせは少数の文字列であり、丸ごと置き換えられます。
WebGPUは違います。APIサーフェスは大きく——数百のメソッドとプロパティがあります。すべての呼び出しに、もっともらしい戻り値が必要です。なりすましの層は次を行わなければなりません:
- すべての数値リミットにわたって一貫した識別情報を提示する——NVIDIA RTX 4090であると主張するGPUは、そのハードウェアに一致するすべてのリミット値を返さなければなりません。
- 実際のコンピュート実行を処理する。WebGPUはコンピュートシェーダーの実行を可能にします。なりすましの層が高い性能を主張しながら遅い計算しか提供できなければ、その不一致はタイミングを通じて検知可能です。
- ドライバー更新にともなう変化を追跡する。GPUドライバーのバージョンごとに、リミットはわずかに異なります。静的ななりすましテーブルは、新しいドライバーのバージョンがリリースされるにつれて陳腐化します。
実際のハードウェアは、これらすべてを労せずして提供します。ハードウェアをなりすますには、GPUモデルごと、ドライバーバージョンごとの正しいリミットの組み合わせのデータベースを維持する必要があります——ほとんどのアンチディテクトブラウザがまだ引き受けていない、継続的なメンテナンスの負担です。
フィンガープリントとしての計算性能
WebGPUは、ブラウザ内で任意のコンピュートシェーダーを実行することを可能にします。つまり、検知システムは標準化されたワークロードを実行し、所要時間を測定できるということです。
ハッシュクラッキングのベンチマーク、行列乗算、あるいはレンダリングに近い計算タスクは、いずれも基盤となるハードウェアによって決まる速度で実行されます。同じGPUモデルを持つと主張しながら異なる計算性能を示す2人の訪問者は、ハードウェアについて嘘をついています。
この技術は、静的なフィンガープリントのなりすましを完全にバイパスします。訪問者は望むどんなGPU文字列でも主張できます。しかし、持っていない計算性能を主張することはできません。
トレードオフはユーザー体験です。バックグラウンドでコンピュートシェーダーを実行するとGPUサイクルを消費し、動作の鈍さとして知覚されることがあります。これがこの技術をどこまで積極的に使えるかを制限します——通常は継続的な監視ではなく、疑わしいセッションへの1回限りのチェックとして使われます。
シグナルとしての機能の利用可能性
WebGPUはGPUAdapter.featuresを通じてオプション機能を公開します。一部のGPUは特定の拡張機能をサポートします:
timestamp-query— パフォーマンスカウンターを備えた現代的なGPUを必要とするshader-f16— 半精度浮動小数点、モバイルGPUで一般的texture-compression-bc— Block Compression、デスクトップの標準texture-compression-etc2— モバイル向けテクスチャフォーマットtexture-compression-astc— モバイル向けテクスチャフォーマット
機能セットはGPUモデルごとに決定的です。Adrenoのモバイル機能を持つと主張するWindowsマシンは捕捉されます。デスクトップ専用の圧縮フォーマットを主張するモバイルデバイスは捕捉されます。
WebGLとの整合性
WebGPU以前、ブラウザには主要なGPUクエリサーフェスが1つありました。WebGLです。今では2つあり、両者は一致していなければなりません。
WebGLとWebGPUは、同じ基盤のGPUを公開します。その応答は整合していなければなりません。WebGLを通じてNVIDIA RTX 4080を報告しながら、統合型のIntel GPUに一致するWebGPUリミットを返すブラウザは、実際のハードウェア上ではあり得ません。
API横断の整合性は、検知のためのもう1つのシグナルです。1つのAPIをなりすますのは簡単です。2つのAPIを相互に整合した形でなりすますのは著しく困難です——そして現在のアンチディテクトブラウザは、おおむねそれを行っていません。
WebGPUがOSとドライバーについて明らかにするもの
GPUの識別にとどまらず、WebGPUはグラフィックススタックに関するコンテキストを公開します:
- Windowsでは、WebGPUはDirect3D 11とDirect3D 12のどちらが使われているかを明らかにでき、これはOSバージョンとドライバーの世代と相関します。
- macOSでは、Metalバージョンのサポート状況がmacOSバージョンを明らかにします——MetalバージョンはOSアップデートとともに出荷されるためです。
- Linuxでは、Vulkanのサポートレベルがディストリビューションとドライバーの出自を露わにします(たとえばプロプライエタリなNVIDIA対オープンソースのMesa)。
これらのシグナルはいずれも直接的ではありません——それぞれ解釈を必要とします。しかし合わせて見れば、報告されたブラウザフィンガープリントと相関する、基盤のソフトウェアスタックの全体像を構築します。不一致はなりすましを示します。
検知スタックへの採用のタイムライン
WebGPUフィンガープリンティングは、2026年時点ではまだ主流の検知技術ではありません。理由は3つあります:
- ブラウザサポートがまだ安定化の途上にあります。 FirefoxのWebGPUは2024年に出荷されましたが、機能カバレッジは限定的でした。SafariのWebGPUも2024年に出荷されましたが、Chromeとは異なるリミットを持ちます。検知システムがWebGPUシグナルに依拠するには、幅広いカバレッジが必要です。
- 実ユーザーのWebGPUサポートはまだ不完全です。 古いデバイスには、WebGPUの機能をサポートするGPUが搭載されていません。WebGPUを持たない訪問者にペナルティを課す検知システムは、5年前のハードウェアを使う正規ユーザーをブロックするリスクを負います。
- アンチディテクトブラウザは完全なWebGPUなりすましをまだ構築していません。 つまりWebGPUベースのシグナルは現在、痕跡を隠したと思い込んでいる高度な攻撃者に対して有効です。検知側の採用が進み、なりすましツールが対応するにつれて、この状況は変わっていくでしょう。
2〜3年という採用の地平は現実的です。2027〜2028年までに、WebGPUシグナルは今日のWebGLと同じくらいボット検知の中心になるでしょう。検知チームにとっての問いは、いつWebGPUデータの収集を始めるかです——答えは今です。シグナルが主役になったとき、過去のベースラインが存在しているようにするためです。
これが防御側にとって意味すること
Canvasフィンガープリンティングは成熟した技術です。WebGLフィンガープリンティングも成熟した技術です。どちらもアンチディテクトツールによって、それなりの成功率で活発になりすまされています。
WebGPUフィンガープリンティングは若い技術です。なりすましツールは追いついていません。これは——おそらく18〜36か月の——窓を生み出します。その間、WebGPUシグナルは実際のユーザーと高度なボットをきれいに分離します。この窓は投資する価値があります。
WebGPUが生み出すシグナルは、CanvasやWebGLよりも構造的になりすましが困難です。レンダリングはインターセプトできます。計算性能はできません。機能セットについて嘘をつくことはできますが、APIサーフェス全体にわたって一貫してつくことはできません。フィンガープリンティング技術は世代を重ねるごとに、なりすましのコストを引き上げます。WebGPUはそれを大幅に引き上げるのです。
2026年とその先のボット検知に本気で取り組むプラットフォームにとって、WebGPUこそシグナルが向かう先です。