← Назад в блог

Что такое WebGL-отпечаток? Как данные видеокарты становятся частью отпечатка браузера

Сайты получают данные видеокарты двумя путями: один спрашивает параметры, другой смотрит на изображение. Открыв страницу проверки отпечатков, многие впервые видят в строке WebGL Renderer модель своей видеокарты, и первая реакция: откуда сайт знает, какая у меня карта? Читает он не серийный номер железа, а характеристики графической среды, которые выдает браузер. Часть таких характеристик составляют параметры, которые интерфейс сообщает напрямую, а другую часть составляют результаты, считанные после того, как карта что-то нарисовала. По отдельности каждый пункт личность не определяет, но вместе они складываются в узнаваемый пазл.

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

Два типа информации: запрашиваемые параметры и нарисованные изображения

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

Схема двухканального сбора данных WebGL-отпечатка

Начнём с запрашиваемой части. Поля на странице проверки такие:

ПолеСодержимоеТипичное значение
VendorПроизводитель GPUGoogle Inc. (NVIDIA)
RendererМодель рендерераANGLE (NVIDIA, GeForce RTX 3060)
WebGL VersionВерсия интерфейсаWebGL 2.0
ExtensionsСписок расширенийнабор имен расширений

В списке есть детали, на которые стоит обратить внимание. В поле Vendor многие браузеры единообразно показывают Google Inc., а реальный производитель спрятан в скобках. Значение Renderer зависит от реализации конкретного браузера: у двух машин с видеокартой NVIDIA строки могут прийти в разном формате. Различия в списке расширений заметнее. Какие расширения поддерживаются и в каком порядке идут, тоже дают дополнительную информацию.

Точка входа для чтения этих параметров называется расширением WEBGL_debug_renderer_info. Оно открывает две константы: немаскированную строку производителя и строку рендерера. В документации MDN указано, что это расширение изначально предназначалось для отладки и меняется в зависимости от настроек приватности браузера. Firefox при включенном переключателе resistFingerprinting просто его отключает. Иными словами, одна и та же видеокарта в разных браузерах и при разных настройках приватности может сообщать разное. При проверке учитывайте эту переменную.

Почему видеокарта становится характеристикой среды

Различительная сила параметров рождается в комбинации, а не в отдельном поле. Рынок видеокарт сильно сконцентрирован. NVIDIA, AMD, Apple и Intel вместе покрывают подавляющее большинство устройств, и одно поле Renderer никого не идентифицирует. Но в сочетании с другими сигналами различительная сила может вырасти. Например, у устройства на Windows с браузером Chrome графическая среда, которую раскрывает WebGL, обычно соответствует конфигурации системы и браузера; если данные браузера указывают на Windows, а графическая среда выглядит как у устройств с macOS, это повод присмотреться внимательнее. Если и другие параметры, скажем часовой пояс, не совпадают с ожидаемой средой, во всей конфигурации могут появиться противоречащие друг другу сигналы.

Сравнение противоречивых и согласованных комбинаций графических параметров

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

Теперь о рисуемой части. Идея в том, чтобы заставить карту отрендерить фиксированное изображение и считать вывод; этот подход родственен Canvas-отпечатку, а механизм различий 2D-отрисовки разобран в статье про Canvas-отпечаток. WebGL идет по 3D-конвейеру, и рендеринг проходит через драйвер видеокарты и низкоуровневые графические библиотеки. Другая GPU, другая версия драйвера, другая реализация браузера могут изменить вывод на несколько пикселей. Глазу эти различия не видны, а скрипт считывает их точно.

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

Чем отличаются WebGL, Canvas и WebGPU

Три названия ходят рядом, но смотрят на разное. Сведём в таблицу:

ПараметрОбъект наблюденияСпособ сбора
CanvasРезультат 2D-отрисовкирисует и читает отличия
WebGLПараметры графики и 3D-картинкаспрашивает параметры и рисует
WebGPUСигналы нового графического интерфейсаспрашивает параметры и пробует вычисления
AudioContextВыход аудиообработкиобрабатывает алгоритмом и читает результат

Отношения WebGPU и WebGL объясняются одной фразой. WebGPU представляет собой графический интерфейс следующего поколения, который браузеры сейчас активно продвигают: возможностей больше, набор параметров шире; в статье про WebGPU-отпечаток разобрано, какие признаки устройства он раскрывает. WebGL же остается действующим интерфейсом с самым широким охватом: его поддерживают практически все браузеры. Оба интерфейса долго сосуществуют, на страницах проверки появляются рядом, и при разборе нужно смотреть на оба.

Как проверить свой WebGL-отпечаток

