Ще не з нами?
Зареєструйтеся, щоб отримати доступ до всіх можливостей сайту.
Зареєструватися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.