Фингерпринт памяти: объём RAM браузер раскрывает сайтам
Браузер и устройство

Фингерпринт памяти: объём RAM браузер раскрывает сайтам

navigator.deviceMemory раскрывает приблизительный объём RAM устройства сайтам — этот сигнал используется в фингерпринтинге даже при заблокированных cookies.

7 мин чтения·

Фингерпринт памяти устройства использует свойство JavaScript navigator.deviceMemoryдля считывания приблизительного объёма RAM устройства и включения этого значения в уникальный отпечаток браузера — без cookies, без разрешений, без предупреждения. Посмотрите, что раскрывает ваш браузер, прямо сейчас на whatsmy.fyi.

TL;DR

navigator.deviceMemory возвращает RAM вашего устройства в гигабайтах, округлённую до ближайшей степени двойки: 0,25, 0,5, 1, 2, 4 или 8 ГБ. Это грубое значение вносит около 2–3 бит энтропии в отпечаток браузера. Firefox и Safari намеренно отказались реализовывать этот API. Только браузеры на основе Chromium раскрывают его.

Что такое фингерпринт памяти устройства?

Фингерпринт памяти устройства — техника отслеживания, считывающая свойство Navigator.deviceMemory — атрибут только для чтения, введённый в Chrome 63 в декабре 2017 года. Значение намеренно неточно: устройство с 6 ГБ RAM сообщает 8, а устройство с 3 ГБ сообщает 4, поскольку спецификация требует округления до ближайшей степени двойки. Это квантование было разработано для ограничения риска fingerprinting, но создаёт стабильный, последовательный сигнал.

API является частью более широкого семейства свойств раскрытия аппаратного обеспечения в браузере, вместе с navigator.hardwareConcurrency и navigator.platform. Вместе они строят аппаратный профиль, который Руководство W3C по fingerprinting явно классифицирует как вектор fingerprinting.

Как работает navigator.deviceMemory?

Шаг 1 — Считывание физической памяти

Браузер считывает физическую RAM устройства в байтах из операционной системы, затем округляет до ближайшей степени двойки. Устройство с 6 144 МБ (6 ГБ) округляется до 8 192 МБ (8 ГБ).

Шаг 2 — Перевод в гигабайты и ограничение

Округлённое значение в мегабайтах делится на 1 024 для получения значения в гигабайтах. Любой результат выше 8 ограничивается значением 8,0. Более новые версии Chrome расширили верхний предел до 32 для рабочих станций.

Шаг 4 — Доступно скриптам без разрешения

Любой JavaScript на странице может считать navigator.deviceMemory без запроса пользователя, без разрешений и без уведомления браузера. Сторонние аналитические и рекламные скрипты считывают его молча при каждой загрузке страницы.

// Считывание navigator.deviceMemory
// Возвращает: 0.25 | 0.5 | 1 | 2 | 4 | 8 (или undefined в Firefox/Safari)

const ram = navigator.deviceMemory;
console.log(ram); // например, 8 (на MacBook Pro с 16 ГБ)

// Отсутствие значения само является сигналом fingerprinting:
// undefined → браузер Firefox, Safari или Tor Browser (не Chromium)
if (ram === undefined) {
  console.log('Обнаружен не-Chromium браузер');
}

// Сервисы fingerprinting объединяют его с количеством ядер CPU
const hardwareProfile = {
  deviceMemory: navigator.deviceMemory,
  cpuCores: navigator.hardwareConcurrency,
  platform: navigator.platform,
};

Насколько фингерпринт памяти влияет на идентификацию?

СигналЗначение / НаходкаИсточник
Энтропия Шеннона (в изоляции)~2–3 битСпецификация W3C Device Memory
Стандартных значений-бакетов6 (0,25, 0,5, 1, 2, 4, 8 ГБ)Спецификация W3C Device Memory
Глобальная поддержка браузерами76,37% (все на базе Chromium)Can I Use, 2025
Поддержка Firefox / Safari0% — намеренно не реализованоMDN Web Docs
Некорректные значения в 7-дневной выборке трафика16 000+ событий отмечены как подделкаCastle.io, 2025

Кто использует фингерпринт памяти в реальной жизни?

Коммерческие платформы fingerprinting

FingerprintJS явно перечисляет deviceMemory как именованный источник сигнала (getDeviceMemory) в слое сбора данных, вместе с hardwareConcurrency и platform.

Отсутствие как сигнал

Когда navigator.deviceMemory возвращает undefined, скрипт fingerprinting немедленно узнаёт, что браузер не является Chromium — подтверждая Firefox, Safari или Tor Browser. Это различие «присутствует/отсутствует» само по себе имеет идентифицирующую ценность.

Законно ли это?

По GDPR fingerprinting браузера создаёт постоянный уникальный идентификатор и представляет собой обработку персональных данных. CNIL Франции прямо указал, что отслеживание на основе fingerprinting требует того же информированного согласия, что и отслеживание на основе cookies. По российскому Федеральному закону № 152-ФЗ «О персональных данных» подобные идентификаторы также могут считаться персональными данными.

Как защититься?

  • Tor Browser (наиболее сильная защита): Firefox-основа — API navigator.deviceMemory не реализован, возвращает undefined.
  • Firefox (рекомендуется для ежедневного использования): Firefox не реализует navigator.deviceMemory. Включение privacy.resistFingerprinting дополнительно нормализует размер экрана, часовой пояс и метрики шрифтов.
  • Brave Browser: Реализует API, но применяет рандомизацию Farbling — значение deviceMemory отличается между сайтами и сессиями.
  • Safari: Как и Firefox, отказался реализовывать API. navigator.deviceMemory возвращает undefined.
  • Ограничения VPN: VPN не влияет на navigator.deviceMemory. Проверьте, правильно ли маскируется IP-адрес, на whatsmy.fyi.

Часто задаваемые вопросы

Работает ли navigator.deviceMemory в режиме инкогнито?

Да. Режим инкогнито не меняет RAM или то, как Chrome сообщает о ней. navigator.deviceMemory возвращает то же значение в окне инкогнито.

Почему Firefox и Safari отказались реализовывать navigator.deviceMemory?

Обе команды пришли к выводу, что затраты на fingerprinting перевешивают удобство для разработчиков. В итоге 76% глобального браузерного трафика раскрывает значение, тогда как пользователи Firefox и Safari (~24%) — нет.

Связанные статьи

Проверьте свой IP-адрес, местоположение и оценку конфиденциальности — мгновенно.

Без логов. Без слежки. Без внешних API.

Запустить проверку →

Похожие статьи

Фингерпринт памяти: объём RAM браузер раскрывает сайтам | whatsmy.fyi