Почему ID на основе отпечатка браузера переживает очистку cookie, приватный режим и VPN — и какие сигналы делают его устойчивым.
Очистите cookie, откройте приватное окно, включите VPN — и многие сайты всё равно узнают вас. Это не баг. Постоянный visitor ID обычно вообще не хранится файлом на устройстве — это значение, которое пересчитывается заново при каждом визите на основе характеристик браузера и оборудования, поэтому удалять попросту нечего.
Ключевые выводы
- Постоянный visitor ID обычно выводится из стабильных сигналов устройства и браузера (canvas, WebGL, шрифты, оборудование), а не хранится в cookie — поэтому кнопке «очистить данные браузера» нечего удалять.
- Инкогнито и приватные окна стирают локальное хранилище, но не трогают отпечаток рендеринга, так что сайт всё равно узнаёт то же самое устройство.
- VPN меняет ваш IP-адрес, а не браузер или оборудование — отпечаток, на котором держится ID, вместе с ним не перемещается.
- Некоторые трекинг-скрипты намеренно дублируют ID сразу в cookie, localStorage, IndexedDB и кеш-хранилищах, так что удаление любой одной копии не сбрасывает его целиком — эта техника называется respawning.
- Свою устойчивость можно проверить самостоятельно: запустите проверку отпечатка до и после очистки данных, перехода в приватный режим или подключения VPN — и сравните ID.
Два принципиально разных вида «visitor ID»
Не все visitor ID устроены одинаково, и именно эта разница объясняет, почему очистка браузера иногда сбрасывает отслеживание, а иногда — нет.
ID на основе хранилища — это случайное значение, которое сервер генерирует один раз и записывает в cookie, localStorage или похожее клиентское хранилище. Он живёт ровно столько, сколько живёт это хранилище: удалите cookie — и ID исчезнет. Именно с этим типом борется большинство инструментов приватности, и именно поэтому совет «почистите cookie» когда-то был вполне действенным.
ID на основе отпечатка устроен иначе: вместо того чтобы записывать значение на устройство, сайт вычисляет хеш из того, что и так раскрывают браузер и оборудование — рендеринг canvas, строки рендерера WebGL, установленные шрифты, значения экрана и hardware-concurrency, особенности обработки звука и многое другое. Полный список сигналов и то, почему их комбинация делает большинство браузеров почти уникальными, — в нашем гиде по фингерпринтингу браузера. Поскольку ничего из этого не записывается в хранилище, «очистке данных браузера» на устройстве попросту нечего трогать. ID не хранится — он узнаётся заново при следующем визите по тем же исходным данным.
Коммерческие поставщики решений для идентификации и антифрода (visitorId от Fingerprint — хорошо известный пример такого подхода) опираются именно на это свойство: стабильный идентификатор продолжает совпадать для одного и того же устройства между сессиями именно потому, что он не лежит в cookie-корзине в ожидании, когда её опустошат.
Какие сигналы на самом деле переживают очистку
Не все входные данные отпечатка одинаково живучи. Полезное деление — на то, что можно переключить настройкой и то, что исходит от оборудования и драйверов:
| Сигнал | Переживает очистку cookie/хранилища? | Почему |
|---|---|---|
| Хеш Canvas и WebGL | Да | Выводится из рендеринга GPU/драйвера, а не из хранимых данных |
| Список установленных шрифтов | Да | Поступает от ОС, а не из хранилища браузера |
| Аудиоотпечаток | Да | Выводится из обработки сигнала аудиостеком |
| Hardware concurrency, параметры экрана | Да | Считываются вживую с устройства каждый раз |
| Cookie, localStorage, IndexedDB | Нет (по умолчанию) | Явно стираются кнопкой «очистить данные браузера» |
| Суперкуки на основе кеша | Часто — если не очищен и кеш тоже | Опирается на поведение кеширования, а не на storage API, на которые нацелена кнопка «очистить данные» |
Именно сигналы рендеринга и оборудования делают ID на основе отпечатка постоянным, поскольку они пересчитываются с самого устройства, а не считываются заново из файла. По этой же причине от них труднее всего защититься — «удалить» особенности рендеринга своего GPU так же, как cookie, не получится.
Суперкуки: как намеренно сделать ID на основе хранилища постоянным
Некоторые трекинг-скрипты идут дальше и намеренно противодействуют очистке. Техника — часто называемая respawning («возрождение») — записывает один и тот же ID сразу в несколько независимых хранилищ: cookie, localStorage, IndexedDB и даже в механику HTTP-кеширования вроде значений ETag, которые сервер может «отражать» обратно, незаметно подтверждая, что клиент уже был здесь раньше. Если вы очистили cookie, но не тронули кеш, скрипт считывает уцелевшую копию и переписывает её обратно в только что очищенные хранилища.
evercookie — известный proof-of-concept исследователя безопасности Сэми Камкара — демонстрирует эту идею, избыточно сохраняя идентификатор во всех доступных ему механизмах хранения браузера, специально для того, чтобы очистка любого одного из них оставляла ID восстановимым из остальных. Это полезный ориентир, чтобы понять, почему одной лишь «очистки cookie» никогда не было достаточно для полной защиты — даже до того, как фингерпринтинг вообще сделал хранение необязательным.
Браузеры ответили механизмами, удаляющими все хранимые сайтом данные одним действием — см. заголовок MDN Clear-Site-Data, который позволяет сайту (или настройке браузера, ориентированной на приватность) дать команду разом стереть cookie, кеш и хранилище для этого источника, закрывая лазейку, которой пользуется respawning. Однако для ID на основе отпечатка, описанного выше, это ничего не даёт — «данных сайта» для очистки просто нет, если идентификатор изначально нигде не хранился.
Почему инкогнито его не сбрасывает
Приватные режимы браузера решают локальную задачу: не оставить следа на этом устройстве после закрытия окна. Они изолируют cookie и хранилище в одноразовый контейнер, который уничтожается при закрытии, — именно поэтому ID на основе хранилища в свежем приватном окне сбрасывается.
Но ваш рендеринг canvas, строка рендерера WebGL, список шрифтов и характеристики оборудования не меняются от того, что вы открыли приватную вкладку, — они поступают от того же GPU, той же ОС и того же установленного софта в обоих случаях. Сайт, полагающийся на ID на основе отпечатка, видит в инкогнито те же самые сигналы, что и в обычном окне, и может связать обе сессии как одного и того же посетителя. Некоторые сайты идут ещё дальше и активно определяют сам факт, что вы находитесь в приватном режиме, — обычно через особенности API квоты хранилища; о механике читайте в статье как сайты обнаруживают режим инкогнито и приватный просмотр.
Почему VPN его тоже не сбрасывает
VPN работает исключительно на сетевом уровне: он меняет IP-адрес, который видит сервер, и, как правило, видимое географическое местоположение. Это по-настоящему полезно против отслеживания по IP и геолокации, но никак не влияет на то, что браузер или устройство сообщают о себе. Хеш canvas, рендерер WebGL, шрифты и параметры экрана проходят через VPN-туннель абсолютно без изменений, потому что VPN вообще не затрагивает процесс браузера, который их формирует.
Так что смена сервера или провайдера не даёт вам «новый» ID на основе отпечатка — только новый IP, привязанный к тем же самым сигналам устройства. Более того, IP, скачущий между странами каждые несколько минут при неизменном остальном отпечатке, сам по себе — паттерн, который некоторые антифрод-системы помечают как подозрительный.
Компромисс с приватностью
Постоянные visitor ID не являются чисто враждебными: те же свойства, что мешают их очистить, делают их полезными для предотвращения мошенничества и злоупотреблений аккаунтами, когда сервису нужно узнать возвращающееся устройство, даже если оно лжёт насчёт своих cookie. Компромисс в том, что тот же самый механизм, направленный на обычного посетителя, а не на мошенника, превращается в сквозное межсессионное отслеживание, которое обычные средства приватности — очистка cookie, инкогнито, VPN — не в силах затронуть.
Эта асимметрия объясняет, почему «я почистил историю» — слабое доказательство «чистого старта», и почему по-настоящему значимая защита — та, что меняет сами сигналы, а не хранилище, куда они записываются: браузер с единообразным отпечатком вроде Tor или рандомизирующий вроде Brave. Оба подхода подробнее разобраны в нашем гиде по фингерпринтингу браузера; стоит присмотреться и к расширениям — неосторожное расширение может само добавить свою поверхность для отслеживания, см. риски приватности браузерных расширений, прежде чем ставить что-то новое.
Как проверить собственную устойчивость
Быстрее всего понять, действительно ли ваша настройка сопротивляется постоянным ID, — сравнить её саму с собой:
- Запустите проверку отпечатка от BrowserInsight в обычном браузере и запишите значения canvas/WebGL/аудио и общую оценку анонимности.
- Очистите все данные сайта, затем перезапустите проверку. Если те же самые хеш-значения появятся снова — значит, они изначально нигде не хранились, а были пересчитаны с вашего устройства.
- Повторите в приватном/инкогнито-окне, а затем ещё раз с подключённым VPN. Если значения по-прежнему совпадают с первым запуском, значит, базовый отпечаток — и любой построенный на нём ID — не изменился.
Поскольку всё выполняется на стороне клиента прямо в вашем браузере, ничего из этих данных за время теста не покидает ваше устройство.
Часто задаваемые вопросы
Удаляет ли очистка cookie visitor ID на основе отпечатка?
Нет. ID на основе отпечатка нигде не хранится на вашем устройстве — он заново вычисляется из характеристик браузера и оборудования при каждом визите. Очистке cookie, кеша или данных сайта попросту нечего удалять.
Может ли VPN дать мне новый visitor ID?
Нет. VPN меняет ваш IP-адрес, а не браузер или устройство. ID на основе отпечатка строится из сигналов рендеринга, шрифтов и оборудования, которые проходят через VPN-туннель без изменений.
Бесполезен ли режим инкогнито против фингерпринтинга?
Не бесполезен, но ограничен. Он надёжно очищает локальные ID на основе хранилища при закрытии окна, но не меняет сигналы рендеринга и оборудования, на которых держится ID на основе отпечатка, поэтому они по-прежнему могут связать сессию в инкогнито с вашей обычной.
Что на самом деле останавливает постоянный visitor ID?
Изменение исходных сигналов, а не хранилища. Браузер, который стандартизирует свой отпечаток (как Tor) или рандомизирует его для каждой сессии (как Brave), убирает стабильные входные данные, от которых зависит ID. Одна лишь очистка cookie этого не делает.
Заключение
Постоянный visitor ID, переживающий очистку cookie, режим инкогнито и VPN, — это не обход ваших средств защиты приватности, а нечто, попросту построенное на другом уровне, до которого эти средства не дотягиваются. ID на основе хранилища живут в cookie и реагируют на «очистить данные браузера»; ID на основе отпечатка живут в характеристиках рендеринга и оборудования вашего устройства и пересчитываются при каждом визите. Понимание того, с каким именно типом вы имеете дело, — первый шаг к защите от него, а проверка собственного отпечатка до и после каждой меры защиты — единственный способ узнать, сработала ли она на самом деле.
Рекомендуем прочитать:


