Alle vet at disse seks bytene, vanligvis vist i heksadesimalt format, er tilordnet nettverkskortet på fabrikken, og er tilsynelatende tilfeldige. Noen vet at de tre første bytene av adressen er produsentens ID, og de resterende tre bytene er tilordnet dem. Det er også kjent at du kan stille inn selv vilkårlig adresse. Mange har hørt om "tilfeldige adresser" i Wi-Fi.
La oss finne ut hva det er.
MAC-adresse (medietilgangskontrolladresse) er en unik identifikator som tildeles en nettverksadapter, brukt i nettverk med IEEE 802-standarder, hovedsakelig Ethernet, Wi-Fi og Bluetooth. Offisielt kalles det "EUI-48 type identifikator". Av navnet er det åpenbart at adressen er 48 biter lang, dvs. 6 byte. Det er ingen generelt akseptert standard for å skrive en adresse (i motsetning til en IPv4-adresse, hvor oktetter alltid er atskilt med prikker). Det skrives vanligvis som seks heksadesimale tall atskilt med et kolon: 00:AB:CD:EF:11: 22, selv om noen utstyrsprodusenter foretrekker notasjonen 00 -AB-CD-EF-11-22 og til og med 00ab.cdef.1122.
Historisk sett ble adresser flashet inn i ROM-en til nettverkskortbrikkesettet uten mulighet til å endre dem uten en flash-programmerer, men i dag kan adressen endres programmatisk fra operativsystemet. Du kan manuelt angi MAC-adressen til et nettverkskort i Linux og MacOS (alltid), Windows (nesten alltid, hvis driveren tillater det), Android (bare rotet); Med iOS (uten root) er et slikt triks umulig.
Adressestruktur
Adressen består av en del av produsentens identifikator, OUI, og en identifikator tildelt av produsenten. Tildeling av OUI-identifikatorer (Organizationally Unique Identifier).
Hvem eier adressene?
Enkel behandling av offentlig tilgjengelig
Leverandør
Antall blokker/poster
Antall adresser, millioner
Cisco Systems Inc
888
14208
eple
772
12352
Samsung
636
10144
Huawei Technologies Co.Ltd
606
9696
Intel Corporation
375
5776
ARRIS Group Inc.
319
5104
Nokia Corporation
241
3856
Privat
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 bredbånd 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 har bare 40 av dem, og dette er ikke overraskende: de produserer ikke mange nettverksenheter selv.
MA-blokker tilbys ikke gratis, de kan kjøpes til en rimelig pris (uten abonnementsavgift) for henholdsvis $3000, $1800 eller $755. Interessant nok, for ekstra penger (per år) kan du kjøpe "skjul" av offentlig informasjon om den tildelte blokken. Det er nå 232 av dem, som du kan se ovenfor.
Når går vi tom for MAC-adresser?
Vi er alle ganske lei av historiene som har pågått i 10 år om at "IPv4-adresser er i ferd med å gå tom." Ja, nye IPv4-blokker er ikke lenger enkle å få tak i. Det er kjent at IP-adresser
En MAC-adresse har 48 biter, hvorav 46 kan betraktes som "nyttige" (hvorfor? les videre), som gir 246 eller 1014 adresser, som er 214 ganger mer enn IPv4-adresseområdet.
For tiden er omtrent en halv trillion adresser distribuert, eller bare 0.73 % av det totale volumet. Vi er fortsatt veldig, veldig langt fra å gå tom for MAC-adresser.
Tilfeldighetsbiter
Det kan antas at OUI-ene distribueres tilfeldig, og leverandøren tildeler da også tilfeldig adresser til individuelle nettverksenheter. Er det sånn? La oss se på fordelingen av biter i databasene med MAC-adresser til 802.11-enheter til min disposisjon, samlet inn av fungerende autorisasjonssystemer i trådløse nettverk
La oss bryte ned hver MAC-adresse (seks byte) for hver av prøvene i biter, byte for byte, og se på frekvensen av forekomsten av "1"-biten i hver av de 48 posisjonene. Hvis biten er satt på en helt vilkårlig måte, bør sannsynligheten for å få en "1" være 50%.
Wi-Fi-valg nr. 1 (RF)
Wi-Fi-eksempel nr. 2 (Hviterussland)
Wi-Fi-valg nr. 3 (Usbekistan)
LAN-sampling (RF)
Antall poster i databasen
5929000
1274000
366000
1000
Bitnummer:
% 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%
Hvorfor slik urettferdighet i 7 og 8 biter? Det er nesten alltid nuller.
Faktisk definerer standarden disse bitene som spesielle (
Den åttende (fra begynnelsen) biten av den første byten til MAC-adressen kalles Unicast/Multicast-biten og bestemmer hvilken type ramme (ramme) som overføres med denne adressen, vanlig (0) eller kringkasting (1) (multicast eller kringkaste). For normal kommunikasjon med unicast-nettverkskort er denne biten satt til "0" i alle pakker som sendes til den.
Den syvende (fra begynnelsen) biten av den første byten til MAC-adressen kalles U/L (Universal/Local) bit og bestemmer om adressen er globalt unik (0), eller lokalt unik (1). Som standard er alle "produsentsydde" adresser globalt unike, så det store flertallet av innsamlede MAC-adresser inneholder den syvende biten satt til "0". I tabellen over tildelte OUI-identifikatorer har bare rundt 130 oppføringer en U/L-bit på "1", og tilsynelatende er dette blokker med MAC-adresser for spesielle behov.
Fra den sjette til den første biten av den første byten, bitene til den andre og tredje byten i OUI-identifikatorene, og enda mer, blir bitene i de 4-6 bytene til adressen tildelt av produsenten fordelt mer eller mindre jevnt .
Således, i den virkelige MAC-adressen til nettverksadapteren, er bitene faktisk ekvivalente og har ingen teknologisk betydning, med unntak av to tjenestebiter av den høye byten.
Utbredelse
Lurer du på hvilke produsenter av trådløst utstyr som er mest populære? La oss kombinere søket i OUI-databasen med dataene fra prøve nr. 1.
Leverandør
Andel enheter, %
eple
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 (mobilkommunikasjon)
2,76
ASUSTek COMPUTER INC.
2,58
TCT Mobile Ltd
2,13
zte corporation
2,00
ikke funnet i IEEE-databasen
1,92
Lenovo Mobile Communication Technology Ltd.
1,71
HTC Corporation
1,68
Murata Manufacturing
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
Praksis viser at jo mer velstående kontingenten av trådløse nettverksabonnenter på et gitt sted, jo større andel av Apple-enheter.
Unikhet
Er MAC-adresser unike? I teorien, ja, siden hver enhetsprodusent (MA-blokkeier) er pålagt å oppgi en unik adresse for hver av nettverkskortene den produserer. Noen brikkeprodusenter, nemlig:
- 00:0A:F5 Airgo Networks, Inc. (nå Qualcomm)
- 00:08:22 InPro Comm (nå MediaTek)
angi de tre siste bytene av MAC-adressen til et tilfeldig tall, tilsynelatende etter hver omstart av enheten. Det var 1 tusen slike adresser i min prøve nr. 82.
Du kan selvfølgelig angi en utenlandsk, ikke-unik adresse til deg selv ved å sette den målrettet "som din nabos", identifisere den med en sniffer eller velge den tilfeldig. Det er også mulig å ved et uhell sette deg selv en ikke-unik adresse ved for eksempel å gjenopprette en sikkerhetskopikonfigurasjon av en ruter som Mikrotik eller OpenWrt.
Hva vil skje hvis det er to enheter på nettverket med samme MAC-adresse? Alt avhenger av logikken til nettverksutstyret (kablet ruter, trådløs nettverkskontroller). Mest sannsynlig vil begge enhetene enten ikke fungere eller vil fungere av og til. Ut fra IEEE-standarder foreslås beskyttelse mot MAC-adresseforfalskning løst ved bruk av for eksempel MACsec eller 802.1X.
Hva om du installerer en MAC med den syvende eller åttende biten satt til "1", dvs. lokal eller multicast-adresse? Mest sannsynlig vil nettverket ditt ikke ta hensyn til dette, men formelt vil en slik adresse ikke være i samsvar med standarden, og det er bedre å ikke gjøre det.
Hvordan randomisering fungerer
Vi vet at for å forhindre sporing av folks bevegelser ved å skanne og samle eteren, har smarttelefon MAC-operativsystemer brukt randomiseringsteknologi i flere år. Teoretisk sett, når du skanner eteren på jakt etter kjente nettverk, sender smarttelefonen en pakke (gruppe av pakker) av 802.11-sondeforespørselstypen med MAC-adressen som kilde:
Aktivert randomisering lar deg spesifisere ikke den "sammensatte", men en annen pakkekildeadresse, som endres med hver skannesyklus, over tid eller på annen måte. Virker det? La oss se på statistikken over MAC-adresser samlet inn fra luften av den såkalte "Wi-Fi-radaren":
Hele prøven
Sample bare med null 7. bit
Antall poster i databasen
3920000
305000
Bitnummer:
% 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%
Bildet er et helt annet.
Den 8. biten av den første byten til MAC-adressen tilsvarer fortsatt Unicast-naturen til SRC-adressen i sondeforespørselspakken.
Den 7. biten er satt til Lokal i 92.2 % av tilfellene, dvs. Med en rimelig grad av sikkerhet kan vi anta at nøyaktig så mange av de innsamlede adressene er randomiserte, og mindre enn 8 % er reelle. I dette tilfellet faller fordelingen av biter i OUI for slike reelle adresser omtrent sammen med dataene i den foregående tabellen.
Hvilken produsent, ifølge OUI, eier de randomiserte adressene (dvs. med den 7. biten i "1")?
Produsent av OUI
Del blant alle adresser
ikke funnet i IEEE-databasen
62.45%
Google Inc.
37.54%
resten
0.01%
Dessuten tilhører alle randomiserte adresser som er tilordnet Google den samme OUI med prefikset DA:A1:19. Hva er dette prefikset? La oss se inn
private static final MacAddress BASE_GOOGLE_MAC = MacAddress.fromString("da:a1:19:0:0:0");
Stock Android bruker en spesiell, registrert OUI når du søker etter trådløse nettverk, en av få med det syvende bitsettet.
Beregn ekte MAC fra en tilfeldig
La oss se der:
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;
}
Hele adressen, eller dens tre nedre byte, er ren Random.nextLong(). "Proprietær gjenoppretting av ekte MAC" er en svindel. Med en høy grad av tillit kan vi forvente at produsenter av Android-telefoner bruker andre, uregistrerte OUI-er. Vi har ikke iOS-kildekoden, men mest sannsynlig brukes en lignende algoritme der.
Ovennevnte kansellerer ikke arbeidet til andre mekanismer for de-anonymisering av Wi-Fi-abonnenter, basert på analysen av andre felt i sondeforespørselsrammen, eller korrelasjon av den relative frekvensen av forespørsler sendt av enheten. Pålitelig sporing av en abonnent ved hjelp av eksterne midler er imidlertid ekstremt problematisk. Dataene som samles inn vil være mer egnet for å analysere gjennomsnittlig/topplast etter sted og tid, basert på store tall, uten referanse til spesifikke enheter og personer. Bare de "inne", produsentene av mobile OS selv og installerte applikasjoner har nøyaktige data.
Hva kan være farlig med at noen andre kjenner enhetens MAC-adresse? Denial of service-angrep kan startes for kablede og trådløse nettverk. For en trådløs enhet er det dessuten med en viss sannsynlighet mulig å registrere øyeblikket for dens utseende på stedet der sensoren er installert. Ved å forfalske adressen kan du prøve å "late som" du er enheten din, som bare kan fungere hvis ingen ekstra sikkerhetstiltak brukes (autorisasjon og/eller kryptering). 99.9 % av folk her har ingenting å bekymre seg for.
MAC-adressen er mer komplisert enn den ser ut til, men enklere enn den kunne vært.
Kilde: www.habr.com