Tot el que volies saber sobre l'adreça MAC

Tot el que volies saber sobre l'adreça MACTothom sap que aquests sis bytes, que normalment es mostren en format hexadecimal, s'assignen a la targeta de xarxa de fàbrica i aparentment són aleatoris. Algunes persones saben que els tres primers bytes de l'adreça són l'identificador del fabricant i els tres bytes restants se'ls assignen. També se sap que pots configurar-te arbitrari adreça. Molta gent ha sentit parlar d'"adreces aleatòries" a la Wi-Fi.

Anem a esbrinar què és.

L'adreça MAC (adreça de control d'accés a mitjans) és un identificador únic assignat a un adaptador de xarxa, utilitzat en xarxes d'estàndards IEEE 802, principalment Ethernet, Wi-Fi i Bluetooth. Oficialment s'anomena "EUI-48 type identifier". Pel nom és obvi que l'adreça té 48 bits de llarg, és a dir. 6 bytes. No hi ha cap estàndard acceptat generalment per escriure una adreça (a diferència d'una adreça IPv4, on els octets sempre estan separats per punts). Normalment s'escriu com sis números hexadecimals separats per dos punts: 00:AB:CD:EF:11: 22, tot i que alguns fabricants d'equips prefereixen la notació 00 -AB-CD-EF-11-22 i fins i tot 00ab.cdef.1122.

Històricament, les adreces s'incloïen a la ROM del chipset de la targeta de xarxa sense la possibilitat de modificar-les sense un programador flash, però actualment l'adreça es pot canviar mitjançant programació des del sistema operatiu. Podeu configurar manualment l'adreça MAC d'una targeta de xarxa a Linux i MacOS (sempre), Windows (gairebé sempre, si el controlador ho permet), Android (només arrelat); Amb iOS (sense arrel) aquest truc és impossible.

Estructura d'adreces

L'adreça consta d'una part de l'identificador del fabricant, OUI, i un identificador assignat pel fabricant. Assignació d'identificadors OUI (Organizationally Unique Identifier). compromès Organització IEEE. De fet, la seva longitud pot ser no només de 3 bytes (24 bits), sinó de 28 o 36 bits, a partir dels quals blocs (MAC Address Block, MA) d'adreces de tipus Gran (MA-L), Mitjana (MA-M) i Es formen petites (MA-S) respectivament. La mida del bloc emès, en aquest cas, serà de 24, 20, 12 bits o 16 milions, 1 milió, 4 mil adreces. Actualment hi ha uns 38 mil blocs distribuïts, es poden visualitzar mitjançant nombroses eines en línia, per exemple IEEE o Wireshark.

Qui és el propietari de les adreces?

Fàcil processament de disponibles públicament descàrrega de bases de dades IEEE proporciona molta informació. Per exemple, algunes organitzacions han pres molts blocs OUI per si mateixes. Aquests són els nostres herois:

Venedor
Nombre de blocs/registres
Nombre d'adreces, milions

Cisco Systems Inc
888
14208

poma
772
12352

Samsung
636
10144

Huawei Technologies Co.Ltd
606
9696

Intel Corporation
375
5776

Grup ARRIS Inc.
319
5104

Nokia Corporation
241
3856

Privat
232
2704

Texas Instruments
212
3392

corporació zte
198
3168

Autoritat de registre IEEE
194
3072

Hewlett Packard
149
2384

Precisió Hon Hai
136
2176

TP-LINK
134
2144

Dell Inc.
123
1968

Juniper Networks
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 només en té 40, i això no és sorprenent: ells mateixos no produeixen molts dispositius de xarxa.

Els blocs MA no es proporcionen de manera gratuïta, es poden comprar per un preu raonable (sense quota de subscripció) per 3000, 1800 o 755 dòlars, respectivament. Curiosament, per diners addicionals (per any) podeu comprar "amagar" la informació pública sobre el bloc assignat. Ara n'hi ha 232, com es pot veure més amunt.

Quan ens quedarem sense adreces MAC?

Tots estem bastant cansats de les històries que porten 10 anys passant que "les adreces IPv4 estan a punt d'esgotar-se". Sí, els nous blocs IPv4 ja no són fàcils d'obtenir. Se sap que les adreces IP distribuït de manera molt desigual; Hi ha blocs gegantins i infrautilitzats propietat de grans corporacions i agències governamentals dels EUA, però, amb poques esperances de redistribuir-los a aquells que ho necessiten. La proliferació de NAT, CG-NAT i IPv6 ha fet que el problema de l'escassetat de direccions públiques sigui menys agut.

