Canvas fingerprint: что это, как проверить и как скрыть отпечаток

Canvas fingerprint — это отпечаток браузера, который сайт получает через элемент HTML5 canvas: скрипт незаметно рисует текст и фигуры на невидимом холсте, считывает получившиеся пиксели и превращает их в короткий хеш. Видеокарта, драйверы, операционная система и движок шрифтов у каждого устройства отрисовывают картинку чуть по-своему, поэтому хеш у вашего компьютера постоянен и отличается от большинства других. Он работает как идентификатор без cookie и без каких-либо записей на устройстве.
Обычно объяснения на этом заканчиваются. Мы разберём больше: какие именно вызовы браузера использует скрипт отпечатка, как за минуту проверить свой canvas-хеш, что делают с canvas приватные браузеры и антидетект-профили и почему значение canvas должно сходиться с IP-адресом, часовым поясом и остальными параметрами профиля.
Прокси под ваш профиль
Резидентские прокси с выбором страны и города, чтобы IP, часовой пояс и язык совпадали с профилем браузера
Как получается canvas-отпечаток
Canvas задумывали для графиков, игр и редакторов изображений. В отпечатке его используют иначе — как измерительный прибор: насколько по-своему ваше железо и программы рисуют пиксели. Вся процедура занимает миллисекунды, а посетитель ничего не видит.
- Скрипт создаёт холст, который не добавлен на страницу, или крошечный скрытый холст.
- Пишет на нём тестовую строку из необычного набора символов — часто двумя шрифтами и цветами с полупрозрачностью — и добавляет кривые, градиенты или эмодзи.
- Считывает результат методами
toDataURL()илиgetImageData(): первый отдаёт картинку в закодированном виде, второй — массив значений пикселей. - Считает хеш и отправляет его на сервер, как правило вместе с десятками других признаков браузера.

Почему одинаковый рисунок даёт разные пиксели
Два ноутбука выполняют одни и те же команды, а картинки всё равно получаются немного разными. Расхождения дают сглаживание краёв букв, субпиксельная отрисовка шрифтов, версии установленных шрифтов, смешивание цветов в видеочипе и округления в драйвере. Глазом этого не заметить, но в массиве пикселей меняются отдельные значения, а любое изменение даёт совсем другой хеш.
Значение держится, пока не меняются железо, система, версия браузера и шрифты. Обновление браузера или нового драйвера может его сдвинуть, поэтому трекеры почти никогда не опираются на один canvas и дополняют его данными WebGL, звука и экрана.
Canvas, WebGL и аудио вместе
Canvas входит в группу признаков отрисовки. WebGL сообщает производителя и модель видеокарты и так же может отрисовать 3D-сцену для хеша. Аудио-API обрабатывает тестовый сигнал и тоже хеширует результат. Вместе эти значения описывают устройство точнее, чем каждое по отдельности. Полная картина с сетевым уровнем, заголовками и поведением — в нашем разборе цифрового отпечатка браузера.
Кто и зачем снимает canvas-отпечаток
Canvas-хеши встречаются в двух совсем разных задачах.
- Реклама и аналитика. Узнать вернувшегося посетителя, даже если он удалил или заблокировал cookie. В ЕС такое отслеживание, как и cookie, обычно требует согласия по правилам ePrivacy и GDPR.
- Безопасность и антифрод. Банки, платёжные страницы, маркетплейсы и антибот-системы сравнивают устройство новой сессии с теми, что видели раньше. Вход со знакомым canvas-хешем вызывает меньше подозрений, чем с устройства, которое система видит впервые. Как эти сигналы складываются с репутацией IP и поведением, объясняет статья о том, как сайты распознают ботов.
Для второй группы необычное или противоречивое значение canvas не нейтрально. Хеш, который меняется при каждой загрузке страницы, или хеш, не совпадающий с заявленной видеокартой, сам по себе становится поводом присмотреться.
Как проверить свой canvas fingerprint
Хеш canvas и то, насколько он редкий, показывают бесплатные сервисы:
- BrowserLeaks — отдельная страница canvas с отрисованной картинкой, хешем и долей посетителей с таким же значением.
- AmIUnique — canvas в общей таблице признаков, у каждого видно, у какой доли посетителей такое же значение.
- CreepJS — пытается определить, подменён ли вывод canvas; удобно, когда проверяете защищённый браузер.
- Cover Your Tracks от EFF — оценивает общую уникальность браузера, включая canvas, и работу блокировки трекеров.

