вернуться к обзору Больше статей

Может ли сайт увидеть ваш MAC-адрес? И что он использует вместо него

Загрузка...

В каждом треде про забаненный аккаунт рано или поздно появляется один и тот же совет: смените MAC-адрес, именно по нему вас и узнают. Звучит убедительно. MAC-адрес прошит в сетевую карту ещё на заводе, он глобально уникален и кажется ровно тем идентификатором, за который сайт ухватился бы первым.

Он же — единственный идентификатор, который сайту недоступен. Причина лежит ниже всего, чем сайт вообще управляет: ваш MAC-адрес никогда не уходит дальше вашего собственного роутера, и ничто внутри браузера его не выдаст. Виджет на этой странице всё равно пытается — и показывает, что сайт видит вместо него.

Если коротко: сайты не могут увидеть ваш MAC-адрес, а старые исключения давно закрыты. Это локальная метка доставки, которую переписывает каждый роутер начиная с вашего, и в браузерах нет API, который бы её раскрывал. VPN её не трогает, потому что этого адреса в вашем трафике никогда и не было. Когда платформа банит «ваше устройство», она цепляется за куки и хранилище, ваш IP-адрес и отпечаток браузера.

Ваш MAC-адрес сходит на первой же остановке

MAC-адрес отвечает на один-единственный вопрос: какой сетевой карте в этой сети предназначен этот кадр? Когда ваш ноутбук отправляет запрос сайту, он заворачивает пакет в кадр, где отправителем значится ваш MAC, а получателем — MAC вашего роутера. Роутер снимает этот кадр, сам пакет сохраняет и собирает для следующего отрезка пути новый кадр, уже со своим адресом в поле отправителя. Каждый роутер между вами и сервером проделывает то же самое ещё раз. К моменту, когда ваш запрос доходит до места, MAC отправителя в нём принадлежит тому роутеру, что стоит ближе всех к серверу. Ваш так и не выбрался из вашей гостиной.

Где останавливается ваш MAC-адрес
  1. Ваше устройство
    заворачивает запрос в кадр, адресованный роутеру
    src MAC 3C:22:FB:9A:41:D6 ваш
  2. Ваш роутер последняя остановка вашего MAC
    снимает кадр и собирает новый для следующего перехода
    src MAC 9C:53:22:71:0B:E4 роутера
  3. Ваш провайдер и каждый роутер после него
    каждый переход повторяет перезапись со своим собственным адресом
    src MAC роутера, передавшего последним
  4. не раскрывается
    Сайт
    получает ваш публичный IP-адрес и заголовки вашего запроса
    вашего MAC в пакете нет
MAC-адрес нужен для доставки внутри одного сегмента сети и переписывается на каждом переходе. Копия, которую пишет ваше устройство, никогда не проходит дальше вашего собственного роутера.

Может ли JavaScript узнать ваш MAC-адрес?

Нет, и с этой стороны всё закрыто так же наглухо, как со стороны сети. Браузер сообщит любому скрипту ваш язык и число ядер процессора через navigator, а WebGL сам выдаст модель вашего GPU — всё без единого запроса разрешения, — но ничего похожего на MAC в веб-платформе не существует нигде. На вопрос «как получить MAC-адрес из JavaScript» на Stack Overflow почти два десятилетия висит один и тот же ответ: никак, а спрашивающим советуют вместо этого сгенерировать собственный идентификатор.

Почему старые ответы на форумах говорят, что сайт может его прочитать

Поищите этот вопрос — и вы по-прежнему найдёте ответы, утверждающие, что сайт может его прочитать, если на его серверах стоят правильные «специальные скрипты». Эти ответы писались в другом браузере. В эпоху плагинов подписанный Java-апплет мог вызвать NetworkInterface.getHardwareAddress(), а элемент ActiveX в Internet Explorer — просто спросить у Windows. Весь этот класс дыр исчез: Chrome отказался от плагинов в 2015 году, Firefox — в 2017-м, а сам Internet Explorer отправили на пенсию в 2022-м. Ничто из того, что запускает современный браузер, до операционной системы так дотянуться уже не может.

Второй призрак — IPv6. Изначальная схема адресации строила ваш публичный IPv6-адрес отчасти из вашего MAC — формат под названием EUI-64, — а значит, аппаратный адрес буквально уезжал внутри каждого пакета. Дыру в приватности разглядели почти сразу: её закрыли расширения приватности (RFC 3041 в 2001 году, позднее доработанный в RFC 4941), и все основные операционные системы уже много лет по умолчанию используют случайные адреса. Закрыты и прямое чтение, и косвенная утечка; форумные посты, где сказано обратное, просто старше этих исправлений.

Кто видит ваш MAC-адрес (и почему ваш телефон им врёт)

В сети, к которой вы подключены, ваш MAC виден полностью. Его логирует ваш роутер, его видит каждое устройство в том же Wi-Fi — и тот, кто этим Wi-Fi управляет: работодатель, отель, аэропорт, кофейня. Когда страница входа в отеле узнаёт ваше устройство, это шлюз сети делится собственным знанием с собственным порталом, а не браузер что-то выдал. Вот это — настоящая поверхность слежки. Компании ритейл-аналитики когда-то отслеживали телефоны по торговым центрам по probe-запросам Wi-Fi, которые те рассылают в эфир, — поэтому производители ОС и зашевелились. iOS 14 в 2020 году начала выдавать каждой Wi-Fi-сети собственный «частный адрес», Android 10 сделал рандомизацию для каждой сети поведением по умолчанию, Windows умеет подставлять случайные аппаратные адреса для каждой сети, а macOS догнала остальных в Sequoia. Приложения потеряли доступ ещё раньше: начиная с iOS 7 приложение, запросившее MAC, получает в ответ 02:00:00:00:00:00, и Android 6 проделывает тот же трюк. Знаменитым исключением стал TikTok: газета The Wall Street Journal уличила его в том, что он как минимум 15 месяцев собирал MAC-адреса на Android через лазейку в обход блокировки Android 6. Но это приложение злоупотребляло доступом к ОС, а не сайт читал ваш браузер.

