GL_RENDERER и Vendor strings: скрытая часть WebGL-фингерпринта
WebGL отдаёт не только FPS и canvas-артефакты. Внутри окружение часто раскрывает GL_VENDOR, GL_RENDERER, GL_VERSION, GLSL strings и набор расширений. Эти поля редко выглядят как явная идентификация, но в связке дают устойчивый отпечаток GPU, драйвера и слоя эмуляции.
Анализируем энтропию параметров. Подозрительны не сами строки, а их согласованность: Vendor не совпадает с renderer, WebGL vendor расходится с UMA/GPU process, а список extensions содержит комбинации, нехарактерные для заявленной платформы. Браузерное окружение передает больше данных, чем кажется: даже порядок расширений и формат пробелов иногда становится сигнатурой.
Практически это проверяется через три слоя:
— значения GL_RENDERER/GL_VENDOR и их семантическая пара;
— поведение canvas/WebGL в разных контекстах;
— корреляция с navigator, platform, audio и WebRTC-метриками.
Разбираем сигнатуру на уровне syscall: антифрод обычно ловит не подмену одной строки, а расхождение всего стека. Если GPU заявлен как один класс, а рендер-путь, шрифты и WebGL extensions указывают на другой, профиль становится токсичным. Скрытность — это не отсутствие следов, это шум, сливающийся с фоном.
Fingerprint-кузница
@fingerprint_forge_ubt
GL_RENDERER и Vendor strings: скрытая часть WebGL-фингерпринта
Этот пост опубликован в Telegram-канале Fingerprint-кузница. Подписаться можно по ссылке: @fingerprint_forge_ubt.