1. Что такое API в создании цифровых отпечатков браузера
В создании цифровых отпечатков браузера “API” означает набор интерфейсов JavaScript и результатов методов, которые могут быть уникально привязаны к разным браузерам, версиям, расширениям, ограничениям или даже особенностям работы операционной системы.
Примеры включают:
navigator.mediaDevicesnavigator.getBattery()window.RTCPeerConnectionCanvasRenderingContext2DWebGLRenderingContextAudioContext
Эти 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.
Рекомендуемое Чтение
