Статьи и сравнения

Отпечатки canvas, WebGL и аудио: как они работают

Большинство сигналов отпечатка - это значения, которые браузер просто сообщает. Отпечатки рендеринга другие: сайт просит устройство нарисовать изображение или обработать звук, а потом смотрит на результат. Мелкие различия железа и программ делают этот результат удивительно характерным.

Проверьте свой браузер прямо сейчас

Проверяю браузер…

Отпечаток canvas

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

Отпечаток WebGL

WebGL раскрывает два типа данных. Во-первых, параметры: производителя и модель видеокарты через строку unmasked renderer, поддерживаемые расширения, максимальные размеры текстур и форматы точности. Во-вторых, рендеринг: рисование 3D-сцены и хеш пикселей, как в canvas, но через графический конвейер.

Название видеокарты - еще и сильный сигнал согласованности. Видеокарты Apple бывают только на устройствах Apple, а названия рендерера с упоминанием Direct3D - только в Windows. User-Agent Windows с видеокартой Apple в настоящем браузере не встречается.

WebGPU

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

Аудио-отпечаток

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

Как работает защита

Инструменты приватности используют один из трех подходов:

Как замечают шум

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

Проверка SpoofLens именно поэтому рисует canvas и аудио дважды. В Brave, Safari, Firefox с resistFingerprinting и Tor Browser она отмечает шум как защиту приватности, потому что эти браузеры намеренно добавляют или меняют такие данные. В других браузерах шум canvas считается противоречием, а шум аудио подозрительным признаком.

Уникальны ли эти отпечатки?

Меньше, чем кажется. Устройства одной модели с той же системой и версией браузера часто имеют одинаковые хеши canvas и WebGL, поэтому iPhone так трудно различить. Отпечатки рендеринга полезнее всего в сочетании с другими сигналами и для обнаружения подделки, а не как отдельный идентификатор.

Частые вопросы

Можно ли заблокировать отпечаток canvas?
Да. Tor Browser, Firefox с resistFingerprinting и Brave защищают от него по-разному. Расширения тоже могут, но плохо сделанное расширение может сделать браузер заметнее, потому что подменяет функции так, что это можно обнаружить.
Почему мой хеш canvas меняется?
Обновление браузера или драйвера видеокарты, изменение масштабирования экрана или функция приватности, которая добавляет шум. Если он меняется при каждом обновлении страницы, добавляется шум.
SpoofLens сохраняет мой хеш canvas?
Нет. Он вычисляется в вашем браузере, один раз отправляется для сверки и сразу отбрасывается.

Читайте также