Alt du ville vite om MAC-adressen

Alt du ville vite om MAC-adressenAlle 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). er forlovet IEEE organisasjon. Faktisk kan lengden ikke bare være 3 byte (24 biter), men 28 eller 36 biter, fra hvilke blokker (MAC Address Block, MA) av adresser av typene Large (MA-L), Medium (MA-M) og Små dannes (MA-S) hhv. Størrelsen på den utstedte blokken, i dette tilfellet, vil være 24, 20, 12 biter eller 16 millioner, 1 million, 4 tusen adresser. Det er for tiden rundt 38 tusen blokker distribuert, de kan sees ved hjelp av en rekke nettbaserte verktøy, for eksempel IEEE eller Wireshark.

Hvem eier adressene?

Enkel behandling av offentlig tilgjengelig lossing av databaser IEEE gir ganske mye informasjon. For eksempel har noen organisasjoner tatt mange OUI-blokker for seg selv. Her er heltene våre:

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 ekstremt ujevnt fordelt; Det er gigantiske og underutnyttede blokker som eies av store selskaper og amerikanske offentlige etater, men med lite håp om å omfordele dem til de som trenger det. Spredningen av NAT, CG-NAT og IPv6 har gjort problemet med mangel på offentlige adresser mindre akutt.

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 WNAM. Adressene tilhører ekte enheter som er koblet til Wi-Fi over flere år i tre land. I tillegg er det en liten database med 802.3 kablede LAN-enheter.

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 (Wikipedia):
Alt du ville vite om MAC-adressen

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:

Alt du ville vite om MAC-adressen

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 Android-kilder.

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

Legg til en kommentar