Tuttu ciò chì vulete sapè di l'indirizzu MAC

Tuttu ciò chì vulete sapè di l'indirizzu MACTuttu u mondu sapi chì sti sei byte, di solitu affissati in formatu esadecimale, sò attribuiti à a carta di rete in a fabbrica, è sò apparentemente casuali. Qualchidunu sapemu chì i primi trè byte di l'indirizzu sò l'ID di u fabricatore, è i trè byte restante sò attribuiti à elli. Hè cunnisciutu ancu chì pudete stabilisce sè stessu arbitraria indirizzu. Parechje persone anu intesu parlà di "indirizzi casuali" in Wi-Fi.

Scupritemu ciò chì hè.

L'indirizzu MAC (indirizzu di cuntrollu di l'accessu à i media) hè un identificatore unicu assignatu à un adattatore di rete, utilizatu in e rete di standard IEEE 802, principalmente Ethernet, Wi-Fi è Bluetooth. Ufficialmente hè chjamatu "identificatore di tipu EUI-48". Da u nome hè evidenti chì l'indirizzu hè 48 bits long, i.e. 6 bytes. Ùn ci hè micca un standard generalmente accettatu per scrive un indirizzu (in uppusizione à un indirizzu IPv4, induve l'ottetti sò sempre siparati da punti). Di solitu hè scrittu cum'è sei numeri esadecimali separati da dui punti: 00:AB:CD:EF:11: 22, ancu s'è certi pruduttori di l'equipaggiu preferiscenu a notazione 00 -AB-CD-EF-11-22 è ancu 00ab.cdef.1122.

Stòricamente, l'indirizzi sò stati lampati in a ROM di u chipset di a carta di rete senza a capacità di mudificà senza un programatore flash, ma oghje l'indirizzu pò esse cambiatu in modu programmaticu da u sistema operatore. Pudete stabilisce manualmente l'indirizzu MAC di una carta di rete in Linux è MacOS (sempre), Windows (quasi sempre, se u driver permette), Android (solu rooted); Cù iOS (senza root) un tali truccu hè impussibile.

Struttura di indirizzu

L'indirizzu hè custituitu da parte di l'identificatore di u fabricatore, OUI, è un identificatore assignatu da u fabricatore. Assegnazione di identificatori OUI (identificatore unicu di l'urganizazione). impegnatu in urganizazione IEEE. In fatti, a so lunghezza pò esse micca solu 3 bytes (24 bits), ma 28 o 36 bits, da quali blocchi (MAC Address Block, MA) di indirizzi di tipi Large (MA-L), Medium (MA-M) è Small sò furmati (MA-S) rispettivamente. A dimensione di u bloccu emessu, in questu casu, serà 24, 20, 12 bits o 16 milioni, 1 milioni, 4 mila indirizzi. Ci sò attualmente circa 38 mila blocchi distribuiti, ponu esse vistu cù numerosi strumenti in linea, per esempiu IEEE o Wireshark.

Quale hè u pruprietariu di l'indirizzi ?

Trattamentu faciule di dispunibule publicamente scaricamentu di basa di dati IEEE furnisce assai infurmazione. Per esempiu, certi urganisazione anu pigliatu assai blocchi OUI per elli. Eccu i nostri eroi:

Venditore
Numaru di blocchi / records
Numeru di indirizzi, milioni

Cisco Systems Inc
888
14208

Apple
772
12352

Samsung
636
10144

Huawei Technologies Co.Ltd
606
9696

intel Corporation
375
5776

L'impresa ARRIS Group Inc.
319
5104

Nokia Corporation
241
3856

Private
232
2704

Texas instruments
212
3392

zte Corporation
198
3168

Autorità di registrazione IEEE
194
3072

Hewlett Packard
149
2384

Hon Hai Precisione
136
2176

TP-LINK
134
2144

Dell Inc.
123
1968

Reti di Ghjineppu
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 hà solu 40 d'elli, è questu ùn hè micca surprisante: elli stessi ùn pruduceranu assai dispositi di rete.

I blocchi MA ùn sò micca furniti gratuitamente, ponu esse acquistati per un prezzu raghjone (senza una tarifa di abbonamentu) per $ 3000, $ 1800 o $ 755, rispettivamente. Curiosamente, per soldi supplementu (per annu) pudete cumprà "oculta" di l'infurmazioni publica nantu à u bloccu attribuitu. Ci sò avà 232 di elli, cum'è si pò vede sopra.

Quandu seremu senza l'indirizzi MAC?

Semu tutti abbastanza stanchi di e storie chì sò andate dapoi 10 anni chì "l'indirizzi IPv4 sò per esse esauriti". Iè, i novi blocchi IPv4 ùn sò più faciuli di ottene. Hè cunnisciutu chì l'indirizzi IP distribuite in maniera estremamente irregolare; Ci sò blocchi giganti è sottoutilizati chì appartene à e grandi corporazioni è l'agenzii di u guvernu americanu, in ogni modu, cù poca speranza di ridistribuirli à quelli chì anu bisognu. A proliferazione di NAT, CG-NAT è IPv6 hà fattu u prublema di una carenza di indirizzi publichi menu agutu.

Un indirizzu MAC hà 48 bits, di i quali 46 pò esse cunsideratu "utile" (perchè? Leghjite), chì dà 246 o 1014 indirizzi, chì hè 214 volte più di l'indirizzu IPv4.
Attualmente, circa a mità di trilioni di indirizzi sò stati distribuiti, o solu 0.73% di u voluminu tutale. Semu sempre assai, assai luntanu da esce da l'indirizzi MAC.

Pezzi di casualità

Pò esse presumitu chì l'OUI sò distribuiti in modu aleatoriu, è u vinditore poi assigna in modu aleatoriu l'indirizzi à i dispositi di rete individuali. Hè cusì ? Fighjemu a distribuzione di bits in a basa di dati di l'indirizzi MAC di i dispositi 802.11 à a mo dispusizione, recullati da i sistemi d'autorizazione di travagliu in rete wireless. WNAM. L'indirizzi appartenenu à i dispositi veri chì sò cunnessi à Wi-Fi per parechji anni in trè paesi. Inoltre, ci hè una piccula basa di dati di i dispositi LAN cablati 802.3.

Scupritemu ogni indirizzu MAC (sei byte) di ognuna di i campioni in bit, byte per byte, è fighjemu a frequenza di l'occurrence di u bit "1" in ognuna di e 48 pusizioni. Se u bit hè stabilitu in una manera completamente arbitraria, allora a probabilità di ottene un "1" deve esse 50%.

Selezzione Wi-Fi No. 1 (RF)
Esempiu Wi-Fi N ° 2 (Bielorussia)
Selezzione Wi-Fi No. 3 (Uzbekistan)
campionamentu LAN (RF)

U numeru di registri in a basa di dati
5929000
1274000
366000
1000

numeru di bit:
% 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%

Perchè cusì inghjustizia in 7 è 8 bits? Ci sò quasi sempre zeri.

Infatti, u standard definisce questi bit cum'è speciali (Wikipedia):
Tuttu ciò chì vulete sapè di l'indirizzu MAC

L'ottu (da u principiu) bit di u primu byte di l'indirizzu MAC hè chjamatu u bit Unicast/Multicast è determina quale tipu di frame (frame) hè trasmessu cù questu indirizzu, regularmente (0) o broadcast (1) (multicast o multicast). trasmissione). Per a cumunicazione normale di l'adattatore di rete unicast, stu bit hè stabilitu à "0" in tutti i pacchetti mandati.

