Что такое отпечаток Canvas и как он работает

Что такое отпечаток Canvas и как он работает
Andrey Vorster
Контент-менеджер, Octo Browser
Изучение 500 000 самых популярных сайтов показало, что 0,77% из них используют Canvas для скрытой идентификации посетителей. Этот метод отслеживает пользователей по тому, как их компьютеры отрисовывают изображения. В этой статье мы расскажем, что такое цифровой отпечаток на основе Canvas, как он работает и почему наиболее очевидные методы борьбы с этой технологией идентификации не дают нужных результатов.

Содержание

Что такое фингерпринт на основе Canvas и как он вас отслеживает

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

Canvas Fingerprinting — это метод отслеживания пользователей, использующий HTML5 Canvas API для создания уникального цифрового отпечатка устройства. В отличие от куки, которые легко удалить или заблокировать, этот метод позволяет сайтам и рекламным сетям идентифицировать и отслеживать вас.
Пользователи часто даже не подозревают, что их отслеживают, и не могут этому препятствовать. Браузер автоматически передает часть своих данных для правильного отображения сайта на компьютере и может незаметно выполнить скрипт для отрисовки изображения. Поэтому даже если вы удалите или заблокируете куки, сайт продолжит вас распознавать.

Для борьбы с этим методом можно установить расширения для браузера, которые изменяют данные, используемые для создания отпечатка. Также можно настроить параметры конфиденциальности в браузере, чтобы ограничить выполнение JS-скриптов. Однако все эти способы ненадежны, и мы расскажем почему.

Как работает Canvas Fingerprinting

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

Использование графики

Когда сайт просит браузер нарисовать какой-либо объект через HTML5 Canvas API, например линии, прямоугольники, текст или изображения с различными элементами, цветами и фоном, результат может зависеть от множества факторов. Эти факторы включают операционную систему, версию браузера, установленные шрифты иы графические драйверы. Все эти особенности влияют на то, как именно будет выглядеть итоговое изображение, делая его уникальным для каждого устройства.

Хеширование изображения
Для удобства передачи, сравнения, поиска и хранения созданное изображение преобразуется в хеш-код, который уникален для конкретного устройства и его конфигурации. Эти хеши и используются в качестве элемента цифрового отпечатка.
Отслеживание пользователя
Собранные таким методом цифровые отпечатки трудно изменить или перехитрить. Даже если пользователь очистит кэш или изменит настройки браузера, его уникальный отпечаток может остаться неизменным. Хеш-код сохраняется на сервере и используется для идентификации при повторных посещениях сайта. Поскольку хеш-код уникален для каждого устройства, это позволяет веб-сайтам и рекламным сетям отслеживать пользователя.
Проверьте, какую информацию о Canvas могут собирать сайты, на browserleaks.com
Проверьте, какую информацию о Canvas могут собирать сайты, на browserleaks.com

Что делает Canvas Fingerprinting уникальным

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

Матричные фильтры и их роль в качестве изображений

Эти фильтры применяются для улучшения качества и четкости картинки. Самый заметный фильтр — сглаживание, но есть и другие, например подсказки, которые используются при рисовании шрифтов.

Аналогично все шрифты задаются по определенной математической формуле и состоят из глифов, которые можно описать как набор контуров или замкнутых кривых. Например, строчная буква «g» состоит из одного глифа для тела буквы. Этот векторный контур, затем заполняется пикселями для создания окончательной формы символа.
На схеме показаны различные метрики глифа
На схеме показаны различные метрики глифа

Подсказки и их роль в шрифтах

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

Экранное сглаживание

Сглаживание заключается в добавлении серых пикселей для размытия краев каждого глифа. Если вы увеличите масштаб страницы, то заметите, что края изогнутых букв не идеальны, а скорее имеют зазубрины. Фильтр сглаживает границы объектов и делает их более плавными, поскольку наши глаза усредняют разницу в тональности.
Экранное сглаживание
Уникальность каждого фингерпринта на основе Canvas заключается не в конечном изображении, которое мы видим, а в том, как каждый компьютер обрабатывает оттенки и сглаживание. Когда два компьютера получают одно и то же задание на отрисовку, то, помимо прочих отличий, пиксели на границах имеют немного разные оттенки. Эти незначительные различия в процессах приводят к тому, что изображение выглядит одинаково для нас, но не для сайтов.

Почему для создания фингерпринта используется хеширование

Хеширование — это процесс преобразования данных в уникальное значение фиксированной длины (хеш-код), что позволяет эффективно и быстро сравнивать данные. Для фингерпринтинга это особенно важно, поскольку помогает создавать уникальные отпечатки устройств на основе изображений, сгенерированных через Canvas.

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

Сравнение фингерпринтов с помощью хешей

Для создания отпечатков на основе Canvas сайты отправляют одинаковые инструкции по отрисовке графических объектов. Однако получать обратно и обрабатывать такой большой объем изображений нерационально. Вместо этого используется функция хеширования, которая уменьшает размер данных, сохраняя их уникальность.

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

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

