Alles wat jo witte woene oer it MAC-adres

Alles wat jo witte woene oer it MAC-adresEltsenien wit dat dizze seis bytes, meastal werjûn yn heksadesimale opmaak, wurde tawiisd oan de netwurk kaart op it fabryk, en binne skynber willekeurich. Guon minsken witte dat de earste trije bytes fan it adres binne de fabrikant ID, en de oerbleaune trije bytes wurde tawiisd oan harren. It is ek bekend dat jo sels ynstelle kinne willekeurich adres. In protte minsken hawwe heard oer "willekeurige adressen" yn Wi-Fi.

Litte wy útfine wat it is.

MAC-adres (adres foar media tagongskontrôle) is in unike identifier tawiisd oan in netwurkadapter, brûkt yn netwurken fan IEEE 802 noarmen, benammen Ethernet, Wi-Fi en Bluetooth. Offisjeel wurdt it de "EUI-48 type identifier" neamd. Ut de namme docht bliken dat it adres 48 bits lang is, d.w.s. 6 byts. D'r is gjin algemien akseptearre standert foar it skriuwen fan in adres (yn tsjinstelling ta in IPv4-adres, wêrby't oktetten altyd skieden wurde troch punten) It wurdt normaal skreaun as seis heksadesimale getallen skieden troch in kolon: 00:AB:CD:EF:11: 22, hoewol't guon apparatuer fabrikanten leaver de notaasje 00 -AB-CD-EF-11-22 en sels 00ab.cdef.1122.

Histoarysk waarden adressen yn 'e ROM fan' e netwurkkaart-chipset flitse sûnder de mooglikheid om se te feroarjen sûnder in flash-programmeur, mar tsjintwurdich kin it adres programmatysk feroare wurde fanút it bestjoeringssysteem. Jo kinne it MAC-adres fan in netwurkkaart manuell ynstelle yn Linux en MacOS (altyd), Windows (hast altyd, as de bestjoerder it talit), Android (allinich woartele); Mei iOS (sûnder root) is sa'n trúk ûnmooglik.

Adres struktuer

It adres bestiet út in diel fan de identifier fan 'e fabrikant, OUI, en in identifier tawiisd troch de fabrikant. Tawizing fan OUI (Organizationally Unique Identifier)-identifikaasjes beset IEEE organisaasje. Yn feite kin syn lingte net allinich 3 bytes (24 bits) wêze, mar 28 of 36 bits, wêrfan blokken (MAC Address Block, MA) adressen fan typen Large (MA-L), Medium (MA-M) en Lyts wurde respektivelik foarme (MA-S). De grutte fan it útjûne blok, yn dit gefal, sil 24, 20, 12 bits of 16 miljoen, 1 miljoen, 4 tûzen adressen wêze. D'r binne op it stuit sawat 38 tûzen blokken ferspraat, se kinne wurde besjoen mei ferskate online ark, bygelyks IEEE of Wireshark.

Wa hat de adressen?

Maklike ferwurking fan iepenbier beskikber it laden fan databases IEEE leveret nochal in soad ynformaasje. Guon organisaasjes hawwe bygelyks in protte OUI-blokken foar harsels nommen. Hjir binne ús helden:

Ferkeaper
Oantal blokken / records
Oantal adressen, miljoen

Cisco Systems Inc
888
14208

Appel
772
12352

Samsung
636
10144

Huawei Technologies Co.Ltd
606
9696

Intel Corporation
375
5776

Ynformaasje oer it bedriuw ARRIS Group Inc.
319
5104

Nokia Corporation
241
3856

private
232
2704

Texas Instruments
212
3392

zte Corporation
198
3168

IEEE Registraasje 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

Ien diel fan Fiberhome Telecommunication Technologies Co., Ltd. LTD
97
1552

De skiednis fan Xiaomi Communications Co., Ltd
88
1408

Guangdong Oppo Mobile Telecommunications Corp.Ltd
82
1312

Google hat mar 40 fan har, en dit is net ferrassend: se sels produsearje net in protte netwurkapparaten.

