Alla vet att dessa sex byte, vanligtvis visas i hexadecimalt format, är tilldelade nätverkskortet på fabriken och är till synes slumpmässiga. Vissa människor vet att de första tre byten av adressen är tillverkarens ID, och de återstående tre byten är tilldelade dem. Det är också känt att du kan ställa in själv godtycklig adress. Många har hört talas om "slumpmässiga adresser" i Wi-Fi.
Låt oss ta reda på vad det är.
MAC-adress (mediaåtkomstkontrolladress) är en unik identifierare som tilldelas en nätverksadapter, som används i nätverk med IEEE 802-standarder, främst Ethernet, Wi-Fi och Bluetooth. Officiellt kallas det "EUI-48-typidentifierare". Av namnet framgår att adressen är 48 bitar lång, d.v.s. 6 byte. Det finns ingen allmänt accepterad standard för att skriva en adress (till skillnad från en IPv4-adress, där oktetter alltid separeras med punkter). Det skrivs vanligtvis som sex hexadecimala tal separerade med ett kolon: 00:AB:CD:EF:11: 22, även om vissa utrustningstillverkare föredrar notationen 00 -AB-CD-EF-11-22 och till och med 00ab.cdef.1122.
Historiskt sett har adresser flashats in i ROM-minnet på nätverkskortets chipset utan möjlighet att modifiera dem utan en flash-programmerare, men nuförtiden kan adressen ändras programmatiskt från operativsystemet. Du kan manuellt ställa in MAC-adressen för ett nätverkskort i Linux och MacOS (alltid), Windows (nästan alltid, om drivrutinen tillåter), Android (endast rotat); Med iOS (utan root) är ett sådant trick omöjligt.
Adressstruktur
Adressen består av en del av tillverkarens identifierare, OUI, och en identifierare som tilldelats av tillverkaren. Tilldelning av OUI-identifierare (Organizationally Unique Identifier).
Vem äger adresserna?
Enkel bearbetning av allmänt tillgänglig
Säljare
Antal block/poster
Antal adresser, miljoner
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 bolag
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 Bredband 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 bara 40 av dem, och det är inte förvånande: de själva producerar inte många nätverksenheter.
MA-block tillhandahålls inte gratis, de kan köpas till ett rimligt pris (utan en prenumerationsavgift) för $3000, $1800 respektive $755. Intressant nog kan du för ytterligare pengar (per år) köpa "gömning" av offentlig information om det tilldelade blocket. Det finns nu 232 av dem, som kan ses ovan.
När tar vi slut på MAC-adresser?
Vi är alla ganska trötta på historierna som har pågått i 10 år om att "IPv4-adresser är på väg att ta slut." Ja, nya IPv4-block är inte längre lätta att få tag på. Det är känt att IP-adresser
En MAC-adress har 48 bitar, varav 46 kan anses vara "användbara" (varför? läs vidare), vilket ger 246 eller 1014 adresser, vilket är 214 gånger mer än IPv4-adressutrymmet.
För närvarande har ungefär en halv biljon adresser distribuerats, eller endast 0.73 % av den totala volymen. Vi är fortfarande väldigt, väldigt långt ifrån att få slut på MAC-adresser.
Slumpmässighet bitar
Det kan antas att OUI:erna distribueras slumpmässigt, och leverantören tilldelar då även slumpmässigt adresser till enskilda nätverksenheter. Är det så? Låt oss titta på fördelningen av bitar i databaserna med MAC-adresser för 802.11-enheter till mitt förfogande, insamlade av fungerande auktoriseringssystem i trådlösa nätverk
Låt oss dela upp varje MAC-adress (sex byte) för vart och ett av samplen i bitar, byte för byte, och titta på frekvensen av förekomsten av "1"-biten i var och en av de 48 positionerna. Om biten är inställd på ett helt godtyckligt sätt, bör sannolikheten att få en "1" vara 50%.
Wi-Fi val nr 1 (RF)
Wi-Fi-exempel nr 2 (Vitryssland)
Wi-Fi-val nr 3 (Uzbekistan)
LAN-sampling (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%
Varför sådan orättvisa i 7 och 8 bitar? Det finns nästan alltid nollor.
Faktum är att standarden definierar dessa bitar som speciella (
Den åttonde (från början) biten av den första byten av MAC-adressen kallas Unicast/Multicast-biten och bestämmer vilken typ av ram (ram) som sänds med denna adress, vanlig (0) eller broadcast (1) (multicast eller utsända). För normal kommunikation med unicast-nätverkskort är denna bit inställd på "0" i alla paket som skickas till den.
Den sjunde (från början) biten av den första byten av MAC-adressen kallas U/L-biten (Universal/Local) och bestämmer om adressen är globalt unik (0) eller lokalt unik (1). Som standard är alla "tillverkade"-adresser globalt unika, så den stora majoriteten av insamlade MAC-adresser innehåller den sjunde biten satt till "0". I tabellen över tilldelade OUI-identifierare har endast cirka 130 poster en U/L-bit på "1", och uppenbarligen är dessa block med MAC-adresser för särskilda behov.
Från den sjätte till den första biten av den första byten, bitarna i den andra och tredje byten i OUI-identifierarna, och ännu mer så är bitarna i de 4-6 byten i adressen som tilldelats av tillverkaren fördelade mer eller mindre jämnt .
Således, i den verkliga MAC-adressen för nätverksadaptern, är bitarna faktiskt ekvivalenta och har ingen teknisk betydelse, med undantag för två tjänstebitar av den höga byten.
prevalens
Undrar du vilka tillverkare av trådlös utrustning som är mest populära? Låt oss kombinera sökningen i OUI-databasen med data från prov nr 1.
Säljare
Andel enheter, %
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 (Mobilkommunikation)
2,76
ASUSTek COMPUTER INC.
2,58
TCT Mobile Ltd
2,13
zte bolag
2,00
hittades inte i IEEE-databasen
1,92
Lenovo Mobile Communication Technology Ltd.
1,71
HTC Corporation
1,68
Murata tillverkning
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
Praxis visar att ju mer välmående kontingenten av trådlösa nätverksabonnenter är på en viss plats, desto större andel av Apple-enheter.
unikhet
Är MAC-adresser unika? I teorin, ja, eftersom varje enhetstillverkare (MA-blockägare) måste tillhandahålla en unik adress för var och en av nätverksadaptrarna som den producerar. Vissa chiptillverkare, nämligen:
- 00:0A:F5 Airgo Networks, Inc. (nu Qualcomm)
- 00:08:22 InPro Comm (nu MediaTek)
ställ in de tre sista byten av MAC-adressen till ett slumpmässigt nummer, uppenbarligen efter varje omstart av enheten. Det fanns 1 tusen sådana adresser i mitt prov nr 82.
Du kan naturligtvis ange en främmande, icke-unik adress för dig själv genom att målmedvetet ställa in den "som din grannes", identifiera den med en sniffer eller välja den slumpmässigt. Det är också möjligt att av misstag ställa in en icke-unik adress till dig själv genom att till exempel återställa en backup-konfiguration av en router som Mikrotik eller OpenWrt.
Vad händer om det finns två enheter i nätverket med samma MAC-adress? Allt beror på logiken hos nätverksutrustningen (trådbunden router, trådlös nätverkskontroller). Mest troligt kommer båda enheterna antingen inte att fungera eller kommer att fungera intermittent. Ur IEEE-standardens synvinkel föreslås skydd mot MAC-adresspoofing lösas med till exempel MACsec eller 802.1X.
Vad händer om du installerar en MAC med den sjunde eller åttonde biten inställd på "1", dvs. lokal eller multicast-adress? Troligtvis kommer ditt nätverk inte att uppmärksamma detta, men formellt kommer en sådan adress inte att följa standarden, och det är bättre att inte göra det.
Hur randomisering fungerar
Vi vet att för att förhindra spårning av människors rörelser genom att skanna och samla in etervågor, har smartphone MAC-operativsystem använt randomiseringsteknik i flera år. Teoretiskt, när du skannar etervågorna på jakt efter kända nätverk, skickar smarttelefonen ett paket (grupp av paket) av typen 802.11 sondbegäran med MAC-adressen som källa:
Aktiverad randomisering låter dig ange inte den "sammanfogade" utan någon annan paketkälladress, som ändras med varje skanningscykel, över tid eller på annat sätt. Fungerar det? Låt oss titta på statistiken över MAC-adresser som samlats in från luften av den så kallade "Wi-Fi-radarn":
Hela provet
Sampla endast med noll 7:e 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%
Bilden är en helt annan.
Den 8:e biten av den första byten av MAC-adressen motsvarar fortfarande Unicast-naturen för SRC-adressen i sondbegäranspaketet.
Den 7:e biten är satt till Lokal i 92.2 % av fallen, dvs. Med en rimlig grad av tillförsikt kan vi anta att exakt så många av de insamlade adresserna är randomiserade, och mindre än 8% är verkliga. I detta fall sammanfaller fördelningen av bitar i OUI för sådana reella adresser ungefär med data i föregående tabell.
Vilken tillverkare, enligt OUI, äger de randomiserade adresserna (dvs med den 7:e biten i "1")?
Tillverkare av OUI
Dela bland alla adresser
hittades inte i IEEE-databasen
62.45%
Google Inc.
37.54%
resten
0.01%
Dessutom tillhör alla randomiserade adresser som tilldelats Google samma OUI med prefixet DA:A1:19. Vad är detta prefix? Låt oss titta in
private static final MacAddress BASE_GOOGLE_MAC = MacAddress.fromString("da:a1:19:0:0:0");
Stock Android använder en speciell, registrerad OUI när du söker efter trådlösa nätverk, en av få med den sjunde biten.
Beräkna riktig MAC från slumpmässig en
Låt oss se där:
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;
}
Hela adressen, eller dess nedre tre byte, är ren Random.nextLong(). "Proprietär återställning av riktig MAC" är en bluff. Med en hög grad av tillförsikt kan vi förvänta oss att Android-telefontillverkare använder andra, oregistrerade OUI. Vi har inte iOS-källkoden, men troligtvis används en liknande algoritm där.
Ovanstående avbryter inte arbetet med andra mekanismer för avanonymisering av Wi-Fi-abonnenter, baserat på analysen av andra fält i sökbegäransramen, eller korrelationen av den relativa frekvensen av förfrågningar som skickas av enheten. Att spåra en abonnent på ett tillförlitligt sätt med hjälp av externa medel är dock extremt problematiskt. Data som samlas in kommer att vara mer lämpade för att analysera medel-/topplast efter plats och tid, baserat på stora antal, utan hänvisning till specifika enheter och personer. Endast de "inuti", tillverkarna av mobiloperativsystem själva och installerade applikationer har korrekta data.
Vad kan vara farligt med att någon annan känner till din enhets MAC-adress? Denial of service-attacker kan startas för trådbundna och trådlösa nätverk. För en trådlös enhet är det dessutom med viss sannolikhet möjligt att registrera ögonblicket för dess utseende på den plats där sensorn är installerad. Genom att spoofa adressen kan du försöka "låtsas" att du är din enhet, vilket bara kan fungera om inga ytterligare säkerhetsåtgärder används (auktorisering och/eller kryptering). 99.9 % av människorna här har inget att oroa sig för.
MAC-adressen är mer komplicerad än den verkar, men enklare än den skulle kunna vara.
Källa: will.com