Всичко, което искате да знаете за MAC адреса

Всичко, което искате да знаете за MAC адресаВсе знаят, че това са шест байта, обикновено представени в шестнадесетичен формат, присвоени на мрежовата карта от производителя, и на пръв поглед изглеждат случайни. Някои знаят, че първите три байта на адреса представляват идентификатора на производителя, а останалите три байта им се присвояват. Също така е известно, че можете да зададете произволен адрес. Много хора са чували и за "рандомизирани адреси" в Wi-Fi.

Нека разберем какво значи това.

MAC адресът (media access control address) е уникален идентификатор, назначен на мрежовия адаптер, използва се в мрежи, отговарящи на стандартите на IEEE 802, главно Ethernet, Wi-Fi и Bluetooth. Официално се нарича "идентификатор на тип EUI-48". От името е очевидно, че адресът има дължина 48 бита, т.е. 6 байта. Няма общоприет стандарт за записване на адреса (в противовес на IPv4 адреса, където октетите винаги се разделят с точки). Обикновено се записва като шест шестнадесетични числа, разделени с двоеточие: 00:AB:CD:EF:11:22, въпреки че някои производители на оборудване предпочитат записването в формат 00-AB-CD-EF-11-22 и дори 00ab.cdef.1122.

Исторически адресите са били записвани в PУЗ на чипсета на мрежовата карта без възможност за модификация без флаш-програматор, но в днешно време адресът може да бъде променен софтуерно, от операционната система. Може да се зададе ръчно MAC адрес на мрежовата карта в Linux и MacOS (винаги), Windows (почти винаги, ако драйверът позволява), Android (само при наличие на root); при iOS (без root) подобен трик не е възможен.

Структура на адреса

Адресът се състои от част, идентифицираща производителя, OUI, и идентификатор, присвоен от производителя. Назначението на идентификаторите OUI (Organizationally Unique Identifier) работи по организацията IEEE. Всъщност дължината му може да бъде не само 3 байта (24 бита), а и 28 или 36 бита, от които се формират блокове (MAC Address Block, MA) на адреси от тип Large (MA-L), Medium (MA-M) и Small (MA-S) съответно. Размерът на издадения блок, в такъв случай, ще бъде 24, 20, 12 бита или 16 млн., 1 млн., 4 хиляди адреса. В момента са разпределени около 38 хиляди блока, които можете да видите чрез многобройни онлайн инструменти, например при IEEE или Wireshark.

Кому принадлежат адресите

Непретенциозна обработка на публично достъпната база данни на изтеглянията IEEE предоставя доста информация. Например, някои организации са взели много OUI блокове за себе си. Ето нашите герои:

Доставчик
Брой блокове/записи
Брой адреси, млн.

Cisco Systems Inc
888
14208

Apple
772
12352

Samsung
636
10144

Huawei Technologies Co. Ltd
606
9696

Intel Corporation
375
5776

ARRIS Group Inc.
319
5104

Nokia Corporation
241
3856

Private
232
2704

Texas Instruments
212
3392

zte corporation
198
3168

IEEE Registration Authority
194
3072

Хюлет Пакард
149
2384

Hon Hai Precision
136
2176

TP-LINK
134
2144

Dell Inc.
123
1968

Juniper Networks
110
1760

Sagemcom Broadband SAS
97
1552

Fiberhome Telecommunications Technologies Co. LTD
97
1552

Xiaomi Communications Co Ltd
88
1408

Guangdong Oppo Mobile Telecommunications Corp. Ltd
82
1312

В Google имат само 40, и това не е учудващо: те самите не произвеждат много мрежови устройства.

MA блоковете не се предоставят безплатно, могат да бъдат закупени за разумни пари (без абонаментна такса) на цена от $3000, $1800 или $755. Интересно е, че за допълнителни пари (годишно) може да се купи 'скриване' на публичната информация за посочения блок. В момента, както се вижда, има 232.

Кога ще свършат MAC адресите

Вече достатъчно се уморихме от непрекъснатите истории през последните 10 години, че 'IPv4 адресите скоро ще свършат'. Да, новите блокове на IPv4 вече е трудно да се получат. Освен това е известно, че IP адресите са разпределени изключително неравномерно; съществуват гигантски и слабо използвани блокове, принадлежащи на големи корпорации и държавни институции в САЩ, обаче без особена надежда за тяхното преразпределение в полза на нуждаещите се. Разпространението на NAT, CG-NAT и IPv6 направи проблема с недостиг на публични адреси не толкова остър.

MAC адресът е 48 бита, от които 'полезните' могат да се считат за 46 (защо? Чети нататък), което дава 2^46 или 1014 адреса, което е 2^14 пъти повече от IPv4 адресното пространство.
В момента са разпределени около половин трилион адреса, или само 0.73% от целия обем. До изчерпването на MAC адресите остава много, много далеч.

