1. Что такое API в создании цифровых отпечатков браузера
В создании цифровых отпечатков браузера “API” означает набор интерфейсов JavaScript и результатов методов, которые могут быть уникально привязаны к разным браузерам, версиям, расширениям, ограничениям или даже особенностям работы операционной системы.
Примеры включают:
navigator.mediaDevices
navigator.getBattery()
window.RTCPeerConnection
CanvasRenderingContext2D
WebGLRenderingContext
AudioContext
Эти API раскрывают:
- Поддерживаемые возможности
- Доступные функции
- Их статус (включены или изменены)
- Детерминированные, но чувствительные возвращаемые значения — что делает их уязвимыми для идентификации браузера
Стратегии создания цифровых отпечатков на основе API часто заполняют пробел между обнаружением оборудования и программным окружением, особенно на таких сайтах, как fingerprintjs.com, крупных рекламных платформах или инструментах защиты от парсинга, использующих интроспекцию JS API для обнаружения автоматизации и подмены.
2. Как платформы обнаруживают отпечатки API
Каждый API раскрывает не только базовые наборы функций, но и результаты внутреннего выполнения или следы toString()
. Некоторые из самых популярных методов обнаружения отпечатков API включают:
- Обнаружение переопределения функций: Нативные функции в реальных браузерах, такие как
CanvasRenderingContext2D.prototype.fillText.toString()
, возвращают'[native code]'
. Инструменты, обнаруживающие переопределенные методы, могут помечать поддельные или замаскированные API. - Стереотипизация DOM API: Ответы API, такие как
navigator.userAgent
илиwindow.chrome
, могут проверяться на соответствие ожидаемым паттернам — даже на разных платформах или в разных контекстах. - Картирование доступности API: Платформы проверяют, какие API доступны, не являются null или возвращают кешированные/системные данные, чтобы построить «модель нормативного поведения браузера».
- Отражение поведения системы:
AudioContext.sampleRate
может отражать реальные возможности аудиовыхода.window.devicePixelRatio
может проверяться на соответствие с фальсификацией, связанной с дисплеем или областью просмотра.
- Сигнатуры экземпляров API: Каждый экземпляр API (например,
new AudioContext()
) может генерировать небольшую случайность или уникально структурированные контексты, которые используются для создания отпечатков.
Веб-сайты могут создавать высокоэффективные модели отпечатков, комбинируя результаты множественных вызовов API, чтобы усилить уверенность в идентификации пользователя, особенно в сценариях программатической рекламы, верификации KYC и безопасности SaaS.
3. Как FlashID маскирует отпечатки API
FlashID вмешивается на уровне поверхности API JavaScript, позволяя не только подменять значения, но и весь семантический дерево поведения API, раскрываемого браузером.
Маскировка API в FlashID включает:
- Симуляция нативного кода:
- Он заменяет переопределенные функции, такие как
fillText
илиgetCurrentPosition
, мостами, возвращающими'function fillText() { [native code] }'
, обманывая многие базовые системы обнаружения.
- Выборочный контроль доступа к API:
- FlashID позволяет настраивать для каждого профиля, какие API должны выглядеть поддерживаемыми, ограниченными, вызывающими ошибку или замаскированными с симулированным ответом.
- Согласованность API на уровне экземпляров:
- Каждый API — даже при восстановлении сессии — сохраняет поведение, чтобы обеспечить воспроизводимость между профилями.
- Подмена стека и ToString:
toStringTag
,Symbol.toStringTag
и источникиtarget
перезаписываются для поддержания согласованности.
- Согласованность событий и симуляция колбэков:
- FlashID гарантирует, что асинхронные и событийные шаблоны API выглядят правдоподобно, а не скриптово.
- Расхождение API между профилями:
- Каждый профиль ведет себя по-разному, даже если работает на одной машине. Это обеспечивает разнообразие API, что критически важно для безопасности мультиаккаунтинга.
- Слой перехватчика для современных API:
- Поддерживает перехват и маскировку новых API, таких как
MediaCapabilities
,DeviceInfo
и других.
FlashID не просто подменяет отдельные значения — он создает полностью правдоподобные модели идентичности браузера для каждой активной сессии, помогая пользователям оставаться функциональными и необнаруживаемыми на платформах, применяющих корреляцию отпечатков API.
Рекомендуемое Чтение