1. Что такое батарея в идентификации браузера
Battery Status API (navigator.getBattery()
) был создан для доступа веб-сайтов к информации о состоянии батареи системы, например:
- Статус зарядки (
isCharging
) - Уровень заряда (
level
) - Оставшееся время до разрядки (
dischargingTime
) - Оценочное время до полной зарядки (
chargingTime
)
Хотя это кажется безобидным, данная информация использовалась для идентификации браузера, так как комбинации параметров статуса батареи часто уникальны и постоянны, особенно при отслеживании между сеансами.
Более того, данные о батарее отражают поведение использования устройства (например, мобильные пользователи чаще заряжаются, а пользователи ноутбуков — реже), что делает идентификацию через Battery API мощным сигналом для систем, которые:
- Сравнивают поведение между сеансами
- Используют системы обнаружения мультиаккаунтинга
- Пытаются выявить виртуальные или headless-браузеры
2. Как платформы обнаруживают отпечатки батареи
Сайты и сервисы противодействия идентификации могут отслеживать:
Доступ к Battery Status API:
Проверкаnavigator.getBattery()
и анализ возвращаемого промиса, включая значенияlevel
иisCharging
.Подпись скриптов батареи:
Сбор несоответствий во времени между изменениями состояния батареи для обнаружения автоматизации или поддельных данных.Графики согласованности уровня заряда:
Продвинутые системы могут строить профили заряда батареи со временем. Внезапные сбросы, фальшивые данные или неестественные переходы могут стать признаками подозрительной активности.Количество событий зарядки/разрядки:
Сайты могут анализировать, как часто устройство переключается между полным зарядом и разрядкой при разных входах в систему.Сравнение с другими компонентами отпечатка:
Например, десктопный пользователь, утверждающий, что использует Chromebook, но всегда показывающий 100% заряд, или мобильный пользователь с несоответствующими паттернами зарядки, может быть помечен как подозрительный.
3. Как FlashID генерирует отпечатки батареи
Даже в средах, где возможно обнаружение батареи, FlashID изолирует и виртуализирует данные батареи для каждого профиля, предоставляя:
- Подделку отпечатка батареи в нескольких сеансах
- Реалистичные и динамические переходы зарядки/разрядки
- Логику, устойчивую к фроду, с интеллектуальными настройками по умолчанию
Симуляция отпечатка батареи в FlashID включает:
- Подмену батареи на уровне производителя:
- Фиксация статуса зарядки/разрядки
- Настраиваемый уровень заряда от 0 до 1.0 (например, 0.45, 0.68)
- Симулированные
chargingTime
иdischargingTime
- Изоляция API батареи для каждого профиля:
- Каждый профиль браузера хранит свои данные
.level
,.charging
и время - Нет утечки системных данных между профилями FlashID
- Кастомная логика изменения состояния:
- Позволяет пользователям контролировать, как меняется заряд со временем (например, постепенная разрядка каждые 5 минут для избежания обнаружения)
- Опционально возвращает
API not available
илиundefined
, имитируя отсутствие данных о батарее
- Рандомизация отпечатка батареи с границами:
- Уровни могут рандомизироваться в разумных пределах (например, 85%, 43%, 67%)
- Исключает резкие скачки зарядки, выдающие подделку
- Маскировка следов батареи в библиотеках обнаружения:
- Обходит фреймворки, которые используют сниппеты для выявления подделки свойств батареи
- Синхронизирует геолокацию + поведение батареи в реальных границах, чтобы сеансы выглядели естественно
Статус батареи — это тонкий, но постоянный параметр идентификации, часто упускаемый пользователями, но используемый платформами для проверки подлинности сеансов, особенно в системах идентификации, бот-фермах и онлайн-играх.
С FlashID данные батареи изолированы, замаскированы и правдоподобно подменены, сводя к минимуму риск обнаружения из-за нереалистичных скачков заряда.
Рекомендуемое Чтение