Tutto quello che volevi sapere sull'indirizzo MAC

Tutto quello che volevi sapere sull'indirizzo MACTutti sanno che questi sei byte, solitamente visualizzati in formato esadecimale, vengono assegnati in fabbrica alla scheda di rete e sono apparentemente casuali. Alcune persone sanno che i primi tre byte dell'indirizzo sono l'ID del produttore e che i restanti tre byte sono loro assegnati. È anche noto che puoi impostarti arbitrario indirizzo. Molte persone hanno sentito parlare di "indirizzi casuali" nel Wi-Fi.

Scopriamo di cosa si tratta.

L'indirizzo MAC (indirizzo Media Access Control) è un identificatore univoco assegnato a un adattatore di rete, utilizzato nelle reti degli standard IEEE 802, principalmente Ethernet, Wi-Fi e Bluetooth. Ufficialmente si chiama "identificatore di tipo EUI-48". Dal nome è ovvio che l'indirizzo è lungo 48 bit, cioè 6 byte. Non esiste uno standard generalmente accettato per scrivere un indirizzo (a differenza di un indirizzo IPv4, dove gli ottetti sono sempre separati da punti). Di solito è scritto come sei numeri esadecimali separati da due punti: 00:AB:CD:EF:11: 22, anche se alcuni produttori di apparecchiature preferiscono la notazione 00 -AB-CD-EF-11-22 e persino 00ab.cdef.1122.

Storicamente, gli indirizzi venivano flashati nella ROM del chipset della scheda di rete senza la possibilità di modificarli senza un programmatore flash, ma oggigiorno l'indirizzo può essere modificato in modo programmatico dal sistema operativo. Puoi impostare manualmente l'indirizzo MAC di una scheda di rete in Linux e MacOS (sempre), Windows (quasi sempre, se il driver lo consente), Android (solo rooted); Con iOS (senza root) un trucco del genere è impossibile.

Struttura dell'indirizzo

L'indirizzo è costituito da parte dell'identificatore del produttore, OUI, e da un identificatore assegnato dal produttore. Assegnazione di identificatori OUI (Organizationally Unique Identifier). offerte Organizzazione IEEE. Infatti la sua lunghezza può essere non solo di 3 byte (24 bit), ma di 28 o 36 bit, da cui partono blocchi (MAC Address Block, MA) di indirizzi di tipo Large (MA-L), Medium (MA-M) e Si formano rispettivamente piccoli (MA-S). La dimensione del blocco emesso, in questo caso, sarà di 24, 20, 12 bit ovvero 16 milioni, 1 milione, 4mila indirizzi. Attualmente i blocchi distribuiti sono circa 38mila, visualizzabili tramite numerosi strumenti online, ad esempio IEEE o Wireshark.

Chi possiede gli indirizzi?

Facile elaborazione dei dati pubblicamente disponibili scarico dei database L'IEEE fornisce molte informazioni. Ad esempio, alcune organizzazioni hanno preso per sé molti blocchi OUI. Ecco i nostri eroi:

Venditore
Numero di blocchi/record
Numero di indirizzi, milioni

Cisco Systems Inc
888
14208

Apple
772
12352

Samsung
636
10144

Huawei Technologies Co.Ltd
606
9696

Intel Corporation
375
5776

Gruppo ARRIS Inc.
319
5104

Nokia Corporation
241
3856

Privata
232
2704

Texas Instruments
212
3392

zte società
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

Juniper Networks
110
1760

Sagemcom Banda larga SAS
97
1552

Fiberhome Telecomunicazioni Technologies Co. LTD
97
1552

Xiaomi Communications Co Ltd
88
1408

Guangdong Oppo Mobile Telecommunications Corp.Ltd
82
1312

Google ne ha solo 40 e questo non sorprende: loro stessi non producono molti dispositivi di rete.