Быстрая проверка в консоли
Чтобы увидеть механизм своими глазами, откройте консоль разработчика на любой странице и запустите короткий скрипт. Он рисует тестовую сцену, берёт SHA-256 от данных изображения и выводит первые символы.
async function canvasProbe() {
const board = document.createElement("canvas");
board.width = 240;
board.height = 60;
const pen = board.getContext("2d");
pen.textBaseline = "top";
pen.font = "16px Arial";
pen.fillStyle = "#f60";
pen.fillRect(100, 5, 80, 30);
pen.fillStyle = "rgba(20, 90, 160, 0.7)";
pen.fillText("Проба ÅßΩ 😊 0.1", 4, 12);
const pixels = new TextEncoder().encode(board.toDataURL());
const digest = await crypto.subtle.digest("SHA-256", pixels);
return [...new Uint8Array(digest)].slice(0, 8)
.map(b => b.toString(16).padStart(2, "0")).join("");
}
canvasProbe().then(id => console.log("canvas id:", id));Запустите его дважды в одном браузере — результат должен совпасть. В другом браузере на том же компьютере или на другом компьютере он, скорее всего, будет иным. Если значение меняется при каждом запуске, браузер подмешивает шум в чтение canvas.
Что меняет canvas-хеш, а что нет
Многие ждут, что VPN или новый IP обнулят отслеживание. Но canvas вычисляется на самом устройстве, и сеть на него не влияет. В таблице — что на деле делает каждая распространённая мера.
| Мера | Что происходит с canvas | Побочные эффекты |
|---|---|---|
| Очистка cookie, режим инкогнито | Ничего, хеш пересчитывается тот же | Нет |
| Прокси или VPN | Ничего, меняются только IP и видимое местоположение | Меняется сетевой уровень, а это важно для согласованности |
| Brave (защита по умолчанию) | Вносит небольшие случайные изменения для каждого сайта и сессии | Сайт видит значение, которое меняется между сессиями |
| Защита от отпечатков в Firefox | Строгий режим и приватные окна добавляют защиту canvas; старая настройка resistFingerprinting блокирует чтение или отдаёт пустую картинку | В строгом режиме часть сайтов может работать с ошибками |
| Tor Browser | Отдаёт пустое изображение, пока вы не разрешите чтение canvas для сайта | У всех один и тот же результат — так и задумано |
| Расширенная защита от отпечатков в Safari | Добавляет шум при чтении canvas | Только Safari на устройствах Apple |
| Расширения-блокировщики canvas | Блокируют или рандомизируют чтение | Само расширение может выдавать себя |
| Профиль антидетект-браузера | Постоянное подменное значение на профиль | Результат зависит от согласованности всего профиля |
Настройки по умолчанию и названия пунктов меняются от версии к версии, поэтому перед тем как полагаться на конкретную опцию, сверьтесь с актуальной документацией своего браузера.
Блокировка, шум или постоянная подмена
Технически подходов три. Блокировка возвращает пустоту или белую картинку: отслеживать нечего, но такое поведение редкое, а значит заметное. Шум вносит крошечные случайные изменения для каждого сайта или сессии: хеши на разных сайтах не совпадают, но детектор может заметить, что вывод «плавает». Постоянная подмена держит одно правдоподобное значение на профиль — к этому стремятся антидетект-браузеры: внутри профиля хеш стабилен, между профилями различается.