Всё это защищает вас от оператора сети, а не от сайтов. У сайтов этого адреса не было с самого начала.

Скрывает ли VPN ваш MAC-адрес?

Нет, и ему незачем. VPN шифрует ваш трафик и подменяет IP-адрес, который видит интернет. Ваш MAC живёт на отрезке между ноутбуком и роутером, ещё до всего этого, и дальше он не уходит ни с туннелем, ни без него. Роутер видит ваш MAC в любом случае; сайт не видит его ни в каком. Если VPN-провайдер рекламирует защиту MAC-адреса как функцию, он защищает вас от того, чего и так не происходило.

А вот то, что сайты действительно умеют выяснять о пользователях VPN, вполне реально — просто утечки живут в другом месте: часовой пояс, языки, владелец диапазона IP. Мы разобрали это в статье как сайты определяют ваш VPN.

За что на самом деле цепляется «бан устройства»

И тут мы подходим к причине, по которой большинство вообще спрашивает про MAC-адреса: платформа сказала, что забанено ваше устройство, а MAC — самое похожее на устройство из всего, чьё название вы знаете. Экран Snapchat SS06 «device banned», блокировка устройств в Roblox, форумный бан, переживающий новый аккаунт. Если сайт не видит ваш MAC, за что же он ухватился?

В вебе — за три вещи. Сохранённый идентификатор: какая-нибудь кука или значение в localStorage, записанное задолго до бана и переживающее выход из аккаунта. Ваш IP-адрес — или весь диапазон, к которому он относится. И отпечаток вашего браузера: canvas-хеш, список шрифтов, строка GPU, часовой пояс, сложенные в идентификатор, которому вовсе не нужно хранилище. У этих трёх очень разные сроки жизни — ровно поэтому платформы используют их все сразу. И поэтому же нет единого ответа на вопрос, сколько длится бан устройства: половина, завязанная на куки, умирает при очистке хранилища; половина с IP — когда сменится адрес; а отпечаток — только когда изменится сам браузер или железо под ним.

Шесть вещей, которые называют «вашим устройством»
  • MAC-адрес
    никогда не покидает вашу локальную сеть, и браузерного API не существует
    сайты не видят
  • Серийные номера железа (HWID)
    их читает античит уровня ядра внутри игр; веб-странице они недоступны
    сайты не видят
  • Идентификаторы устройства на телефоне
    выдаются нативным приложениям самой ОС; на них опирается бан в Snapchat
    сайты не видят
  • IP-адрес
    приходит с каждым запросом; меняется вместе с сетью или через VPN
    сайты это читают
  • Куки и хранилище сайта
    переживает выход из аккаунта; очищается в настройках браузера
    сайты это читают
  • Отпечаток браузера
    переживает очистку хранилища и смену IP
    сайты это читают
Веб-версия «бана устройства» складывается из трёх нижних строк. Три верхние принадлежат сетям, нативным приложениям и драйверам уровня ядра, поэтому смена MAC-адреса ещё никогда не снимала такой бан.

Нативные приложения и игры выступают в другой лиге, и эти две лиги постоянно путают. Приложение на телефоне получает от ОС платформенные идентификаторы устройства и аттестацию — ровно на это и опирается бан устройства в Snapchat. Игры на ПК с античитом уровня ядра — Vanguard, Easy Anti-Cheat, BattlEye — читают серийные номера материнской платы и дисков изнутри операционной системы: вот это настоящий бан по железу, тот самый HWID-бан. Веб-страница не умеет ничего из этого. Сайт, спросивший строку с моделью вашего GPU, уже упёрся в потолок того, что он вообще когда-либо узнает о вашем железе, — и даже это приходит как часть поверхности отпечатка, а не как серийный номер.

Что с этим делать на самом деле

  1. Перестаньте решать проблему MAC для сайтов. Решать нечего. Если сайт продолжает узнавать вас там, где, по-вашему, не должен, узнавание живёт в хранилище, IP или отпечатке, а полное сканирование браузера показывает, какие именно сигналы выдаёт ваш браузер.
  2. Включите рандомизацию MAC для сетей, которые вам не принадлежат. Это ровно та угроза, под которую функцию и делали, это ничего не стоит, а на современном телефоне она, скорее всего, уже включена.
  3. Если вы ведёте несколько аккаунтов по работе, то связывает их между собой именно отпечаток, а ручные заплатки создают те самые противоречия, за которыми охотятся системы детекта. Incogniton даёт каждому профилю собственный согласованный отпечаток и собственное хранилище — тот слой, где разделение действительно происходит, и никакой MAC-чейнджер для этого не нужен.

Допускает ли конкретная платформа что-либо из этого, определяют её правила — узнайте их прежде, чем действовать. Но что бы вы ни решили, решайте это про идентификаторы, которые сайт действительно может прочитать. Виджет выше перечисляет каждый из них, и строка про MAC-адрес — единственная, которую не заполнит ни одна страница.

Логотип Incogniton

Повысьте уровень своей приватности

Стрелка