Усё, што вы хацелі ведаць аб МАС адрасе

Усё, што вы хацелі ведаць аб МАС адрасеУсім вядома, што гэта шэсць байт, якія звычайна адлюстроўваюцца ў шаснаццатковым фармаце, прысвоены сеткавай карце на заводзе, і на першы погляд выпадковыя. Некаторыя ведаюць, што першыя тры байта адрасу - гэта ідэнтыфікатар вытворцы, а астатнія тры байта ім прызначаюцца. Вядома таксама, што можна паставіць сабе адвольны адрас. Шмат хто чуў і пра «рандомныя адрасы» у Wi-Fi.

Разбяромся, што гэта такое.

МАС адрас (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.

Гістарычна адрасы прашываліся ў ПЗУ чыпсэта сеткавай карты без магчымасці іх мадыфікацыі без флэш-праграматара, але ў наш час адрас можа быць зменены праграмна, з аперацыйнай сістэмы. Задаць уручную МАС адрас сеткавай карце можна ў Linux і MacOS (заўсёды), Windows (амаль заўсёды, калі дазволіць драйвер), Android (толькі рутаваны); з iOS (без рута) падобны трук немагчымы.

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

Адрас складаецца з часткі ідэнтыфікатара вытворцы, OUI, і ідэнтыфікатара, які прысвойваецца вытворцам. Прызначэннем ідэнтыфікатараў OUI (Organizationally Unique Identifier) займаецца арганізацыя IEEE. Насамрэч яго даўжыня можа быць не толькі 3 байта (24 біта), а 28 ці 36 біт, з якіх фармуюцца блокі (MAC Address Block, МА) адрасоў тыпаў 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
375
5776

Кампанія ARRIS Group Inc.
319
5104

Карпарацыя Nokia
241
3856

прыватны
232
2704

Texas Instruments
212
3392

карпарацыя zte
198
3168

IEEE Registration Authority
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, і гэта не дзіўна: яны самі вырабляюць не так шмат сеткавых прылад.

Блокі МА не прадастаўляюцца бясплатна, іх можна набыць за разумныя грошы (без абаненцкай платы) за $3000, $1800 ці $755 адпаведна. Цікава, што за дадатковыя грошы (у год) можна набыць "утойванне" публічнай інфармацыі аб выдзеленым блоку. Такіх зараз, як бачна вышэй, 232.

Калі скончацца МАС-адрасы

Мы ўсе парадкам стаміліся ад не спыняюцца ўжо гадоў 10 гісторый аб тым, што "IPv4 адрасы вось-вось скончацца". Так, новыя блокі IPv4 атрымаць ужо няпроста. Пры гэтым вядома, што IP адрасы размеркаваны вельмі нераўнамерна; існуюць гіганцкія і мала выкарыстаныя блокі, якія належаць буйным карпарацыям і дзяржаўнай установай ЗША, зрэшты, без асаблівай надзеі на іх пераразмеркаванне на карысць якія жывуць у нястачы. Распаўсюджванне NAT, CG-NAT і IPv6 зрабіла праблему недахопу публічных адрасоў не такой вострай.

У МАС адрасе 48 біт, з якіх "карыснымі" можна лічыць 46 (чаму? чытай далей), што дае 246 або 1014 адрасоў, што ў 214 разоў больш IPv4 адраснай прасторы.
У сапраўдны момант размеркавана прыкладна паўтрыльёна адрасоў, ці толькі 0.73% ад усяго аб'ёму. Да вычарпання MAC адрасоў яшчэ вельмі, вельмі далёка.

Выпадковасць біт

Можна выказаць здагадку, што OUI размеркаваны выпадкова, а вендар затым таксама выпадкова прызначае адрасы індывідуальным сеткавым прыладам. Ці так гэта? Паглядзім на размеркаванне біт у наяўных у маім распараджэнні базах МАС адрасоў 802.11-прылад, сабраных якія працуюць сістэмамі аўтарызацыі ў бесправадных сетках. WNAM. Адрасы належаць рэальным прыладам, якія падключаліся да Wi-Fi на працягу некалькіх гадоў у трох краінах. У дадатак ідзе маленькая база 802.3-прылад правадной ЛВС.

Разаб'ем кожны МАС-адрас (шэсць байт) кожнай з выбарак на біты пабайтава, і паглядзім на частату з'яўлення біта "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 бітах? Там амаль заўсёды нулі.

Сапраўды, стандарт вызначае гэтыя біты як спецыяльныя (Вікіпедыя):
Усё, што вы хацелі ведаць аб МАС адрасе

Восьмы (з пачатку) біт першага байта МАС адрасу завецца Unicast/Multicast бітам і вызначае, якога тыпу кадр (фрэйм) перадаецца з гэтым адрасам, звычайны (0) ці шырокавяшчальны (1) (мультыкаст або броадкаст). Для звычайнага, unicast узаемадзеяння сеткавага адаптара, гэты біт выстаўлены ў "0" ва ўсіх пакетах, ім якія адпраўляюцца.

Сёмы (з пачатку) біт першага байта МАС адрасу завецца U/L (Universal/Local) бітам і вызначае, ці з'яўляецца адрас глабальна ўнікальным (0), ці лакальна ўнікальным (1). Па змаўчанні, усе "прашытыя вытворцам" адрасы глабальна ўнікальныя, таму пераважная колькасць сабраных МАС адрасоў утрымоўваюць сёмы біт выстаўленым у "0". У табліцы прысвоеных ідэнтыфікатараў OUI толькі каля 130 запісаў мае U/L біт "1", і па ўсёй бачнасці гэта блокі МАС адрасоў для адмысловых патрэб.

З шостага па першым біты першага байта, біты другога і трэцяга байта ў OUI ідэнтыфікатарах, і тым больш біты ў 4-6 байтах адраса, прызначаныя вытворцам, размеркаваны больш-менш раўнамерна.

Такім чынам, у рэальным МАС-адрасе сеткавага адаптара біты фактычна раўнацэнныя і не нясуць тэхналагічнага сэнсу, за выключэннем двух службовых біт старэйшага байта.

распаўсюджанасць

Цікава, якія вытворцы бесправаднога абсталявання найболей папулярныя? Аб'яднаем пошук па базе 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
2,00

не знойдзены ў базе IEEE
1,92

Lenovo Mobile Communication Technology Ltd.
1,71

Карпарацыя HTC
1,68

Murata Manufactuaring
1,31

InPro Comm
1,26

Microsoft Corporation
1,11

Шэньчжэнь TINNO Mobile Technology Corp.
1,02

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

Карпарацыя Nokia
0,88

Shanghai Wind Technologies Co. Ltd
0,74

Lenovo Mobile Communication (Wuhan) Company Limited
0,71

Практыка паказвае, што чым заможней кантынгент абанентаў бесправадной сеткі ў дадзеным месцы, тым большая доля прылад Apple.

Унікальнасць

Ці ўнікальныя МАС адрасы? У тэорыі так, паколькі кожны з вытворцаў прылад (уладальнікаў блока МА) абавязаны забяспечваць унікальны адрас для кожнага з якія выпускаюцца ім сеткавых адаптараў. Аднак некаторыя вытворцы чыпаў, а менавіта:

  • 00:0A:F5 Airgo Networks, Inc. (цяпер Qualcomm)
  • 00:08:22 InPro Comm (цяпер MediaTek)

выстаўляюць апошнія тры байта МАС адрасу ў выпадковы лік, па ўсёй бачнасці, пасля кожнай перазагрузкі прылады. Такіх адрасоў у маёй выбарцы №1 знайшлося 82 тысячы.

Паставіць сабе чужы, не ўнікальны адрас можна, вядома, шляхам мэтанакіраванай яго ўсталёўкі «як у суседа», вызначыўшы яго сніферам, ці абраўшы наўздагад. Таксама магчыма выпадкова паставіць сабе не ўнікальны адрас, выканаўшы, напрыклад, аднаўленне бэкапу канфігурацыі якога-небудзь маршрутызатара накшталт Mikrotik або OpenWrt.

Што будзе, калі ў сетцы будзе прысутнічаць дзве прылады з адным МАС адрасам? Усё залежыць ад логікі сеткавага абсталявання (праваднога роўтара, кантролера бесправадной сеткі). Хутчэй за ўсё, абодва прылады ці не будуць працаваць, ці будуць працаваць з перабоямі. З пункту гледжання стандартаў IEEE, абарону ад падробкі МАС адрасоў прапануецца вырашаць пры дапамозе, напрыклад, MACsec ці 802.1Х.

Што, калі паставіць сабе МАС з выстаўленым у "1" сёмым ці восьмым бітам, г.зн. local ці multicast-адрас? Хутчэй за ўсё, ваша сетка на гэта не зверне ўвагі, але фармальна такі адрас не будзе адпавядае стандарту і лепш так не рабіць.

Як працуе рандамізацыя

Мы ведаем, што з мэтай прадухіліць адсочванне перамяшчэння людзей шляхам сканіравання эфіру і збору МАС-аперацыйныя сістэмы смартфонаў ужо некалькі гадоў прымяняюць тэхналогію рандамізацыі. Тэарэтычна, пры сканаванні эфіру ў пошуку вядомых сетак смартфон адпраўляе пакет (групу пакетаў) тыпу 802.11 probe request з МАС-адрасам у якасці крыніцы:

Усё, што вы хацелі ведаць аб МАС адрасе

Уключаная рандомизация дазваляе паказваць не "прашыты", а нейкі іншы адрас крыніцы пакета, які змяняецца пры кожным цыкле сканавання, у часе ці яшчэ неяк. Ці працуе гэта? Паглядзім на статыстыку сабраных МАС-адрасоў з эфіру так званым «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й біт першага байта МАС адрасы па-ранейшаму адпавядае Unicast-прыродзе SRC-адрасы ў probe request пакеце.

7й біт у 92.2% выпадкаў усталяваны ў Local, г.зн. з дастатковай доляй упэўненасці можна лічыць, што менавіта столькі сабраных адрасоў адносіцца да рандомізаваных, а менш за 8% - да рэальных. Пры гэтым размеркаванне біт у OUI для такіх рэальных адрасоў прыкладна супадае з дадзенымі папярэдняй табліцы.

Якому вытворцу, па OUI, прыналежаць рандомизированные адрасы (г.зн. з 7м бітам у "1")?

Вытворца па OUI
Доля сярод усіх адрасоў

не знойдзены ў базе IEEE
62.45%

Карпарацыя Google
37.54%

астатнія
0.01%

Пры гэтым усе рандомизированные адрасы, аднесеныя да Google, прыналежаць аднаму OUI c прэфіксам DA:A1:19. Што гэта за прэфікс? Давайце паглядзім у зыходнікі Android.

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

Стакавы андроіда ў пошуку бесправадных сетак выкарыстоўвае спецыяльны, зарэгістраваны OUI, адзін з нямногіх з усталяваным сёмым бітам.

Вылічыць рэальны МАС з рандомнага

Паглядзім там жа:

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(). «Патэнтаванае аднаўленне рэальнага МАС» – ашуканства. З вялікай дзеллю ўпэўненасці можна чакаць, што вытворцы Android-тэлефонаў ужываюць і іншыя, не зарэгістраваныя OUI. Зыходнікаў iOS у нас няма, але хутчэй за ўсё там ужыты падобны алгарытм.

Вышэйсказанае не адмяняе працу іншых механізмаў дэананімізацыі Wi-Fi абанентаў, заснаваных на аналізе іншых палёў probe request фрэйма, або карэляцыі адноснай частаты дасыланых прыладай запытаў. Аднак дакладна адсачыць абанента знешнімі сродкамі вельмі праблематычна. Збіраныя дадзеныя больш падыдуць для аналізу сярэдняй/пікавай нагрузкі па месцазнаходжанні і часу, на аснове вялікіх лікаў, без прывязкі да пэўных прылад і людзям. Дакладныя дадзеныя ёсць толькі ў тых, хто "ўнутры", у саміх вытворцаў мабільных АС, ва ўсталяваных прыкладанняў.

Што можа быць небяспечнага ў тым, што нехта іншы даведаецца МАС-адрас вашага прылады? Для правадных і бесправадных сетак можна арганізаваць напад "адмова ў абслугоўванні". Для бесправадной прылады, да таго ж, з некаторай верагоднасцю можна зафіксаваць момант з'яўлення ў месцы, дзе ўсталяваны сэнсар. Падменай адраса можна паспрабаваць «прадставіцца» вашай прыладай, што можа спрацаваць, толькі калі не ўжываецца дадатковых сродкаў абароны (аўтарызацыя і/ці шыфраванне). 99.9% людзей тут няма пра што хвалявацца.

МАС-адрас больш складаны, чым здаецца, але прасцей, чым мог бы быць.

Крыніца: habr.com

Дадаць каментар