MA-blokken wurde net fergees levere, se kinne wurde kocht foar in ridlike priis (sûnder abonnemintskosten) foar respektivelik $3000, $1800 of $755. Ynteressant kinne jo foar ekstra jild (per jier) keapje "ferbergjen" fan iepenbiere ynformaasje oer it tawiisde blok. Dat binne der no 232 fan, sa't hjirboppe te sjen is.

Wannear sille wy út MAC-adressen rinne?

Wy binne allegear aardich wurch fan 'e ferhalen dy't al 10 jier geande binne dat "IPv4-adressen op it punt steane te rinnen." Ja, nije IPv4-blokken binne net mear maklik te krijen. It is bekend dat IP-adressen ekstreem ûngelyk ferdield; D'r binne gigantyske en ûnderbenutte blokken dy't eigendom binne fan grutte bedriuwen en Amerikaanske regearingsynstânsjes, lykwols, mei in bytsje hope om se te fersprieden oan dyjingen yn need. De proliferaasje fan NAT, CG-NAT en IPv6 hat it probleem fan in tekoart oan iepenbiere adressen minder akuut makke.

In MAC-adres hat 48 bits, wêrfan 46 kinne wurde beskôge as "nuttich" (wêrom? lês fierder), dat jout 246 of 1014 adressen, dat is 214 kear mear as de IPv4 adres romte.
Op it stuit binne sawat in heal triljoen adressen ferspraat, of mar 0.73% fan it totale folume. Wy binne noch heul, heul fier fan it rinnen fan MAC-adressen.

Randomness bits

It kin oannommen wurde dat de OUI's willekeurich ferdield wurde, en de ferkeaper jout dan ek willekeurich adressen oan yndividuele netwurkapparaten. Is it sa? Litte wy sjen nei de ferdieling fan bits yn 'e databases fan MAC-adressen fan 802.11-apparaten ta myn beskikking, sammele troch wurkjende autorisaasjesystemen yn draadloze netwurken WNAM. De adressen hearre ta echte apparaten dy't ferskate jierren ferbûn binne mei Wi-Fi yn trije lannen. Derneist is d'r in lytse databank fan 802.3 bedrade LAN-apparaten.

Litte wy elk MAC-adres (seis bytes) fan elk fan 'e samples brekke yn bits, byte foar byte, en sjoch nei de frekwinsje fan it foarkommen fan 'e "1" bit yn elk fan 'e 48 posysjes. As it bit op in folslein willekeurige manier ynsteld is, dan moat de kâns om in "1" te krijen 50% wêze.

Wi-Fi seleksje nr. 1 (RF)
Wi-Fi sample nr. 2 (Wyt-Ruslân)
Wi-Fi seleksje nr. 3 (Oezbekistan)
LAN sampling (RF)

Oantal records yn 'e databank
5929000
1274000
366000
1000

Bitnûmer:
% 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%

Wêrom sa'n ûnrjocht yn 7 en 8 bits? Der binne hast altyd nullen.

Yndie, de standert definiearret dizze bits as spesjale (Wikipedia):
Alles wat jo witte woene oer it MAC-adres

De achtste (fan it begjin ôf) bit fan 'e earste byte fan it MAC-adres wurdt de Unicast/Multicast-bit neamd en bepaalt hokker type frame (frame) wurdt ferstjoerd mei dit adres, reguliere (0) of útstjoering (1) (multicast of útstjoere). Foar normale, unicast netwurkadapterkommunikaasje is dit bit ynsteld op "0" yn alle pakketten dy't dernei stjoerd binne.

De sânde (fan it begjin ôf) bit fan 'e earste byte fan it MAC-adres wurdt de U/L (Universeel/Lokaal) bit neamd en bepaalt oft it adres globaal unyk is (0), of lokaal unyk (1). Standert binne alle "fabrikant-stikte" adressen wrâldwiid unyk, sadat de grutte mearderheid fan sammele MAC-adressen it sânde bit befettet op "0". Yn 'e tabel mei tawiisde OUI-identifikaasjes hawwe mar sawat 130 yngongen in U / L-bit fan "1", en blykber binne dit blokken fan MAC-adressen foar spesjale behoeften.

