Какие параметры Fingerprint бывают?
Fingerprint — это набор данных, которые сайт или сервис собирает о браузере и устройстве посетителя, чтобы отличать одного пользователя от другого без использования Cookies. Он состоит из множества параметров, причем часть из них приходит вместе с HTTP-запросом, часть доступна через JavaScript, а часть получается из взаимодействия с графикой и звуком.
Вот какие типы данных чаще всего входят в состав Fingerprint.
Сюда относятся заголовки HTTP и сетевые признаки, которые сервер получает «по умолчанию»: User Agent, Accept, Accept-Language, Accept-Encoding, наличие и содержимое Cookies, IP-адрес. Эти поля дают базовую информацию о браузере и системе.
При установке HTTPS-соединения клиент посылает ClientHello с набором поддерживаемых шифров, расширений и прочих опций. Методы вроде JA3 превращают эти поля в хеш и используют его как сетевой отпечаток клиента. TLS-отпечатки особенно полезны на уровне сети, они видны еще до отправки HTTP и работают независимо от Cookies.
JavaScript предоставляет множество «непрямых» сигналов: navigator.userAgent, navigator.platform, navigator.languages, screen.width/height, screen.colorDepth, timezone offset, наличие Сookies, поддержка WebGL, аппаратное число ядер (hardwareConcurrency), объем памяти устройства (deviceMemory) и другое. Коммерческие библиотеки по сбору отпечатков опрашивают в первую очередь именно эти свойства.
HTML5 Canvas и WebGL дают способ «отрисовать» графику и посмотреть, какие пиксели вернет рендер. Различия в отрисовке возникают из-за ОС, драйверов, GPU, версий шрифтов и даже небольших отличий аппаратного исполнения. Именно это делает Canvas/WebGL мощным дополнением к стандартным параметрам.
Web Audio API позволяет генерировать сигналы и измерять их обработку аудиостеком браузера. Небольшие вариации в рендеринге звука зависят от звуковой подсистемы и могут быть использованы как дополнительный признак. Аудио-векторы не всегда настолько разнообразны, как графические, но они хорошо дополняют другие параметры.
Перечень установленных системных шрифтов и доступные плагины помогают отличать машины. Шрифты особенно информативны: их количество и набор сильно зависят от ОС и установленных приложений. Кроме того, обнаруживаются типы MIME, зарегистрированные типы файлов и прочее.
Сенсоры и аппаратные особенности
Наличие тач-экрана, число сенсорных точек, ориентация экрана, уровень заряда батареи (если API доступен), данные о подключенных устройствах, все это добавляет признаков к отпечатку. Некоторые из этих параметров динамичны, но в комбинации дают дополнительную информацию.
Через WebRTC, ICE-запросы можно получить локальные IP-адреса устройства в некоторых конфигурациях. Также собирают тайминги рендеринга и выполнения JavaScript — профили производительности помогают отличать разные аппаратные комбинации.
Как эти параметры комбинируют и зачем это делается
Отдельный параметр редко уникален. Отпечаток — это вектор: многие слабые признаки в сумме дают высокую уникальность. Коммерческие и исследовательские решения используют машинное обучение и эвристику, чтобы сочетать сотни полей в один идентификатор. Для безопасности отпечатки применяют в борьбе с мошенничеством, для риск-менеджмента и для маркетинга.
С полным списком параметров профиля вы можете ознакомиться в нашем браузере 0DETECT при создании профиля с главной страницы дашборда