Фингерпринт хранилища: localStorage и cookies для слежки
Браузер и устройство

Фингерпринт хранилища: localStorage и cookies для слежки

Фингерпринт хранилища сочетает localStorage, sessionStorage, IndexedDB и cookies для создания идентификатора — включая поведение в режиме блокировки.

8 мин чтения·

Фингерпринт хранилища браузера — техника отслеживания, которая помещает постоянные идентификаторы в собственное хранилище браузера — localStorage, sessionStorage, IndexedDB и cookies — и затем считывает их при каждом повторном посещении. В отличие от аппаратного fingerprinting, хранилищный fingerprinting выживает при удалении cookies, распространяясь по нескольким механизмам хранения одновременно. Проверьте, что раскрывает ваш браузер, на whatsmy.fyi.

TL;DR

Фингерпринт хранилища браузера работает путём записи уникального идентификатора в localStorage, sessionStorage, IndexedDB и cookies одновременно. Когда вы удаляете один, трекер восстанавливает его из других. Техники вроде Evercookie расширяют это через 16+ векторов хранения, делая идентификатор практически невозможным для удаления без специализированных инструментов.

Что такое фингерпринт хранилища браузера?

Фингерпринт хранилища браузера — категория fingerprinting браузера, эксплуатирующая встроенные API хранилища браузера, а не аппаратные сигналы. Цель та же — уникально идентифицировать устройство между сессиями и сайтами — но механизм другой: трекеры записывают данные в собственное хранилище браузера и считывают их при последующих посещениях.

Что отличает хранилищный fingerprinting от простого трекинг-cookie — это избыточность. Традиционный cookie — единственный слот хранилища. Хранилищный fingerprinting записывает одинаковый идентификатор в дюжину различных механизмов хранения одновременно. Когда вы удаляете cookies, идентификатор выживает в localStorage. Когда вы удаляете localStorage — выживает в IndexedDB. Инструмент Cover Your Tracks EFF идентифицирует «воскрешение» из хранилища как одну из наиболее сложных для нейтрализации обычными пользователями техник.

Основные векторы хранения

  • localStorage: Хранит данные без истечения срока действия. Доступно JavaScript на том же домене. Не удаляется при закрытии вкладки или браузера.
  • sessionStorage: Очищается при закрытии вкладки, но само по себе не является надёжным для долгосрочного хранения — используется как часть многовекторного подхода.
  • IndexedDB: Структурированная база данных, доступная JavaScript. Может хранить большие объёмы структурированных данных. Clearance в разных браузерах непоследователен.
  • HTTP cookies: Классический вектор. Может устанавливаться сервером или JavaScript, может иметь длительный срок действия.
  • Cache API / Service Worker: Данные, кэшированные через API кэша, сохраняются независимо от очистки «истории браузера».
  • ETag / кэш браузера: Трекер сохраняет идентификатор в заголовке ETag HTTP-ответа. Следующий запрос к тому же ресурсу включает ETag в заголовке If-None-Match — сервер распознаёт значение.

Как работает хранилищный fingerprinting?

При первом посещении сайт генерирует случайный идентификатор (UUID или хеш) и записывает его в каждый доступный вектор хранения одновременно. При последующих посещениях скрипт запрашивает каждый вектор хранения. Если найдено совпадение — пользователь распознан. Если один вектор пуст (потому что пользователь очистил cookies), скрипт считывает из другого вектора и перезаписывает пустой.

Evercookie: крайний случай

В 2010 году Samy Kamkar опубликовал Evercookie — библиотеку, записывающую идентификатор в более чем 16 векторов хранения, включая PNG-файлы с данными в альфа-канале, данные RGB в CSS-цветах, историю браузера (через CSS :visited) и многое другое. Evercookie стал академическим доказательством концепции, показывающим, насколько сложно полностью стереть идентификатор хранилища.

Кто использует хранилищный fingerprinting?

Рекламные технологии и кросс-сессионное отслеживание

Рекламные сети используют хранилищный fingerprinting для поддержания идентификаторов устройств между очистками cookies. Это особенно ценно для частотного ограничения (контроля того, как часто конкретное устройство видит рекламу) и атрибуции конверсий.

Обнаружение мошенничества

Системы безопасности используют хранилищный fingerprinting для создания «якорных» идентификаторов устройств, которые сохраняются даже если пользователь сбрасывает куки. Если аккаунт регулярно очищает куки, но localStorage-идентификатор остаётся прежним, это указывает на добросовестного пользователя, а не злоумышленника.

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

Директива ЕС об электронной конфиденциальности (ePrivacy), статья 5(3), явно охватывает доступ к хранилищу на стороне терминала пользователя — включая localStorage и IndexedDB — и требует согласия. По GDPR хранилищные идентификаторы являются персональными данными, требующими законного основания. По российскому Федеральному закону № 152-ФЗ «О персональных данных» подобные технологии отслеживания также требуют соответствующей правовой основы.

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

  • Используйте разделение хранилища браузера: Современные браузеры (Safari, Firefox, Chrome с 2021 года) разделяют хранилище — каждое хранилище изолировано по домену верхнего уровня, делая межсайтовую корреляцию структурно невозможной.
  • Включите «Очистку при закрытии»: Firefox, Brave и Chrome (в настройках) могут очищать всё хранилище при закрытии браузера. Это устраняет долгосрочные векторы хранения.
  • Tor Browser: Tor очищает всё хранилище между сессиями и разделяет его по сайтам.
  • Блокировщики рекламы: Блокируют многие сторонние скрипты fingerprinting до их выполнения. Не защищают от первичного fingerprinting.
  • VPN ограничения: VPN не влияет на хранилище браузера. Проверьте состояние IP на whatsmy.fyi.

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

Что такое разделение хранилища?

Разделение хранилища означает, что localStorage, IndexedDB и cookies изолированы не только по домену, но и по сайту верхнего уровня, встраивающему их. Сторонний трекер на примере site-A.com не может считать localStorage, который он установил, когда встроен на site-B.com. Это нарушает основной механизм хранилищного fingerprinting.

Удаляет ли режим инкогнито хранилищный fingerprint?

Только временно. Данные сессии в режиме инкогнито очищаются при закрытии всех окон инкогнито. Но данные, записанные в нормальном режиме, сохраняются — и режим инкогнито может считывать данные из нормального хранилища в некоторых браузерах без разделения хранилища.

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

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

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

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

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

Фингерпринт хранилища: localStorage и cookies для слежки | whatsmy.fyi