Розшифровка MAC-адреси

Виробник за адресою, який реєстр IEEE її видав і чи це взагалі справжня апаратна адреса.

Що таке MAC-адреса і де вона закінчується

MAC-адреса — це 48-бітна позначка, зашита в мережевий інтерфейс: у радіомодуль Wi-Fi, ethernet-порт, чип Bluetooth. Вона існує, щоб пристрої на одному фізичному сегменті могли відрізняти одне одного, і це вся її робота. Можливих значень близько 281 трильйона — саме тому початковий задум був такий, щоб кожен виготовлений інтерфейс мав назавжди унікальну.

Найважливіше в ній — те, де вона закінчується: на першому ж маршрутизаторі. MAC-адреса потрібна, щоб перенести кадр через один канал; наступний маршрутизатор її зрізає й пише нову для наступного хопа. Вона не подорожує з вашим трафіком, її немає в пакетах, що доходять до сайту, і жоден сайт її прочитати не може. Якщо ви потрапили сюди тому, що десь стверджували протилежне, — те твердження хибне. Вашу MAC-адресу бачать лише пристрої вашої ж локальної мережі та обладнання провайдера на тому кінці лінії.

Звідси випливає й те, що ця сторінка не може прочитати вашу адресу. Усе тут працює з адресою, яку ввели ви, а пошук іде по локальній копії реєстрів IEEE — нікуди нічого не надсилається ані вами, ані нами.

Три реєстри й помилка, якої припускається майже кожен такий інструмент

Усі знають, що перші три байти позначають виробника. До 2014 року це було правдою, а тепер хибне достатньо часто, щоб це мало значення. IEEE продає блоки трьох розмірів:

MA-L — 24 біти, близько 16,7 млн адрес
Класичний «OUI». Таких блоків приблизно 37 тисяч, і тримають їх виробники, достатньо великі, щоб потребувати мільйонів адрес.
MA-M — 28 бітів, близько 1 млн адрес
Для середніх виробників. Шістнадцять таких вміщуються в один блок MA-L.
MA-S — 36 бітів, 4096 адрес
Для малих компаній, поодиноких виробів і OEM-партій. У один блок MA-L їх вміщується 4096.

Ось де пастка. Блоки MA-M і MA-S фізично лежать усередині блоків MA-L, зареєстрованих на саму IEEE Registration Authority. Тому інструмент, який дивиться лише на перші три байти адреси дрібного виробника, не помиляється помітно — він упевнено відповідає «IEEE Registration Authority» або назвою іншого адміністратора, і це виглядає точно як справжній результат. Правильний пошук перевіряє найдовший префікс першим: 36 бітів, потім 28, потім 24. Саме так робить ця сторінка, і саме тому MAC, що починається на 70:B3:D5 чи 00:50:C2, отримує тут назву реальної компанії, а деінде — знизування плечима: ці два блоки є чистим адмініструванням реєстру й містять тисячі окремих дрібних призначень.

Два біти, які відповідають на більшість питань

Два молодші біти найпершого байта несуть зміст, і прочитати їх можна взагалі без бази.

Біт 0 — окремий чи груповий
Нуль означає unicast: адреса одного інтерфейса. Одиниця означає multicast — групову адресу, яку слухає кілька пристроїв. Якщо ви знайшли адресу в дампі трафіку і жоден пошук виробника не спрацював, подивіться на цей біт, перш ніж вирішити, що щось зламано.
Біт 1 — універсальна чи локальна
Нуль означає, що адреса прийшла з реєстру IEEE й належить виробнику. Одиниця означає локально адміністровану: обрану програмно, ні за ким не зареєстровану й гарантовано відсутню в будь-якій базі виробників. Саме цей один біт відрізняє «ми не знайшли виробника» від «виробника не існує».

На практиці другий біт видно прямо в адресі. Якщо друга шістнадцяткова цифра — 2, 6, A або E, адреса локально адміністрована.

Рандомізовані адреси, які сьогодні є звичайним випадком

Два десятиліття пристрій постійно розголошував свою сталу апаратну адресу — зокрема й тоді, коли просто шукав мережі Wi-Fi. Це означало, що будь-яка крамниця, аеропорт чи перехожий із дешевим приймачем міг записувати той самий ідентифікатор щоразу, коли ви проходили повз. Тепер це працює інакше. Apple почала рандомізувати адресу для сканування мереж 2014 року, а найважливіша зміна сталася приблизно 2019–2020: Android 10 та iOS 14 почали генерувати окрему адресу для кожної мережі, до якої ви під'єднуєтесь, і те саме запропонувала Windows.

Тож коли людина шукає адресу, яку показує телефон у налаштуваннях Wi-Fi, і не отримує нічого — це система працює правильно. Адреса локально адміністрована, вигадана для однієї цієї мережі й часто періодично перегенеровується. Поза тією мережею вона не ідентифікує нічого, у чому й був увесь задум.

Практичні наслідки варто знати, бо вони людей дивують:

Що виробник справді каже — і чого не каже

Реєстр називає компанію, яка купила блок адрес. Це виробник мережевого чипа, а він часто не є виробником пристрою. Префікс Intel означає, що десь тут є карта Intel; а «десь тут» — це ноутбук будь-якої марки. Гірше: чималу частину світового заліза складають контрактні виробники, тож їхній префікс не каже рівно нічого ані про тип пристрою, ані про те, чий на ньому логотип.

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

Адреси, які не належать нікому

Частина адрес, які трапляються в дампі трафіку, означені протоколом, а не видані виробнику, — шукати для них виробника марно завжди:

