Metoda identyfikacji systemu użytkownika na podstawie informacji o GPU

Naukowcy z Uniwersytetu Ben-Guriona (Izrael), Uniwersytetu w Lille (Francja) i Uniwersytetu w Adelajdzie (Australia) opracowali nową technikę identyfikacji urządzeń użytkowników poprzez wykrywanie parametrów pracy procesora graficznego w przeglądarce internetowej. Metoda nosi nazwę „Drawn Apart” i polega na wykorzystaniu WebGL do uzyskania profilu wydajności GPU, co może znacznie poprawić dokładność pasywnych metod śledzenia, które działają bez użycia plików Cookies i bez przechowywania identyfikatora w systemie użytkownika.

Metody uwzględniające przy identyfikacji cechy renderowania, GPU, stosu graficznego i sterowniki były stosowane już wcześniej, ale ograniczały się do możliwości separacji urządzeń jedynie na poziomie różnych modeli kart graficznych i procesorów graficznych, tj. może zostać wykorzystane jedynie jako dodatkowy czynnik zwiększający prawdopodobieństwo identyfikacji. Kluczową cechą nowej metody „Drawn Apart” jest to, że nie ogranicza się ona do rozdzielania różnych modeli GPU, ale stara się zidentyfikować różnice pomiędzy identycznymi procesorami graficznymi tego samego modelu ze względu na niejednorodność procesu produkcyjnego chipów zaprojektowanych do masowo równoległego przetwarzanie danych. Należy zauważyć, że różnice powstające w procesie produkcyjnym umożliwiają tworzenie niepowtarzalnych wycisków dla tych samych modeli urządzeń.

Metoda identyfikacji systemu użytkownika na podstawie informacji o GPU

Okazało się, że różnice te można zidentyfikować, zliczając liczbę jednostek wykonawczych i analizując ich wydajność w GPU. Kontrole oparte na zestawie funkcji trygonometrycznych, operacjach logicznych i obliczeniach zmiennoprzecinkowych zostały wykorzystane jako prymitywy do identyfikacji różnych modeli procesorów graficznych. Aby zidentyfikować różnice w tych samych procesorach graficznych, oszacowano liczbę jednocześnie wykonujących wątków podczas wykonywania modułów cieniujących wierzchołki. Zakłada się, że wykryty efekt jest spowodowany różnicami w warunkach temperaturowych i poborze mocy różnych instancji chipów (wcześniej podobny efekt wykazano dla procesorów - identyczne procesory wykazywały różny pobór mocy podczas wykonywania tego samego kodu).

Ponieważ operacje za pośrednictwem WebGL są wykonywane asynchronicznie, wydajności API JavaScript performance.now() nie można bezpośrednio wykorzystać do pomiaru czasu ich wykonania, dlatego zaproponowano trzy sztuczki do pomiaru czasu:

  • onscreen — renderowanie sceny w kanwie HTML, mierzenie czasu odpowiedzi funkcji wywołania zwrotnego, ustawianej poprzez API Window.requestAnimationFrame i wywoływanej po zakończeniu renderowania.
  • offscreen - użycie workera i renderowanie sceny do obiektu OffscreenCanvas, mierząc czas wykonania polecenia ConvertToBlob.
  • GPU — rysuj do obiektu OffscreenCanvas, ale użyj timera dostarczonego przez WebGL, aby zmierzyć czas, który uwzględnia czas trwania zestawu poleceń po stronie GPU.

Podczas tworzenia identyfikatora na każdym urządzeniu wykonywanych jest 50 testów, każdy obejmujący 176 pomiarów dla 16 różnych charakterystyk. Eksperyment, w ramach którego zebrano informacje na 2500 urządzeniach z 1605 różnymi procesorami graficznymi, wykazał 67% wzrost wydajności połączonych metod identyfikacji po dodaniu obsługi Drawn Apart. W szczególności łączona metoda FP-STALKER zapewniła identyfikację w ciągu średnio 17.5 dnia, a w połączeniu z metodą Drawn Apart czas identyfikacji wydłużył się do 28 dni.

Metoda identyfikacji systemu użytkownika na podstawie informacji o GPU

  • Dokładność separacji 10 układów z chipami Intel i5-3470 (GEN 3 Ivy Bridge) i procesorem graficznym Intel HD Graphics 2500 w teście ekranowym wyniosła 93%, a w teście pozaekranowym 36.3%.
  • W przypadku 10 systemów Intel i5-10500 (GEN 10 Comet Lake) z kartą graficzną NVIDIA GTX1650 dokładność wynosiła 70% i 95.8%.
  • Dla 15 systemów Intel i5-8500 (GEN 8 Coffee Lake) z procesorem graficznym Intel UHD Graphics 630 - 42% i 55%.
  • Dla 23 systemów Intel i5-4590 (GEN 4 Haswell) z procesorem graficznym Intel HD Graphics 4600 – 32.7% i 63.7%.
  • Dla sześciu smartfonów Samsung Galaxy S20/S20 Ultra z procesorem graficznym Mali-G77 MP11 dokładność identyfikacji w teście ekranowym wyniosła 92.7%, a dla smartfonów Samsung Galaxy S9/S9+ z procesorem graficznym Mali-G72 MP18 wyniosła ona 54.3%.

Metoda identyfikacji systemu użytkownika na podstawie informacji o GPU

Należy zauważyć, że na dokładność miała wpływ temperatura procesora graficznego, a w przypadku niektórych urządzeń ponowne uruchomienie systemu doprowadziło do zniekształcenia identyfikatora. Stosując tę ​​metodę w połączeniu z innymi metodami identyfikacji pośredniej, można znacznie zwiększyć dokładność. Planują także zwiększyć dokładność poprzez zastosowanie shaderów obliczeniowych po ustabilizowaniu nowego API WebGPU.

Intel, ARM, Google, Khronos, Mozilla i Brave zostały powiadomione o problemie już w 2020 roku, ale szczegóły metody ujawniono dopiero teraz. Badacze opublikowali także działające przykłady napisane w JavaScript i GLSL, które mogą działać z wyświetlaniem informacji na ekranie lub bez niego. Również dla układów opartych na GPU Intel GEN 3/4/8/10 opublikowano zbiory danych służące do klasyfikacji wydobytych informacji w systemach uczenia maszynowego.

Źródło: opennet.ru

Dodaj komentarz