Všichni vědí, že se jedná o šest bajtů, které jsou obvykle zobrazeny v šestnáctkové podobě a jsou přiřazeny síťové kartě z výroby, a na první pohled vypadají náhodně. Někteří vědí, že první tři bajty adresy jsou identifikátor výrobce, a zbývající tři bajty jsou jim přiřazeny. Také je známo, že si lze nastavit libovolnou adresu. Mnoho lidí také slyšelo o „náhodných adresách“ ve Wi-Fi.
Pojďme se podívat, co to vlastně je.
MAC adresa (media access control address) je unikátní identifikátor přidělený síťovému adaptéru, který se používá v sítích podle standardů IEEE 802, především Ethernet, Wi-Fi a Bluetooth. Oficiálně se nazývá „identifikátor typu EUI-48“. Z názvu je jasné, že adresa má délku 48 bitů, tj. 6 bajtů. Neexistuje obecně uznávaný standard pro zápis adresy (na rozdíl od IPv4 adresy, kde jsou oktety vždy odděleny tečkami). Obvykle se zapisuje jako šest šestnáctkových čísel oddělených dvojtečkou: 00:AB:CD:EF:11:22, přičemž někteří výrobci hardwaru dávají přednost zápisu ve formátu 00-AB-CD-EF-11-22 nebo dokonce 00ab.cdef.1122.
Historicky byly adresy naprogramovány do EEPROM čipové sady síťové karty bez možnosti jejich modifikace bez programátoru, ale v současné době může být adresa změněna softwarově z operačního systému. Ručně nastavit MAC adresu síťové kartě je možné v Linuxu a MacOS (vždy), Windows (skoro vždy, pokud to umožňuje ovladač), Android (pouze rootovaný); na iOS (bez rootu) je podobný trik nemožný.
Struktura adresy
Adresa se skládá z části identifikátoru výrobce, OUI, a identifikátoru přiděleného výrobcem. Účelem identifikátorů OUI (Organizationally Unique Identifier) je organizace IEEE. Ve skutečnosti její délka může být nejen 3 bajty (24 bitů), ale také 28 nebo 36 bitů, ze kterých se tvoří bloky (MAC Address Block, MA) adres typů Large (MA-L), Medium (MA-M) a Small (MA-S). Velikost vydaného bloku by tedy byla 24, 20, 12 bitů nebo 16 milionů, 1 milion, 4 tisíce adres. V současné době je rozdáno přibližně 38 tisíc bloků, které je možné prozkoumat pomocí různých online nástrojů, například u nebo .
Komu patří adresy
Jednoduché zpracování veřejně dostupné IEEE poskytuje docela dost informací. Například některé organizace si vzaly hodně OUI bloků. Tady jsou naši hrdinové:
dodavatel
Počet bloků/záznamů
Počet adres, miliony.
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
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 jich má 40 a není divu: sami nevyrábějí tolik síťových zařízení.
Bloky MAC nejsou poskytovány zdarma, mohou být zakoupeny za rozumnou cenu (bez měsíčního poplatku) za 3000 $, 1800 $ nebo 755 $ podle pořadí. Zajímavé je, že za další poplatek (ročně) si můžete zakoupit 'skrytí' veřejných informací o speciálním bloku. Těch je v současnosti, jak je vidět výše, 232.
Kdy dojdou MAC adresy
Už jsme unaveni z nekončících příběhů o tom, že 'IPv4 adresy brzy dojdou'. Ano, nová bloky IPv4 se už obtížně získávají. Víte však, že IP adresy ; existují obrovské a málo používané bloky patřící velkým korporacím a státním institucím USA, nicméně bez přílišné naděje na jejich přerozdělení ve prospěch potřebujících. Rozšíření NAT, CG-NAT a IPv6 učinilo problém nedostatku veřejných adres méně naléhavým.
MAC adresa má 48 bitů, z nichž 'užitečnými' se dají považovat 46 (proč? čtěte dál), což dává 246 nebo 1014 adres, což je 214krát více než IPv4 adresní prostor.
V současné době je přiděleno přibližně půl bilionu adres, což představuje pouze 0,73% z celkového objemu. Do vyčerpání MAC adres je stále velmi, velmi daleko.
Náhodnost bitu
Můžeme předpokládat, že OUI jsou přidělovány náhodně, a vendor následně také náhodně přiděluje adresy jednotlivým síťovým zařízením. Je to tak? Podívejme se na rozdělení bitů v databázích MAC adres zařízení 802.11, shromážděných fungujícími autorizacemi v bezdrátových sítích. . Adresy patří skutečným zařízením, která se připojovala k Wi-Fi po několik let ve třech zemích. K tomu se přidává malá databáze 802.3 zařízení drátové sítě LAN.
Každou MAC adresu (šest bajtů) z každého výběru rozdělíme na bity po bajtech a podíváme se na frekvenci výskytu bitu '1' v každé z 48 pozic. Pokud je bit nastaven zcela náhodně, pravděpodobnost, že dostaneme '1', by měla být 50%.
Výběr Wi-Fi č. 1 (RF)
Výběr Wi-Fi č. 2 (Bělorusko)
Výběr Wi-Fi č. 3 (Uzbekistán)
Výběr LAN (RF)
Počet záznamů v databázi
5929000
1274000
366000
1000
Číslo bitu:
% bitů „1“
% bitů „1“
% bitů „1“
% bitů „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%
Odkud se bere taková nespravedlnost ve 7 a 8 bitech? Tam jsou téměř vždy nuly.
Opravdu, standard tyto bity definuje jako speciální ():