I blocchi MA non vengono forniti gratuitamente, possono essere acquistati a un prezzo ragionevole (senza costi di abbonamento) rispettivamente di $ 3000, $ 1800 o $ 755. È interessante notare che per denaro aggiuntivo (all'anno) è possibile acquistare "occultamento" delle informazioni pubbliche sul blocco assegnato. Ora ce ne sono 232, come si può vedere sopra.

Quando esauriremo gli indirizzi MAC?

Siamo tutti piuttosto stanchi delle storie che vanno avanti da 10 anni secondo cui “gli indirizzi IPv4 stanno per esaurirsi”. Sì, i nuovi blocchi IPv4 non sono più facili da ottenere. È noto che gli indirizzi IP distribuito in modo estremamente disomogeneo; Ci sono blocchi giganteschi e sottoutilizzati di proprietà di grandi aziende e agenzie governative statunitensi, tuttavia, con poche speranze di ridistribuirli a chi ne ha bisogno. La proliferazione di NAT, CG-NAT e IPv6 ha reso meno grave il problema della carenza di indirizzi pubblici.

Un indirizzo MAC ha 48 bit, di cui 46 possono essere considerati "utili" (perché? continua a leggere), per un totale di 246 o 1014 indirizzi, ovvero 214 volte di più dello spazio degli indirizzi IPv4.
Attualmente sono stati distribuiti circa mezzo trilione di indirizzi, ovvero solo lo 0.73% del volume totale. Siamo ancora molto, molto lontani dall’esaurire gli indirizzi MAC.

Pezzi di casualità

Si può presumere che gli OUI siano distribuiti in modo casuale e che il fornitore assegni quindi in modo casuale anche gli indirizzi ai singoli dispositivi di rete. È così? Diamo un'occhiata alla distribuzione dei bit nei database degli indirizzi MAC dei dispositivi 802.11 a mia disposizione, raccolti dai sistemi di autorizzazione funzionanti nelle reti wireless WNAM. Gli indirizzi appartengono a dispositivi reali che si sono connessi al Wi-Fi per diversi anni in tre paesi. Inoltre è presente un piccolo database di dispositivi LAN cablati 802.3.

Suddividiamo ciascun indirizzo MAC (sei byte) di ciascuno dei campioni in bit, byte per byte, e osserviamo la frequenza di occorrenza del bit "1" in ciascuna delle 48 posizioni. Se il bit è impostato in modo del tutto arbitrario, la probabilità di ottenere un “1” dovrebbe essere del 50%.

Selezione Wi-Fi n. 1 (RF)
Campione Wi-Fi n. 2 (Bielorussia)
Selezione Wi-Fi n. 3 (Uzbekistan)
Campionamento LAN (RF)

Numero di record nel database
5929000
1274000
366000
1000

Numero 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é tanta ingiustizia in 7 e 8 bit? Ci sono quasi sempre degli zeri.

Lo standard infatti definisce questi bit come speciali (Wikipedia):
Tutto quello che volevi sapere sull'indirizzo MAC

L'ottavo bit (dall'inizio) del primo byte dell'indirizzo MAC è chiamato bit Unicast/Multicast e determina quale tipo di frame (frame) viene trasmesso con questo indirizzo, regolare (0) o broadcast (1) (multicast o trasmissione). Per la normale comunicazione dell'adattatore di rete unicast, questo bit è impostato su "0" in tutti i pacchetti inviati ad esso.