FF:FF:FF:FF:FF:FF
Широкомовна — кожен пристрій сегмента. Саме так ARP узагалі щось знаходить.
01:00:5E:…
Багатоадресна IPv4. Молодші 23 біти скопійовані з групи IP-розсилки, до якої приєднуються.
33:33:…
Багатоадресна IPv6, зокрема виявлення сусідів — відповідник ARP для IPv6. У будь-якому дампі її стільки, що питають про неї постійно.
01:80:C2:00:00:00
Зарезервовано IEEE 802.1 для протоколів мостів, як-от spanning tree. Комутатори такі кадри споживають і ніколи не пересилають далі.

Від MAC до IPv6 і чому цифри змінюються

MAC-адресу можна розтягнути в 64-бітну другу половину адреси IPv6. Спосіб називається EUI-64, і в ньому два кроки, причому саме на другому всі плутаються: вставити FF:FE посередині і інвертувати біт universal/local. Через цю інверсію 00:1B:44:11:22:33 стає fe80::21b:44ff:fe11:2233, а не починається з 001b. Цифри справді змінилися, і все правильно.

Розуміти це варто ще й тому, що воно пояснює проблему приватності, яку відтоді полагодили. Побудована так адреса IPv6 містить апаратну адресу, тобто ходила б за ноутбуком у кожну мережу, до якої той під'єднується, — постійний ідентифікатор, видимий кожному сайту. Тому сучасні системи генерують натомість тимчасові випадкові ідентифікатори інтерфейса й ротують їх. Побачити, якими адресами користується ваше з'єднання, можна в тесті IPv6, а бік префіксів у тій самій арифметиці розбирає калькулятор підмереж.

Часті запитання

Чи може сайт побачити мою MAC-адресу?

Ні. MAC-адреса потрібна, щоб перенести кадр через один мережевий канал, і на першому ж маршрутизаторі її замінюють, — тож до сайту вона не доходить ніколи. Бачать її лише інші пристрої вашої мережі та обладнання провайдера на кінці вашої лінії. Ця сторінка теж її не читає: вона розбирає лише ту адресу, яку ви ввели самі.

Чому для MAC-адреси мого телефона не знаходиться виробник?

Бо вона майже напевно рандомізована, і це система працює як задумано. Android 10 та iOS 14 генерують окрему адресу для кожної мережі, до якої ви під'єднуєтесь, і те саме пропонує Windows. Такі адреси локально адміністровані — обрані програмно, ні за ким не зареєстровані й за визначенням відсутні в будь-якій базі виробників. Впізнати таку можна миттєво: якщо друга шістнадцяткова цифра 2, 6, A або E, адресу вигадали, а не видали.

Чи можна за MAC-адресою визначити тип пристрою?

Лише інколи й ніколи надійно. Реєстр називає виробника мережевого чипа, а не приладу, у якому той стоїть: префікс Intel означає, що десь є бездротова карта Intel, а це може бути ноутбук будь-якої марки. Чимало заліза до того ж складають контрактні виробники, чиї префікси не кажуть нічого. Там, де виробник однозначний — як виробник маршрутизаторів чи ігрових консолей, — ми показуємо категорію; там, де це було б вгадуванням, лишаємо порожньо.

Чому інші сервіси показують іншого виробника, ніж ви?

Майже завжди тому, що вони перевіряють лише перші три байти. IEEE видає блоки трьох розмірів — 24, 28 і 36 бітів, — і менші лежать усередині блоків, зареєстрованих на самих адміністраторів реєстру. Тому пошук за трьома байтами для адреси дрібного виробника повертає назву адміністратора, і це виглядає як справжня відповідь, хоч нею не є. Ми перевіряємо найдовший префікс першим, тож адреси всередині блоків на кшталт 70:B3:D5 чи 00:50:C2 отримують назву реальної компанії.

Чи є фільтрація за MAC-адресами корисним захистом?

Не дуже. Кожен кадр несе адресу відправника відкритим текстом, тож будь-хто в зоні дії може прочитати дозволену, а змінити власну — одна команда. Вона відсіює випадкових сусідів і не спиняє того, хто справді намагається. На практиці вона ще й стала незручною: пристрої, які ротують адресу, самі себе блокують, доки не вкажеш їм використовувати для цієї мережі справжню.

Що означає адреса, яка починається з 33:33 або 01:00:5E?

Це групові адреси, а не пристрої, тож виробник для них не знайдеться ніколи. 01:00:5E — багатоадресна IPv4, у якої молодші біти скопійовані з групи IP-розсилки. 33:33 — багатоадресна IPv6, зокрема виявлення сусідів, тобто відповідник ARP, — саме тому її так багато в будь-якому дампі трафіку. FF:FF:FF:FF:FF:FF — широкомовна, тобто всі пристрої сегмента.

Чому показана адреса IPv6 починається не з тих цифр, що моя MAC?

Бо побудова ідентифікатора інтерфейса з MAC має два кроки, і другий змінює цифру: посередині вставляють FF:FE, а біт universal/local інвертують. Тому 00:1B:44:11:22:33 дає fe80::21b:44ff:fe11:2233, а не щось із 001b на початку. Нічого не зламалося — інверсія є частиною специфікації.

Чи можна змінити свою MAC-адресу і чи щось від цього зламається?

Так, задати її вміє кожна поширена операційна система, а для Wi-Fi ваші пристрої, найімовірніше, уже це роблять. Двоє за чим варто стежити: виставте біт локального адміністрування, щоб не зіткнутися зі справжнім призначенням, і пам'ятайте, що все прив'язане до старої адреси — закріплення в DHCP, фільтри за MAC, частина порталів автентифікації та ліцензії, прив'язані до заліза, — перестане вас упізнавати, доки його не оновити.

Пов'язані перевірки