WebGL выдаёт железо даже там, где браузер пытается быть нейтральным
GL_RENDERER, GL_VENDOR и соседние строки выглядят как служебные поля, но на практике это один из самых стабильных fingerprint-векторов. Браузерное окружение передает больше данных, чем кажется: драйвер, стек рендеринга, виртуализация, режимы композитора и даже следы удалённого рабочего стола.
Анализируем энтропию параметров:
— WEBGL_debug_renderer_info раскрывает unmasked vendor/renderer, если доступен.
— Сочетание с shader precision, max texture size и supported extensions даёт более плотную сигнатуру.
— Несостыковки между Canvas, WebGL и user agent часто выглядят как следы подмены.
— Одинаковая строка renderer у разных систем не спасает: важен контекст соседних параметров.
Типовая ошибка — глушить только одну строку и оставлять остальную поверхность без согласования. Браузерные антифингерпринт-сценарии ломаются не на «чёрном списке», а на внутренней противоречивости: одно значение говорит о дискретной GPU, другое — о software rasterizer, третье — о мобильном профиле. Разбираем сигнатуру на уровне syscall: если слой маскировки не синхронизирует API, он сам становится маркером.
Минимальная проверка перед анализом: сверить WebGL-поля между окнами, проверить наличие расширений, сравнить с Canvas-артефактами и оценить, не уходит ли окружение в слишком редкий профиль. Скрытность — это не отсутствие следов, это шум, сливающийся с фоном.
Fingerprint-кузница
@fingerprint_forge_ubt
WebGL выдаёт железо даже там, где браузер пытается быть нейтральным
Этот пост опубликован в Telegram-канале Fingerprint-кузница. Подписаться можно по ссылке: @fingerprint_forge_ubt.