Hardware concurrency: тихий маркер, который связывает мобильные браузеры
Параметр navigator.hardwareConcurrency кажется безобидным: число логических потоков, которое браузер отдаёт на JavaScript. Но в мобильной среде он часто работает как устойчивый клей между сессиями, особенно когда остальной отпечаток маскируется. Анализируем энтропию параметров: один и тот же «железный» профиль повторяется на разных аккаунтах, а браузерное окружение передает больше данных, чем кажется.
На практике полезны такие наблюдения:
• значение редко живёт в вакууме — его связывают с памятью, размером экрана, таймингами и GPU-следом;
• необычное число потоков само по себе не идентифицирует, но резко сужает множество кандидатов;
• в мобильных браузерах расхождения между заявленным числом ядер и фактическим поведением могут выдавать эмуляцию или агрессивную подмену.
Слабое место здесь — не само число, а консистентность. Если hardwareConcurrency «подменён», но соседние API продолжают выдавать профиль реального устройства, возникает несостыковка. Разбираем сигнатуру на уровне syscall: любые попытки сгладить один параметр без согласования с остальными лишь повышают фингерпринт-стойкость цепочки.
Для защиты важны не точечные правки, а согласованный профиль: единая модель CPU, одинаковые тайминги, правдоподобный стек Web APIs и отсутствие редких комбинаций. Скрытность — это не отсутствие следов, это шум, сливающийся с фоном.
Fingerprint-кузница
@fingerprint_forge_ubt
Hardware concurrency: тихий маркер, который связывает мобильные браузеры
Этот пост опубликован в Telegram-канале Fingerprint-кузница. Подписаться можно по ссылке: @fingerprint_forge_ubt.