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, браузера и операционной системы. Именно поэтому крупные компании и антибот-платформы переходят к таким методам. Они позволяют не только точнее отличать реальные устройства, но и выявлять любые попытки вмешательства в рендеринг.

Еще не с нами?

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

Регистрация

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

При нажатии на кнопку "Принять" вы соглашаетесь, что Detect Expert может использовать файлы cookie для персонализации содержимого.

Вы всегда можете отказаться, следуя инструкциям в наших Cookie Policy.