Fan 'e sechsde oant de earste bits fan' e earste byte, de bits fan 'e twadde en tredde bytes yn' e OUI-identifikaasjes, en noch mear, de bits yn 'e 4-6 bytes fan it adres tawiisd troch de fabrikant wurde min of mear gelyk ferdield .

Sa binne de bits yn it echte MAC-adres fan 'e netwurkadapter eins lykweardich en hawwe gjin technologyske betsjutting, mei útsûndering fan twa tsjinstbits fan 'e hege byte.

Prevalens

Benijd hokker fabrikanten fan draadloze apparatuer de populêrste binne? Litte wy it sykjen yn 'e OUI-database kombinearje mei de gegevens fan sample nûmer 1.

Ferkeaper
Oanpart fan apparaten, %

Appel
26,09

Samsung
19,79

Huawei Technologies Co. Ltd
7,80

De skiednis fan Xiaomi Communications Co., Ltd
6,83

Sony Mobile Communications Inc
3,29

LG Electronics (Mobyle Communications)
2,76

De bedriuw ASUSTek COMPUTER INC.
2,58

TCT Mobile Ltd
2,13

zte Corporation
2,00

net fûn yn de IEEE databank
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

De bedriuw Shanghai Wind Technologies Co., Ltd. Ltd
0,74

Lenovo Mobile Communication (Wuhan) Company Limited
0,71

Oefenjen lit sjen dat de wolfeartiger de kontingint fan draadloze netwurkabonnees op in bepaalde lokaasje, hoe grutter it oandiel fan Apple-apparaten.

Unykheid

Binne MAC-adressen unyk? Yn teory, ja, om't elke apparaatfabrikant (MA-blokeigner) ferplicht is om in unyk adres te jaan foar elk fan 'e netwurkadapters dy't it produsearret. Guon chipfabrikanten, nammentlik:

  • 00:0A:F5 Airgo Networks, Inc. (no Qualcomm)
  • 00:08:22 InPro Comm (no MediaTek)

set de lêste trije bytes fan it MAC-adres op in willekeurich getal, blykber nei elk apparaat trochstart. Der stiene 1 tûzen fan sokke adressen yn myn stekproef nr.

Jo kinne fansels foar josels in frjemd, net-unyk adres ynstelle troch it doelbewust yn te stellen "lykas dat fan jo buorman", it te identifisearjen mei in sniffer, of it willekeurich te kiezen. It is ek mooglik om josels per ûngelok in net-unyk adres yn te stellen troch bygelyks in reservekopykonfiguraasje fan in router lykas Mikrotik of OpenWrt te herstellen.

Wat bart der as der twa apparaten op it netwurk binne mei itselde MAC-adres? It alles hinget ôf fan de logika fan it netwurk apparatuer (wired router, Wireless netwurk controller). Meast wierskynlik, beide apparaten sille of net wurkje of sil wurkje tuskenskoften. Ut it eachpunt fan IEEE noarmen wurdt foarsteld beskerming tsjin MAC adres spoofing wurde oplost mei, bygelyks, MACsec of 802.1X.

Wat as jo ynstallearje in MAC mei de sânde of achtste bit ynsteld op "1", i.e. lokaal of multicast adres? Meast wierskynlik, jo netwurk sil net betelje omtinken oan dit, mar formeel sa'n adres sil net foldwaan oan de standert, en it is better net te dwaan.

Hoe randomisaasje wurket

Wy witte dat om it folgjen fan bewegingen fan minsken te foarkommen troch it scannen en sammeljen fan loftgolven, hawwe smartphone MAC-bestjoeringssystemen al ferskate jierren randomisaasjetechnology brûkt. Teoretysk, by it skennen fan de loftgolven op syk nei bekende netwurken, stjoert de smartphone in pakket (groep pakketten) fan it 802.11-probe-oanfraachtype mei it MAC-adres as de boarne:

