Вернуться в блог

Что такое Canvas-отпечаток? Принцип работы, проверка и защита

Canvas-отпечаток — одна из самых распространённых технологий браузерного fingerprinting. Сайты используют её для распознавания устройств и отслеживания пользователей. В статье объясняется принцип работы Canvas-отпечатка, его отличие от других отпечатков, способы проверки и меры защиты приватности.

Каждый клик во время просмотра сайтов, каждое движение мыши, модель устройства и версия операционной системы могут быть объединены сайтом в уникальный идентификатор — браузерный отпечаток. Среди множества технологий fingerprinting Canvas-отпечаток является одной из самых распространённых и стабильных. Пользователь его не видит, однако сайты давно применяют его для распознавания посетителей.

Что такое Canvas?

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

Как формируется Canvas-отпечаток?

Даже если разным устройствам дать команду «нарисовать одну и ту же картинку», результат не будет полностью одинаковым. Причина в том, что отрисовка зависит от аппаратного и программного обеспечения:

  • Видеокарта и драйверы: Графику обрабатывает GPU, а разные видеокарты и драйверы немного по-разному выполняют сглаживание, градиенты и цветопередачу;
  • Операционная система: Windows, macOS и Linux отличаются механизмами отображения шрифтов и реализацией графических интерфейсов;
  • Браузер и движок: Разные браузеры по-разному реализуют Canvas API;
  • Монитор и настройки цвета: Цветовой охват, гамма и другие параметры также могут влиять на итоговое изображение.

Обычно сайт с помощью скрипта заставляет браузер посетителя нарисовать на Canvas один и тот же контент — как правило, сочетание графики и текста. Затем содержимое холста преобразуется в данные изображения и вычисляется hash. Поскольку результат рендеринга отличается между устройствами, этот hash становится достаточно стабильным «отпечатком устройства».

Полный процесс преобразования различий пикселей при рендеринге Canvas в hash-сигнал устройства

Различия могут быть очень небольшими: одна и та же картинка на двух устройствах может отличаться всего несколькими пикселями на сглаженных краях, но вычисленные hash-значения при этом будут совершенно разными — этого достаточно, чтобы различать устройства.

Для чего используют Canvas-отпечаток?

  • Идентификация и отслеживание: Сайт может запомнить устройство по Canvas-отпечатку даже без входа в аккаунт и связывать действия пользователя между страницами, а иногда и между разными сайтами;
  • Антифрод и контроль рисков: Платформы электронной коммерции, платежные сервисы и соцсети могут использовать Canvas-отпечаток как один из сигналов риска для обнаружения необычного поведения, например массовых регистраций или совместного использования аккаунтов;
  • Таргетирование рекламы: Некоторые рекламные сети используют его для построения поведенческих профилей между сайтами.

Сам по себе Canvas-отпечаток обычно не позволяет определить, «кто именно вы». Это лишь один из множества сигналов. В сочетании с IP-адресом, User-Agent, часовым поясом, шрифтами и другими данными способность к распознаванию значительно усиливается.

Отличия Canvas-, WebGL- и шрифтового отпечатков

Все три относятся к отпечаткам, основанным на различиях в отрисовке на устройствах, однако источники у них разные:

  • Canvas-отпечаток: Основан на различиях результатов 2D-рендеринга Canvas;
  • WebGL-отпечаток: Основан на 3D-рендеринге. Сайт может считывать параметры видеокарты, например производителя WebGL и строку renderer, чтобы распознавать устройство;
  • Шрифтовой отпечаток: Определяет список установленных в системе шрифтов, чтобы сделать вывод об операционной системе и устройстве.

Эти сигналы часто используются совместно и формируют «характеристики среды устройства» в системах риск-контроля сайтов.

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

Для проверки можно использовать публичные сервисы BrowserScan, PixelScan и другие. Аналогичные инструменты легко найти по запросу «browser fingerprint test». Обычно они показывают сведения о Canvas, WebGL, шрифтах, часовом поясе и других параметрах. Если результат сообщает о наличии Canvas-отпечатка или показывает стабильный hash, это означает, что устройство может отмечаться таким способом. Результаты сторонних сервисов следует воспринимать только как справочные: они не являются официальным решением какой-либо платформы.

Как обычному пользователю защититься?

Полностью устранить Canvas-отпечаток сложно, поскольку Canvas является обычной функцией браузера. Однако можно уменьшить степень отслеживания:

  • Использовать браузер с акцентом на приватность или включить режим приватности/строгой защиты от отслеживания;
  • Установить расширения против fingerprinting, которые блокируют чтение Canvas или добавляют шум;
  • Регулярно очищать Cookie и данные сайтов, чтобы уменьшить долгосрочную связь между отпечатком и активностью аккаунта;
  • Поддерживать систему и браузер в актуальном состоянии, поскольку новые версии имеют больше встроенных ограничений против fingerprint-трекинга.

Что делать при управлении несколькими бизнес-средами?

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

PurpleMark позволяет при создании браузерной среды настраивать параметры Canvas, WebGL, шрифтов и других отпечатков, чтобы разные среды отображали разные характеристики устройств, а внутри каждой среды параметры оставались постоянными. Благодаря этому каждый магазин или аккаунт в долгосрочной работе сохраняет стабильный «профиль устройства», а не меняется при каждом запуске. Важно подчеркнуть: параметры отпечатка являются возможностью настройки среды. Реальное соблюдение правил бизнеса по-прежнему зависит от выполнения политик используемых платформ — инструменты управления средой нельзя и не следует использовать для выдачи себя за другое лицо или обхода правил платформ.

Часто задаваемые вопросы

Может ли Canvas-отпечаток однозначно идентифицировать человека? Сам по себе — редко. Обычно это один из комбинированных сигналов; вместе с IP-адресом, системной информацией и поведенческими данными его эффективность значительно выше.

Поможет ли отключение JavaScript от Canvas-fingerprinting? Это может заблокировать сбор данных на большинстве сайтов, но многие сайты перестанут работать корректно. Браузеры, ориентированные на приватность, и расширения против fingerprinting обычно являются более сбалансированным решением.

Canvas-отпечаток — это вирус? Нет. Это обычная работа скриптов сайта, а не вредоносная программа. Однако технология связана с отслеживанием пользователей и вопросами приватности, поэтому вызывает споры.

Если сервис проверки fingerprint показывает необычный результат, значит ли это, что с устройством что-то не так? Не обязательно. Разные инструменты используют разные алгоритмы и базы сравнения, поэтому их результаты носят справочный характер. Важнее фактическое состояние вашего аккаунта на используемой платформе.