U settimu (da u principiu) bit di u primu byte di l'indirizzu MAC hè chjamatu U / L (Universal / Local) bit è determina se l'indirizzu hè unicu globalmente (0), o unicu locale (1). Per automaticamente, tutti l'indirizzi "cuciti da u fabricatore" sò unichi in u mondu, cusì a maiò parte di l'indirizzi MAC raccolti cuntenenu u settimu bit impostatu à "0". In a tabella di l'identificatori OUI assignati, solu circa 130 entrate anu un bit U/L di "1", è apparentemente questi sò blocchi di indirizzi MAC per bisogni speciali.

Da u sestu à i primi bits di u primu byte, i bits di u sicondu è u terzu byte in l'identificatori OUI, è ancu di più i bits in i 4-6 bytes di l'indirizzu assignatu da u fabricatore sò distribuiti più o menu uniforme. .

Cusì, in l'indirizzu MAC reale di l'adattatore di a rete, i bits sò veramente equivalenti è ùn anu micca significatu tecnologicu, cù l'eccezzioni di dui bits di serviziu di l'altu byte.

Prevalenza

Vi dumandate chì i fabricatori di l'equipaggiu wireless sò i più populari? Cumbinemu a ricerca in a basa di dati OUI cù e dati da l'esempiu N ° 1.

Venditore
Parte di i dispositi, %

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 (comunicazione mobile)
2,76

ASUSTek COMPUTER INC.
2,58

TCT Mobile Ltd
2,13

zte Corporation
2,00

micca trovu in a basa di dati IEEE
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

A pratica mostra chì u più prusperu u contingente di abbonati di a rete wireless in un locu determinatu, più grande hè a parte di i dispositi Apple.

Unicitati

L'indirizzi MAC sò unichi? In teoria, iè, postu chì ogni fabricatore di u dispositivu (proprietariu di bloccu MA) hè obligatu à furnisce un indirizzu unicu per ognunu di l'adattatori di rete chì pruduce. Tuttavia, certi pruduttori di chip, à dì:

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

stabilisce l'ultimi trè byte di l'indirizzu MAC à un numeru aleatoriu, apparentemente dopu à ogni reboot di u dispusitivu. Ci era 1 mila tali indirizzi in u mo sample No 82.

Pudete, sicuru, stabilisce un indirizzu straneru, micca unicu, mettendu apposta "cum'è u vostru vicinu", identificendu cù un sniffer, o scegliendu à l'aleatoriu. Hè ancu pussibule di stabilisce accidentalmente un indirizzu micca unicu, per esempiu, restaurà una cunfigurazione di salvezza di un router cum'è Mikrotik o OpenWrt.

