Аппаратные отпечатки: WebGL

Последнее изменение:


WebGL - это браузерные API для прорисовки 3D графики на веб-странице. Веб-сайты могут использовать WebGL для снятия отпечатков вашего устройства. В целом, существует два метода для получения WebGL отпечатка:

  • WebGL Report - извлекается и изучается полная таблица отчёта WebGL. В некоторых случаях, результат конвертируется в хеш, для дальнейшего анализа.
  • WebGL Image - прорисовывается скрытое 3D изображение из которого получается хеш. Поскольку конечный результат зависит от железа, которое производит расчёты при прорисовке, данный метод приносит уникальные значения при использовании различных комбинаций устройств и их драйверов.

Вы можете проверить, какую информацию веб-сайты могут получить через WebGL API из этого теста Browserleaks

Режимы WebGL

В Indigo вы можете контролировать вывод данных WebGL при помощи добавления случайного шума или же позволять веб-сайтам видеть реальный WebGL отпечаток вашего устройства.

Режим "Добавить шум" (по умолчанию)

Когда вы ставите WebGL режим на "Добавить шум", Indigo перехватывает WebGL запрос посланный веб-сайтом и добавляет случайный шум к выводимым данным. Данный шум является постоянным для браузерного профиля, и это означает что WebGL выводимые данные будут подменены в рамках данного профиля (значение будет неизменным при каждой сессии). Например: одно и то же WebGL изображение будет прорисовано также на всех страницах и во всех последующих запусках сессий.

Данный механизм позволяет создавать уникальный, но постоянный отпечаток для каждого браузерного профиля.

Поскольку добавляется случайный шум к данным, веб-сайт при использовании статистического анализа может заметить, что отпечаток уникальный на 100%

Image 1043

Маскировка метаданных WebGL (по умолчанию)

Когда маскировка метаданных установлена в режиме "Добавить шум", Indigo подменяет значения WebGL Vendor и Renderer используя значения полученные из базы данных отпечатков.

Изменения метаданных WebGL можно посмотреть в разделе настроек «Дополнительные параметры WebGL»:

Image 1044

Режим "Выключить"

Нет доказательств того, что веб-сайты на самом деле используют отпечаток WebGL image для идентификации пользователя.


В случае, если WebGL подмена установлена на "Выключить", веб-сайты будут видеть реальные хеши WebGL Report и Image.

Установка режима "Выключить" может быть выгодна в тех случаях, когда веб-сайты плохо реагируют на 100% уникальный или блокированный WebGL.

Image 1045

На заметку! В реальном мире хеш WebGL отпечатка не уникален, поскольку по всему миру существует множество копий вашего ПК. В связи с этим, при раскрытии вашего WebGL отпечатка, вы просто сливаетесь с сегментом пользователей, у которых схожее железо. Более того, при подмене отпечатков вы повышаете энтропию, что приводит к тому, что ваши профили слишком выделяются из общего дистрибутива, привлекая внимание веб-сайтов.

Использование браузерного профиля на нескольких устройствах

Важно! Если вы создали браузерный профиль с WebGL установленным на "Добавить шум" и открываете его на разных ПК, с разным железом, веб-сайт увидит на своей стороне, что WebGL хеш не постоянен между запусками.

Добавляемый шум постоянный, но он добавляется как фильтр, поверх существующего отпечатка ПК. Поэтому, если ПК сменился, то итоговое значение тоже меняется.

Хеш WebGL с добавленным шумом не постоянен

Ниже приведён пример. Тот же браузерный профиль открыт на двух разных ПК. Несмотря на то, что шум постоянный в данном профиле, результаты WebGL отпечатка отличаются.

Image

Как получить постоянный отпечаток WebGL на нескольких устройствах?

Если вам нужны постоянные, не изменяемые отпечатки WebGL при использовании одного браузерного профиля на нескольких устройствах, вы можете попробовать следующее:

  1. Запускайте Indigo на идентично настроенных виртуальных машинах (VM) или же на VPS, с WebGL установленным на "Добавить шум". Поскольку данные машины будут настроены одинаково, подменённый WebGL отпечаток будет постоянным на нескольких ПК.
  2. Запускайте Indigo на идентичных моделях ПК, с одинаковым железом, драйверами и ОС. Поскольку данные ПК будут иметь одинаковое железо, подменённые отпечатки будут постоянными между запусками сессий.
  3. Запускайте Indigo на схожих Mac компьютерах. Присутствует аналогичная логика, что в пункте номер 2, но использование Mac устройств позволяет эффективнее "слиться с пользователями в сети". Поскольку Mac устройства очень схожи по железу, их Canvas отпечатки не только очень похожи друг на друга, но и большинстве случаев хеш Canvas будет идентичным для Mac устройств одной модели.

Эта статья была полезна для 1 человека. Эта статья помогла Вам?