Фингерпринт CPU использует navigator.hardwareConcurrency — единственное JavaScript-свойство, раскрывающее количество логических ядер процессора в браузере. В сочетании с другими аппаратными сигналами количество ядер CPU помогает трекерам создать стабильный идентификатор устройства, сохраняющийся при удалении cookies, в режиме инкогнито и при смене VPN. Проверьте, что раскрывает ваш браузер, на whatsmy.fyi.
TL;DR
navigator.hardwareConcurrency — стандартный Web API, возвращающий количество логических ядер CPU, которые браузер может использовать. Скрипты fingerprinting собирают это значение — вместе с выводом canvas, данными рендерера WebGL, разрешением экрана и часовым поясом — для создания стабильного отпечатка устройства без cookies. Наиболее эффективная защита — Brave Browser (рандомизирует значение) и Firefox с включённым privacy.resistFingerprinting(фиксирует его на 2).
Что такое фингерпринт CPU?
Фингерпринт CPU — использование данных о процессоре, раскрываемых через API браузера, для уникальной идентификации устройства. Основной сигнал — navigator.hardwareConcurrency, свойство только для чтения, возвращающее количество логических процессоров, доступных браузеру. Оно было разработано для оптимизации параллельных Web Workers. Скрипты fingerprinting используют его как дескриптор аппаратного обеспечения.
Как работает фингерпринт CPU?
Шаг 1 — Считывание hardwareConcurrency
Простейшая форма фингерпринта CPU считывает количество логических ядер напрямую из объекта Navigator. Это значение доступно без запросов разрешений и одинаково в обычных и инкогнито-сессиях.
// Считывание логических ядер CPU, раскрываемых браузером
const logicalCores = navigator.hardwareConcurrency;
// → 8 на MacBook Pro M3 Pro
// → 4 на среднем Android-телефоне
// → 2 в Firefox с resistFingerprinting
// → случайное значение от 2 до 8 в Brave BrowserШаг 2 — Сочетание с другими сигналами
Само по себе количество ядер (например, 8) не является уникальным — миллионы устройств имеют одинаковое количество. Скрипты fingerprinting объединяют его с производителем GPU из WebGL, хешем пикселей canvas, разрешением экрана, часовым поясом, языком.
Шаг 3 — Идентификация CPU по временным характеристикам (продвинутый уровень)
Академические исследования CISPA Helmholtz Center показали, что JavaScript может идентифицировать микроархитектуру CPU — не только количество ядер — используя временные побочные каналы. С точностью 97,5% скрипты могут определить, является ли процессор Intel Core, AMD Ryzen, Apple M-серии или Qualcomm Snapdragon.
Насколько hardwareConcurrency влияет на уникальность отпечатка?
| Находка | Значение | Источник |
|---|---|---|
| Поддержка hardwareConcurrency браузерами | 95,51% | Can I Use |
| Точность идентификации производителя CPU через JS-таймер | 97,5% | Исследование CISPA, 2022 |
| Сообщаемое количество ядер в Firefox resistFingerprinting | Всегда 2 | Исходный код Firefox |
| Диапазон рандомизации Brave для hardwareConcurrency | 2 – min(реальное, 8) | Fingerprint.com |
Как защититься от фингерпринта CPU?
- Tor Browser (наиболее сильная защита): Tor нормализует
navigator.hardwareConcurrencyу всех пользователей. - Brave Browser (рекомендуется для ежедневного использования): Brave рандомизирует
hardwareConcurrencyдля каждого сайта и сессии. - Firefox с
privacy.resistFingerprinting: Заставляет браузер сообщатьhardwareConcurrencyкак 2 на всех устройствах. - VPN ограничения: VPN не влияет на значения JavaScript-среды браузера. Проверьте работу VPN на whatsmy.fyi.
Часто задаваемые вопросы
Что возвращает navigator.hardwareConcurrency?
Количество логических процессорных ядер, доступных браузеру — не физических ядер. CPU с 4 физическими ядрами и активным гиперпотоком сообщает 8 логических ядер. Свойство доступно только для чтения без разрешений пользователя.
Скрывает ли режим инкогнито количество ядер CPU?
Нет. navigator.hardwareConcurrency возвращает то же значение в окне инкогнито, что и в обычном. Только браузеры с активной рандомизацией отпечатков, такие как Brave или Tor Browser, ведут себя иначе.
Может ли подделка hardwareConcurrency полностью защитить меня?
Нет. Подделка значения API повышает порог для пассивного сбора отпечатков, но не защищает от идентификации CPU по временным характеристикам. Эффективная защита требует браузера, также ограничивающего API высокоточного таймера.
Связанные статьи
- Что такое отпечаток браузера? Как сайты отслеживают вас без cookies — полное руководство по всем сигналам отпечатков
- Что такое Canvas Fingerprinting? Как сайты отслеживают без cookies — как скрытые рендеры canvas создают уникальный идентификатор устройства
- Что такое WebGL fingerprinting? Как ваш GPU идентифицирует браузер — как 3D graphics API раскрывает производителя GPU и версию драйвера