Una adreça MAC té 48 bits, dels quals 46 es poden considerar "útils" (per què? Continueu llegint), que dóna 246 o 1014 adreces, que és 214 vegades més que l'espai d'adreces IPv4.
Actualment, s'han distribuït aproximadament mig bilió d'adreces, és a dir, només el 0.73% del volum total. Encara estem molt, molt lluny de quedar-nos sense adreces MAC.

Bits d'atzar

Es pot suposar que les OUI es distribueixen aleatòriament i, aleshores, el venedor també assigna adreces a l'atzar a dispositius de xarxa individuals. És així? Vegem la distribució de bits a les bases de dades d'adreces MAC dels dispositius 802.11 a la meva disposició, recollits pels sistemes d'autorització de treball en xarxes sense fil WNAM. Les adreces pertanyen a dispositius reals que es van connectar a Wi-Fi durant diversos anys en tres països. A més, hi ha una petita base de dades de dispositius LAN per cable 802.3.

Desglossem cada adreça MAC (sis bytes) de cadascuna de les mostres en bits, byte per byte, i observem la freqüència d'ocurrència del bit "1" en cadascuna de les 48 posicions. Si el bit s'estableix d'una manera completament arbitrària, la probabilitat d'obtenir un "1" hauria de ser del 50%.

Selecció Wi-Fi núm. 1 (RF)
Mostra de Wi-Fi núm. 2 (Bielorússia)
Selecció de Wi-Fi núm. 3 (Uzbekistan)
Mostreig de LAN (RF)

Nombre de registres a la base de dades
5929000
1274000
366000
1000

Número de 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%

Per què tanta injustícia en 7 i 8 bits? Gairebé sempre hi ha zeros.

De fet, l'estàndard defineix aquests bits com a especials (Wikipedia):
Tot el que volies saber sobre l'adreça MAC

El vuitè bit (des del principi) del primer byte de l'adreça MAC s'anomena bit Unicast/Multicast i determina quin tipus de trama (frame) es transmet amb aquesta adreça, regular (0) o broadcast (1) (multicast o multicast). emissió). Per a la comunicació normal de l'adaptador de xarxa unicast, aquest bit s'estableix a "0" en tots els paquets que s'hi envien.

El setè bit (des del principi) del primer byte de l'adreça MAC s'anomena bit U/L (Universal/Local) i determina si l'adreça és única globalment (0) o única localment (1). Per defecte, totes les adreces "costurades pel fabricant" són úniques a nivell mundial, de manera que la gran majoria de les adreces MAC recopilades contenen el setè bit establert a "0". A la taula d'identificadors OUI assignats, només unes 130 entrades tenen un bit U/L de "1", i sembla que es tracta de blocs d'adreces MAC per a necessitats especials.

Del sisè als primers bits del primer byte, els bits del segon i tercer bytes en els identificadors OUI, i més encara els bits dels 4-6 bytes de l'adreça assignada pel fabricant es distribueixen de manera més o menys uniforme. .

Així, a l'adreça MAC real de l'adaptador de xarxa, els bits són realment equivalents i no tenen significat tecnològic, a excepció de dos bits de servei del byte alt.

Prevalença

Et preguntes quins fabricants d'equips sense fil són els més populars? Combinem la cerca a la base de dades OUI amb les dades de la mostra núm. 1.

Venedor
Quota de dispositius, %

poma
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 (comunicacions mòbils)
2,76

ASUSTek COMPUTER INC.
2,58

TCT Mobile Ltd
2,13

corporació zte
2,00

no es troba a la base de dades IEEE
1,92

Lenovo Mobile Communication Technology Ltd.
1,71

HTC Corporation
1,68

Fabricació Murata
1,31

Comunicació 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 pràctica demostra que com més pròsper sigui el contingent de subscriptors de xarxes sense fil en una ubicació determinada, més gran serà la quota de dispositius Apple.

Unicitat

Les adreces MAC són úniques? En teoria, sí, ja que cada fabricant de dispositiu (propietari del bloc MA) ha de proporcionar una adreça única per a cadascun dels adaptadors de xarxa que produeix. No obstant això, alguns fabricants de xips, a saber:

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

establiu els darrers tres bytes de l'adreça MAC a un nombre aleatori, aparentment després de cada reinici del dispositiu. Hi havia 1 mil adreces d'aquest tipus a la meva mostra número 82.

Per descomptat, podeu establir-vos una adreça estrangera i no única establint-la a propòsit "com la del vostre veí", identificant-la amb un sniffer o escollint-la a l'atzar. També és possible configurar accidentalment una adreça no única, per exemple, restaurant una configuració de còpia de seguretat d'un encaminador com Mikrotik o OpenWrt.