Суть проверки в записи и сравнении, а не в беглом взгляде. Три шага:

  1. Откройте страницу проверки IP через среду или инструмент вроде BrowserLeaks и найдите блок WebGL. Запишите четыре пункта: Vendor, Renderer, WebGL Version и число расширений.
  2. Через некоторое время повторите замер в той же среде и сравните два результата. Если параметры сменились с реальной видеокарты на программный рендеринг вроде SwiftShader или число расширений заметно поменялось, значит, среда изменилась.
  3. Проверьте результат WebGL в контексте всей конфигурации среды. Если WebGL сообщает Windows и NVIDIA, то UA и операционная система тоже должны быть Windows, а часовой пояс, язык и регион выхода должны соответствовать друг другу. Среда, где каждый пункт по отдельности в норме, но комбинация противоречива, все равно бросается в глаза.

Одна подсказка заслуживает отдельного упоминания. Если страница проверки показывает SwiftShader, ANGLE (Google) и подобные признаки программного рендеринга, возможно, у самой среды нет видеокарты. Возможно и то, что браузер перешел на программный рендеринг. На реальных устройствах такие значения встречаются редко; в среде с долгосрочной работой это сигнал, который нужно разбирать.

Как пользоваться параметром WebGL image в MostMate

В «Настройках отпечатков» MostMate параметр WebGL image можно настраивать отдельно. На странице настроек он стоит рядом с графическими параметрами вроде Canvas. При создании или редактировании среды у поля WebGL image два варианта: Real и Noise. Real сохраняет реальные значения; при переключении на Noise вывод переходит в режим шума.

Затем взгляните на соответствующую строку в панели предпросмотра отпечатка справа: значение примет вид с шестизначным кодом. Этот код не совмещается с другими параметрами: он помечает конфигурацию шума, а реально раскрываемый хэш нужно смотреть на странице проверки, открытой через среду.

Параметр WebGL image в настройках отпечатков MostMate

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

Границы тоже нужно обозначить. Управление параметрами снижает риск смешения и противоречий между средами. Помимо WebGL, сигналы вроде разрешения экрана и шрифтов независимы; чек-лист по выравниванию каждого пункта есть в статье про согласованность для защиты от связывания. Как бы аккуратно ни была собрана среда, как ее оценит платформа, решает сама платформа, и эта статья не дает никаких обещаний в духе «настроил и не найдешь».

Частые вопросы о WebGL-отпечатке

Видят ли сайты реальную модель моей видеокарты?

Видят строку модели в поле Renderer, если браузер не ограничил расширение WEBGL_debug_renderer_info. Но это описательная информация о графической среде, которую выдает браузер, а не чтение личности железа. В Firefox и других браузерах при включенной защите приватности такие данные скрываются или обобщаются.

Можно ли избежать распознавания отпечатка, отключив WebGL?

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

WebGL-отпечаток и Canvas-отпечаток: это одно и то же?

Нет. Оба используют различия рендеринга, но Canvas работает с 2D-отрисовкой, а WebGL идет по 3D-конвейеру и добавляет слой параметров возможностей. На странице проверки это два отдельных блока, и значения одного не представляют другой.

Может ли антидетект-браузер превратить WebGL в любую видеокарту?

Зависит от реализации продукта. MostMate предлагает два режима, реальный и шумовой, где шумовой режим дает различающийся вывод изображения. Главное всегда в том, чтобы параметры всей среды были согласованы между собой, а не в том, чтобы выставить отдельному полю произвольное значение.

Заключение

Суть WebGL-отпечатка в том, что браузер отдает сайту параметры и поведение рендеринга графической среды: параметры отвечают на вопрос «какая у тебя карта», изображение отвечает на вопрос «как выглядит то, что ты рисуешь». Мультиаккаунтинг никогда не сводится к задаче спрятать видеокарту. Ключ в том, чтобы графические параметры каждой среды рассказывали ту же историю, что UA, часовой пояс и регион выхода.

MostMate собирает параметры вроде WebGL image в единую конфигурацию среды, так что проверки и выравнивание проходят проще. Создание среды является лишь началом; привычка регулярно перепроверять и есть долгосрочная переменная. О способах работы с остальными графическими параметрами полный набор входов есть на главной странице; чтобы собрать для нескольких аккаунтов набор сред с четкими границами, скачайте MostMate и начните с первой среды.

MOSTMATE

Безопасное управление аккаунтами — это просто

Начните с первого аккаунта и выстройте с MostMate более безопасную, умную и эффективную работу с несколькими аккаунтами.

  • Независимые профили. Согласованные цифровые идентичности.
  • ИИ-автоматизация · Состояние аккаунтов · Командная работа
Скачать MostMate