Добавление аппаратного шума

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

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

Используя собственные математические алгоритмы, Octo Browser вводит в Canvas случайный, но постоянный шум, что влияет на результат проверки CRC-данных изображения. Опять же, эти изменения не видны, но хеш изображения будет другим. После этого цифровой отпечаток становится одновременно уникальным и нормальным для каждого профиля, который вы запускаете. Сайт рассматривает эти виртуальные профили как обычных посетителей, а ваше устройство защищено от слежки.
Проверка пройдена без алертов: это то, что вы должны ожидать от антидетект-браузера
Проверка пройдена без алертов: это то, что вы должны ожидать от антидетект-браузера

Отпечаток без аппаратного шума

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

Если отключить добавление аппаратного шума и перехват запросов Canvas API, сайты получат реальный хеш-код устройства. Это может быть полезно, когда сайты плохо реагируют на полностью уникальный или заблокированный Canvas.

Использование профилей на нескольких устройствах

У виртуальных профилей с включенной настройкой Canvas при их запуске на разных компьютерах с разным «железом» хеш будет непостоянен между запусками.
Параметры цифрового отпечатка в Octo Browser
Параметры цифрового отпечатка в Octo Browser
В Octo Browser добавленный аппаратный шум постоянен, но действует как фильтр, наложенный поверх существующего отпечатка Canvas. Таким образом, если устройство изменится, итоговое значение также изменится.

Вот пример, если один виртуальный профиль запустить на двух разных компьютерах. Несмотря на то, что в этом профиле добавлен аппаратный шум, результаты проверки Canvas отличаются.
Поскольку добавляется случайный шум к данным, сайт при использовании статистического анализа может заметить, что отпечаток на 100% уникальный
Поскольку добавляется случайный шум к данным, сайт при использовании статистического анализа может заметить, что отпечаток на 100% уникальный

Как получить постоянный отпечаток Canvas на нескольких устройствах

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

Отпечатки Canvas могут отличаться по нескольким причинам:
  • Графический процессор (GPU): разные GPU имеют разные архитектуры и производительность, что влияет на то, как они рендерят графику. При этом некоторые процессоры поддерживают определенные функции, а в других они отсутствуют.
  • Операционная система: разные версии операционных систем могут иметь разные настройки для работы с графикой.
  • Драйверы: они могут быть разными для разных операционных систем и версий, что также влияет на рендеринг.
  • Браузер: разные браузеры используют разные движки для рендеринга графики (например, Blink в Chrome, Gecko в Firefox, WebKit в Safari). Браузеры имеют разные настройки и по-разному оптимизированы для работы с графикой, что влияет на конечный результат.
  • Версии обновлений и патчи: новые версии ОС и драйверов могут менять алгоритмы рендеринга. Разные версии одного и того же браузера также могут иметь разные алгоритмы и оптимизацию рендеринга.
  • Настройки шрифтов: даже если установлены одни и те же шрифты, настройки, такие как кернинг, трекинг и интерлиньяж, могут влиять на вывод текста на экран.
Все эти факторы могут влиять на то, как Canvas рендерит графику, что приводит к различиям в отпечатках. При этом мы выяснили, что компьютеры с одинаковыми графическими процессорами (GPU), операционной системой, драйверами и версией браузера, скорее всего, дадут одинаковые результаты.

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

Mac-устройства

Один из способов сделать отпечатки виртуальных профилей неотличимыми от обычных и распространенных комбинаций — использовать Octo Browser на устройствах Mac. Поскольку сборка у одинаковых моделей Mac идентична, то и отпечатки Canvas будут практически одинаковы.

Как работать с отпечатками Canvas

Технология Canvas Fingerprinting — это мощный и незаметный способ идентификации пользователей. Особенность этого подхода заключается в том, что параметры для создания отпечатка задаются на стороне сервера. В результате устройство незаметно для пользователя может генерировать разнообразные графические объекты с помощью Canvas API, которые затем преобразуются в хеш-код. Эффективно подменять хеш невозможно, так как для этого нужно знать алгоритм хеширования.

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

Почему стоит выбрать Octo Browser

Современные системы отслеживания сайтов постоянно развиваются. Фингерпринт на основе Canvas часто комбинируется с другими методами отслеживания, что позволяет создать более точный и надежный браузерный отпечаток. Это может стать серьезной проблемой для мультиаккаунтинга.

В Octo Browser вы полностью контролируете цифровой отпечаток и выбираете, как он будет восприниматься сайтами. Если вам необходимо скрыть некоторые параметры браузерного отпечатка и заменить их значения на уникальные, можете включить аппаратный шум. Если хотите слиться с толпой — не включайте шумы. Таким образом, вы не будете выделяться среди посетителей с такими же аппаратными настройками.

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

Следите за последними новостями Octo Browser
Нажимая кнопку, вы соглашаетесь с нашей политикой конфиденциальности.

Похожие статьи
Присоединяйтесь к Octo Browser сейчас
Вы можете обращаться за помощью к нашим специалистам службы поддержки в чате в любое время.