数日前 ニュースはその研究者を壊した ベングリオン大学(イスラエル)、リール大学(フランス)、アデレード大学(オーストラリア)から デバイスを識別するための新しい技術を開発しました WebブラウザでGPUパラメータを検出することによるユーザーの数。
メソッドが呼び出されます 「DrawnApart」であり、WebGLの使用に基づいています GPUパフォーマンスプロファイルを取得します。これにより、Cookieを使用せず、ユーザーのシステムに識別子を保存せずに機能するパッシブ追跡方法の精度を大幅に向上させることができます。
その方法 レンダリング特性、GPU、グラフィックスタック、およびドライバーを考慮に入れる それらを識別するとき、それらは以前に使用されていましたが、ビデオカードとGPUの異なるモデルのレベルでのみデバイスを分離する可能性に制限されていました。つまり、識別の確率を高めるための追加の要素としてのみ使用できました。
主な機能 新しい「引き離された」方法の GPUの異なるモデルを分離することに限定されないということですしかし、 同一のGPU間の違いを特定してみてください 設計されたチップの製造プロセスの不均一性のために、同じモデルの。
また、製造プロセス中に発生する変動が観察され、同じデバイスモデルに対して非反復型を形成することが可能になることにも言及されています。
これらの違いは、実行ユニットの数を数え、GPUでのパフォーマンスを分析することで特定できることがわかりました。 さまざまなGPUモデルを識別するためのプリミティブとして、一連の三角関数、論理演算、および浮動小数点計算に基づくチェックが使用されました。 同じGPUでの違いを特定するために、頂点シェーダーを実行しているときに同時に実行されているスレッドの数を推定しました。
明らかになった効果は、異なるチップインスタンスの温度レジームと消費電力の違いによって引き起こされると想定されます(CPUについても同様の効果が以前に示されました:同じプロセッサが同じプロセッサを実行すると異なる消費電力を示しました)。
WebGLを介した操作は非同期であるため、performance.now()JavaScript APIを直接使用して実行時間を測定することはできません。そのため、時間を測定するためにXNUMXつのトリックが提案されました。
- 画面上で: Window.requestAnimationFrame APIを介して公開され、レンダリングの完了後に呼び出されるコールバック関数の応答時間測定を使用した、HTMLキャンバス上のシーンのレンダリング。
- 画面外:ワーカーを使用し、convertToBlobコマンドの実行時間を測定して、シーンをOffscreenCanvasオブジェクトにレンダリングします。
- GPU: OffscreenCanvasオブジェクトにレンダリングしますが、GPU側での一連のコマンドの実行時間を考慮して、時間を測定するためにWebGLによって提供されるタイマーを使用します。
識別子を作成する過程で 各デバイスで50回のチェックが実行されます、それぞれが176の異なる特性の16の測定値をカバーしています。 実験中 2500の異なるGPUを搭載した1605台のデバイスで収集されたデータは、効率が67%向上したことを示しています それらにDrawApartサポートを追加することによる結合された識別方法の。
特に、FP-STALKERを組み合わせた方法では、平均して17,5。28日以内に識別が可能になり、Drawn Apartと組み合わせると、識別期間はXNUMX日に延長されました。
精度はGPUの温度によって影響を受けることが観察されています また、一部のデバイスでは、システムを再起動すると識別子が歪む原因になりました。 この方法を他の方法と組み合わせて使用する場合 間接的な識別、 精度を大幅に向上させることができます。 また、新しいWebGPU APIが安定した後、計算シェーダーを使用して精度を高めることも計画されています。
Intel、ARM、Google、Khronos、Mozilla、Braveは、早くも2020年にこの問題について通知を受けましたが、方法の詳細は明らかにされたばかりです。
とりわけ、研究者は、画面に情報を表示する場合と表示しない場合で動作できるJavaScriptとGLSLで記述された動作例を公開しました。 また、Intel GEN 3/4/8/10 GPUベースのシステムでは、機械学習システムで抽出された情報を分類するためのデータセットが公開されています。
最後に あなたがそれについてもっと知りたいなら、詳細はで確認できます 次のリンク。