Ранние IPv6-адреса содержали MAC-адрес сетевой карты, из-за чего устройство можно отследить в разных сетях. Разбираем, как это исправили privacy extensions.
В раннюю схему назначения IPv6-адресов был встроен изъян приватности прямо на уровне стандарта: адрес устройства включал в себя MAC-адрес его сетевой карты — значение, которое никогда не меняется. Это означало, что последние 64 бита вашего IPv6-адреса оставались одинаковыми везде, где бы вы ни подключались — дома, в кофейне, в аэропорту, — так что любой сайт и любой сетевой оператор, с которыми вы имели дело, могли узнать ваше устройство снова, без единого cookie-файла. Privacy extensions создавались именно для того, чтобы закрыть эту брешь, заменив постоянный идентификатор на такой, который меняется со временем.
Ключевые выводы
- Изначальная автонастройка адреса без состояния (SLAAC) формировала последние 64 бита IPv6-адреса из MAC-адреса сетевой карты по формату «модифицированный EUI-64», определённому в RFC 4291 — глобально уникальному значению, которое никогда не меняется.
- Постоянный идентификатор интерфейса позволяет повторно опознавать устройство в каждой сети, к которой оно подключается, даже без cookie-файлов — потому что один и тот же 64-битный суффикс следует за оборудованием повсюду.
- Privacy extensions, описанные в RFC 8981, генерируют случайные временные адреса, которые меняются по расписанию и используются для исходящих соединений вместо адреса, выведенного из MAC.
- Современные системы закрыли и вторую половину проблемы: RFC 8064 прямо требует не встраивать постоянный канальный адрес в идентификатор, поэтому сегодня даже неротируемый адрес формируется методом из RFC 7217 — он постоянен в пределах одной сети и полностью другой в любой другой.
- В большинстве современных потребительских операционных систем privacy extensions включены по умолчанию, но ротация скрывает только идентификатор интерфейса — ваш сетевой префикс IPv6 по-прежнему раскрывает провайдера и примерное местоположение, точно так же, как это делает IPv4-адрес.
- Вы можете точно увидеть, что раскрывает ваше текущее подключение, с помощью инструментов IP-аналитики и проверки отпечатка браузера от BrowserInsight.
Почему ранние IPv6-адреса выдавали вас с самого начала
IPv6-адрес имеет длину 128 бит и обычно делится на 64-битный сетевой префикс (назначается вашим провайдером или роутером и идентифицирует сеть, в которой вы находитесь) и 64-битный идентификатор интерфейса (идентифицирует конкретное устройство в этой сети). В исходной схеме SLAAC устройство автоматически формировало идентификатор интерфейса из MAC-адреса сетевой карты методом «модифицированный EUI-64», описанным в RFC 4291: 48-битный MAC-адрес делится пополам, между половинками вставляется фиксированное значение FFFE, и один бит инвертируется. Получившееся 64-битное значение целиком выводится из аппаратуры, встроенной в устройство, и никогда не переназначается.
Такая схема была практична для автонастройки без состояния — не требовался DHCP-сервер для раздачи адресов, — но у неё был неизбежный побочный эффект. Поскольку MAC-адреса глобально уникальны и постоянны, таким же оказывался и получаемый идентификатор интерфейса. Перенесите ноутбук из дома в библиотеку, а затем в отель — сетевой префикс в IPv6-адресе будет меняться с каждой новой сетью, но последние 64 бита останутся абсолютно теми же самыми каждый раз. Любой сайт, рекламная сеть или сетевой оператор, зафиксировавший ваш IPv6-адрес, мог сопоставить этот постоянный суффикс между совершенно разными сессиями и локациями, выстроив постоянный идентификатор, который работал как бессрочный трекинговый cookie-файл, на который вы никогда не соглашались.
Временные адреса: как privacy extensions меняют вашу идентичность
Privacy extensions, впервые описанные в RFC 4941 и обновлённые действующим стандартом RFC 8981, решают эту проблему, генерируя ещё один вид адреса в дополнение к постоянному. Вместо того чтобы выводить идентификатор интерфейса из MAC-адреса, операционная система генерирует его с помощью псевдослучайного алгоритма, инициализированного локально хранимым значением, а затем периодически отбрасывает его и генерирует новый.
У каждого временного адреса есть два срока жизни:
- Предпочитаемый срок жизни — RFC 8981 задаёт по умолчанию 1 день — по истечении которого адрес объявляется устаревшим: уже установленные соединения могут продолжать его использовать, но новые исходящие соединения переходят на более свежий адрес.
- Действительный срок жизни — RFC 8981 задаёт по умолчанию 2 дня — по истечении которого адрес выводится из эксплуатации полностью и больше не может использоваться.
Это значения по умолчанию из самого стандарта, и они настраиваются. В более раннем RFC 4941 действительный срок жизни по умолчанию составлял целую неделю, и часть реализаций до сих пор использует это большее значение — поэтому временный адрес, который вы видели несколько дней назад, вполне может всё ещё числиться на интерфейсе. Для отслеживания важен именно предпочитаемый срок жизни: он определяет, как часто меняется тот адрес, который реально видит сайт.
Операционная система заранее генерирует новый временный адрес до истечения срока действия текущего, поэтому всегда есть свежий адрес, готовый принять исходящие соединения без перерыва. Парный постоянный адрес никуда не исчезает — он обычно остаётся активным для входящих соединений и локальных сетевых служб, — но при включённых privacy extensions именно меняющийся временный адрес используется как исходный для соединений, которые инициируете вы, а это как раз то место, где и жил риск слежки.
Другая половина решения: постоянные адреса тоже перестали брать ваш MAC
Ротация временных адресов решила проблему исходящего трафика, но устройство, которое вдобавок настраивало постоянный адрес на основе MAC, всё равно предъявляло неизменный идентификатор в каждой сети, куда подключалось. Этот пробел закрыли два более поздних стандарта.
RFC 7217 описывает способ формировать постоянный идентификатор интерфейса из секретного ключа устройства, смешанного с префиксом сети. Полученный адрес постоянен внутри конкретной сети — сервисы, которым нужен предсказуемый адрес, продолжают работать, — но в любой другой сети он совершенно иной, что и разрывает межсетевую корреляцию, из-за которой схема EUI-64 стала каналом слежки. RFC 8064 затем сделал этот подход общей рекомендацией: узлы «SHOULD NOT» («не должны») использовать схемы генерации IPv6-адресов, встраивающие постоянный канальный адрес в идентификатор интерфейса, а методом по умолчанию для постоянных адресов должен быть RFC 7217. Ради этого документ обновляет RFC 4291 и более десятка других спецификаций.
На практике это означает, что на современной ОС вы обычно видите на интерфейсе два адреса, и ни один из них не выведен из MAC: один постоянный для конкретной сети и один ротируемый временный. Privacy extensions и RFC 7217 дополняют друг друга: первое не даёт связать вас между сессиями, второе — между сетями.
Как проверить, включены ли privacy extensions на вашем устройстве
Privacy extensions поставляются включёнными по умолчанию в большинстве современных потребительских операционных систем: Windows, macOS, iOS и Android генерируют и предпочитают временные адреса «из коробки». По-настоящему по-разному ведёт себя Linux: в самом ядре use_tempaddr по умолчанию выключен, так что получите ли вы временные адреса, зависит от настроек сетевого менеджера или sysctl-умолчаний вашего дистрибутива. Серверные ОС и минимальные конфигурации Linux чаще оставляют функцию выключенной вовсе, поскольку серверу обычно нужен стабильный, предсказуемый адрес, а не меняющийся.
Самый прямой способ проверить — посмотреть на собственный адрес:
- В командной строке
ipconfig /all(Windows) илиip -6 addr show(Linux) выведет как «временный» адрес, так и «постоянный»/стабильный, если privacy extensions активны; macOS показывает похожий вывод черезifconfig. - В браузере инструмент IP-аналитики от BrowserInsight показывает IPv6-адрес, который сайт реально видит для вашего текущего подключения, — так вы можете подтвердить, какой именно адрес используется для исходящего трафика, не копаясь в сетевых настройках ОС.
Если вы видите только один IPv6-адрес и он выглядит выведенным из оборудования (в середине идентификатора интерфейса читается ff:fe), privacy extensions отключены, и это устройство предъявляет один и тот же отслеживаемый суффикс каждой сети, к которой подключается.
Обратное, однако, ничего не доказывает: адрес без ff:fe ещё не означает, что используются временные адреса. Благодаря RFC 7217 современный постоянный адрес тоже выглядит случайным. Различает их не вид, а поведение: постоянный адрес не меняется всё время, пока вы в этой сети, а временный заменяется по собственному расписанию.
Privacy extensions против VPN: что каждый из них реально скрывает
Легко предположить, что меняющийся IPv6-адрес делает то же самое, что VPN. Это не так, и разница важна. Privacy extensions рандомизируют только идентификатор интерфейса — привязанную к устройству половину адреса. Сетевой префикс — половина, назначенная вашим провайдером, — остаётся неизменным вне зависимости от того, как часто меняется идентификатор интерфейса, и одного этого префикса достаточно, чтобы геолокация по IP примерно определила вашего провайдера и регион — точно так же, как это сделал бы обычный IPv4-адрес. Ротация временных адресов мешает повторно опознать устройство по постоянному суффиксу между сессиями, но никак не скрывает, у какого провайдера и в каком примерно регионе вы находитесь.
VPN работает иначе: он заменяет весь ваш IP-адрес целиком, включая префикс, на адрес VPN-сервера, поэтому и сигнал местоположения, и любой привязанный к устройству суффикс исчезают за собственным адресом туннеля. Именно поэтому в статье о том, как сайты обнаруживают VPN и прокси, идентификаторы интерфейса вообще не фигурируют — обнаружение VPN нацелено на IP-адрес целиком, а не на тот аспект отслеживания устройства, который призваны закрыть privacy extensions. Если вы пользуетесь туннелем и хотите понять, что он на самом деле показывает наружу, проверка VPN/прокси от BrowserInsight сверяет видимый сайту IP с типовыми путями утечки, которые выдают настоящий адрес.
Сравнение: privacy extensions IPv6 против VPN
| Privacy extensions IPv6 | VPN | |
|---|---|---|
| Что скрывает | Привязанный к устройству идентификатор интерфейса (меняется) | Весь IP-адрес, включая сетевой префикс |
| Чего не скрывает | Провайдера и примерное местоположение (сетевой префикс остаётся неизменным) | Ничего по умолчанию — просто подставляет другой, столь же отслеживаемый адрес |
| Включено по умолчанию | Да, в большинстве потребительских ОС | Нет — требует установки и подключения клиента |
| От чего защищает | От повторного опознания устройства между сессиями по постоянному суффиксу адреса | От геолокации по IP, видимости провайдера, блокировок по IP |
| Ротация | Автоматическая, по расписанию (от часов до дней) | Ручная — меняется только при переподключении или смене сервера |
Эти два механизма дополняют друг друга, а не заменяют один другой: privacy extensions закрывают конкретный низкоуровневый канал слежки, о существовании которого большинство людей даже не подозревает, а VPN решает более широкий вопрос — что именно ваш IP раскрывает о том, кто вы и где находитесь.
Как проверить и уменьшить то, что вы раскрываете
- Убедитесь, что privacy extensions активны. Проверьте настройки сети ОС или вывод командной строки на наличие «временного» IPv6-адреса, отличного от выведенного из MAC; если функция отключена, включите её (в большинстве ОС она называется примерно «использовать временные адреса» в настройках сети/приватности).
- Посмотрите, что раскрывает ваше подключение прямо сейчас. Инструмент IP-аналитики от BrowserInsight показывает актуальный IPv6- (или IPv4-) адрес и сетевые данные, которые сайт увидел бы для вашей сессии прямо сейчас.
- Помните, что префикс всё равно виден. Если вас беспокоит именно раскрытие местоположения на уровне провайдера, а не повторное опознание устройства между сессиями, одних privacy extensions недостаточно — см. точность геолокации по IP, чтобы узнать, что раскрывает ваш сетевой префикс независимо от ротации.
- При необходимости скрыть и префикс — добавьте VPN. VPN и privacy extensions IPv6 решают разные задачи и прекрасно работают вместе.
Часто задаваемые вопросы
Заменяют ли privacy extensions IPv6 необходимость в VPN?
Нет. Privacy extensions меняют только привязанную к устройству часть вашего IPv6-адреса; сетевой префикс, назначенный провайдером, — часть, раскрывающая ваше примерное местоположение и провайдера, — остаётся неизменной. VPN заменяет весь адрес целиком, включая префикс.
Включены ли privacy extensions IPv6 по умолчанию?
На большинстве потребительских устройств и операционных систем — да: Windows, macOS, iOS и Android включают их «из коробки». С Linux всё менее однородно: в ядре функция по умолчанию выключена, так что всё решают настройки дистрибутива. Серверы и минимальные конфигурации Linux часто оставляют их отключёнными, поскольку для таких сценариев стабильный адрес удобнее.
Как часто меняется временный адрес?
По умолчанию RFC 8981 задаёт предпочитаемый срок жизни в 1 день и действительный — в 2 дня, то есть новый временный адрес обычно генерируется раз в сутки, а старый выводится из эксплуатации ещё примерно через сутки. Оба значения настраиваются, и часть реализаций до сих пор использует недельный действительный срок жизни из более раннего RFC 4941 — тогда отработавший адрес остаётся на интерфейсе заметно дольше.
В моём IPv6-адресе нет ff:fe — значит, privacy extensions включены?
Не обязательно. Начиная с RFC 8064, постоянный адрес устройство тоже формирует без участия MAC-адреса, методом из RFC 7217, поэтому он выглядит таким же случайным. Отсутствие ff:fe говорит лишь о том, что адрес не выведен по схеме EUI-64, но ничего не говорит о его ротации. Проверьте, есть ли рядом второй, временный адрес, или меняется ли со временем тот адрес, который вы предъявляете наружу.
Решает ли отключение IPv6 эту проблему полностью?
Отключение IPv6 убирает именно канал слежки через идентификатор интерфейса, но вас по-прежнему можно опознать по IPv4-адресу и другим сигналам отпечатка, которые раскрывает ваше подключение. Это не универсальное решение проблемы приватности, а лишь способ избежать одного конкретного механизма.
Заключение
Выведенный из MAC-адреса идентификатор интерфейса в ранней адресации IPv6 был тихим каналом слежки на уровне протокола, не имевшим никакого отношения к cookie-файлам или скриптам-детекторам отпечатка — он следовал за устройством в каждую сеть, к которой оно подключалось, просто потому, что так предписывал формат адреса. Privacy extensions закрывают именно эту брешь, автоматически меняя идентификатор, и сегодня они включены по умолчанию почти везде, где это имеет значение; RFC 8064 довёл дело до конца, убрав MAC-адрес и из постоянной половины. Чего они не делают — так это не скрывают вашего провайдера или примерное местоположение, поскольку эта информация живёт в сетевом префиксе, а не в идентификаторе интерфейса: чтобы разобраться с этим уровнем раскрытия, вам всё ещё нужно смотреть, что раскрывает ваш IP-адрес в целом.
Рекомендуем прочитать:


