Todo o que querías saber sobre o enderezo MAC

Todo o que querías saber sobre o enderezo MACTodo o mundo sabe que estes seis bytes, normalmente mostrados en formato hexadecimal, están asignados á tarxeta de rede de fábrica e son aparentemente aleatorios. Algunhas persoas saben que os tres primeiros bytes do enderezo son o ID do fabricante e que se lles asignan os tres bytes restantes. Tamén se sabe que pode configurar vostede mesmo arbitraria enderezo. Moita xente escoitou falar de "enderezos aleatorios" na wifi.

Imos descubrir o que é.

O enderezo MAC (enderezo de control de acceso a medios) é un identificador único asignado a un adaptador de rede, usado en redes de estándares IEEE 802, principalmente Ethernet, Wi-Fi e Bluetooth. Oficialmente denomínase "identificador de tipo EUI-48". Polo nome é obvio que o enderezo ten 48 bits de lonxitude, é dicir. 6 bytes. Non existe un estándar xeralmente aceptado para escribir un enderezo (a diferenza dun enderezo IPv4, onde os octetos sempre están separados por puntos). Normalmente escríbese como seis números hexadecimais separados por dous puntos: 00:AB:CD:EF:11: 22, aínda que algúns fabricantes de equipos prefiren a notación 00 -AB-CD-EF-11-22 e mesmo 00ab.cdef.1122.

Históricamente, os enderezos foron flasheados na ROM do chipset da tarxeta de rede sen a posibilidade de modificalos sen un programador flash, pero hoxe en día a dirección pódese cambiar mediante programación desde o sistema operativo. Podes configurar manualmente o enderezo MAC dunha tarxeta de rede en Linux e MacOS (sempre), Windows (case sempre, se o controlador o permite), Android (só rooteado); Con iOS (sen root) tal truco é imposible.

Estrutura do enderezo

O enderezo consta de parte do identificador do fabricante, OUI, e un identificador asignado polo fabricante. Asignación de identificadores OUI (Organizationally Unique Identifier). dedicado a Organización IEEE. De feito, a súa lonxitude pode ser non só de 3 bytes (24 bits), senón de 28 ou 36 bits, a partir dos cales bloques (MAC Address Block, MA) de enderezos dos tipos Grande (MA-L), Medio (MA-M) e Fórmanse pequenos (MA-S) respectivamente. O tamaño do bloque emitido, neste caso, será de 24, 20, 12 bits ou 16 millóns, 1 millón, 4 mil enderezos. Actualmente hai uns 38 mil bloques distribuídos, pódense visualizar mediante numerosas ferramentas en liña, por exemplo IEEE ou Wireshark.

Quen é o propietario dos enderezos?

Fácil procesamento de accesibles ao público descarga de bases de datos IEEE ofrece moita información. Por exemplo, algunhas organizacións tomaron moitos bloques de OUI para si. Aquí están os nosos heroes:

Vendedor
Número de bloques/rexistros
Número de enderezos, millóns

Cisco Systems Inc
888
14208

mazá
772
12352

Samsung
636
10144

Huawei Technologies Co.Ltd
606
9696

Intel Corporation
375
5776

ARRIS Group Inc.
319
5104

Nokia Corporation
241
3856

Privado
232
2704

Texas Instruments
212
3392

corporación zte
198
3168

Autoridade de rexistro IEEE
194
3072

Hewlett Packard
149
2384

Hon Hai Precision
136
2176

ENLACE TP
134
2144

Dell Inc.
123
1968

Redes de enebro
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 ten só 40 deles, e isto non é de estrañar: eles mesmos non producen moitos dispositivos de rede.

Os bloques MA non se ofrecen de forma gratuíta, pódense mercar por un prezo razoable (sen unha taxa de subscrición) por 3000, 1800 ou 755 dólares, respectivamente. Curiosamente, por diñeiro adicional (por ano) podes comprar "ocultar" información pública sobre o bloque asignado. Agora son 232, como se pode ver arriba.

Cando nos quedaremos sen enderezos MAC?

Todos estamos bastante cansos das historias que levan 10 anos sucedendo que "os enderezos IPv4 están a piques de esgotarse". Si, os novos bloques IPv4 xa non son fáciles de obter. Sábese que os enderezos IP distribuídas de forma extremadamente desigual; Non obstante, hai bloques xigantescos e infrautilizados propiedade de grandes corporacións e axencias gobernamentais dos Estados Unidos, con poucas esperanzas de redistribuílos a aqueles que o necesitan. A proliferación de NAT, CG-NAT e IPv6 fixo que o problema da escaseza de enderezos públicos fose menos agudo.

