Každý ví, že těchto šest bajtů, obvykle zobrazených v hexadecimálním formátu, je síťové kartě přiřazeno z výroby a jsou zdánlivě náhodné. Někteří lidé vědí, že první tři bajty adresy jsou ID výrobce a zbývající tři bajty jsou jim přiřazeny. Je také známo, že se můžete nastavit sami libovolné adresa. Mnoho lidí slyšelo o „náhodných adresách“ ve Wi-Fi.
Pojďme zjistit, co to je.
MAC adresa (media access control address) je jedinečný identifikátor přidělený síťovému adaptéru, používaný v sítích standardů IEEE 802, zejména Ethernet, Wi-Fi a Bluetooth. Oficiálně se nazývá „identifikátor typu EUI-48“. Z názvu je zřejmé, že adresa je dlouhá 48 bitů, tzn. 6 bajtů. Neexistuje žádný obecně uznávaný standard pro zápis adresy (na rozdíl od adresy IPv4, kde jsou oktety vždy odděleny tečkami). Obvykle se zapisuje jako šest hexadecimálních čísel oddělených dvojtečkou: 00:AB:CD:EF:11: 22, ačkoli někteří výrobci zařízení preferují označení 00 -AB-CD-EF-11-22 a dokonce 00ab.cdef.1122.
Historicky se adresy programovaly do ROM čipsetu síťové karty a nebylo možné je změnit bez flash programátoru, ale dnes lze adresu programově změnit z operačního systému. MAC adresu síťové karty můžete ručně nastavit v Linux a MacOS (vždy), Windows (téměř vždy, pokud to řidič dovolí), Android (pouze rootnutý); s iOS (bez rootu) takový trik není možný.
Struktura adresy
Adresa se skládá z části identifikátoru výrobce, OUI, a identifikátoru přiděleného výrobcem. Přiřazení identifikátorů OUI (Organizationally Unique Identifier). organizace IEEE. Jeho délka totiž může být nejen 3 bajty (24 bitů), ale 28 nebo 36 bitů, z čehož se odvíjejí bloky (MAC Address Block, MA) adres typu Large (MA-L), Medium (MA-M) resp. Malé jsou tvořeny (MA-S), resp. Velikost vydaného bloku bude v tomto případě 24, 20, 12 bitů nebo 16 milionů, 1 milion, 4 tisíce adres. V současnosti je distribuováno asi 38 tisíc bloků, lze je prohlížet například pomocí četných online nástrojů nebo .
Komu patří adresy?
Snadné zpracování veřejně dostupných IEEE poskytuje poměrně hodně informací. Některé organizace si například pro sebe vzaly spoustu OUI bloků. Zde jsou naši hrdinové:
Prodejce
Počet bloků/záznamů
Počet adres, milion
Cisco Systems Inc
888
14208
jablko
772
12352
Samsung
636
10144
Společnost Huawei Technologies Co.Ltd
606
9696
Intel Corporation
375
5776
Společnost ARRIS Group Inc.
319
5104
Nokia Corporation
241
3856
soukromý
232
2704
Texas Instruments
212
3392
korporace zte
198
3168
Registrační úřad IEEE
194
3072
Hewlett Packard
149
2384
Přesnost Hon Hai
136
2176
TP-LINK
134
2144
Dell Inc.
123
1968
Juniper Networks
110
1760
Sagemcom Broadband SAS
97
1552
Společnost Fiberhome Telecommunication Technologies Co. LTD
97
1552
Xiaomi Communications Co Ltd
88
1408
Guangdong Oppo Mobile Telecommunications Corp.Ltd
82
1312
Google jich má jen 40 a není se čemu divit: samy o sobě mnoho síťových zařízení nevyrábějí.
Bloky MA nejsou poskytovány zdarma, lze je zakoupit za rozumnou cenu (bez poplatku za předplatné) za 3000, 1800 nebo 755 USD. Zajímavé je, že za další peníze (za rok) si můžete zakoupit „skrytí“ veřejných informací o přiděleném bloku. Nyní je jich 232, jak je vidět výše.
Kdy nám dojdou MAC adresy?
Všichni jsme unavení z příběhů, které se dějí už 10 let, že „adresy IPv4 brzy dojdou“. Ano, nové bloky IPv4 již není snadné získat. Je známo, že IP adresy ; Existují gigantické a nevyužité bloky vlastněné velkými korporacemi a vládními agenturami USA, avšak s malou nadějí na jejich přerozdělení těm, kteří to potřebují. Rozšíření NAT, CG-NAT a IPv6 způsobilo, že problém nedostatku veřejných adres je méně akutní.
MAC adresa má 48 bitů, z nichž 46 lze považovat za „užitečných“ (proč? čtěte dále), což dává 246 nebo 1014 adres, což je 214krát více než adresní prostor IPv4.
V současné době je distribuováno přibližně půl bilionu adres, tedy pouze 0.73 % z celkového objemu. Stále jsme velmi, velmi daleko od toho, abychom vyčerpali MAC adresy.
Náhodné bity
Dá se předpokládat, že OUI jsou distribuovány náhodně a prodejce pak také náhodně přiděluje adresy jednotlivým síťovým zařízením. Je to tak? Podívejme se na rozložení bitů v databázích MAC adres zařízení 802.11, které mám k dispozici, shromážděných fungujícími autorizačními systémy v bezdrátových sítích . Adresy patří skutečným zařízením, která se k Wi-Fi připojovala několik let ve třech zemích. Kromě toho existuje malá databáze 802.3 kabelových LAN zařízení.
Rozdělme každou MAC adresu (šest bajtů) každého ze vzorků na bity, bajt po bajtu, a podívejme se na frekvenci výskytu bitu „1“ v každé ze 48 pozic. Pokud je bit nastaven zcela libovolným způsobem, pak by pravděpodobnost získání „1“ měla být 50 %.
Wi-Fi výběr č. 1 (RF)
Wi-Fi ukázka č. 2 (Bělorusko)
Wi-Fi výběr č. 3 (Uzbekistán)
LAN vzorkování (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%
Proč taková nespravedlnost v 7 a 8 bitech? Téměř vždy jsou nuly.
Ve skutečnosti standard definuje tyto bity 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 (rámce) je s touto adresou přenášen, běžný (0) nebo broadcast (1) (multicast popř. přenos). Pro normální unicastovou komunikaci síťového adaptéru je tento bit nastaven na „0“ ve všech paketech, které jsou na něj odesí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ě jedinečná (0), nebo lokálně jedinečná (1). Ve výchozím nastavení jsou všechny adresy „sešité výrobcem“ globálně jedinečné, takže velká většina shromážděných adres MAC obsahuje sedmý bit nastavený na „0“. V tabulce přiřazených OUI identifikátorů má U/L bit „130“ jen asi 1 položek a zřejmě se jedná o bloky MAC adres pro speciální potřeby.
Od šestého do prvního bitu prvního bajtu jsou bity druhého a třetího bajtu v identifikátorech OUI a ještě více bity ve 4-6 bajtech adresy přidělené výrobcem rozděleny víceméně rovnoměrně. .
Ve skutečné MAC adrese síťového adaptéru jsou tedy bity ve skutečnosti ekvivalentní a nemají žádný technologický význam, s výjimkou dvou servisních bitů vysokého bajtu.
Prevalence
Zajímá vás, kteří výrobci bezdrátových zařízení jsou nejoblíbenější? Spojme vyhledávání v databázi OUI s údaji z ukázky č.1.
Prodejce
Podíl zařízení, %
jablko
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
Společnost TCT mobile spol
2,13
korporace zte
2,00
nenalezen v databázi IEEE
1,92
Lenovo Mobile Communication Technology Ltd.
1,71
HTC Corporation
1,68
Výroba Murata
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 více prosperuje kontingent předplatitelů bezdrátové sítě v dané lokalitě, tím větší je podíl zařízení Apple.
jedinečnost
Jsou MAC adresy jedinečné? Teoreticky ano, protože každý výrobce zařízení (vlastník bloku MA) musí poskytnout jedinečnou adresu pro každý síťový adaptér, který vyrábí. Nicméně, někteří výrobci čipů, jmenovitě:
- 00:0A:F5 Airgo Networks, Inc. (nyní Qualcomm)
- 00:08:22 InPro Comm (nyní MediaTek)
nastavit poslední tři bajty MAC adresy na náhodné číslo, zřejmě po každém restartu zařízení. Takových adres bylo v mém vzorku č. 1 82 tisíc.
Cizí, nejedinečnou adresu si samozřejmě můžete nastavit tak, že ji cíleně nastavíte „jako u souseda“, identifikujete ji s čichačem nebo si ji vyberete náhodně. Je také možné si omylem nastavit nejedinečnou adresu, například obnovením záložní konfigurace routeru jako Mikrotik nebo OpenWrt.
Co se stane, když jsou v síti dvě zařízení se stejnou MAC adresou? Vše závisí na logice síťového zařízení (kabelový router, bezdrátový síťový řadič). S největší pravděpodobností obě zařízení buď nebudou fungovat, nebo budou fungovat přerušovaně. Z hlediska standardů IEEE se navrhuje řešit ochranu proti podvržení MAC adres například pomocí MACsec nebo 802.1X.
Co když nainstalujete MAC se sedmým nebo osmým bitem nastaveným na „1“, tzn. místní nebo vícesměrová adresa? S největší pravděpodobností tomu vaše síť nebude věnovat pozornost, ale formálně taková adresa nebude odpovídat standardu a je lepší to nedělat.
Jak funguje randomizace
Víme, že aby se zabránilo sledování pohybu lidí skenováním a shromažďováním rádiových vln, operační systémy MAC pro chytré telefony používají technologii randomizace již několik let. Teoreticky, při skenování rádiových vln při hledání známých sítí smartphone odešle paket (skupinu paketů) typu požadavku sondy 802.11 s MAC adresou jako zdrojem:

Povolená randomizace vám umožňuje specifikovat nikoli „sešitou“, ale nějakou jinou adresu zdroje paketu, která se mění s každým skenovacím cyklem, v průběhu času nebo jiným způsobem. Funguje to? Podívejme se na statistiku MAC adres shromážděných ze vzduchu takzvaným „Wi-Fi Radarem“:
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 úplně jiný.
8. bit prvního bytu MAC adresy stále odpovídá charakteru Unicast adresy SRC v paketu požadavku sondy.
7. bit je v 92.2 % případů nastaven na Local, tzn. S přiměřenou mírou spolehlivosti můžeme předpokládat, že přesně tolik shromážděných adres je náhodných a méně než 8 % je skutečných. V tomto případě se rozložení bitů v OUI pro takové reálné adresy přibližně shoduje s údaji v předchozí tabulce.
Který výrobce podle OUI vlastní náhodné adresy (tj. se 7. bitem v „1“)?
Výrobce od OUI
Sdílejte mezi všemi adresami
nenalezen v databázi IEEE
62.45%
Google Inc
37.54%
zbytek
0.01%
Navíc všechny náhodné adresy přiřazené Googlu patří do stejného OUI s předponou DA:A1:19. Co je to za předponu? Pojďme se podívat dovnitř .
private static final MacAddress BASE_GOOGLE_MAC = MacAddress.fromString("da:a1:19:0:0:0");Stock Android používá při vyhledávání bezdrátových sítí speciální, registrované OUI, jedno z mála s nastaveným sedmým bitem.
Vypočítejte skutečný MAC z náhodného
Podívejme se tam:
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;
}
Celá adresa nebo její spodní tři bajty jsou čisté Random.nextLong()„Patentovaná obnova skutečného MACu“ je podvod. S vysokou mírou jistoty lze očekávat, že výrobci AndroidV telefonech se používají i jiná, neregistrovaná OUI. Nemáme zdrojový kód iOS, ale je pravděpodobné, že se tam používá podobný algoritmus.
Výše uvedené neruší práci jiných mechanismů pro deanonymizaci Wi-Fi předplatitelů na základě analýzy dalších polí rámce požadavku sondy nebo korelace relativní frekvence požadavků odesílaných zařízením. Spolehlivé sledování předplatitele pomocí externích prostředků je však extrémně problematické. Shromážděná data budou vhodnější pro analýzu průměrného/špičkového zatížení podle místa a času, na základě velkých čísel, bez ohledu na konkrétní zařízení a osoby. Přesná data mají pouze ti „uvnitř“, samotní výrobci mobilních OS a nainstalované aplikace.
Co je nebezpečného na tom, že se někdo dozví MAC adresu vašeho zařízení? Útok typu „denial-of-service“ může být spuštěn v kabelových i bezdrátových sítích. U bezdrátového zařízení existuje také možnost, že bude detekována jeho přítomnost v místě senzoru. K zosobnění vašeho zařízení lze použít falešnou adresu, ale to bude fungovat pouze v případě, že nejsou zavedena další bezpečnostní opatření (autorizace a/nebo šifrování). 99.9% Lidé se tady nemají čeho bát.
MAC adresa je složitější, než se zdá, ale jednodušší, než by mohla být.
Zdroj: www.habr.com