Il settimo bit (dall'inizio) del primo byte dell'indirizzo MAC è chiamato bit U/L (Universal/Local) e determina se l'indirizzo è globalmente univoco (0) o localmente univoco (1). Per impostazione predefinita, tutti gli indirizzi "cuciti dal produttore" sono univoci a livello globale, quindi la stragrande maggioranza degli indirizzi MAC raccolti contiene il settimo bit impostato su "0". Nella tabella degli identificatori OUI assegnati, solo circa 130 voci hanno un bit U/L pari a "1" e apparentemente si tratta di blocchi di indirizzi MAC per esigenze speciali.

Dal sesto al primo bit del primo byte, i bit del secondo e del terzo byte negli identificatori OUI, e ancor di più i bit nei 4-6 byte dell'indirizzo assegnato dal produttore, sono distribuiti più o meno uniformemente .

Pertanto, nell'indirizzo MAC reale dell'adattatore di rete, i bit sono effettivamente equivalenti e non hanno alcun significato tecnologico, ad eccezione di due bit di servizio del byte alto.

prevalenza

Ti stai chiedendo quali produttori di apparecchiature wireless sono i più popolari? Combiniamo la ricerca nel database OUI con i dati del campione n. 1.

Venditore
Quota di dispositivi, %

Apple
26,09

Samsung
19,79

Huawei Technologies Co. Ltd
7,80

Xiaomi Communications Co Ltd
6,83

sony comunicazioni mobili inc
3,29

LG Electronics (comunicazioni mobili)
2,76

ASUSTek COMPUTER INC.
2,58

TCT Mobile Ltd
2,13

zte società
2,00

non trovato nel database IEEE
1,92

Lenovo Mobile Communication Technology Ltd.
1,71

HTC Corporation
1,68

Manifattura Murata
1,31

Com. InPro
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

La pratica dimostra che quanto più prospero è il contingente di abbonati alla rete wireless in una determinata località, tanto maggiore è la quota di dispositivi Apple.

unicità

Gli indirizzi MAC sono unici? In teoria sì, poiché ciascun produttore del dispositivo (proprietario del blocco MA) è tenuto a fornire un indirizzo univoco per ciascuno degli adattatori di rete che produce. Tuttavia, alcuni produttori di chip, vale a dire:

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

imposta gli ultimi tre byte dell'indirizzo MAC su un numero casuale, apparentemente dopo ogni riavvio del dispositivo. Nel mio campione n. 1 c'erano 82mila indirizzi di questo tipo.

Ovviamente puoi impostarti un indirizzo straniero e non univoco impostandolo di proposito "come quello del tuo vicino", identificandolo con uno sniffer o scegliendolo a caso. È anche possibile impostare accidentalmente un indirizzo non univoco, ad esempio ripristinando una configurazione di backup di un router come Mikrotik o OpenWrt.

Cosa succederebbe se sulla rete fossero presenti due dispositivi con lo stesso indirizzo MAC? Tutto dipende dalla logica dell'apparecchiatura di rete (router cablato, controller di rete wireless). Molto probabilmente entrambi i dispositivi non funzioneranno o funzioneranno in modo intermittente. Dal punto di vista degli standard IEEE, si propone che la protezione contro lo spoofing degli indirizzi MAC venga risolta utilizzando, ad esempio, MACsec o 802.1X.

Cosa succede se installi un MAC con il settimo o l'ottavo bit impostato su "1", ad es. indirizzo locale o multicast? Molto probabilmente, la tua rete non presterà attenzione a questo, ma formalmente un indirizzo del genere non sarà conforme allo standard ed è meglio non farlo.

Come funziona la randomizzazione

Sappiamo che per impedire il tracciamento dei movimenti delle persone attraverso la scansione e la raccolta delle onde radio, i sistemi operativi MAC degli smartphone utilizzano da diversi anni la tecnologia di randomizzazione. Teoricamente, durante la scansione delle onde radio alla ricerca di reti conosciute, lo smartphone invia un pacchetto (gruppo di pacchetti) del tipo richiesta sonda 802.11 con l'indirizzo MAC come sorgente:

Tutto quello che volevi sapere sull'indirizzo MAC

La randomizzazione abilitata consente di specificare non quello "cucito", ma qualche altro indirizzo di origine del pacchetto, che cambia ad ogni ciclo di scansione, nel tempo o in qualche altro modo. Funziona? Diamo un'occhiata alle statistiche degli indirizzi MAC raccolti via etere dal cosiddetto “Radar Wi-Fi”:

Intero campione
Campione solo con zero 7° bit

Numero di record nel database
3920000
305000

Numero 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%

L'immagine è completamente diversa.

L'ottavo bit del primo byte dell'indirizzo MAC corrisponde ancora alla natura Unicast dell'indirizzo SRC nel pacchetto di richiesta sonda.

Il 7° bit è impostato su Locale nel 92.2% dei casi, ovvero Con un discreto grado di sicurezza, possiamo supporre che esattamente un certo numero di indirizzi raccolti siano casuali e che meno dell'8% siano reali. In questo caso, la distribuzione dei bit nell'OUI per tali indirizzi reali coincide approssimativamente con i dati della tabella precedente.

Quale produttore, secondo l'OUI, possiede gli indirizzi randomizzati (cioè con il 7° bit in “1”)?

Produttore da OUI
Condividi tra tutti gli indirizzi

non trovato nel database IEEE
62.45%

Google Inc.
37.54%

il resto
0.01%

Inoltre, tutti gli indirizzi randomizzati assegnati a Google appartengono allo stesso OUI con il prefisso DA:A1:19. Cos'è questo prefisso? Diamo un'occhiata Fonti Android.

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

Stock Android utilizza uno speciale OUI registrato durante la ricerca di reti wireless, uno dei pochi con il settimo bit impostato.

Calcola il MAC reale da quello casuale

Vediamo lì:

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'intero indirizzo, o i suoi tre byte inferiori, è puro Casuale.nextLong(). Il “recupero proprietario del MAC reale” è una truffa. Con un alto grado di sicurezza, possiamo aspettarci che i produttori di telefoni Android utilizzino altri OUI non registrati. Non abbiamo il codice sorgente iOS, ma molto probabilmente lì viene utilizzato un algoritmo simile.

Quanto sopra non annulla il lavoro di altri meccanismi di deanonimizzazione degli abbonati Wi-Fi, basati sull'analisi di altri campi del frame di richiesta sonda o sulla correlazione della frequenza relativa delle richieste inviate dal dispositivo. Tuttavia, tracciare in modo affidabile un abbonato utilizzando mezzi esterni è estremamente problematico. I dati raccolti saranno più adatti per analizzare il carico medio/picco per luogo e ora, sulla base di grandi numeri, senza riferimento a dispositivi e persone specifici. Solo quelli "all'interno", gli stessi produttori di sistemi operativi mobili e le applicazioni installate, dispongono di dati accurati.

Cosa potrebbe essere pericoloso se qualcun altro conosce l'indirizzo MAC del tuo dispositivo? Gli attacchi Denial of Service possono essere lanciati per reti cablate e wireless. Per un dispositivo wireless, inoltre, con una certa probabilità è possibile registrare il momento della sua comparsa nel luogo in cui è installato il sensore. Effettuando lo spoofing dell'indirizzo puoi provare a “fingere” di essere il tuo dispositivo, il che può funzionare solo se non vengono utilizzate misure di sicurezza aggiuntive (autorizzazione e/o crittografia). Il 99.9% delle persone qui non ha nulla di cui preoccuparsi.

L'indirizzo MAC è più complicato di quanto sembri, ma più semplice di quanto potrebbe essere.

Fonte: habr.com

Aggiungi un commento