Cosa succede s'ellu ci sò dui dispusitivi nantu à a reta cù u listessu indirizzu MAC? Tuttu dipende di a logica di l'equipaggiu di rete (router wired, controller wireless network). Hè assai prubabile, i dui dispositi ùn anu micca travagliatu o travaglianu intermittenti. Da u puntu di vista di i normi IEEE, a prutezzione contra a spoofing di l'indirizzu MAC hè pruposta per esse risolta usendu, per esempiu, MACsec o 802.1X.

Chì s'ellu installate un MAC cù u settimu o l'ottu bit pusatu à "1", i.e. indirizzu locale o multicast? Hè assai prubabile, a vostra reta ùn fate micca attente à questu, ma formalmente un tali indirizzu ùn hà micca rispettu à u standard, è hè megliu micca fà.

Cumu funziona a randomizazione

Sapemu chì per impediscenu u seguimentu di i muvimenti di e persone scannendu è raccoglie l'onde, i sistemi operativi MAC di smartphones utilizanu a tecnulugia di randomizazione per parechji anni. Teoricamente, quandu scanne l'onda in cerca di rete cunnisciute, u smartphone manda un pacchettu (gruppu di pacchetti) di u tipu di dumanda di sonda 802.11 cù l'indirizzu MAC cum'è fonte:

Tuttu ciò chì vulete sapè di l'indirizzu MAC

A randomizazione attivata permette di specificà micca u "cucitu", ma qualchì altru indirizzu di fonte di pacchettu, cambiendu cù ogni ciculu di scanning, cù u tempu, o in qualchì altru modu. Funziona ? Fighjemu e statistiche di l'indirizzi MAC raccolti da l'aria da u chjamatu "Radar Wi-Fi":

Campione tutale
Sample solu cù zero 7th bit

U numeru di registri in a basa di dati
3920000
305000

numeru di bit:
% 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%

U ritrattu hè cumplitamenti differente.

U 8th bit di u primu byte di l'indirizzu MAC currisponde sempre à a natura Unicast di l'indirizzu SRC in u pacchettu di dumanda di sonda.

U 7u ​​bit hè stabilitu à Local in u 92.2% di i casi, i.e. Cù un bonu gradu di cunfidenza, pudemu assume chì esattamente tanti indirizzi cullati sò randomizzati, è menu di 8% sò veri. In questu casu, a distribuzione di bits in l'OUI per tali indirizzi reali coincide apprussimatamente cù e dati in a tabella precedente.

Chì fabricatore, secondu l'OUI, pussede l'indirizzi randomizzati (vale à dì cù u 7u bit in "1")?

Produttore da OUI
Sparte trà tutti l'indirizzi

micca trovu in a basa di dati IEEE
62.45%

Google Inc.
37.54%

riposu
0.01%

Inoltre, tutti l'indirizzi randomizzati assignati à Google appartenenu à u stessu OUI cù u prefissu DA:A1:19. Chì ghjè stu prefissu ? Fighjemu in fonti Android.

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

Stock Android usa un OUI speciale, registratu quandu cercate rete wireless, unu di i pochi cù u settimu bit set.

Calculate MAC reale da una casuale

Videmu quì:

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

L'indirizzu tutale, o i so trè byte più bassi, hè pura Random.nextLong(). "Ricuperazione propria di MAC reale" hè una scam. Cù un altu gradu di cunfidenza, pudemu aspittà chì i fabricatori di telefoni Android utilizanu altre OUI non registrate. Ùn avemu micca u codice fonte di iOS, ma assai prubabilmente un algoritmu simili hè usatu quì.

U sopra ùn annullà u travagliu di altri miccanismi per de-anonymizing abbonati Wi-Fi, basatu annantu à l'analisi di altri campi di u quadru di dumanda di sonda, o correlazione di a freccia relativa di e dumande mandate da u dispusitivu. Tuttavia, u seguimentu affidabile di un abbonatu cù i mezi esterni hè estremamente problematicu. I dati raccolti seranu più adattati per analizà a carica media / piccu per locu è tempu, basatu annantu à un gran numaru, senza riferimentu à i dispositi è persone specifichi. Solu quelli "dentro", i pruduttori di u SO mobile stessu, è l'applicazioni installate anu dati precisi.

Chì puderia esse periculosu per qualcunu chì cunnosce l'indirizzu MAC di u vostru dispositivu? L'attacchi di Denial of Service ponu esse lanciati per e rete cablate è wireless. Per un dispositivu wireless, in più, cù una certa probabilità, hè pussibule registrà u mumentu di a so apparizione in u locu induve u sensoru hè stallatu. Spoofing l'indirizzu, pudete pruvà à "pretende" per esse u vostru dispositivu, chì pò travaglià solu s'ellu ùn sò micca aduprate misure di sicurezza supplementari (autorizazione è / o criptografia). U 99.9% di e persone quì ùn anu nunda di preoccupari.

L'indirizzu MAC hè più cumplicatu di ciò chì pare, ma più simplice di ciò chì puderia esse.

Source: www.habr.com

Add a comment