Всем е известно, че това са шест байта, обикновено изразени в шестнадесетичен формат, присвоени на мрежовия адаптер по фабрика и на пръв поглед изглеждат случайни. Някои знаят, че първите три байта от адреса са идентификатор на производителя, а останалите три байта се назначават. Също така е известно, че можете да зададете произволен адрес. Много хора са чували и за „рандомни адреси“ в 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.
Исторически, адресите бяха написани в ПЗУ чипсета на мрежовия адаптер без възможност за модификация без флаш-програматор, но в момента адресът може да бъде променен софтуерно, от операционната система. Ръчно задаване на MAC адрес на мрежовия адаптер е възможно в Linux и MacOS (всички случаи), Windows (почти всеки път, ако драйверът позволява), Android (само рутван); с iOS (без рут) подобен трик е невъзможен.
Структура на адреса
Адресът се състои от част от идентификатора на производителя, 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 предоставя доста информация. Например, някои организации са взели у себе си много 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
Частен
232
2704
Texas Instruments
212
3392
zte corporation
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, и не е изненадващо: те сами не произвеждат много мрежови устройства.
Блоковете 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, събрани от системите за авторизация в безжични мрежи . Адресите принадлежат на реални устройства, свързвали се с 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 адреса се нарича 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 Manufactuaring
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 адресите? В теорията - да, тъй като всеки производител на устройства (собственик на MAC блока) е длъжен да осигури уникален адрес за всеки от произвежданите от него мрежови адаптери. Въпреки това, някои производители на чипове, а именно:
- 00:0A:F5 Airgo Networks, Inc. (в момента Qualcomm)
- 00:08:22 InPro Comm (в момента MediaTek)
поставят последните три байта на MAC адреса в произволно число, очевидно след всяко рестартиране на устройството. В моята извадка №1 бяха намерени 82 хиляди такива адреса.
Можете, разбира се, да настроите на себе си чужд, не уникален адрес, като целенасочено го зададете "като на съсед", определяйки го с помощта на сниффер, или избирайки наслучай. Също така е възможно случайно да получите не уникален адрес, например, при възстановяване на резервно копие на конфигурацията на рутер, като Mikrotik или OpenWrt.
Какво ще се случи, ако в мрежата присъстват две устройства с един и същи MAC адрес? Всичко зависи от логиката на мрежовото оборудване (проводим рутер, контролер на безжичната мрежа). С най-голяма вероятност и двете устройства или няма да работят, или ще работят със смущения. От гледна точка на стандартите IEEE защитава от фалшифициране на MAC адреси предлага да се решават с помощта на, например, MACsec или 802.1Х.
Какво, ако настроите MAC с поставен "1" на седмия или осмия бит, т.е. локален или multicast адрес? Най-вероятно вашата мрежа няма да обърне внимание на това, но формално този адрес няма да отговаря на стандарта и е по-добре да не го правите.
Как работи рандомизацията
Знаем, че с цел предотвратяване на проследяване на движенията на хора чрез сканиране на ефира и събиране на MAC, операционните системи на смартфоните вече няколко години прилагат технологията за рандомизация. Теоретично, при сканиране на ефира в търсене на известни мрежи, смартфонът изпраща пакет (група пакети) тип 802.11 probe request с 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. Какво е този префикс? Нека да погледнем в .
private static final MacAddress BASE_GOOGLE_MAC = MacAddress.fromString("da:a1:19:0:0:0");Стоковият 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 абонати, основани на анализа на други полета на probe request фрейма или корелацията на относителната честота на изпратените от устройството запитвания. Но е изключително трудно да се проследи абонатът с външни средства. Събраните данни са по-подходящи за анализ на средната/пиковата натовареност на местоположението и времето, на базата на големи числа, без свързване с конкретни устройства и хора. Точни данни имат само тези, които са "вътре", самите производители на мобилни операционни системи, за инсталираните приложения.
Какво може да е опасно в това, че някой друг знае MAC адреса на вашето устройство? За проводни и безжични мрежи може да се организира атака "отказ в обслужването". За безжично устройство, в допълнение, с определена вероятност може да се фиксира моментът на появяване в мястото, където е инсталиран сензор. С подмяната на адреса може да се опита "да се представи" за вашето устройство, но това може да сработи, само ако не се прилагат допълнителни средства за защита (авторизация и/или криптиране). 99.9% от хората тук нямат за какво да се тревожат.
MAC адресът е по-сложен, отколкото изглежда, но по-прост, отколкото би могъл да бъде.
Източник: habr.com
