Назад до блогу

Що таке Canvas-відбиток? Принцип роботи, перевірка та захист

Canvas-відбиток — одна з найпоширеніших технологій браузерного fingerprinting. Сайти використовують її для розпізнавання пристроїв і відстеження користувачів. У матеріалі пояснено принцип роботи, відмінності від інших відбитків, способи перевірки та захисту приватності.

Кожен клік під час перегляду вебсторінок, кожен рух миші, модель пристрою та версія операційної системи можуть бути об’єднані сайтом в унікальний ідентифікатор — браузерний відбиток. Серед багатьох технологій fingerprinting Canvas-відбиток є одним із найпоширеніших і найстабільніших. Користувач його не бачить, однак сайти вже давно застосовують цю технологію для розпізнавання відвідувачів.

Що таке Canvas?

Canvas — це графічний елемент HTML5, фактично порожнє полотно всередині вебсторінки. За допомогою JavaScript розробники можуть малювати на ньому графіку, текст і зображення, створювати діаграми, ігри, обробку зображень та багато інших візуальних ефектів. Canvas лежить в основі багатьох інтерактивних ефектів сучасних сайтів.

Як формується Canvas-відбиток?

Навіть якщо різні пристрої отримають завдання «намалювати однакове зображення», результат не буде повністю ідентичним. Причина в тому, що процес рендерингу залежить і від обладнання, і від програмного забезпечення:

  • Відеокарта та драйвери: Графіку обробляє GPU, а різні відеокарти й драйвери трохи по-різному виконують згладжування, градієнти та передавання кольорів;
  • Операційна система: Windows, macOS і Linux мають різні механізми рендерингу шрифтів і реалізації графічних інтерфейсів;
  • Браузер і рушій: Різні браузери дещо по-різному реалізують Canvas API;
  • Дисплей і налаштування кольору: Кольорове охоплення, gamma та інші параметри також можуть впливати на кінцевий результат.

Зазвичай сайт за допомогою скрипта змушує браузер відвідувача намалювати на Canvas однаковий вміст — найчастіше поєднання графіки й тексту. Потім вміст полотна перетворюється на дані зображення, з яких обчислюється hash. Оскільки результат рендерингу відрізняється між пристроями, цей hash стає відносно стабільним «відбитком пристрою».

Повний процес перетворення піксельних відмінностей рендерингу Canvas на hash-сигнал пристрою

Відмінності можуть бути дуже дрібними: однакове зображення на двох пристроях може відрізнятися лише кількома пікселями на згладжених краях, проте обчислені hash-значення можуть бути зовсім різними — цього достатньо для розрізнення пристроїв.

Для чого використовують Canvas-відбиток?

  • Ідентифікація та відстеження: Сайт може запам’ятати пристрій за Canvas-відбитком навіть без входу в обліковий запис і пов’язувати активність між сторінками, а інколи й між різними сайтами;
  • Антифрод і контроль ризиків: Платформи електронної комерції, платіжні сервіси та соцмережі можуть використовувати Canvas-відбиток як один із сигналів ризику для виявлення незвичної поведінки, наприклад масових реєстрацій або спільного використання акаунтів;
  • Рекламний таргетинг: Деякі рекламні мережі використовують його для побудови міжсайтових профілів поведінки.

Сам по собі Canvas-відбиток зазвичай не дає змоги встановити, «хто саме ви». Це лише один із багатьох сигналів. У поєднанні з IP-адресою, User-Agent, часовим поясом, шрифтами та іншою інформацією можливості розпізнавання суттєво зростають.

Відмінності між Canvas-, WebGL- і шрифтовим відбитками

Усі три належать до відбитків, що базуються на відмінностях рендерингу пристроїв, але походять із різних джерел:

  • Canvas-відбиток: Формується з відмінностей результатів 2D-рендерингу Canvas;
  • WebGL-відбиток: Формується з 3D-рендерингу. Сайт може зчитувати параметри відеокарти, наприклад виробника WebGL і рядок renderer, щоб розпізнати пристрій;
  • Шрифтовий відбиток: Визначає список установлених у системі шрифтів для висновків про операційну систему та пристрій.

Ці сигнали часто комбінують у «характеристики середовища пристрою» в системах контролю ризиків сайтів.

Як перевірити власний Canvas-відбиток?

Для перевірки можна скористатися публічними сервісами BrowserScan, PixelScan та іншими. Подібні інструменти легко знайти за запитом «browser fingerprint test». Зазвичай вони показують інформацію про Canvas, WebGL, шрифти, часовий пояс та інші параметри. Якщо результат повідомляє про наявність Canvas-відбитка або показує стабільний hash, це означає, що ваш пристрій може позначатися таким способом. Результати сторонніх тестових сайтів слід сприймати лише як довідкові — вони не є офіційним рішенням будь-якої платформи.

Як звичайному користувачеві захиститися?

Повністю усунути Canvas-відбиток складно, оскільки Canvas є нормальною функцією браузера. Проте можна зменшити рівень відстеження:

  • Використовуйте браузер із фокусом на приватності або ввімкніть режим приватності/суворого захисту від відстеження;
  • Установіть розширення проти fingerprinting, які блокують читання Canvas або додають шум;
  • Регулярно очищуйте Cookie та дані сайтів, щоб зменшити довгостроковий зв’язок між відбитком і активністю акаунта;
  • Оновлюйте систему та браузер, адже нові версії мають більше вбудованих обмежень проти fingerprint-відстеження.

Що робити, якщо потрібно керувати кількома бізнес-середовищами?

Для транскордонних операцій і керування кількома акаунтами питання виглядає інакше. Команда прагне не «приховати себе», а забезпечити кожному бізнес-акаунту стабільне й контрольоване середовище та зменшити ризик помилкових оцінок через взаємний вплив характеристик пристроїв.

PurpleMark дає змогу під час створення браузерного середовища налаштовувати параметри Canvas, WebGL, шрифтів та інших відбитків, щоб різні середовища демонстрували різні характеристики пристрою, а всередині кожного середовища параметри залишалися постійними. Це допомагає кожному магазину або акаунту підтримувати стабільний «профіль пристрою» в довгостроковій роботі замість змін при кожному відкритті. Важливо підкреслити: параметри відбитка є можливістю конфігурації середовища. Фактична відповідність бізнесу правилам усе одно залежить від дотримання політик платформ, які ви використовуєте — інструменти керування середовищем не можна й не слід використовувати для підміни особи або обходу правил платформи.

Поширені запитання

Чи може Canvas-відбиток однозначно ідентифікувати людину? Сам по собі — рідко. Зазвичай це один із комбінованих сигналів; разом з IP-адресою, системною інформацією та поведінковими даними його ефективність значно вища.

Чи допоможе вимкнення JavaScript від Canvas-fingerprinting? Це може заблокувати збір даних на більшості сайтів, але багато сайтів перестануть працювати належним чином. Браузери, орієнтовані на приватність, і розширення проти fingerprinting зазвичай є більш збалансованим рішенням.

Canvas-відбиток — це вірус? Ні. Це звичайна робота скриптів сайту, а не шкідливе програмне забезпечення. Проте технологія пов’язана з відстеженням і приватністю, тому викликає суперечки.

Якщо сервіс перевірки fingerprint показує незвичний результат, це означає проблему з пристроєм? Не обов’язково. Різні інструменти використовують різні алгоритми та довідкові бази, тому результати мають лише орієнтовний характер. Найважливішим є фактичний стан вашого акаунта на платформі, якою ви користуєтеся.