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.