Случайност на битовете

Може да се предположи, че OUI са разпределени случайно, а производителят след това също случайно назначава адреси на индивидуалните мрежови устройства. Така ли е? Нека погледнем разпределението на битовете в наличните ми бази MAC адреси на 802.11 устройства, събрани от работещи системи за удостоверяване в безжични мрежи. WNAM. Адресите принадлежат на реални устройства, свързвали се с Wi-Fi през последните години в три държави. В допълнение, има малка база от 802.3 устройства на проводна локална мрежа.

Нека разделим всеки MAC адрес (шест байта) от всяка от изборките на битове по байтове и да видим честотата на поява на бит '1' в всяка от 48-те позиции. Ако битът е зададен напълно произволно, то вероятността да получим '1' трябва да бъде 50%.

Изборка Wi-Fi №1 (Русия)
Изборка Wi-Fi №2 (Беларус)
Wi-Fi Извадка №3 (Узбекистан)
LAN Извадка (Русия)

Брой записи в базата данни
5929000
1274000
366000
1000

Номер на бита:
% бит „1“
% бит „1“
% бит „1“
% бит „1“

1
48.6%
49.2%
50.7%
28.7%

2
44.8%
49.1%
47.7%
30.7%

3
46.7%
48.3%
46.8%
35.8%

4
48.0%
48.6%
49.8%
37.1%

5
45.7%
46.9%
47.0%
32.3%

6
46.6%
46.7%
47.8%
27.1%

7
0.3%
0.3%
0.2%
0.7%

8
0.0%
0.0%
0.0%
0.0%

9
48.1%
50.6%
49.4%
38.1%

10
49.1%
50.2%
47.4%
42.7%

11
50.8%
50.0%
50.6%
42.9%

12
49.0%
48.4%
48.2%
53.7%

13
47.6%
47.0%
46.3%
48.5%

14
47.5%
47.4%
51.7%
46.8%

15
48.3%
47.5%
48.7%
46.1%

16
50.6%
50.4%
51.2%
45.3%

17
49.4%
50.4%
54.3%
38.2%

18
49.8%
50.5%
51.5%
51.9%

19
51.6%
53.3%
53.9%
42.6%

20
46.6%
46.1%
45.5%
48.4%

21
51.7%
52.9%
47.7%
48.9%

22
49.2%
49.6%
41.6%
49.8%

23
51.2%
50.9%
47.0%
41.9%

24
49.5%
50.2%
50.1%
47.5%

25
47.1%
47.3%
47.7%
44.2%

26
48.6%
48.6%
49.2%
43.9%

27
49.8%
49.0%
49.7%
48.9%

28
49.3%
49.3%
49.7%
55.1%

29
49.5%
49.4%
49.8%
49.8%

30
49.8%
49.8%
49.7%
52.1%

31
49.5%
49.7%
49.6%
46.6%

32
49.4%
49.7%
49.5%
47.5%

33
49.4%
49.8%
49.7%
48.3%

34
49.7%
50.0%
49.6%
44.9%

35
49.9%
50.0%
50.0%
50.6%

36
49.9%
49.9%
49.8%
49.1%

37
49.8%
50.0%
49.9%
51.4%

38
50.0%
50.0%
49.8%
51.8%

39
49.9%
50.0%
49.9%
55.7%

40
50.0%
50.0%
50.0%
49.5%

41
49.9%
50.0%
49.9%
52.2%

42
50.0%
50.0%
50.0%
53.9%

43
50.1%
50.0%
50.3%
56.1%

44
50.1%
50.0%
50.1%
45.8%

45
50.0%
50.0%
50.1%
50.1%

46
50.0%
50.0%
50.1%
49.5%

47
49.2%
49.4%
49.7%
45.2%

48
49.9%
50.1%
50.7%
54.6%

Откъде идва такава несправедливост в 7 и 8 бита? Там почти винаги има нули.

Наистина, стандартът определя тези битове като специални (Уикипедия):
Всичко, което искате да знаете за MAC адреса

Осмият (от началото) бит на първия байт на MAC адреса е наречен Unicast/Multicast бит и определя какъв тип кадър (фрейм) се предава с този адрес, обичайната (0) или широковещателната (1) (мултикаст или бродкаст). За обичното, unicast взаимодействие на мрежовия адаптер, този бит е зададен на „0“ във всички пакети, изпратени към него.

Седмият (от началото) бит на първия байт на MAC адреса е наречен U/L (Universal/Local) бит и определя дали адресът е глобално уникален (0) или локално уникален (1). По подразбиране всички „записани от производителя“ адреси са глобално уникални, така че почти всички събрани MAC адреси съдържат седмия бит зададен на „0“. В таблицата на присвоени идентификатори OUI само около 130 записа имат U/L бит „1“, и явно те са блокове MAC адреси за специални нужди.

От шестия до първия бит на първия байт, битовете на втория и третия байт в идентификаторите OUI, и особено битовете в 4-6 байтовете на адреса, назначавани от производителя, са разпределени повече или по-малко равномерно.

Така че, в реалния MAC адрес на мрежовия адаптер битовете всъщност са взаимозаменяеми и нямат технологично значение, с изключение на два служебни бита от старшия байт.

Разпространение

Интересно, кои производители на безжично оборудване са най-популярни? Нека обединим търсенето в базата OUI с данните от извадка №1.

Доставчик
Дял на устройствата, %

Apple
26,09

Samsung
19,79

Huawei Technologies Co. Ltd
7,80

Xiaomi Communications Co Ltd
6,83

Sony Mobile Communications Inc
3,29

LG Electronics (Mobile Communications)
2,76

ASUSTek COMPUTER INC.
2,58

TCT mobile ltd
2,13

zte corporation
2,00

не намерен в базата IEEE
1,92

Lenovo Mobile Communication Technology Ltd.
1,71

HTC Corporation
1,68

Murata Manufacturing
1,31

InPro Comm
1,26

Microsoft Corporation
1,11

Shenzhen TINNO Mobile Technology Corp.
1,02

Motorola (Wuhan) Mobility Technologies Communication Co. Ltd.
0,93

Nokia Corporation
0,88

Shanghai Wind Technologies Co. Ltd
0,74

Lenovo Mobile Communication (Wuhan) Company Limited
0,71

Практиката показва, че колкото по-богат е контингентът на абонатите на безжичната мрежа в това място, толкова по-голям е дялът на устройствата на Apple.

Уникалност

Уникални ли са MAC адресите? В теориите да, тъй като всеки производител на устройства (собственик на блока MA) е задължен да осигури уникален адрес за всеки от произведените от него мрежови адаптери. Въпреки това, някои производители на чипове, именно:

  • 00:0A:F5 Airgo Networks, Inc. (сега Qualcomm)
  • 00:08:22 InPro Comm (сега MediaTek)

показват последните три байта от MAC адреса като произволно число, очевидно след всяко рестартиране на устройството. В моята извадка №1 бяха намерени 82 хиляди от такива адреси.

Може да зададете чужд, не уникален адрес, разбира се, чрез целенасочено негово задаване "като на съсед", определяйки го с sniffer или избирайки случайно. Възможно е също случайно да зададете не уникален адрес, например, при възстановяване на резервно копие от конфигурацията на рутер, като Mikrotik или OpenWrt.

Какво става, ако в мрежата присъстват две устройства с един и същи MAC адрес? Всичко зависи от логиката на мрежовото оборудване (проводния рутер, контролера на безжичната мрежа). Най-вероятно и двете устройства няма да работят или ще работят с прекъсвания. От гледна точка на стандартите IEEE, защитата от фалшифициране на MAC адреси предлага да се реши с помощта на например, MACsec или 802.1X.

Какво става, ако зададете MAC с включен '1' в седмия или осмия бит, т.е. local или multicast адрес? Най-вероятно, вашата мрежа няма да обърне внимание на това, но формално такъв адрес няма да отговаря на стандарта, и е по-добре да не се прави.

Как работи рандомизацията

Знаем, че с цел предотвратяване на проследяване на движението на хора чрез сканиране на ефира и събиране на MAC, операционните системи на смартфоните вече прилагат технология за рандомизация. Теоретично, при сканиране на ефира в търсене на известни мрежи, смартфонът изпраща пакет (група пакети) от тип 802.11 probe request с MAC адреса като източник:

Всичко, което искате да знаете за MAC адреса

Включената рандомизация позволява да се задава не "зашит", а някакъв друг адрес на източника на пакета, променящ се при всеки цикъл на сканиране, във времето или по друг начин. Работи ли това? Нека погледнем статистиката на събраните MAC адреси от ефира, така наречения "Wi-Fi Радар":

Цялата извадка
Извадка само с нулев 7ми бит

Брой записи в базата данни
3920000
305000

Номер на бита:
% бит „1“
% бит „1“

1
66.1%
43.3%

2
66.5%
43.4%

3
31.7%
43.8%

4
66.6%
46.4%

5
66.7%
45.7%

6
31.9%
46.4%

7
92.2%
0.0%

8
0.0%
0.0%

9
67.2%
47.5%

10
32.3%
45.6%

11
66.9%
45.3%

12
32.3%
46.8%

