GL_RENDERER и Vendor strings: скрытые маркеры, по которым режут WebGL-фингерпринт
Браузерное окружение передает больше данных, чем кажется. В WebGL на поверхность выходят строки, которые редко меняются случайно: GL_VENDOR, GL_RENDERER, UNMASKED_VENDOR_WEBGL, UNMASKED_RENDERER_WEBGL. Это не просто «название видеокарты» — это связка драйвера, GPU-стека, режима рендеринга и иногда признаков виртуализации.
Анализируем энтропию параметров. Подозрительными считаются не сами значения, а их согласованность:
— vendor указывает на один стек, а renderer — на другой;
— WebGL-ответ не совпадает с тем, что дает canvas и compositor;
— строка выглядит слишком общей, но соседние API выдают точную модель;
— в ответах есть следы софтварного рендера, хотя остальные признаки говорят о дискретной графике.
Разбираем сигнатуру на уровне syscall: через WebGL часто ловят не только железо, но и слой подмены. Если браузерный профиль маскирует GPU, а расширения, шрифты и аудиостек остаются «родными», расхождение становится сильнее самого WebGL. Здесь важна не одна строка, а вся цепочка: context creation, supported extensions, precision formats, max texture size. Именно она показывает, насколько профиль цельный.
Для верификации полезно смотреть на три вещи: стабильность между сессиями, совпадение с платформой и отсутствие «слишком идеальной» унификации. Скрытность — это не отсутствие следов, это шум, сливающийся с фоном. Если WebGL-маскировка не выдерживает перекрестной проверки с остальными API, она становится не защитой, а ярким маяком.
Fingerprint-кузница
@fingerprint_forge_ubt
GL_RENDERER и Vendor strings: скрытые маркеры, по которым режут WebGL-фингерпринт
Этот пост опубликован в Telegram-канале Fingerprint-кузница. Подписаться можно по ссылке: @fingerprint_forge_ubt.