Metoda identyfikacji systemu użytkownika oparta na informacji o GPU

Badacze z Uniwersytetu Ben Guriona (Izrael), Uniwersytetu w Lille (Francja) oraz Uniwersytetu w Adelajdzie (Australia) opracowali nową technikę identyfikacji urządzeń użytkownika poprzez określenie parametrów pracy GPU w przeglądarce internetowej. Metoda, nazwana „Drawn Apart”, wykorzystuje WebGL do uzyskania profilu wydajności GPU, co pozwala znacząco zwiększyć dokładność pasywnych metod śledzenia, działających bez użycia plików cookie i bez przechowywania identyfikatora na systemie użytkownika.

Metody uwzględniające przy identyfikacji cechy renderowania, GPU, stosu graficznego i sterowników były stosowane wcześniej, ale ograniczały się do możliwości rozróżnienia urządzeń tylko na poziomie różnych modeli kart graficznych i GPU, tj. mogły być stosowane jedynie jako dodatkowy czynnik zwiększający prawdopodobieństwo identyfikacji. Kluczową cechą nowej metody „Drawn Apart” jest to, że nie ogranicza się ona do rozróżnienia między różnymi modelami GPU, lecz stara się ujawnić różnice między identycznymi GPU tego samego modelu, wynikające z niejednorodności procesu produkcji chipów przeznaczonych do masowych obliczeń równoległych. Zauważono, że powstałe w procesie produkcji wariacje pozwalają na tworzenie unikalnych odcisków dla tych samych modeli urządzeń.

Metoda identyfikacji systemu użytkownika oparta na informacji o GPU

Okazało się, że te różnice można wykryć poprzez zliczanie liczby bloków wykonań i analizę ich wydajności w GPU. Jako prymitywy do identyfikacji różnych modeli GPU zastosowano testy oparte na zestawie funkcji trygonometrycznych, operacji logicznych oraz obliczeń z użyciem zmiennych przecinkowych. Aby ujawnić różnice w identycznych GPU, oceniano liczbę jednocześnie wykonywanych wątków podczas wykonywania shaderów wierzchołkowych. Zakłada się, że wykryty efekt jest spowodowany różnicami w reżimach temperatury i zużycia energii różnych egzemplarzy chipów (wcześniej podobny efekt został wykazany dla CPU — identyczne procesory przy wykonywaniu tego samego kodu wykazywały różne zużycie energii).

Ponieważ operacje przez WebGL są wykonywane asynchronicznie, nie można bezpośrednio używać JavaScript API performance.now() do pomiaru czasu ich wykonywania. Dlatego zaproponowano trzy sztuczki do pomiaru czasu:

  • onscreen — renderowanie sceny w HTML canvas z pomiarem czasu wywołania funkcji callback, ustawionej przez API Window.requestAnimationFrame i wywoływanej po zakończeniu renderowania.
  • offscreen — wykorzystanie workera i renderowanie sceny w obiekcie OffscreenCanvas z pomiarem czasu wykonania polecenia convertToBlob.
  • GPU — renderowanie w obiekcie OffscreenCanvas, ale z użyciem timera dostarczonego w WebGL, który uwzględnia czas trwania wykonania zestawu poleceń po stronie GPU.

W procesie tworzenia identyfikatora na każdym urządzeniu przeprowadzane jest 50 kontroli, z których każda obejmuje 176 pomiarów 16 różnych charakterystyk. Eksperyment, w którym zebrano informacje o 2500 urządzeniach z 1605 różnymi GPU, wykazał zwiększenie efektywności kombinowanych metod identyfikacji o 67% przy dodaniu wsparcia Drawn Apart. W szczególności kombinowana metoda FP-STALKER średnio zapewniała identyfikację przez 17,5 dnia, a w połączeniu z Drawn Apart czas identyfikacji wydłużył się do 28 dni.

Metoda identyfikacji systemu użytkownika oparta na informacji o GPU
  • Dokładność rozdzielenia 10 systemów z chipami Intel i5-3470 (GEN 3 Ivy Bridge) i GPU Intel HD Graphics 2500 w teście onscreen wyniosła 93%, a w offscreen — 36,3%.
  • Dla 10 systemów Intel i5-10500 (GEN 10 Comet Lake) z kartą graficzną NVIDIA GTX1650 dokładność wyniosła 70% i 95,8%.
  • Dla 15 systemów Intel i5-8500 (GEN 8 Coffee Lake) z GPU Intel UHD Graphics 630 — 42% i 55%.
  • Dla 23 systemów Intel i5-4590 (GEN 4 Haswell) z GPU Intel HD Graphics 4600 — 32,7% i 63,7%.
  • Dla sześciu smartfonów Samsung Galaxy S20/S20 Ultra z GPU Mali-G77 MP11 w teście wyświetlania dokładność identyfikacji wyniosła 92,7%, a dla smartfonów Samsung Galaxy S9/S9+ z Mali-G72 MP18 — 54,3%.

Metoda identyfikacji systemu użytkownika oparta na informacji o GPU

Zauważono, że na dokładność wpływała temperatura GPU, a w niektórych urządzeniach restart systemu prowadził do zniekształcenia identyfikatora. Przy użyciu metody w połączeniu z innymi metodami pośredniej identyfikacji dokładność może być znacznie zwiększona. Planuje się również podnieść dokładność dzięki wykorzystaniu obliczeniowych shaderów po stabilizacji nowego API WebGPU.

Firmy Intel, ARM, Google, Khronos, Mozilla i Brave zostały powiadomione o problemie już w 2020 roku, ale szczegóły metody ujawnione zostały dopiero teraz. Oprócz tego, badacze opublikowali przykłady kodu napisane w JavaScript i GLSL, które mogą działać zarówno z, jak i bez wyświetlania informacji na ekranie. Opublikowano również zbiory danych dla systemów opartych na GPU Intel GEN 3/4/8/10 do klasyfikacji wydobywanych informacji w systemach uczenia maszynowego.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster