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

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

Нека да разберем какво е то.

MAC адрес (адрес за контрол на достъп до медия) е уникален идентификатор, присвоен на мрежов адаптер, използван в мрежи на стандарти 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.

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

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

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

Кой притежава адресите?

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

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

Cisco Systems Inc
888
14208

ябълка
772
12352

Samsung
636
10144

Huawei Technologies Co.Ltd
606
9696

Intel Corporation
375
5776

ARRIS Group Inc.
319
5104

Корпорация Nokia
241
3856

частен
232
2704

Texas Instruments
212
3392

zte корпорация
198
3168

Орган за регистрация на IEEE
194
3072

Hewlett Packard
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 Telecommunication 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 могат да се считат за „полезни“ (защо? прочетете), което дава 246 или 1014 адреса, което е 214 пъти повече от IPv4 адресното пространство.
В момента са раздадени приблизително половин трилион адреса, или само 0.73% от общия обем. Все още сме много, много далеч от изчерпването на MAC адресите.

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

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

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

Избор на Wi-Fi № 1 (RF)
Wi-Fi проба № 2 (Беларус)
Избор на Wi-Fi № 3 (Узбекистан)
LAN семплиране (RF)

Брой записи в базата данни
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 бита? Почти винаги има нули.

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

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

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

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

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

преобладаване

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

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

ябълка
26,09

Samsung
19,79

Huawei Technologies Co. ООД
7,80

Xiaomi Communications Co Ltd
6,83

Sony Mobile Communications Inc
3,29

LG Electronics (мобилни комуникации)
2,76

ASUSTek КОМПЮТЪР INC.
2,58

TCT mobile ltd
2,13

zte корпорация
2,00

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

Lenovo Mobile Communication Technology Ltd.
1,71

HTC Corporation
1,68

Мурата Производство
1,31

InPro Comm
1,26

Microsoft Corporation
1,11

Shenzhen TINNO Mobile Technology Corp.
1,02

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

Корпорация Nokia
0,88

Shanghai Wind Technologies Co. ООД
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 хиляди такива адреса.

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

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

Ами ако инсталирате MAC със седми или осми бит, зададен на „1“, т.е. локален или мултикаст адрес? Най-вероятно вашата мрежа няма да обърне внимание на това, но формално такъв адрес няма да отговаря на стандарта и е по-добре да не го правите.

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

Знаем, че за да се предотврати проследяването на движенията на хората чрез сканиране и събиране на ефирни вълни, операционните системи MAC за смартфони използват технология за рандомизация от няколко години. Теоретично, когато сканира ефира в търсене на известни мрежи, смартфонът изпраща пакет (група от пакети) от типа на заявката за сонда 802.11 с 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 адреса в пакета със заявка за проверка.

7-мият бит е настроен на Local в 92.2% от случаите, т.е. Със достатъчна степен на увереност можем да предположим, че точно толкова много от събраните адреси са рандомизирани и по-малко от 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");

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

Изчислете реален 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 абонати, базирани на анализа на други полета на рамката на заявка за сонда или корелация на относителната честота на заявките, изпратени от устройството. Надеждното проследяване на абонат с външни средства обаче е изключително проблематично. Събраните данни ще бъдат по-подходящи за анализиране на средно/пиково натоварване по местоположение и време, въз основа на големи числа, без препратка към конкретни устройства и хора. Само тези „вътре“, самите производители на мобилни ОС и инсталираните приложения имат точни данни.

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

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

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

Добавяне на нов коментар