基於GPU資訊的使用者係統識別方法

來自本古里安大學(以色列)、裡爾大學(法國)和阿德萊德大學(澳洲)的研究人員開發了一種新技術,透過偵測網路瀏覽器中的 GPU 運作參數來識別使用者裝置。該方法稱為“Drawn Apart”,基於使用 WebGL 來獲取 GPU 效能設定文件,這可以顯著提高被動追蹤方法的準確性,該方法無需使用 Cookie,也無需在使用者係統上儲存識別碼。

先前使用的方法在識別時考慮了渲染、GPU、圖形堆疊和驅動程式的特徵,但僅限於只能在不同型號的顯示卡和GPU的層面上區分設備,即只能作為附加因素來增加辨識的可能性。新的「Drawn Apart」方法的主要特點是,它並不局限於分離不同的GPU型號,而是試圖識別由於大規模並行晶片製造製程的異質性而導致的相同型號的相同GPU之間的差異。計算。值得注意的是,生產過程中出現的變化使得可以為相同的設備模型形成非重複的鑄件。

基於GPU資訊的使用者係統識別方法

事實證明,可以透過計算執行單元的數量並分析它們在 GPU 中的效能來識別這些差異。基於一組三角函數、邏輯運算和浮點計算的檢查被用作識別不同 GPU 模型的基元。為了識別相同 GPU 中的差異,我們評估了執行頂點著色器時並發執行的執行緒數。假設檢測到的影響是由不同晶片實例的溫度條件和功耗差異引起的(之前,CPU 也證明了類似的影響 - 相同的處理器在執行相同的程式碼時表現出不同的功耗)。

由於透過 WebGL 的操作是非同步執行的,因此無法直接使用 JavaScript API Performance.now() 來測量其執行時間,因此提出了三種技巧來測量時間:

  • onscreen — 在 HTML 畫布中渲染場景,測量回呼函數的回應時間,透過 Window.requestAnimationFrame API 設定並在渲染完成後呼叫。
  • Offscreen - 使用工作程式並將場景渲染到 OffscreenCanvas 物件中,測量 ConvertToBlob 指令的執行時間。
  • GPU - 繪製到 OffscreenCanvas 對象,但使用 WebGL 提供的計時器來測量時間,該計時器考慮了 GPU 端一組命令的持續時間。

在 ID 建立過程中,每個裝置都會執行 50 次測試,每次測試涵蓋 176 種不同特徵的 16 項測量。一項收集具有 2500 個不同 GPU 的 1605 台設備資訊的實驗表明,添加 Drawn Apart 支援後,組合識別方法的效率提高了 67%。特別是,組合的FP-STALKER方法平均在17.5天內提供了識別時間,而與Drawn Apart組合時,識別時間增加到28天。

基於GPU資訊的使用者係統識別方法

  • 10個採用Intel i5-3470晶片(GEN 3 Ivy Bridge)和Intel HD Graphics 2500 GPU的系統在螢幕內測試中的分離精度為93%,在離屏測試中分離精度為36.3%。
  • 配備 NVIDIA GTX10 顯示卡的 5 個 Intel i10500-10 系統(GEN 1650 Comet Lake),準確率分別為 70% 和 95.8%。
  • 適用於 15 個配備英特爾 UHD Graphics 5 GPU 的英特爾 i8500-8 系統(第 630 代 Coffee Lake) - 42% 和 55%。
  • 配備 Intel HD Graphics 23 GPU 的 5 個 Intel i4590-4(第 4600 代 Haswell)系統 - 32.7% 和 63.7%。
  • 對於六款配備Mali-G20 MP20 GPU 的三星Galaxy S77/S11 Ultra 智慧型手機,螢幕測試中的辨識準確率為92.7%,對於配備Mali-G9 MP9 的三星Galaxy S72/S18+ 智慧型手機,辨識準確率為54.3 %。

基於GPU資訊的使用者係統識別方法

值得注意的是,準確性受到GPU溫度的影響,對於某些設備,重新啟動系統會導致識別碼失真。當此方法與其他間接識別方法結合使用時,可以顯著提高準確性。他們還計劃在新的 WebGPU API 穩定後透過使用計算著色器來提高準確性。

英特爾、ARM、Google、Khronos、Mozilla 和 Brave 早在 2020 年就已收到有關該問題的通知,但該方法的細節現在才被披露。研究人員還發布了用 JavaScript 和 GLSL 編寫的工作範例,這些範例可以在螢幕上顯示或不顯示資訊。此外,對於基於 GPU Intel GEN 3/4/8/10 的系統,已經發布了用於對機器學習系統中提取的資訊進行分類的資料集。

來源: opennet.ru

添加評論