Метод ідентифікації системи користувача на основі інформації про 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 canvas з виміром часу спрацьовування callback-функції, виставленої через API Window.requestAnimationFrame і викликаної після завершення відмальовування.
  • offscreen - використання worker-а та відтворення сцени в об'єкт OffscreenCanvas з вимірюванням часу виконання команди convertToBlob.
  • GPU — відображення в об'єкт OffscreenCanvas, але використання для вимірювання часу таймера, що надається в WebGL, що враховує тривалість виконання набору команд на стороні GPU.

У процесі створення ідентифікатора кожному пристрої виробляється 50 перевірок, кожна з яких охоплює 176 вимірювань 16 різних характеристик. Експеримент, в ході якого була зібрана інформація про 2500 пристроїв з 1605 різними GPU, показав підвищення ефективності комбінованих методів ідентифікації на 67% при додаванні підтримки Drawn Apart. Зокрема, комбінований метод FP-STALKER в середньому забезпечував ідентифікацію протягом 17.5 днів, а в поєднанні з Drawn Apart тривалість ідентифікації збільшилася до 28 днів.

Метод ідентифікації системи користувача на основі інформації про GPU

  • Точність поділу 10 систем з чіпами Intel i5-3470 (GEN 3 Ivy Bridge) та GPU Intel HD Graphics 2500 у тесті onscreen склала 93%, а в offscreen - 36.3%.
  • Для 10 систем Intel i5-10500 (GEN 10 Comet Lake) з відеокартою NVIDIA GTX1650 точність становила 70% та 95.8%.
  • Для 15 систем Intel i5-8500 (GEN 8 Coffee Lake) з GPU Intel UHD Graphics 630 – 42% та 55%.
  • Для 23 систем Intel i5-4590 (GEN 4 Haswell) з GPU Intel HD Graphics 4600 – 32.7% та 63.7%.
  • Для шести смартфонів Samsung Galaxy S20/S20 Ultra із GPU Mali-G77 MP11 у тесті з виведенням на екран точність ідентифікації склала 92.7%, а для смартфонів Samsung Galaxy S9/S9+ з Mali-G72 MP18 – 54.3%.

Метод ідентифікації системи користувача на основі інформації про GPU

На точність впливала температура GPU, а для деяких пристроїв перезавантаження системи призводило до спотворення ідентифікатора. При використанні методу у поєднанні з іншими методами непрямої ідентифікації точність може бути значно збільшена. Точність також планують підняти рахунок використання обчислювальних шейдерів після стабілізації нового API WebGPU.

Компанії Intel, ARM, Google, Khronos, Mozilla та Brave були повідомлені про проблему ще у 2020 році, але деталі методу розкрито тільки зараз. У тому числі дослідники опублікували написані на JavaScript та GLSL робочі приклади, які можуть працювати з виводом та без виведення інформації на екран. Також для систем на базі GPU Intel GEN 3/4/8/10 опубліковано набори даних для класифікації інформації в системах машинного навчання.

Джерело: opennet.ru

Додати коментар або відгук