Un enderezo MAC ten 48 bits, dos cales 46 poden considerarse "útiles" (por que? segue lendo), o que dá 246 ou 1014 enderezos, o que supón 214 veces máis que o espazo de enderezos IPv4.
Actualmente, distribuíronse aproximadamente medio billón de enderezos, ou só o 0.73% do volume total. Aínda estamos moi, moi lonxe de quedarnos sen enderezos MAC.

Bits de aleatoriedade

Pódese supoñer que as OUI se distribúen de forma aleatoria e que o vendedor tamén asigna enderezos aleatoriamente a dispositivos de rede individuais. É así? Vexamos a distribución de bits nas bases de datos de enderezos MAC dos dispositivos 802.11 á miña disposición, recollidos por sistemas de autorización de traballo en redes sen fíos WNAM. Os enderezos pertencen a dispositivos reais que se conectaron á wifi durante varios anos en tres países. Ademais, hai unha pequena base de datos de dispositivos LAN con cable 802.3.

Desglosamos cada enderezo MAC (seis bytes) de cada unha das mostras en bits, byte por byte, e vexamos a frecuencia de aparición do bit “1” en cada unha das 48 posicións. Se o bit está configurado de forma completamente arbitraria, entón a probabilidade de obter un "1" debería ser do 50%.

Selección wifi n.º 1 (RF)
Mostra de wifi n.o 2 (Bielorrusia)
Selección wifi n.o 3 (Uzbekistán)
Mostraxe LAN (RF)

Número de rexistros na base de datos
5929000
1274000
366000
1000

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

Por que tanta inxustiza en 7 e 8 bits? Case sempre hai ceros.

De feito, o estándar define estes bits como especiais (Wikipedia):
Todo o que querías saber sobre o enderezo MAC

O oitavo (desde o principio) bit do primeiro byte do enderezo MAC chámase bit Unicast/Multicast e determina que tipo de trama (frame) se transmite con este enderezo, regular (0) ou broadcast (1) (multicast ou multicast). emisión). Para a comunicación normal do adaptador de rede unicast, este bit está configurado en "0" en todos os paquetes que se lle envían.

O sétimo bit (desde o principio) do primeiro byte do enderezo MAC chámase bit U/L (Universal/Local) e determina se o enderezo é globalmente único (0) ou localmente único (1). Por defecto, todos os enderezos "cosidos polo fabricante" son globalmente únicos, polo que a gran maioría dos enderezos MAC recollidos conteñen o sétimo bit configurado en "0". Na táboa de identificadores OUI asignados, só unhas 130 entradas teñen un bit U/L de "1" e, ao parecer, son bloques de enderezos MAC para necesidades especiais.

Desde o sexto ata os primeiros bits do primeiro byte, os bits do segundo e terceiro bytes nos identificadores OUI, e máis aínda os bits dos 4-6 bytes da dirección asignada polo fabricante distribúense de forma máis ou menos uniforme. .

Así, no enderezo MAC real do adaptador de rede, os bits son en realidade equivalentes e non teñen significado tecnolóxico, con excepción de dous bits de servizo do byte alto.

Prevalencia

Queres saber cales son os fabricantes de equipos sen fíos máis populares? Imos combinar a busca na base de datos OUI cos datos da mostra no 1.

Vendedor
Cota de dispositivos, %

mazá
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 (comunicacións móbiles)
2,76

ASUSTek COMPUTER INC.
2,58

TCT Mobile Ltd
2,13

corporación zte
2,00

non atopado na base de datos IEEE
1,92

Lenovo Mobile Communication Technology Ltd.
1,71

Corporación HTC
1,68

Manufactura Murata
1,31

Comunicación 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

A práctica demostra que canto máis próspero sexa o continxente de subscritores de redes sen fíos nunha determinada localización, maior será a proporción de dispositivos Apple.

Singularidade

Os enderezos MAC son únicos? En teoría, si, xa que cada fabricante de dispositivos (propietario do bloque MA) está obrigado a proporcionar un enderezo único para cada un dos adaptadores de rede que produce. Non obstante, algúns fabricantes de chips, a saber:

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

establecer os últimos tres bytes do enderezo MAC nun número aleatorio, ao parecer despois de cada reinicio do dispositivo. Había 1 mil enderezos deste tipo na miña mostra número 82.

Por suposto, podes establecer un enderezo estranxeiro e non único establecéndoo a propósito "como o do teu veciño", identificándoo cun sniffer ou escollendoo ao chou. Tamén é posible configurar accidentalmente un enderezo non único, por exemplo, restaurando unha configuración de copia de seguridade dun enrutador como Mikrotik ou OpenWrt.

