Фингерпринт на основе Canvas: что это и как он работает?
Эти следы стер, IP подменил. Даже мышку протер влажной салфеткой, а мои действия все равно отследили. Но как такое возможно? Ведь были стерты все цифровые следы. А Canvas?
С конфиденциальностью в интернете сейчас не все так просто… Точнее, ее просто нет. И даже как бы ни пытался пользователь замести после себя следы, длинноносые рекламные сети, аналитические платформы и антифрод-системы все равно выследят и определят его интересы, вкусы и предпочтения. А потом узнают твой пол, возраст… А там до имени с фамилией и адреса проживания недалеко. Поэтому следует защитить свои данные как следует, подменив их на чужие. В том числе и Canvas, о котором многие пользователи антидетектов забывают… Потому что не знают, что это за «холст» такой.
Пройдемся по всем составляющим фингерпринта
Прятаться с помощью анонимных браузеров и удобно, и эффективно. С помощью них порой можно так замаскироваться, что сам себя не узнаешь. И такие случаи в практике бывали. Но для достижения столь высоких результатов нужно как следует подготовить цифровые отпечатки. Именно их антидетекты используют для сокрытия истинных характеристик пользователя.
Фингерпринт представляет собой комплекс признаков, заключенных в один общий термин. Входящие в его состав сигналы позволяют антидетектам обходить все блокировки сайтов. А также осуществлять на них любую по объему мультиаккаунтную деятельность.
Параметры, входящие в набор параметров цифрового отпечатка, можно разделить на несколько групп:
- Основные – к ним относятся: ОС, браузер, его версия, разрешение экрана, тактовая частота ЦП, объем оперативной памяти. А также значения, входящие в состав User-Agent.
Строка User-Agent – это часть HTTP-заголовка, отсылаемого приложением (в нашем случае браузером) серверу. Данная строка содержит значения характеристик пользовательского устройства и его локальных настроек. Некоторые прописанные в User-Agent параметры совпадают с параметрами, передаваемыми через другие части фингерпринта. Поэтому важно обеспечить их совместимость. Для этого в Undetectable в настройки цифрового отпечатка добавлен инструмент проверки идентичности данных значений.
- Сетевые – часовой пояс, геолокация, WebRTC.
Протокол WebRTC используется для передачи в интернете пакетов информации по технологии пиринга. Чаще всего применяется для пересылки между веб-приложениями мультимедийных данных (голосовой и звуковой). На его базе основана работа всех стриминговых сервисов. Также этот протокол позволяет трекерам и антифрод-системам определять IP клиента в обход прокси-сервера.
- Системные – размер окна приложения, набор шрифтов, WebGL и Canvas.
Библиотека WebGL служит для добавления в JavaScript возможности создания трехмерной графики в любом браузере. Также библиотека позволяет защитным системам получать информацию о видеопроцессоре пользовательского устройства.
И вот так постепенно, шаг за шагом, мы добрались до нашей сегодняшней цели – системному параметру фингерпринта Canvas. Теперь ему будет уделено все наше внимание, и вот почему…
Что такое Canvas?
Суть и предназначение этого элемента легко понять из его названия. Canvas позволяет браузеру самостоятельно прорисовывать графическое содержимое на веб-странице. Чаще всего он используется вместе со встроенным на странице скриптом JavaScript. Но охарактеризовать и объяснить значение Canvas двумя предложениями не удастся. Поскольку он многогранен.
Прежде всего, Canvas – это тег языка гипертекста, который вошел в его состав после запуска HTML5. С помощью данного тега можно не только осуществлять на веб-странице прорисовку двухмерных графических примитивов, но и встраивать в холст мультимедийное содержимое. В том числе видео и аудио.
На данный момент Canvas является общепринятым стандартом в веб-разработке. Поддерживается всеми версиями мобильных и десктопных браузеров. В том числе и Internet Explorer, который практически уже не используется, а его поддержка компанией Microsoft прекращена.
И это не лирическое отступление о тяжелой судьбе IE, а неоспоримый факт, который позволит нам понять, насколько важен Canvas для качественной мультиаккаунтной деятельности с помощью антидетектов.
Но при чем тут анонимность, фингерпринты и антидетект-браузеры? Ведь по HTML-тегу нельзя отследить действий пользователя и идентифицировать его. Поскольку Canvas является общепризнанной, распространенной технологией и данные теги присутствуют (используются) в разметке миллионов сайтов…
Все эти вопросы возникают из-за того, что мы не ведаем о другой, побочной стороне Canvas. Но о которой так хорошо осведомлены рекламные и аналитические платформы, сующие свой нос в каждый аспект онлайн-жизни пользователей.
Другие таланты Canvas
У каждого человека свой почерк, который присущ только ему. Поэтому путем графологической экспертизы можно установить автора того или иного текста. Но оказывается, что почерком обладают не только люди, а и компьютеры.
Главное условие, которое должно быть выполнено для идентификации пользователя через Canvas – заставить устройств отрисовать какой-либо примитив. После чего образец «почерка» нужно отослать графологу, которым в случае с фингерпринтами выступают антифрод-системы и аналитические платформы.
Сам механизм отслеживания с помощью Canvas основан на особенностях обработки одного и того же отрисованного графического элемента каждым компьютером, смартфоном или другим типом пользовательского устройства.
Механизм идентификации на основе Canvas происходит следующим образом:
- При посещении пользователем сайта, который интегрирован с трекером, браузер получает указание отрисовать какой-либо графический примитив.
- Затем на основе полученных данных анализа отрисовки выводится уникальный токен, который позволяет с точностью до 90% определять «личность» устройства.
- При этом значение сгенерированного токена не сохраняется в cookies, а записывается в глобальную базу данных.
- После чего при каждом последующем посещении какого-либо отслеживающего ресурса будет осуществляться аналогичная отрисовка графического примитива, а полученный идентификатор сравниваться со значениями в БД.
При определении цифровой личности пользователя с помощью Canvas учитываются следующие технические характеристики устройства:
- Центральный процессор.
- Видеокарта.
- ОС.
- Особенности механизма обработки.
- Уровень сжатия изображений.
- Параметры экспорта.
Также в качестве образца для идентификации вместо графического примитива браузеру может пересылаться текстовая строка. В таком случае к перечисленному выше набору добавляются настройки сглаживания и субпиксельного рендеринга.
При этом стоит понимать, что использование Canvas в качестве отдельного источника сведений для определения устройства малоэффективно. Поскольку агрегируемая для генерации токена информация передается только через строку User-Agent, которая обеспечивает низкую точность идентификации.
К тому же весь механизм работы фингерпринтов на основе Canvas целиком и полностью зависит от поддержки браузером JavaScript. Именно на нем написаны скрипты, необходимые для загрузки и отрисовки графических примитивов по требованию. Если браузер не поддерживает JS или в нем отключено выполнение скриптов, то трекинг-система не сможет получить данных для генерации значения токена.
Кроме этого ни одна система трекинга и безопасности сайта не полагается только на сведения, полученные с помощью Canvas. Выше мы озвучили эффективность применения данного способа идентификации на уровне 90%. Но столь высокий показатель достигается только в лабораторных условиях. А на практике?
Насколько можно верить Canvas?
В реальности если бы все антифрод-системы применяли идентификацию только на основе «холста», то необходимость в использовании столь качественный антидетектов, как Undetectable, отпала раз и навсегда.
Для получения невалидного токена, генерируемого на основе Canvas, пользователю достаточно поменять браузер или даже обновить его до новой версии. Поэтому данный механизм является лишь второстепенной частью технологии получения фингерпринтов.
Полевые тесты этого метода идентификации цифровой личности также доказывают его низкую эффективность. Для проверки точности фингерпринтов на основе Canvas авторы эксперимента использовали более сотни компьютеров. Большая часть из них работала на Windows 10. Что позволило создать еще более жесткие условия для испытания. Но при этом компьютеры, планшеты и ноутбуки кардинально отличались друг от друга технической начинкой. Прежде всего, моделями и характеристиками видеокарт, а также установленным набором драйверов.
Краткая выжимка из результатов эксперимента:
- Токены многих дискретных карт совпадали с токенами Canvas компьютеров с интегрированными видеокартами.
- Протестированные подряд пятнадцать ноутбуков имели одинаковые фингерпринты.
- Совпадали цифровые отпечатки даже компьютеров разных производителей.
Например, ноутбук Dell модельного ряда 2018 г. имеет такой же фингерпринт на основе Canvas, что и лэптоп HP 2012 г.
- Все модели MacBook Pro, которые были выпущены в течение шести лет (с 2012 по 2018 гг.) также имеют одинаковые токены.
- Планшеты и ноутбуки на Windows имеют схожие отпечатки.
Как видите, достичь уникальности цифровых отпечатков на основе Canvas тяжело. Поэтому пройти верификации по данному типу фингерпринта очень просто. Поскольку вероятность совпадения значения токена с токеном другого пользователя весьма высока. В том числе и за счет постоянно увеличивающегося количества мобильных и десктопных устройств с выходом в интернет.
Также можно поставить под сомнение валидность баз, в которых сохраняются токены на основе Canvas. Скорее всего, около 10-15% их значений повторяются. Так что применение этих БД для идентификации пользователей без других параметров фингерпринтов малоэффективно.
Так стоит ли волноваться?
Исходя из перечисленных выше фактов становится понятно, что Canvas является для антифрод-систем слабым сигналом из-за низкой точности идентификации, которую он обеспечивает.
Тем не менее в некоторых ситуациях значение данного параметра может оказаться решающим. Поэтому в настройках фингерпринтов Undetectable он присутствует. При этом пользователь антидетекта может отключить его или выбрать режим «Шум», при котором значение Canvas будет сгенерировано в случайном порядке.