Canvas, IP и остальной профиль
Значение canvas никогда не оценивают в одиночку. Антифрод читает его рядом с моделью видеокарты из WebGL, операционной системой из User-Agent, размером экрана, шрифтами, часовым поясом, языком, а на стороне сервера — с IP-адресом. Внимание привлекают противоречия: canvas, типичный для Mac, при User-Agent от Windows, или профиль, настроенный на Париж, который выходит в сеть с адреса другой страны с другим временем.
Поэтому задача прокси, когда речь идёт об отпечатках, — не скрыть canvas, а сделать так, чтобы сетевой уровень рассказывал ту же историю, что и устройство. Если профиль настроен под конкретную страну и город, резидентские прокси из этой локации удерживают геолокацию IP, часовой пояс и язык в согласии с остальным отпечатком.

Чек-лист для отдельных профилей
Командам, которые законно ведут несколько рабочих профилей, например агентству с клиентскими страницами, подойдёт такой порядок:
- Выберите одну стратегию canvas для профиля и не меняйте её: постоянное подменное значение, а не новый шум при каждом запуске.
- Сделайте производителя и модель видеокарты в WebGL правдоподобными для системы, которую заявляет профиль.
- Выставьте часовой пояс и язык под страну прокси.
- Дайте каждому профилю свой выделенный IP или свою sticky-сессию, а не общий адрес.
- После любой правки перепроверяйте профиль в BrowserLeaks и CreepJS.
Правила площадок при этом никто не отменял: отдельные профили помогают разводить действительно разные аккаунты, но не меняют того, что сервис разрешает. Инструкции по настройке популярных программ собраны в разделе о настройке прокси в антидетект-браузерах, а общие привычки защиты — в памятке по безопасности в интернете.
Частые ошибки
- Случайный шум при каждой загрузке. Он мешает связать визиты на разных сайтах, но показывает, что браузер изменён. Для долгоживущих профилей постоянное значение обычно незаметнее.
- Подмена canvas без WebGL. Пара значений противоречит друг другу и привлекает внимание.
- Гора расширений. Каждый лишний блокировщик добавляет редкие признаки и может сделать отпечаток уникальнее, а не наоборот.
- Забытый сетевой уровень. Идеально настроенный canvas не спасёт, если IP находится в другой стране, чем часовой пояс.
Частые вопросы о canvas fingerprint
Что такое canvas fingerprint простыми словами?
Сайт просит браузер нарисовать скрытую картинку, считывает пиксели и превращает их в короткий код. Каждое устройство рисует немного по-своему, поэтому по этому коду его можно узнать позже без cookie.
Меняет ли прокси или VPN canvas-отпечаток?
Нет. Canvas отрисовывается на вашем устройстве, а прокси или VPN меняют только IP-адрес и видимое местоположение. Они помогают согласовать сетевой уровень с остальным профилем, но хеш canvas остаётся прежним.
Законно ли снимать canvas-отпечаток?
Зависит от цели и страны. В ЕС отслеживание посетителей по отпечатку, как и по cookie, обычно требует согласия, а для защиты от мошенничества могут действовать другие правовые основания. Многие сайты упоминают это в политике конфиденциальности или cookie.
Защищает ли режим инкогнито от canvas fingerprinting?
Сам по себе нет. Приватное окно не сохраняет cookie и историю, но canvas вычисляется так же. Firefox и Safari добавляют в приватных окнах часть защиты от отпечатков, и значение может меняться или размываться.
Что лучше: рандомизировать canvas или блокировать?
У обоих вариантов есть минусы. Блокировка приватнее всего, но легко замечается; рандомизация не даёт связать сайты, но показывает, что значения плавают; постоянная подмена на профиль выглядит естественнее всего для долгоживущих аккаунтов.
Как антидетект-браузеры работают с canvas?
Они назначают каждому профилю собственное значение canvas и держат его неизменным между сессиями вместе с подходящими данными WebGL, шрифтов и экрана. Итог зависит от согласованности всего профиля, включая местоположение прокси.