Alles wat jo witte woene oer it MAC-adres

Ynskeakele randomisaasje lit jo net de "stikte" opjaan, mar in oar pakketboarneadres, feroarjend mei elke skennensyklus, oer de tiid, of op in oare manier. Wurket it? Litte wy sjen nei de statistiken fan MAC-adressen sammele út 'e loft troch de saneamde "Wi-Fi Radar":

Hiele stekproef
Sample allinne mei nul 7e bit

Oantal records yn 'e databank
3920000
305000

Bitnûmer:
% 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%

De foto is folslein oars.

It 8ste bit fan 'e earste byte fan it MAC-adres komt noch oerien mei de Unicast-aard fan it SRC-adres yn it probe-fersykpakket.

It 7e bit is yn 92.2% fan de gefallen op Lokaal ynsteld, d.w.s. Mei in reedlike graad fan fertrouwen kinne wy ​​oannimme dat krekt safolle fan 'e sammele adressen binne willekeurich, en minder as 8% binne echt. Yn dit gefal komt de ferdieling fan bits yn 'e OUI foar sokke echte adressen sawat oerien mei de gegevens yn' e foarige tabel.

Hokker fabrikant hat neffens de OUI de willekeurich adressen (dus mei it 7e bit yn "1")?

Fabrikant troch OUI
Diel ûnder alle adressen

net fûn yn de IEEE databank
62.45%

Google Inc.
37.54%

rêst
0.01%

Boppedat hearre alle randomisearre adressen dy't oan Google binne tawiisd oan deselde OUI mei it foarheaksel DA:A1:19. Wat is dit foarheaksel? Litte wy nei binnen sjen Android boarnen.

private static final MacAddress BASE_GOOGLE_MAC = MacAddress.fromString("da:a1:19:0:0:0");

Stock Android brûkt in spesjale, registrearre OUI by it sykjen nei draadloze netwurken, ien fan de pear mei de sânde bit set.

Berekkenje echte MAC út willekeurige ien

Litte wy dêr sjen:

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;
    }

It hiele adres, of syn ûnderste trije bytes, is suver Random.nextLong(). "Eigendomsherstel fan echte MAC" is in scam. Mei in hege graad fan fertrouwen kinne wy ​​​​ferwachtsje dat fabrikanten fan Android-tillefoanen oare, net registrearre OUI's brûke. Wy hawwe de iOS-boarnekoade net, mar wierskynlik wurdt dêr in ferlykber algoritme brûkt.

It boppesteande annulearret it wurk fan oare meganismen foar de-anonymisearjen fan Wi-Fi-abonnees net, basearre op 'e analyze fan oare fjilden fan it frame fan' e probe-oanfraach, of korrelaasje fan 'e relative frekwinsje fan oanfragen stjoerd troch it apparaat. It betrouber folgjen fan in abonnee mei eksterne middels is lykwols ekstreem problematysk. De sammele gegevens sille mear geskikt wêze foar it analysearjen fan gemiddelde / pyklast troch lokaasje en tiid, basearre op grutte oantallen, sûnder ferwizing nei spesifike apparaten en minsken. Allinnich dy "binnen", de fabrikanten fan mobile OS sels, en ynstalleare applikaasjes hawwe krekte gegevens.

Wat kin gefaarlik wêze as in oar it MAC-adres fan jo apparaat wit? Oanfallen foar ûntkenning fan tsjinst kinne wurde lansearre foar bedrade en draadloze netwurken. Foar in draadloare apparaat is it ek mei wat kâns mooglik om it momint fan syn uterlik op te nimmen op it plak dêr't de sensor is ynstalleare. Troch it adres te spoofen, kinne jo besykje "foar te dwaan" as jo apparaat, wat allinich kin wurkje as gjin ekstra feiligensmaatregels wurde brûkt (autorisaasje en/of fersifering). 99.9% fan de minsken hjir hawwe neat te soargen oer.

It MAC-adres is yngewikkelder dan it liket, mar ienfâldiger dan it koe wêze.

Boarne: www.habr.com

Add a comment