Еще не с нами?
Зарегистрируйтесь, чтобы получить доступ ко всем возможностям сайта.
Регистрация29.11.25
Современные антифрод-системы используют десятки каналов сигнальной телеметрии, и среди них есть рендеринг Canvas.
И если ранее методы опирались на статический canvas fingerprint, то сегодня крупные платформы переходят к динамическим протоколам нового поколения, таким как Picasso.
В этой статье мы объясним как устроен динамический Canvas-челлендж Picasso, как антифрод-системы определяют, подмену результатов рендеринга и шум, почему этот механизм стал стандартом в антифроде.
Классический canvas fingerprint работает так: страница рендерит заранее подготовленный рисунок (текст, фигуры и другие элементы), затем вычисляет хеш массива пикселей, об этом мы писали в предыдущей статье. Из-за особенностей графического стека у разных устройств получаются разные результаты. Но сегодня это почти бесполезно для антифрода, потому что: антидетекты умеют подменять Canvas на лету, плагины добавляют шум, делая fingerprint уникальным, боты могут эмулировать статические изображения. Поэтому антифрод системы всё чаще используют динамический рендеринг в canvas.
Picasso — это не fingerprint, а челлендж-процедура, похожая на криптографическую задачу, где каждый запуск уникален.
В статическом методе canvas всегда рисуется одна и та же картинка.
В Picasso каждый запуск создаёт новую, уникальную картинку, состоящую из нескольких шагов.
В статическом Canvas никакого seed (начальное число для генерации рисунка) нет — рисунок всегда одинаковый.
В Picasso сервер каждый раз выдаёт новый seed, и благодаря этому каждый челлендж получается другим.
В статике результат всегда один и тот же, можно просто запомнить и подделать.
В Picasso результат каждый раз новый, потому что зависит от seed и набора действий.
Статический canvas пытается определить конкретное устройство (как отпечаток устройства).
Picasso проверяет, честно ли устройство рендерит графику — соответствует ли оно тому типу, за который себя выдаёт.
Статический Canvas легко подделать или изменить с помощью расширений, антидетектов и эмуляторов.
Подменить Picasso практически невозможно, он динамический, каждый раз новый, и сервер знает, каким должен быть результат для устройства.
Сервер отправляет параметры челленджа Сервер генерирует: • размер canvas, • число раундов N, • seed (начальное значение генератора псевдослучайных чисел), • набор параметров (шрифты, тени, цветовые схемы). Эти параметры зависят от политики антифрода и используются только один раз.
Клиент детерминированно рендерит “картину” На устройстве запускается код, который: • инициализирует PRNG на основе seed; • случайным образом выбирает, что рисовать (дуги, текст, фигуры, градиенты, эмодзи); • применяет трансформации и тени; • повторяет процесс N раз. Каждое устройство генерирует одинаковую последовательность фигур, но рисует их по-разному, потому что: • GPU разные, • слои раундов отрисовки склеиваются по-разному на устройствах, • алгоритмы сглаживания разные, • рендеринг шрифтов отличается, • округление плавающей запятой работает по-своему.
Клиент отправляет хеш результата В конце canvas вычисляется хэш, это не fingerprint, а результат теста рендеринга.
Сервер сравнивает результат с профилем девайса Сервер не сравнивает хеш по равенству. Это невозможно — ведь seed каждый раз новый. Он сравнивает куда попадает хеш по признакам (в кластер iPhone Safari, в кластер Android Chrome, в кластер Chrome Desktop).
Антифрод-система знает как должна выглядеть картинка для каждого класса устройств при данном seed, опираясь на большое количество заранее собранных, эталонных результатов отрисовки. Сервер анализирует хеш не напрямую, а косвенно.
Сервер, зная seed, порядок фигур, знает ожидаемый результат. Сервер сравнивает фактический хеш с кластером ожидаемых хешей для конкретного стека (браузер+ОС+GPU). Если хеш не соответствует кластеру, то антифрод-система делает соответствующие выводы.
Любая попытка вмешаться в Canvas делает вывод аномальным. Плагины вроде CanvasBlocker добавляют, равномерный, некоррелированный, не похожий на физический рендер GPU псевдослучайный шум, который значительно меняет хэш от результата отрисовки. В эмуляторах gamma-корректор, субпиксельное сглаживание и артефакты в градиентах отличаются от реальных GPU.
На странице капчи сайт Яндекс использует 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.