Alle ved, at de seks bytes, som normalt vises i hexadecimalt format, er tildelt netværkskortet fra fabrikken og virker ved første øjekast tilfældige. Nogle ved, at de første tre bytes af adressen er producentens identifikator, mens de øvrige tre bytes er tildelt dem. Det er også kendt, at man kan tildele sig selv en vilkårlig adresse. Mange har også hørt om "tilfældige adresser" i Wi-Fi.
Lad os finde ud af, hvad det er.
MAC-adressen (media access control address) er en unik identifikator, der er tildelt et netværksinterface og anvendes i netværk under IEEE 802-standarder, hovedsageligt Ethernet, Wi-Fi og Bluetooth. Den kaldes officielt "enhedstypen EUI-48". Som navnet antyder, har adressen en længde på 48 bits, dvs. 6 bytes. Der er ikke nogen almen standard for, hvordan adressen skrives (i modsætning til IPv4-adressen, hvor oktetter altid adskilles med punkter). Normalt skrives den som seks hexadecimale tal adskilt af kolon: 00:AB:CD:EF:11:22, selvom nogle hardwareproducenter foretrækker formater som 00-AB-CD-EF-11-22 eller endda 00ab.cdef.1122.
Historisk set blev adresser indlæst i ROM i chipsetet på netværkskortet uden mulighed for at ændre dem uden en flash-programmør, men i dag kan adressen ændres softwaremæssigt fra operativsystemet. Det er muligt at indstille MAC-adressen manuelt i Linux og MacOS (altid), Windows (næsten altid, hvis driveren tillader det), Android (kun roote); for iOS (uden root) er lignende tricks umulige.
Adressernes struktur
Adressen består af en del med producentens identifikator, OUI, og en identifikator tildelt af producenten. Identifikatorerne OUI (Organizationally Unique Identifier) tildeles af IEEE. Faktisk kan længden godt være mere end 3 bytes (24 bits), op til 28 eller 36 bits, som danner blokke (MAC Address Block, MA) af adresser af typerne Large (MA-L), Medium (MA-M) og Small (MA-S). Størrelsen af den tildelte blok vil i så tilfælde være 24, 20, 12 bits eller henholdsvis 16 millioner, 1 million, 4000 adresser. I øjeblikket er der tildelt cirka 38 tusinde blokke, som kan findes ved hjælp af forskellige online værktøjer, for eksempel ved eller .
Hvem ejer adresserne
En enkel behandling af den offentligt tilgængelige fra IEEE giver en hel del information. For eksempel har nogle organisationer taget mange OUI-blokke. Her er vores helte:
Leverandør
Antal blokke/poster
Antal adresser, i millioner.
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
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 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 har kun 40, og det er ikke overraskende: de producerer ikke så mange netværksenheder selv.
MA-blokke tilbydes ikke gratis; de kan købes til en rimelig pris (uden abonnementsgebyr) for $3000, $1800 eller $755 henholdsvis. Interessant nok kan man for ekstra penge (om året) købe 'skjul' af offentlig information om den tildelte blok. Der er i øjeblikket 232, som det fremgår ovenfor.
Hvornår vil MAC-adresserne løbe tør?
Vi er alle ret trætte af de vedholdende historier om, at 'IPv4-adresser snart vil være udsolgt'. Ja, det er allerede svært at få nye IPv4-blokke. Det er dog kendt, at IP-adresser ; der findes gigantiske og lidt brugte blokke, der tilhører store virksomheder og statslige institutioner i USA, men der er ikke meget håb om, at de vil blive omfordelt til dem, der har brug for det. Udbredelsen af NAT, CG-NAT og IPv6 har gjort problemet med mangel på offentlige adresser mindre presserende.
I MAC-adressen er der 48 bits, hvoraf 46 kan betragtes som 'brugbare' (hvorfor? Læs videre), hvilket giver 246 eller 1014 adresser, hvilket er 214 gange større end IPv4-adresserummet.
I øjeblikket er der tildelt cirka en halv billion adresser, eller kun 0.73% af det samlede volumen. Der er endnu meget, meget langt til udtømningen af MAC-adresser.
Tilfældighed af bits
Man kan antage, at OUI er tilfældigt fordelt, og at leverandøren derefter også tilfældigt tildeler adresser til individuelle netværksenheder. Er det sandt? Lad os se på fordelingen af bits i de MAC-adresser, jeg har til rådighed for 802.11-enheder, som er blevet indsamlet af fungerende autorisationssystemer i trådløse netværk. . Adresserne tilhører rigtige enheder, der har været tilsluttet Wi-Fi i flere år i tre lande. Derudover er der en lille database af 802.3-enheder i kabelbaserede netværk.
Vi vil opdele hver MAC-adresse (seks bytes) fra hver af prøverne i bits byte for byte, og se på hyppigheden af '1'-bit i hver af de 48 positioner. Hvis bittene er indstillet helt vilkårligt, bør sandsynligheden for at få '1' være 50%.
Wi-Fi-prøver nr. 1 (Rusland)
Wi-Fi-prøver nr. 2 (Hviderusland)
Wi-Fi-prøver nr. 3 (Usbekistan)
LAN-udvalg (RF)
Antal 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 er der sådan uretfærdighed i 7. og 8. bit? Der er næsten altid nuller.
Sandt nok definerer standarden disse bits som specielle ():

Den ottende (fra starten) bit i den første byte af MAC-adressen kaldes Unicast/Multicast bit og bestemmer, hvilken type ramme (frame) der sendes med denne adresse, enten normal (0) eller broadcast (1) (multicast eller broadcast). For normal, unicast interaktion fra netværksadapteren, er denne bit sat til «0» i alle pakker, der sendes.
Den syvende (fra starten) bit i den første byte af MAC-adressen kaldes U/L (Universal/Local) bit og bestemmer, om adressen er globalt unik (0) eller lokalt unik (1). Som standard er alle «fabriksindstillede» adresser globalt unikke, så flertallet af tildelte MAC-adresser har den syvende bit sat til «0». I OUI-registreringsdatabasen har kun omkring 130 poster U/L bit «1», som tilsyneladende er blokke af MAC-adresser til særlige formål.
Fra sjette til første bit i den første byte, samt bitene i anden og tredje byte i OUI-identifikatorer, og ikke mindst bitene i 4.-6. byte af adressen, som tildeles af producenten, er mere eller mindre jævnt fordelt.
Dermed er bits i en faktisk MAC-adresse for netværksadapteren i praksis ensartede og bærer ikke teknologisk betydning, bortset fra to kontrolbits i den høje byte.
Udbredelse
Det er interessant at se, hvilke producenter af trådløs udstyr der er mest populære? Lad os kombinere søgningen i OUI-databasen med data fra udvalget nr. 1.
Leverandør
Andel af enheder, %
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
ikke fundet i IEEE-databasen
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
Praksis viser, at jo mere velhavende kontingentet af abonnenterne i dette område er, jo større andel af enhederne er Apple.
Unikhed
Er MAC-adresser unikke? I teorien ja, da hver producent af enheder (ejer af MAC-blokken) er forpligtet til at sikre en unik adresse for hver af de netværksadaptere, de producerer. Men nogle chipproducenter, specifikt:
- 00:0A:F5 Airgo Networks, Inc. (nu Qualcomm)
- 00:08:22 InPro Comm (nu MediaTek)
udstiller de sidste tre byte af MAC-adressen som et tilfældigt tal, sandsynligvis efter hver genstart af enheden. I min prøve findes der 82.000 sådanne adresser.
Man kan selvfølgelig tildele sig en andens, ikke unik adresse ved målrettet at indstille "som naboen", ved at identificere den med en sniffer, eller vælge en tilfældig. Det er også muligt ved et uheld at få en ikke-unik adresse ved for eksempel at gendanne en backupkonfiguration fra en router som Mikrotik eller OpenWrt.
Hvad sker der, hvis der er to enheder i netværket med samme MAC-adresse? Det afhænger af logikken i det netværksudstyr (kablet router, kontroler for trådløst netværk). Sandsynligvis vil begge enheder enten ikke fungere, eller de vil fungere med afbrydelser. Ud fra IEEE-standarderne foreslås det at løse beskyttelsen mod forgiftning af MAC-adresser ved hjælp af for eksempel MACsec eller 802.1X.
Hvad hvis man sætter en MAC med den syvende eller ottende bit sat til „1”, dvs. en lokal eller multicast-adresse? Sandsynligvis vil dit netværk ikke lægge mærke til det, men formelt set vil en sådan adresse ikke være i overensstemmelse med standarden, og det er bedre ikke at gøre det.
Hvordan fungerer randomisering
Vi ved, at smartphones i flere år har anvendt randomiseringsteknologi for at forhindre sporing af bevægelser ved scanning af radiofrekvenser og indsamling af MAC-adresser. Teoretisk set sender en smartphone en pakke (gruppe af pakker) af typen 802.11 probe request med MAC-adressen som kilde under scanning af radiofrekvenser efter kendte netværk:

Tændt randomisering muliggør at angive ikke den „indbyggede”, men en anden kildeadresse, der ændres ved hver scanning cyklus, over tid eller på anden måde. Virker det? Lad os se på statistikken over de indsamlede MAC-adresser fra radiofrekvenserne, såkaldt „Wi-Fi Radar”:
Hele udvalget
Udvalget kun med nul i den 7. bit
Antal 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%
Billedet er helt anderledes.
Den 8. bit i den første byte af MAC-adressen svarer stadig til unicast-naturen af SRC-adressen i probe request-pakken.
Den 7. bit er i 92,2% af tilfældene sat til Local, dvs. med stor sikkerhed kan man antage, at så mange indsamlede adresser tilhører de randomiserede, og mindre end 8% tilhører de virkelige. Samtidig svarer fordelingen af bit i OUI for sådanne virkelige adresser omtrent til dataene i den foregående tabel.
Hvilken producent, ifølge OUI, tilhører de randomiserede adresser (dvs. med 7. bit sat til «1»)?
Producent ifølge OUI
Andel blandt alle adresser
ikke fundet i IEEE-databasen
62.45%
Google Inc.
37.54%
andre
0.01%
Samtidig tilhører alle randomiserede adresser, der henvises til Google, en enkelt OUI med præfiks DA:A1:19. Hvad er dette præfiks? Lad os kigge i .
private static final MacAddress BASE_GOOGLE_MAC = MacAddress.fromString("da:a1:19:0:0:0");Standard Android bruger et registreret OUI, en af de få, der har den syvende bit sat.
Beregn den virkelige MAC fra en tilfældig
Lad os kigge der samme:
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;
}
Adressen som helhed, eller dens lavere tre bytes, er ren Random.nextLong(). "Patenteret genopretning af den virkelige MAC" er svindel. Med stor sandsynlighed kan man forvente, at producenterne af Android-telefoner også anvender andre, ikke-registrerede OUI. Vi har ikke kildekoden til iOS, men sandsynligvis anvendes der en lignende algoritme.
Det ovenstående annullerer ikke arbejdet med andre mekanismer til de-anonymisering af Wi-Fi-abonnenter, baseret på analyse af andre felter i probe request-rammen, eller korrelation af den relative hyppighed af forespørgsler sendt af enheden. Det er imidlertid ekstremt problematisk at spore abonnenten med eksterne midler. De indsamlede data er bedre egnet til analyse af gennemsnits-/spidsbelastning efter placering og tid, baseret på store tal, uden forbindelse til specifikke enheder eller personer. Nøjagtige data findes kun hos dem, der er "inde i", hos selve producenterne af mobile operativsystemer, hos installerede applikationer.
Hvad kan være farligt ved, at nogen anden kender MAC-adressen på din enhed? For både kablede og trådløse netværk kan der organiseres en "denial of service"-angreb. For en trådløs enhed kan man også med en vis sandsynlighed registrere øjeblikket, hvor man befinder sig i området, hvor sensoren er installeret. Ved at udskifte adressen kan man forsøge at "udgive sig for" at være din enhed, hvilket kun kan lykkes, hvis der ikke anvendes yderligere beskyttelsesmidler (autorisation og/eller kryptering). 99,9% af folk her har ikke noget at bekymre sig om.
MAC-adressen er mere kompleks, end den ser ud, men lettere end den kunne have været.
Kilde: habr.com