13
32.6%
50.1%

14
33.0%
56.1%

15
32.5%
45.0%

16
67.2%
48.3%

17
33.2%
56.9%

18
33.3%
56.8%

19
33.3%
56.3%

20
66.8%
43.2%

21
67.0%
46.4%

22
32.6%
50.1%

23
32.9%
51.2%

24
67.6%
52.2%

25
49.8%
47.8%

26
50.0%
50.0%

27
50.0%
50.2%

28
50.0%
49.8%

29
50.0%
49.4%

30
50.0%
50.0%

31
50.0%
49.7%

32
50.0%
49.9%

33
50.0%
49.7%

34
50.0%
49.6%

35
50.0%
50.1%

36
50.0%
49.5%

37
50.0%
49.9%

38
50.0%
49.8%

39
50.0%
49.9%

40
50.0%
50.1%

41
50.0%
50.2%

42
50.0%
50.2%

43
50.0%
50.1%

44
50.0%
50.1%

45
50.0%
50.0%

46
50.0%
49.8%

47
50.0%
49.8%

48
50.1%
50.9%

Карината е съвсем различна.

8ми бит на първия байт от MAC адреса продължава да отговаря на Unicast природата на SRC адреса в probe request пакета.

7-ият бит в 92.2% от случаите е настроен на Local, така че с достатъчно увереност можем да приемем, че точно толкова събрани адреси принадлежат на рандомизирани, а по-малко от 8% — на реални. При това разпределението на битовете в OUI за такива реални адреси приблизително съвпада с данните от предишната таблица.

На кой производител, по OUI, принадлежат рандомизираните адреси (т.е. с 7-ия бит на «1»)?

Производител по OUI
Дял сред всички адреси

не намерен в базата IEEE
62.45%

Google Inc.
37.54%

останалите
0.01%

При това всички рандомизирани адреси, отнесени на Google, принадлежат на един OUI с префикс DA:A1:19. Какъв е този префикс? Нека погледнем в източниците на Android.

private static final MacAddress BASE_GOOGLE_MAC = MacAddress.fromString("da:a1:19:0:0:0");

Стоковият Android при търсене на безжични мрежи използва специален, регистриран OUI, един от малкото с установения 7-ми бит.

Да изчислим реалния MAC от рандомния

Нека погледнем и там:

private static final long VALID_LONG_MASK = (1L << 48) - 1;
private static final long LOCALLY_ASSIGNED_MASK = MacAddress.fromString("2:0:0:0:0:0").mAddr;
private static final long MULTICAST_MASK = MacAddress.fromString("1:0:0:0:0:0").mAddr;

public static @NonNull MacAddress createRandomUnicastAddress(MacAddress base, Random r) {
        long addr;
        if (base == null) {
            addr = r.nextLong() & VALID_LONG_MASK;
        } else {
            addr = (base.mAddr & OUI_MASK) | (NIC_MASK & r.nextLong());
        }
        addr |= LOCALLY_ASSIGNED_MASK;
        addr &= ~MULTICAST_MASK;
        MacAddress mac = new MacAddress(addr);
        if (mac.equals(DEFAULT_MAC_ADDRESS)) {
            return createRandomUnicastAddress(base, r);
        }
        return mac;
    }

Адресът изцяло, или неговите последни три байта, е чист Random.nextLong(). „Патентованото възстановяване на реален MAC“ е измама. С голяма степен на вероятност можем да очакваме, че производителите на Android телефони прилагат и други, не регистрирани OUI. Нямаме източниците на iOS, но вероятно там е приложен подобен алгоритъм.

Горното не отменя работата на други механизми за деанонимизиране на Wi-Fi абонати, основани на анализа на други полета в probe request фрейма или корелацията на относителната честота на изпращаните от устройството заявки. Въпреки това, достоверното проследяване на абоната чрез външни средства е изключително проблематично. Събраните данни по-скоро ще подхождат за анализ на средното/пиковото натоварване по местоположение и време, въз основа на големи числа, без привързване към конкретни устройства и хора. Точните данни са само при тези, които „вътре“, самите производители на мобилни ОС, и установените приложения.

Каква може да бъде опасността, ако някой друг разбере MAC адреса на вашето устройство? За кабелни и безжични мрежи може да се организира атака с отказ в обслужването. За безжично устройство, с определена вероятност, може да се улови момента на появата му в зоната, където е инсталиран сензорът. С подмяна на адреса може да опитате да "се представите" за вашето устройство, което може да проработи, само ако не се използват допълнителни средства за защита (авторизация и/или криптиране). 99.9% от хората тук нямат за какво да се тревожат.

MAC адресът е по-сложен, отколкото изглежда, но и по-прост, отколкото би могъл да бъде.

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster