Visi žino, kad šie šeši baitai, dažniausiai rodomi šešioliktainiu formatu, gamykloje yra priskirti tinklo plokštei ir atrodo atsitiktiniai. Kai kurie žmonės žino, kad pirmieji trys adreso baitai yra gamintojo ID, o likę trys baitai yra jiems priskirti. Taip pat žinoma, kad galite nustatyti patys savavališkas adresu. Daugelis žmonių yra girdėję apie „atsitiktinius adresus“ „Wi-Fi“.
Išsiaiškinkime, kas tai yra.
MAC adresas (medijos prieigos kontrolės adresas) yra unikalus identifikatorius, priskirtas tinklo adapteriui, naudojamas IEEE 802 standartų tinkluose, daugiausia Ethernet, Wi-Fi ir Bluetooth. Oficialiai jis vadinamas „EUI-48 tipo identifikatoriumi“. Iš pavadinimo akivaizdu, kad adresas yra 48 bitų ilgio, t.y. 6 baitai. Nėra visuotinai priimto adreso rašymo standarto (priešingai nei IPv4 adresas, kai oktetai visada atskiriami taškais. Paprastai rašoma kaip šeši šešioliktainiai skaičiai, atskirti dvitaškiu: 00:AB:CD:EF:11: 22, nors kai kurie įrangos gamintojai teikia pirmenybę žymėjimui 00 -AB-CD-EF-11-22 ir net 00ab.cdef.1122.
Anksčiau adresai buvo programuojami tinklo plokštės lustų rinkinio ROM atmintyje ir jų nebuvo galima keisti be „flash“ programuotojo, tačiau šiais laikais adresą galima pakeisti programiškai iš operacinės sistemos. Tinklo plokštės MAC adresą galite nustatyti rankiniu būdu Linux ir „MacOS“ (visada), Windows (beveik visada, jei vairuotojas leidžia), Android (tik su root teisėmis); su iOS (be root teisių) toks triukas neįmanomas.
Adreso struktūra
Adresą sudaro dalis gamintojo identifikatoriaus OUI ir gamintojo priskirtas identifikatorius. OUI (Organizationally Unique Identifier) identifikatorių priskyrimas IEEE organizacija. Tiesą sakant, jo ilgis gali būti ne tik 3 baitai (24 bitai), bet 28 arba 36 bitai, iš kurių blokuojami (MAC Address Block, MA) adresų tipai Large (MA-L), Medium (MA-M) ir Atitinkamai susidaro maži (MA-S). Išduodamo bloko dydis šiuo atveju bus 24, 20, 12 bitų arba 16 mln., 1 mln., 4 tūkst. adresų. Šiuo metu yra išplatinta apie 38 tūkstančiai blokų, juos galima peržiūrėti, pavyzdžiui, naudojant daugybę internetinių įrankių arba .
Kam priklauso adresai?
Lengvas viešai prieinamų duomenų apdorojimas IEEE suteikia gana daug informacijos. Pavyzdžiui, kai kurios organizacijos pasiėmė daug OUI blokų sau. Štai mūsų herojai:
Pardavėjas
Blokų/įrašų skaičius
Adresų skaičius, mln
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
Privatus
232
2704
"Texas Instruments"
212
3392
zte korporacija
198
3168
IEEE registracijos institucija
194
3072
"Hewlett Packard"
149
2384
Hon Hai Precision
136
2176
TP-LINK
134
2144
"Dell Inc."
123
1968
Juniper tinklai
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“ jų turi tik 40, ir tai nenuostabu: jie patys negamina daug tinklo įrenginių.
MA blokai nėra teikiami nemokamai, juos galima įsigyti už priimtiną kainą (be abonentinio mokesčio) atitinkamai už $ 3000, $ 1800 arba $ 755. Įdomu tai, kad už papildomus pinigus (per metus) galima įsigyti viešosios informacijos apie skirtą bloką „slėpimą“. Dabar jų yra 232, kaip matyti aukščiau.
Kada baigsis MAC adresai?
Visi esame pavargę nuo 10 metų besitęsiančių istorijų, kad „netrukus baigsis IPv4 adresai“. Taip, naujus IPv4 blokus gauti nebėra lengva. Yra žinoma, kad IP adresai ; Tačiau yra milžiniškų ir nepakankamai išnaudojamų blokų, priklausančių didelėms korporacijoms ir JAV vyriausybinėms agentūroms, tačiau mažai vilčių juos perskirstyti tiems, kuriems jos reikia. Dėl NAT, CG-NAT ir IPv6 paplitimo viešųjų adresų trūkumo problema tapo mažiau opi.
MAC adresas turi 48 bitus, iš kurių 46 gali būti laikomi „naudingais“ (kodėl? Skaitykite toliau), o tai suteikia 246 arba 1014 adresų, o tai yra 214 kartų daugiau nei IPv4 adresų erdvė.
Šiuo metu išplatinta maždaug pusė trilijono adresų arba tik 0.73 % visos apimties. Mums dar labai, labai toli, kad pritrūktų MAC adresų.
Atsitiktinumo bitai
Galima daryti prielaidą, kad OUI paskirstomos atsitiktinai, o pardavėjas taip pat atsitiktinai priskiria adresus atskiriems tinklo įrenginiams. Ar tai tiesa? Pažvelkime į bitų pasiskirstymą mano turimų 802.11 įrenginių MAC adresų duomenų bazėse, surinktų veikiančių autorizacijos sistemų belaidžiuose tinkluose. . Adresai priklauso tikriems įrenginiams, kurie per kelerius metus prisijungė prie „Wi-Fi“ trijose šalyse. Be to, yra nedidelė 802.3 laidinio LAN įrenginių duomenų bazė.
Išskaidykime kiekvieną kiekvieno pavyzdžio MAC adresą (šešis baitus) į bitus, baitą po baito, ir pažiūrėkime į „1“ bito atsiradimo dažnį kiekvienoje iš 48 pozicijų. Jei bitas nustatytas visiškai savavališkai, tada tikimybė gauti „1“ turėtų būti 50%.
„Wi-Fi“ pasirinkimas Nr. 1 (RF)
„Wi-Fi“ pavyzdys Nr. 2 (Baltarusija)
„Wi-Fi“ pasirinkimas Nr. 3 (Uzbekistanas)
LAN atranka (RF)
Įrašų skaičius duomenų bazėje
5929000
1274000
366000
1000
Bito numeris:
% 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%
Kodėl tokia neteisybė 7 ir 8 bituose? Beveik visada yra nuliai.
Iš tiesų, standartas apibrėžia šiuos bitus kaip specialius ():

Aštuntasis (nuo pradžios) pirmojo MAC adreso baito bitas vadinamas Unicast/Multicast bitu ir nustato, kokio tipo kadras (kadras) perduodamas šiuo adresu, įprastas (0) ar transliuojamas (1) (multicast arba transliacija). Normaliam unicast tinklo adapterio ryšiui šis bitas nustatomas į „0“ visuose jam siunčiamuose paketuose.
Septintasis (nuo pradžios) pirmojo MAC adreso baito bitas vadinamas U/L (Universal/Local) bitu ir nustato, ar adresas yra visuotinai unikalus (0), ar lokaliai unikalus (1). Pagal numatytuosius nustatymus visi „gamintojo susieti“ adresai yra unikalūs visame pasaulyje, todėl daugumoje surinktų MAC adresų yra septintasis bitas, nustatytas į „0“. Priskirtų OUI identifikatorių lentelėje tik apie 130 įrašų U/L bitas yra „1“, ir, matyt, tai yra specialių poreikių MAC adresų blokai.
Nuo šeštojo iki pirmojo pirmojo baito bitai, antrojo ir trečiojo baitų bitai OUI identifikatoriuose, o juo labiau 4-6 gamintojo priskirto adreso baitų bitai pasiskirsto daugmaž tolygiai. .
Taigi realiame tinklo adapterio MAC adresu bitai iš tikrųjų yra lygiaverčiai ir neturi jokios technologinės reikšmės, išskyrus du didelio baito aptarnavimo bitus.
Paplitimas
Įdomu, kurie belaidžio ryšio įrangos gamintojai yra populiariausi? Sujungkime paiešką OUI duomenų bazėje su duomenimis iš pavyzdžio Nr.
Pardavėjas
Įrenginių dalis, %
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 (mobilieji ryšiai)
2,76
ASUSTek COMPUTER INC.
2,58
TCT Mobile Ltd
2,13
zte korporacija
2,00
nerasta IEEE duomenų bazėje
1,92
Lenovo Mobile Communication Technology Ltd.
1,71
"HTC Corporation"
1,68
„Murata“ gamyba
1,31
InPro Comm
1,26
"Microsoft Corporation"
1,11
Shenzhen TINNO Mobile Technology Corp.
1,02
„Motorola“ (Uhanas) „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
Praktika rodo, kad kuo turtingesnis belaidžio tinklo abonentų kontingentas tam tikroje vietoje, tuo didesnė Apple įrenginių dalis.
Unikalumas
Ar MAC adresai yra unikalūs? Teoriškai taip, nes kiekvienas įrenginio gamintojas (MA bloko savininkas) privalo pateikti unikalų kiekvieno gaminamo tinklo adapterio adresą. Tačiau kai kurie lustų gamintojai, būtent:
- 00:0A:F5 Airgo Networks, Inc. (dabar „Qualcomm“)
- 00:08:22 „InPro Comm“ (dabar „MediaTek“)
paskutinius tris MAC adreso baitus nustatykite į atsitiktinį skaičių, matyt, po kiekvieno įrenginio perkrovimo. Tokių adresų mano pavyzdyje Nr.1 buvo 82 tūkst.
Žinoma, galite nustatyti sau svetimą, ne unikalų adresą, tikslingai nustatydami jį „kaip kaimyno“, identifikuodami su uostuku arba pasirinkdami atsitiktinai. Taip pat galima netyčia nustatyti sau neunikalią adresą, pavyzdžiui, atkuriant atsarginę maršrutizatoriaus, pvz., Mikrotik ar OpenWrt, konfigūraciją.
Kas nutiks, jei tinkle bus du įrenginiai su tuo pačiu MAC adresu? Viskas priklauso nuo tinklo įrangos (laidinio maršrutizatoriaus, belaidžio tinklo valdiklio) logikos. Labiausiai tikėtina, kad abu įrenginiai neveiks arba veiks su pertrūkiais. IEEE standartų požiūriu, apsaugą nuo MAC adresų klastojimo siūloma spręsti naudojant, pavyzdžiui, MACsec arba 802.1X.
Ką daryti, jei įdiegsite MAC, kurio septintas arba aštuntas bitas nustatytas į „1“, t.y. vietinis ar multicast adresas? Greičiausiai jūsų tinklas į tai nekreips dėmesio, tačiau formaliai toks adresas neatitiks standarto, ir geriau to nedaryti.
Kaip veikia atsitiktinis atranka
Žinome, kad siekiant užkirsti kelią žmonių judėjimo sekimui skenuojant ir renkant eterį, išmaniųjų telefonų MAC operacinės sistemos jau keletą metų naudoja atsitiktinės atrankos technologiją. Teoriškai, skenuodamas eterį, ieškodamas žinomų tinklų, išmanusis telefonas siunčia 802.11 zondo užklausos tipo paketą (paketų grupę) su MAC adresu kaip šaltiniu:

Įjungtas atsitiktinis atskyrimas leidžia nurodyti ne „susiūtą“, o kitą paketų šaltinio adresą, besikeičiantį su kiekvienu nuskaitymo ciklu, laikui bėgant ar kokiu nors kitu būdu. Ar tai veikia? Pažvelkime į MAC adresų statistiką, surinktą iš oro vadinamojo „Wi-Fi radaro“:
Visas pavyzdys
Mėginys tik su nuliu 7 bitu
Įrašų skaičius duomenų bazėje
3920000
305000
Bito numeris:
% 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%
Vaizdas visiškai kitoks.
8-asis MAC adreso pirmojo baito bitas vis dar atitinka SRC adreso Unicast pobūdį tyrimo užklausos pakete.
7-asis bitas 92.2% atvejų nustatomas į Local, t.y. Su dideliu pasitikėjimu galime daryti prielaidą, kad lygiai tiek daug surinktų adresų yra atsitiktinai suskirstyti ir mažiau nei 8% yra tikri. Tokiu atveju bitų pasiskirstymas OUI tokiems tikriems adresams maždaug sutampa su ankstesnės lentelės duomenimis.
Kuriam gamintojui, remiantis OUI, priklauso atsitiktiniai adresai (t. y. su 7 bitu „1“)?
Gamintojas OUI
Dalintis tarp visų adresų
nerasta IEEE duomenų bazėje
62.45%
"Google Inc."
37.54%
likusios
0.01%
Be to, visi atsitiktiniai Google priskirti adresai priklauso tai pačiai OUI su priešdėliu DA:A1:19. Kas yra šis priešdėlis? Pažiūrėkime .
private static final MacAddress BASE_GOOGLE_MAC = MacAddress.fromString("da:a1:19:0:0:0");„Stock Android“ ieškodama belaidžių tinklų naudoja specialią, registruotą OUI, vieną iš nedaugelio su septintuoju bitu.
Apskaičiuokite tikrąjį MAC iš atsitiktinio
Pažiūrėkime ten:
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;
}
Visas adresas arba trys jo apatiniai baitai yra gryni Atsitiktinis.nextLong()„Patentuotas tikro MAC kompiuterio atkūrimas“ yra apgaulė. Galima labai užtikrintai tikėtis, kad gamintojai AndroidTelefonuose taip pat naudojami kiti, neregistruoti OUI. Neturime „iOS“ šaltinio kodo, bet tikėtina, kad ten naudojamas panašus algoritmas.
Tai, kas išdėstyta aukščiau, nepanaikina kitų „Wi-Fi“ abonentų anonimiškumo panaikinimo mechanizmų, pagrįstų kitų zondavimo užklausų rėmo laukų analize arba santykinio įrenginio siunčiamų užklausų dažnio koreliacija. Tačiau patikimas abonento stebėjimas naudojant išorines priemones yra labai problemiškas. Surinkti duomenys bus tinkamesni analizuojant vidutinę / didžiausią apkrovą pagal vietą ir laiką, remiantis dideliais skaičiais, neatsižvelgiant į konkrečius įrenginius ir žmones. Tik „viduje“, patys mobiliųjų OS gamintojai ir įdiegtos programos turi tikslius duomenis.
Kuo pavojinga, jei kažkas sužinos jūsų įrenginio MAC adresą? Paslaugų teikimo trikdymo ataka gali būti paleista tiek laidiniuose, tiek belaidžiuose tinkluose. Belaidžio įrenginio atveju taip pat yra tikimybė, kad jo buvimas jutiklio vietoje gali būti aptiktas. Adreso klastojimas gali būti naudojamas apsimesti jūsų įrenginiu, tačiau tai veiks tik tuo atveju, jei nebus įdiegtos papildomos saugumo priemonės (autorizacija ir (arba) šifravimas). 99.9% Žmonės čia neturi dėl ko nerimauti.
MAC adresas yra sudėtingesnis nei atrodo, bet paprastesnis nei galėtų būti.
Šaltinis: www.habr.com