Que pasará se hai dous dispositivos na rede co mesmo enderezo MAC? Todo depende da lóxica do equipo de rede (router con cable, controlador de rede sen fíos). O máis probable é que ambos os dispositivos non funcionen ou funcionarán de forma intermitente. Desde o punto de vista dos estándares IEEE, proponse que a protección contra a suplantación de enderezos MAC se solucione utilizando, por exemplo, MACsec ou 802.1X.

E se instalas un MAC co sétimo ou oitavo bit configurado en "1", é dicir. enderezo local ou multicast? O máis probable é que a súa rede non preste atención a isto, pero formalmente tal enderezo non cumprirá o estándar, e é mellor non facelo.

Como funciona a aleatorización

Sabemos que, para evitar o seguimento dos movementos das persoas mediante a dixitalización e a recollida de ondas, os sistemas operativos MAC dos teléfonos intelixentes levan varios anos utilizando tecnoloxía de aleatorización. Teoricamente, ao escanear as ondas en busca de redes coñecidas, o teléfono intelixente envía un paquete (grupo de paquetes) do tipo de solicitude de sonda 802.11 co enderezo MAC como fonte:

Todo o que querías saber sobre o enderezo MAC

A aleatorización activada permítelle especificar non o "cosido", senón algún outro enderezo de orixe do paquete, cambiando con cada ciclo de dixitalización, co paso do tempo ou doutro xeito. Funciona? Vexamos as estatísticas de enderezos MAC recollidas desde o aire polo chamado "Radar Wi-Fi":

Mostra enteira
Mostra só con cero 7º bit

Número de rexistros na base de datos
3920000
305000

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

A imaxe é completamente diferente.

O bit 8 do primeiro byte do enderezo MAC aínda corresponde á natureza Unicast do enderezo SRC no paquete de solicitude de sonda.

O 7.o bit está configurado como Local no 92.2% dos casos, é dicir. Cun certo grao de confianza, podemos supoñer que exactamente tantos dos enderezos recollidos son aleatorios e menos do 8 % son reais. Neste caso, a distribución de bits na OUI para tales enderezos reais coincide aproximadamente cos datos da táboa anterior.

Que fabricante, segundo a OUI, posúe os enderezos aleatorios (é dicir, co 7º bit en "1")?

Fabricante por OUI
Compartir entre todos os enderezos

non atopado na base de datos IEEE
62.45%

Google Inc.
37.54%

descansar
0.01%

Ademais, todos os enderezos aleatorios asignados a Google pertencen á mesma OUI co prefixo DA:A1:19. Cal é este prefixo? Imos mirar dentro Fontes de Android.

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

Stock Android usa unha OUI especial rexistrada cando busca redes sen fíos, unha das poucas co settimo bit configurado.

Calcula MAC real a partir dun aleatorio

Vexamos alí:

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

O enderezo completo, ou os seus tres bytes inferiores, é puro Random.nextLong(). A "recuperación propietaria do MAC real" é unha estafa. Cun alto grao de confianza, podemos esperar que os fabricantes de teléfonos Android utilicen outras OUI non rexistradas. Non temos o código fonte de iOS, pero o máis probable é que se use alí un algoritmo similar.

O anterior non cancela o traballo doutros mecanismos de desanónimos dos subscritores Wi-Fi, baseados na análise doutros campos do marco de solicitude de sonda, ou na correlación da frecuencia relativa das solicitudes enviadas polo dispositivo. Non obstante, o seguimento fiable dun subscritor mediante medios externos é extremadamente problemático. Os datos recollidos serán máis axeitados para analizar a carga media/pico por localización e hora, en función de grandes números, sen facer referencia a dispositivos e persoas específicas. Só aqueles que están "dentro", os propios fabricantes de sistemas operativos móbiles e as aplicacións instaladas teñen datos precisos.

Que pode ser perigoso que outra persoa coñeza o enderezo MAC do teu dispositivo? Os ataques de denegación de servizo pódense lanzar para redes con fíos e sen fíos. Para un dispositivo sen fíos, ademais, con certa probabilidade é posible rexistrar o momento da súa aparición no lugar onde está instalado o sensor. Ao falsificar o enderezo, podes tentar "finxir" que é o teu dispositivo, que só pode funcionar se non se utilizan medidas de seguridade adicionais (autorización e/ou cifrado). O 99.9% da xente aquí non ten nada de que preocuparse.

O enderezo MAC é máis complicado do que parece, pero máis sinxelo do que podería ser.

Fonte: www.habr.com

Engadir un comentario