Статті й порівняння

Відбитки canvas, WebGL і аудіо: як вони працюють

Більшість сигналів відбитка - це значення, які браузер просто повідомляє. Відбитки рендерингу інші: сайт просить пристрій намалювати зображення або обробити звук, а потім дивиться на результат. Дрібні відмінності заліза й програм роблять цей результат напрочуд характерним.

Перевірте свій браузер просто зараз

Перевіряю браузер…

Відбиток canvas

Скрипт малює текст, фігури й градієнти на прихованому елементі canvas, зчитує пікселі й рахує з них хеш. На точні пікселі впливають шрифти, згладжування, драйвер відеокарти й операційна система. Хеш стабільний на одному пристрої й відрізняється на багатьох інших, тож один виклик дає багато ідентифікаційної інформації.

Відбиток WebGL

WebGL розкриває два типи даних. По-перше, параметри: виробника й модель відеокарти через рядок unmasked renderer, підтримувані розширення, максимальні розміри текстур і формати точності. По-друге, рендеринг: малювання 3D-сцени й хеш пікселів, як у canvas, але через графічний конвеєр.

Назва відеокарти - ще й сильний сигнал узгодженості. Відеокарти Apple бувають лише на пристроях Apple, а назви рендерера зі згадкою Direct3D - лише у Windows. User-Agent Windows із відеокартою Apple у справжньому браузері не трапляється.

WebGPU

Новіший API WebGPU теж описує графічний адаптер. Коли WebGL і WebGPU називають різні відеокарти, це може бути ноутбук із двома відеокартами або інструмент підробки, який змінив лише одну з них.

Аудіовідбиток

Сайт генерує тон осцилятором, пропускає його через аудіоланцюжок, наприклад компресор, повністю офлайн і беззвучно, і підсумовує отримані семпли. Відмінності в обробці звуку й обчисленнях із плаваючою комою між браузерами й платформами змінюють останні цифри результату.

Як працює захист

Інструменти приватності використовують один із трьох підходів:

Як помічають шум

Шум має слабке місце: справжній пристрій щоразу малює те саме зображення однаково. Якщо сторінка двічі малює ту саму картинку й отримує два різні результати, хтось додав шум. Інші методи порівнюють результат із відомими значеннями для заявленої відеокарти або перевіряють, чи не підмінив скрипт функції canvas.

Перевірка SpoofLens саме тому малює canvas і аудіо двічі. У Brave, Safari, Firefox із resistFingerprinting і Tor Browser вона позначає шум як захист приватності, бо ці браузери навмисно додають або змінюють такі дані. В інших браузерах шум canvas вважається суперечністю, а шум аудіо підозрілою ознакою.

Чи унікальні ці відбитки?

Менше, ніж здається. Пристрої однієї моделі з тією самою системою й версією браузера часто мають однакові хеші canvas і WebGL, тому iPhone так важко розрізнити. Відбитки рендерингу найкорисніші в поєднанні з іншими сигналами й для виявлення підробки, а не як окремий ідентифікатор.

Часті запитання

Чи можна заблокувати відбиток canvas?
Так. Tor Browser, Firefox із resistFingerprinting і Brave захищають від нього по-різному. Розширення теж можуть, але погано зроблене розширення може зробити браузер помітнішим, бо підміняє функції так, що це можна виявити.
Чому мій хеш canvas змінюється?
Оновлення браузера чи драйвера відеокарти, зміна масштабування екрана або функція приватності, що додає шум. Якщо він змінюється при кожному оновленні сторінки, додається шум.
SpoofLens зберігає мій хеш canvas?
Ні. Він обчислюється у вашому браузері, один раз надсилається для звірки й одразу відкидається.

Читайте також