Osmý (od začátku) bit prvního bajtu MAC adresy se nazývá Unicast/Multicast bit a určuje, jaký typ rámce (frame) se s touto adresou přenáší, běžný (0) nebo širokopásmový (1) (multicast nebo broadcast). Pro běžnou, unicast interakci síťového adaptéru je tento bit nastaven na „0“ ve všech paketech, které jsou mu posílány.
Sedmý (od začátku) bit prvního bajtu MAC adresy se nazývá U/L (Universal/Local) bit a určuje, zda je adresa globálně unikátní (0) nebo lokálně unikátní (1). Ve výchozím nastavení jsou všechny „zapouzdřené výrobcem“ adresy globálně unikátní, proto drtivá většina shromážděných MAC adres obsahuje sedmý bit nastavený na „0“. V tabulce přidělených identifikátorů OUI má pouze asi 130 záznamů U/L bit „1“, a pravděpodobně se jedná o bloky MAC adres pro speciální potřeby.
Od šestého po první bity prvního bajtu, bity druhého a třetího bajtu v OUI identifikátorech, a tím spíše bity ve 4-6 bajtech adresy přidělené výrobcem, jsou rozloženy víceméně rovnoměrně.
Tímto způsobem v reálné MAC adrese síťového adaptéru bity fakticky odpovídají a nenesou technologický smysl, s výjimkou dvou služebních bitů staršího bajtu.
Rozšířenost
Je zajímavé, kteří výrobci bezdrátového vybavení jsou nejpopulárnější? Spojíme vyhledávání podle databáze OUI s daty výběru č. 1.
dodavatel
Podíl zařízení, %
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 (Mobilní komunikace)
2,76
ASUSTek COMPUTER INC.
2,58
TCT mobile ltd
2,13
zte corporation
2,00
nenalezen v databázi 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
Praxe ukazuje, že čím bohatší je populace uživatelů bezdrátové sítě v daném místě, tím větší je podíl zařízení Apple.
Unikátnost
Jsou MAC adresy jedinečné? Teoreticky ano, protože každý výrobce zařízení (vlastníků bloku MA) je povinen zajišťovat jedinečnou adresu pro každý ze svých vydaných síťových adaptérů. Avšak někteří výrobci čipů, a to konkrétně:
- 00:0A:F5 Airgo Networks, Inc. (nyní Qualcomm)
- 00:08:22 InPro Comm (nyní MediaTek)
poslední tři bajty MAC adresy jsou nastavovány na náhodné číslo, evidentně po každém restartu zařízení. V mé vzorku číslo 1 jsem našel 82 tisíc takových adres.
Nastavit si cizí, nejedinečnou adresu je samozřejmě možné cíleným nastavením "jako u souseda", pokud ji zjistíte pomocí snifferu, nebo výběrem náhodně. Také je možné náhodně nastavit nejedinečnou adresu, pokud například obnovíte zálohu konfigurace nějakého routeru jako je Mikrotik nebo OpenWrt.
Co se stane, když v síti budou dvě zařízení se stejnou MAC adresou? Záleží to na logice síťového vybavení (drátový router, řadič bezdrátové sítě). Pravděpodobně obě zařízení buď nebudou fungovat, nebo budou mít přerušované připojení. Z pohledu standardů IEEE se ochrana před paděláním MAC adres doporučuje řešit pomocí například MACsec nebo 802.1X.
Co se stane, když si nastavíte MAC s nastaveným na "1" sedmým nebo osmým bitem, tedy local nebo multicast adresu? Pravděpodobně si toho vaše síť ani nevšimne, ale formálně tato adresa nebude odpovídat standardu, a je lepší to nedělat.
Jak funguje randomizace
Víme, že s cílem zabránit sledování pohybu lidí prostřednictvím skenování vzduchu a shromažďování MAC adres používají operační systémy chytrých telefonů již několik let technologii randomizace. Teoreticky, při skenování vzduchu za účelem hledání známých sítí telefon odešle paket (skupinu paketů) typu 802.11 probe request s MAC adresou jako zdrojem:

Povolená randomizace umožňuje uvádět nikoli "naprogramovanou", ale nějakou jinou adresu zdroje paketu, která se mění při každém cyklu skenování, v čase nebo nějak jinak. Funguje to? Podíváme se na statistiku shromážděných MAC adres z éteru pomocí takzvaného "Wi-Fi Radaru":
Celý vzorek
Vzorek pouze s nulovým 7. bitem
Počet záznamů v databázi
3920000
305000
Číslo bitu:
% bitů „1“
% bitů „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%
Obrázek je zcela jiný.
8. bit prvního bajtu MAC adresy stále odpovídá Unicast povaze SRC adresy v probe request paketu.
7. bit je ve 92,2 % případů nastaven na Local, takže s dostatečnou mírou jistoty můžeme říci, že právě tolik shromážděných adres se vztahuje k randomizovaným, a méně než 8 % k reálným. Přitom rozložení bitů v OUI pro tyto reálné adresy přibližně odpovídá datům z předchozí tabulky.
Kterému výrobci, podle OUI, patří randomizované adresy (tj. s 7. bitem na „1“)?
Výrobce podle OUI
Podíl mezi všemi adresami
nenalezen v databázi IEEE
62.45%
Google Inc.
37.54%
ostatní
0.01%
Všechna randomizovaná adresa přiřazená Googlu patří jednomu OUI s prefixem DA:A1:19. Co to je za prefix? Podívejme se do .
private static final MacAddress BASE_GOOGLE_MAC = MacAddress.fromString("da:a1:19:0:0:0");Skvělý Android při hledání bezdrátových sítí používá speciální, registrovaný OUI, jeden z mála s nastaveným sedmým bitem.
Vypočítat skutečný MAC z náhodného
Podívejme se tam také:
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;
}
Adresa v plném znění, nebo její poslední tři bajty, je čistý Random.nextLong(). "Patentované obnovení skutečného MAC" — klam. S velkou mírou důvěry lze očekávat, že výrobci Android telefonů používají i další, neregistrované OUI. Zdrojové kódy iOS nemáme, ale pravděpodobně se tam aplikoval podobný algoritmus.
Výše uvedené neodvrací práci dalších mechanismů deanonimizace Wi-Fi odběratelů, zaměřených na analýzu dalších polí rámce probe request nebo korelaci relativní frekvence odesílaných zařízeními dotazů. Nicméně spolehlivé sledování odběratele externími prostředky je vysoce problematické. Shromážděná data více vyhovují pro analýzu průměrného/pikového zatížení podle umístění a času na základě velkých čísel, bez vazby na konkrétní zařízení a lidi. Přesné údaje mají jen ti, kdo jsou „uvnitř“, tedy samotní výrobci mobilních OS a nainstalované aplikace.
Jaké nebezpečí může hrozit, pokud někdo jiný zjistí MAC adresu vašeho zařízení? Pro drátové a bezdrátové sítě je možné uspořádat útok s názvem „denial of service“. U bezdrátového zařízení je navíc s určitou pravděpodobností možné zaregistrovat okamžik jeho objevení na místě, kde je nainstalován senzor. Změnou adresy se můžete pokusit „představit“ se jako vaše zařízení, což může fungovat pouze v případě, že nejsou použity další ochranné prostředky (autentizace a/nebo šifrování). 99,9 % lidí se tu nemusí ničeho obávat.
MAC adresa je složitější, než se zdá, ale jednodušší, než by mohla být.
Zdroj: habr.com
