Canvas Picasso: как современные антифрод-системы выявляют подмену устройства и шум рендеринга.


29.11.25

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

И если ранее методы опирались на статический canvas fingerprint, то сегодня крупные платформы переходят к динамическим протоколам нового поколения, таким как Picasso.

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

Почему статические canvas-методы устарели

Классический canvas fingerprint работает так: страница рендерит заранее подготовленный рисунок (текст, фигуры и другие элементы), затем вычисляет хеш массива пикселей, об этом мы писали в предыдущей статье. Из-за особенностей графического стека у разных устройств получаются разные результаты. Но сегодня это почти бесполезно для антифрода, потому что: антидетекты умеют подменять Canvas на лету, плагины добавляют шум, делая fingerprint уникальным, боты могут эмулировать статические изображения. Поэтому антифрод системы всё чаще используют динамический рендеринг в canvas.

Picasso: динамический Canvas-челлендж.

Picasso — это не fingerprint, а челлендж-процедура, похожая на криптографическую задачу, где каждый запуск уникален.

В статическом методе canvas всегда рисуется одна и та же картинка.

В Picasso каждый запуск создаёт новую, уникальную картинку, состоящую из нескольких шагов.

В статическом Canvas никакого seed (начальное число для генерации рисунка) нет — рисунок всегда одинаковый.

В Picasso сервер каждый раз выдаёт новый seed, и благодаря этому каждый челлендж получается другим.

В статике результат всегда один и тот же, можно просто запомнить и подделать.

В Picasso результат каждый раз новый, потому что зависит от seed и набора действий.

Статический canvas пытается определить конкретное устройство (как отпечаток устройства).

Picasso проверяет, честно ли устройство рендерит графику — соответствует ли оно тому типу, за который себя выдаёт.

Статический Canvas легко подделать или изменить с помощью расширений, антидетектов и эмуляторов.

Подменить Picasso практически невозможно, он динамический, каждый раз новый, и сервер знает, каким должен быть результат для устройства.

Как работает canvas Picasso:

Сервер отправляет параметры челленджа Сервер генерирует: • размер canvas, • число раундов N, • seed (начальное значение генератора псевдослучайных чисел), • набор параметров (шрифты, тени, цветовые схемы). Эти параметры зависят от политики антифрода и используются только один раз.

Клиент детерминированно рендерит “картину” На устройстве запускается код, который: • инициализирует PRNG на основе seed; • случайным образом выбирает, что рисовать (дуги, текст, фигуры, градиенты, эмодзи); • применяет трансформации и тени; • повторяет процесс N раз. Каждое устройство генерирует одинаковую последовательность фигур, но рисует их по-разному, потому что: • GPU разные, • слои раундов отрисовки склеиваются по-разному на устройствах, • алгоритмы сглаживания разные, • рендеринг шрифтов отличается, • округление плавающей запятой работает по-своему.

Клиент отправляет хеш результата В конце canvas вычисляется хэш, это не fingerprint, а результат теста рендеринга.

Сервер сравнивает результат с профилем девайса Сервер не сравнивает хеш по равенству. Это невозможно — ведь seed каждый раз новый. Он сравнивает куда попадает хеш по признакам (в кластер iPhone Safari, в кластер Android Chrome, в кластер Chrome Desktop).

Как антифрод-система анализирует результаты canvas Picasso

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

Сервер, зная seed, порядок фигур, знает ожидаемый результат. Сервер сравнивает фактический хеш с кластером ожидаемых хешей для конкретного стека (браузер+ОС+GPU). Если хеш не соответствует кластеру, то антифрод-система делает соответствующие выводы.

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

Пример использования canvas Picasso.

На странице капчи сайт Яндекс использует canvas Picasso и не один, браузер пользователя получает задание на отрисовку четырёх canvas Picasso размером 300х300 px и одного статического canvas размером 240х140 px.

В этом примере антифрод-система комбинирует статический и динамический Canvas.

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

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

DataDome также применяет динамический сanvas типа Picasso. Поскольку PayPal официально указан среди клиентов DataDome, этот механизм присутствует и в составе защиты, работающей на сервисах PayPal.

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

Выводы:

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

Еще не с нами?

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

Регистрация

Похожие посты

Мой чат


Есть какие-то вопросы?

Количество: не более 5 Размер: не более 15 МБ Изображения: PNG (.png), JPEG / JPG (.jpeg, .jpg), GIF (.gif), WEBP (.webp), BMP (.bmp), TIFF (.tiff, .tif), HEIC / HEIF Документы: TXT (.txt), LOG (.log)