Відбиток браузера: що саме читають сайти

Поле за полем: які значення збирає вебсайт, від canvas і WebGL до аудіо, шрифтів, екрана й часового поясу, і чому узгоджена ідентичність краща за випадкову.
Відбиток браузера — це практика ідентифікації браузера за значеннями, які він повідомляє, а не за тим, що він зберігає. Cookie не потрібні. Браузер просто відповідає на питання, які може ставити будь-яка вебсторінка, і ці відповіді разом достатньо характерні, щоб упізнати його знову.
Які значення збираються
Більшість скриптів відбитків читають з одного й того самого невеликого набору поверхонь.
Очевидні
- User agent містить назву браузера, версію та платформу і йде з кожним запитом.
- Екран повідомляє ширину, висоту, глибину кольору, співвідношення пікселів і доступну робочу область.
- Мова й часовий пояс охоплюють локаль, яку повідомляє браузер, і зміщення, яке він обчислює.
- Підказки про обладнання дають повідомлену кількість процесорів і, в деяких браузерів, приблизний обсяг пам’яті.
Рендерингові
Саме ці значення люди мають на увазі, кажучи про відбитки, бо вони непрямі. Сторінка просить браузер щось намалювати, а потім зчитує, що саме було намальовано.
- Робота з canvas малює текст і фігури на позаекранному canvas і хешує їх. Результат залежить від графічного стека, шрифтів і згладжування.
- WebGL розкриває рядки виробника й рендерера графічного адаптера, а також хеш відрендереної сцени.
- Аудіо пропускає осцилятор через граф обробки звуку і хешує вихід. Поведінка чисел з плаваючою комою трохи різниться між стеками.
- Визначення шрифтів вимірює текст у шрифтах-кандидатах і виводить, які встановлені, за тим, які виміри відрізняються.
Мережеві
- Адреса, з якої надходить запит, і що про неї каже база геолокації.
- WebRTC, який може розкрити адреси, що інакше підключення не показало б.
- Порядок і вміст полів рукостискань TLS та HTTP, які залежать від клієнта.
Чому випадкові значення в кожному полі — хибний інстинкт
Інтуїтивний захист — змінювати все при кожному візиті. Це дає зворотний ефект із двох причин.
Перша — суперечність. Випадкові поля не знають одне про одне. User agent, що заявляє Windows, поруч із рядком рендерера WebGL, який постачається лише на обладнанні Apple, — сильніший сигнал, ніж будь-яке з цих значень окремо. Справжні машини внутрішньо узгоджені; лише синтетичні суперечать самим собі.
Друга — нестабільність. Акаунт, що при кожному візиті повідомляє інший пристрій, описує те, чого не має жодна реальна людина. Узгодженість у часі — ось як виглядає звичайний користувач.
Що охоплює ідентичність профілю
| Поверхня | Чим забезпечується |
|---|---|
| User agent і платформа | Створюються разом, тому заявлена платформа збігається зі значеннями навколо |
| Екран і співвідношення пікселів | Зафіксовані для профілю, взяті з розмірів, які справді повідомляють реальні дисплеї |
| Часовий пояс і локаль | Задаються для профілю й звіряються з мережевим маршрутом, який він використовує |
| Canvas, WebGL і аудіо | Мають стабільну обробку на профіль, однакову при кожному відкритті |
| Шрифти | Набір на профіль, узгоджений із платформою, яку профіль заявляє |
| WebRTC | Обмежений, щоб не суперечити мережевому маршруту профілю |
Перевірка власної роботи
Відкрийте профіль і зайдіть на сторінку тестування відбитків. Кілька з них безкоштовно публікують значення, які читають. Варто перевірити дві речі, не ті, яких ви могли б очікувати:
- Чи узгоджуються значення між собою? Платформа, шрифти, графічні рядки й часовий пояс мають описувати одну правдоподібну машину.
- Чи такі вони, як минулого разу? Закрийте профіль, відкрийте знову, повторіть тест. Профіль, чиї значення змінюються між відкриттями, нестабільний, а стабільність — саме та властивість, що важить.
Оцінка рідкісності на сторінці тесту — найменш корисне число. Вона порівнює вас із відвідувачами тієї сторінки, а це переважно люди, що тестують антидетект-браузери.


