GL_RENDERER и Vendor strings: как WebGL выдаёт не только GPU, но и ваш профиль
WebGL-отпечаток начинается не с canvas, а с таблицы параметров: GL_VENDOR, GL_RENDERER, UNMASKED_VENDOR_WEBGL, UNMASKED_RENDERER_WEBGL. Эти строки часто выглядят «невинно», но в связке с extension list, precision formats и алиасами драйвера дают устойчивую сигнатуру. Браузерное окружение передает больше данных, чем кажется.
Что реально анализируют:
— несоответствие между WebGL vendor и PCI-идентификаторами;
— редкие пары renderer+OS, которые почти не встречаются в массе;
— формат строки: пробелы, регистр, добавленные suffix’ы, языковые артефакты;
— деградацию через software renderer, которая ломает естественность соседних API.
Разбираем сигнатуру на уровне syscall: если WebGL сообщает один стек, а GPU-поведение через шейдерные тесты показывает другой, профиль становится подозрительным. Отдельно всплывают подмены через extensions blocking, где поле скрыто, но энтропия не падает — меняется только форма шума. Скрытность — это не отсутствие следов, это шум, сливающийся с фоном.
Рабочая проверка простая: сравнивайте vendor strings с supported extensions, max texture size, antialiasing, timer query и поведением canvas в разных контекстах. Несогласованность между ними полезнее любого одного параметра — именно она помогает детектировать антидетект, эмуляцию и «случайную» аномалию.
Fingerprint-кузница
@fingerprint_forge_ubt
GL_RENDERER и Vendor strings: как WebGL выдаёт не только GPU, но и ваш профиль
Этот пост опубликован в Telegram-канале Fingerprint-кузница. Подписаться можно по ссылке: @fingerprint_forge_ubt.