Несколько дней назад стало известно, что исследователи из Университета Бен-Гуриона (Израиль), Университета Лилля (Франция) и Университета Аделаиды (Австралия) разработали новую методику идентификации устройств пользователей, определяя параметры графического процессора в веб-браузере.
Метод называется «Нарисовано отдельно» и основан на использовании WebGL. для получения профиля производительности графического процессора, что позволяет значительно повысить точность пассивных методов отслеживания, работающих без использования файлов cookie и без сохранения идентификатора в системе пользователя.
Методы, которые учитывать характеристики рендеринга, GPU, графический стек и драйверы при их идентификации они применялись ранее, но ограничивались возможностью разделения устройств только на уровне разных моделей видеокарт и графических процессоров, т.е. могли использоваться лишь как дополнительный фактор для повышения вероятности идентификации.
Ключевая особенность нового метода "Разорванный" заключается в том, что он не ограничивается разделением различных моделей графических процессоров.Но попытайтесь определить различия между идентичными графическими процессорами одной и той же модели из-за неоднородности процесса производства проектируемых чипов.
Также упоминается, что во время производственного процесса наблюдаются изменения, позволяющие формировать неповторяющиеся формы для одних и тех же моделей устройств.
Оказалось, что эти различия можно выявить, подсчитав количество исполнительных блоков и проанализировав их производительность на GPU. В качестве примитивов для идентификации разных моделей GPU использовались проверки на основе набора тригонометрических функций, логических операций и вычислений с плавающей запятой. Для выявления различий на одном и том же графическом процессоре оценивалось количество одновременно работающих потоков при запуске вершинных шейдеров.
Предполагается, что выявленный эффект обусловлен различиями в температурных режимах и энергопотреблении разных экземпляров чипа (ранее аналогичный эффект был продемонстрирован для CPU: одни и те же процессоры демонстрировали разное энергопотребление при работе одного и того же процессора). код).
Поскольку операции через WebGL являются асинхронными, вы не можете напрямую использовать JavaScript API performance.now() для измерения времени их выполнения, поэтому для измерения времени были предложены три приема:
- На экране: рендеринг сцены на холсте HTML с измерением времени отклика функции обратного вызова, предоставляемой через Window.requestAnimationFrame API и вызываемой после завершения рендеринга.
- вне экрана: использование рабочего процесса и визуализация сцены в объект OffscreenCanvas путем измерения времени выполнения команды convertToBlob.
- ГПУ: рендеринга в объект OffscreenCanvas, но с таймером, предоставляемым WebGL для измерения времени с учетом продолжительности выполнения набора команд на стороне GPU.
В процессе создания идентификатора На каждом устройстве выполняется 50 проверок, каждый из которых охватывает 176 измерений 16 различных характеристик. Эксперимент, в ходе которого данные, собранные на 2500 устройствах с 1605 различными графическими процессорами, показали повышение эффективности на 67%. комбинированных методов идентификации, добавив к ним поддержку Draw Apart.
В частности, комбинированный метод FP-STALKER в среднем обеспечивал идентификацию в течение 17,5 дней, а в сочетании с Drawn Apart продолжительность идентификации увеличилась до 28 дней.
Замечено, что на точность влияла температура графического процессора. а для некоторых устройств перезагрузка системы приводила к искажению идентификатора. Когда метод используется в сочетании с другими методами косвенная идентификация, точность можно значительно повысить. Также планируется повысить точность за счет использования вычислительных шейдеров после стабилизации нового WebGPU API.
Intel, ARM, Google, Khronos, Mozilla и Brave были уведомлены о проблеме еще в 2020 году, но подробности метода были раскрыты только что.
Помимо прочего, исследователи опубликовали рабочие примеры, написанные на JavaScript и GLSL, которые могут работать с выводом информации на экран и без него. Также для систем на базе графических процессоров Intel GEN 3/4/8/10 были опубликованы наборы данных для классификации информации, извлеченной в системах машинного обучения.
В конце концов если вам интересно узнать об этом больше, вы можете проверить подробности в по следующей ссылке.