Què passarà si hi ha dos dispositius a la xarxa amb la mateixa adreça MAC? Tot depèn de la lògica de l'equip de xarxa (encaminador amb cable, controlador de xarxa sense fil). El més probable és que ambdós dispositius no funcionin o funcionaran de manera intermitent. Des del punt de vista dels estàndards IEEE, es proposa resoldre la protecció contra la falsificació d'adreces MAC utilitzant, per exemple, MACsec o 802.1X.

Què passa si instal·leu un MAC amb el setè o vuitè bit establert a "1", és a dir. adreça local o multicast? El més probable és que la vostra xarxa no hi presti atenció, però formalment aquesta adreça no complirà l'estàndard i és millor no fer-ho.

Com funciona l'aleatorització

Sabem que per evitar el seguiment dels moviments de les persones mitjançant l'escaneig i la recollida d'ones, els sistemes operatius MAC dels telèfons intel·ligents fan servir la tecnologia d'aleatorització durant diversos anys. Teòricament, quan escaneja les ones a la recerca de xarxes conegudes, el telèfon intel·ligent envia un paquet (grup de paquets) del tipus de sol·licitud de sonda 802.11 amb l'adreça MAC com a font:

Tot el que volies saber sobre l'adreça MAC

L'aleatorització activada us permet especificar no la "cosida", sinó una altra adreça d'origen del paquet, canviant amb cada cicle d'escaneig, amb el temps o d'una altra manera. Funciona? Vegem les estadístiques de les adreces MAC recollides des de l'aire per l'anomenat "Radar Wi-Fi":

Mostra sencera
Mostra només amb zero 7è bit

Nombre de registres a la base de dades
3920000
305000

Número de 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%

La imatge és completament diferent.

El 8è bit del primer byte de l'adreça MAC encara correspon a la naturalesa Unicast de l'adreça SRC al paquet de sol·licitud de sonda.

El 7è bit s'estableix en Local en el 92.2% dels casos, és a dir. Amb un cert grau de confiança, podem suposar que exactament tantes de les adreces recollides són aleatòries i que menys del 8% són reals. En aquest cas, la distribució de bits a la OUI per a aquestes adreces reals coincideix aproximadament amb les dades de la taula anterior.

Quin fabricant, segons l'OUI, és propietari de les adreces aleatòries (és a dir, amb el setè bit a "7")?

Fabricant per OUI
Comparteix entre totes les adreces

no es troba a la base de dades IEEE
62.45%

Google Inc
37.54%

descans
0.01%

A més, totes les adreces aleatòries assignades a Google pertanyen a la mateixa OUI amb el prefix DA:A1:19. Què és aquest prefix? Mirem-hi Fonts d'Android.

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

Stock Android utilitza una OUI especial i registrada quan cerca xarxes sense fil, una de les poques amb el setè bit configurat.

Calcula el MAC real a partir d'un aleatori

Vegem-hi:

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'adreça sencera, o els seus tres bytes inferiors, és pura Random.nextLong(). La "recuperació pròpia del MAC real" és una estafa. Amb un alt grau de confiança, podem esperar que els fabricants de telèfons Android utilitzin altres OUI no registrats. No tenim el codi font d'iOS, però el més probable és que s'utilitzi un algorisme similar.

L'anterior no cancel·la el treball d'altres mecanismes per a la desanonimització dels subscriptors de Wi-Fi, basat en l'anàlisi d'altres camps del marc de sol·licitud de sonda, o la correlació de la freqüència relativa de les sol·licituds enviades pel dispositiu. Tanmateix, fer un seguiment fiable d'un subscriptor mitjançant mitjans externs és extremadament problemàtic. Les dades recollides seran més adequades per analitzar la càrrega mitjana/pic per ubicació i temps, en funció de grans números, sense fer referència a dispositius i persones concrets. Només aquells "dins", els mateixos fabricants de sistemes operatius mòbils i les aplicacions instal·lades tenen dades precises.

Què podria ser perillós que algú altre conegui l'adreça MAC del vostre dispositiu? Els atacs de denegació de servei es poden llançar per a xarxes amb cable i sense fil. Per a un dispositiu sense fil, a més, amb certa probabilitat és possible registrar el moment de la seva aparició al lloc on està instal·lat el sensor. Mitjançant la falsificació de l'adreça, podeu intentar "fingir" que és el vostre dispositiu, que només pot funcionar si no s'utilitzen mesures de seguretat addicionals (autorització i/o xifratge). El 99.9% de la gent aquí no té res de què preocupar-se.

L'adreça MAC és més complicada del que sembla, però més senzilla del que podria ser.

Font: www.habr.com

Afegeix comentari