Todo lo que querías saber sobre la dirección MAC

Todo lo que querías saber sobre la dirección MACTodo el mundo sabe que estos seis bytes, normalmente mostrados en formato hexadecimal, están asignados a la tarjeta de red en fábrica y son aparentemente aleatorios. Algunas personas saben que los primeros tres bytes de la dirección son la identificación del fabricante y los tres bytes restantes se les asignan. También se sabe que puedes configurarte tú mismo. arbitrario DIRECCIÓN. Mucha gente ha oído hablar de las "direcciones aleatorias" en Wi-Fi.

Averigüemos qué es.

La dirección MAC (dirección de control de acceso a medios) es un identificador único asignado a un adaptador de red, utilizado en redes de estándares IEEE 802, principalmente Ethernet, Wi-Fi y Bluetooth. Oficialmente se denomina "identificador de tipo EUI-48". Por el nombre se desprende claramente que la dirección tiene una longitud de 48 bits, es decir 6 bytes. No existe un estándar generalmente aceptado para escribir una dirección (a diferencia de una dirección IPv4, donde los octetos siempre están separados por puntos). Generalmente se escribe como seis números hexadecimales separados por dos puntos: 00:AB:CD:EF:11: 22, aunque algunos fabricantes de equipos prefieren la notación 00 -AB-CD-EF-11-22 e incluso 00ab.cdef.1122.

Históricamente, las direcciones se guardaban en la ROM del chipset de la tarjeta de red sin la posibilidad de modificarlas sin un programador flash, pero hoy en día la dirección se puede cambiar mediante programación desde el sistema operativo. Puede configurar manualmente la dirección MAC de una tarjeta de red en Linux y MacOS (siempre), Windows (casi siempre, si el controlador lo permite), Android (solo rooteado); Con iOS (sin root), ese truco es imposible.

Estructura de direcciones

La dirección consta de parte del identificador del fabricante, OUI, y un identificador asignado por el fabricante. Asignación de identificadores OUI (Organizational Unique Identifier) esta comprometido Organización IEEE. De hecho, su longitud puede ser no solo de 3 bytes (24 bits), sino de 28 o 36 bits, de los cuales bloques (MAC Address Block, MA) de direcciones de tipo Grande (MA-L), Mediano (MA-M) y Se forman pequeños (MA-S) respectivamente. El tamaño del bloque emitido, en este caso, será de 24, 20, 12 bits o 16 millones, 1 millón, 4 mil direcciones. Actualmente hay alrededor de 38 mil bloques distribuidos, se pueden visualizar utilizando numerosas herramientas online, por ejemplo IEEE o Wireshark.

¿A quién pertenecen las direcciones?

Fácil procesamiento de información disponible públicamente. descargando bases de datos IEEE proporciona bastante información. Por ejemplo, algunas organizaciones se han apoderado de muchos bloques OUI. Aquí están nuestros héroes:

Proveedor
Número de bloques/registros
Número de direcciones, millones

Cisco Systems Inc
888
14208

Apple
772
12352

Samsung
636
10144

Huawei Technologies Co.Ltd.
606
9696

Corporación Intel
375
5776

Grupo ARRIS Inc.
319
5104

Nokia Corporation
241
3856

Privado
232
2704

texas Instruments
212
3392

corporación zte
198
3168

Autoridad de registro IEEE
194
3072

Hewlett Packard
149
2384

Precisión Hon Hai
136
2176

TP-LINK
134
2144

Dell Inc.
123
1968

Juniper Networks
110
1760

SAS de banda ancha Sagemcom
97
1552

Tecnologías de telecomunicaciones Fiberhome Co. LIMITADO
97
1552

Xiaomi Comunicaciones Co Ltd
88
1408

Guangdong Oppo Mobile Telecommunications Corp.Ltd
82
1312

Google tiene sólo 40 de ellos, y esto no es sorprendente: ellos mismos no producen muchos dispositivos de red.

Los bloques MA no se proporcionan de forma gratuita, se pueden comprar a un precio razonable (sin cuota de suscripción) por $3000, $1800 o $755, respectivamente. Curiosamente, por dinero adicional (por año) se puede "ocultar" información pública sobre el bloque asignado. Ahora hay 232, como se puede ver arriba.

¿Cuándo nos quedaremos sin direcciones MAC?

Todos estamos bastante cansados ​​de las historias que han estado circulando durante 10 años de que "las direcciones IPv4 están a punto de agotarse". Sí, los nuevos bloques IPv4 ya no son fáciles de obtener. Se sabe que las direcciones IP distribuido de manera extremadamente desigual; Sin embargo, hay bloques gigantescos y subutilizados propiedad de grandes corporaciones y agencias gubernamentales de Estados Unidos, con pocas esperanzas de redistribuirlos entre los necesitados. La proliferación de NAT, CG-NAT e IPv6 ha aliviado el problema de la escasez de direcciones públicas.

Una dirección MAC tiene 48 bits, de los cuales 46 pueden considerarse “útiles” (¿por qué? sigue leyendo), lo que da 246 o 1014 direcciones, lo que es 214 veces más que el espacio de direcciones IPv4.
Actualmente se han distribuido aproximadamente medio billón de direcciones, o sólo el 0.73% del volumen total. Todavía estamos muy, muy lejos de quedarnos sin direcciones MAC.

bits de aleatoriedad

Se puede suponer que los OUI se distribuyen aleatoriamente y que el proveedor también asigna direcciones aleatoriamente a dispositivos de red individuales. ¿Es tan? Veamos la distribución de bits en las bases de datos de direcciones MAC de los dispositivos 802.11 a mi disposición, recopilados por sistemas de autorización que funcionan en redes inalámbricas. WNAM. Las direcciones pertenecen a dispositivos reales que se conectaron a Wi-Fi durante varios años en tres países. Además, hay una pequeña base de datos de dispositivos LAN cableados 802.3.

Dividamos cada dirección MAC (seis bytes) de cada una de las muestras en bits, byte por byte, y observemos la frecuencia de aparición del bit "1" en cada una de las 48 posiciones. Si el bit se establece de forma completamente arbitraria, entonces la probabilidad de obtener un "1" debería ser del 50%.

Selección de Wi-Fi nº 1 (RF)
Muestra de Wi-Fi nº 2 (Bielorrusia)
Selección de Wi-Fi nº 3 (Uzbekistán)
Muestreo LAN (RF)

Número de registros en la base de datos.
5929000
1274000
366000
1000

Número de bits:
% bits "1"
% bits "1"
% bits "1"
% bits "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 qué tanta injusticia en 7 y 8 bits? Casi siempre hay ceros.

De hecho, la norma define estos bits como especiales (Wikipedia):
Todo lo que querías saber sobre la dirección MAC

El octavo bit (desde el principio) del primer byte de la dirección MAC se llama bit Unicast/Multicast y determina qué tipo de trama (trama) se transmite con esta dirección, regular (0) o difusión (1) (multidifusión o transmisión). Para una comunicación normal con un adaptador de red de unidifusión, este bit se establece en "0" en todos los paquetes que se le envían.

El séptimo bit (desde el principio) del primer byte de la dirección MAC se denomina bit U/L (Universal/Local) y determina si la dirección es globalmente única (0) o localmente única (1). De forma predeterminada, todas las direcciones "cosidas por el fabricante" son globalmente únicas, por lo que la gran mayoría de las direcciones MAC recopiladas contienen el séptimo bit establecido en "0". En la tabla de identificadores OUI asignados, sólo unas 130 entradas tienen un bit U/L de “1”, y aparentemente se trata de bloques de direcciones MAC para necesidades especiales.

Del sexto al primer bit del primer byte, los bits del segundo y tercer byte en los identificadores OUI, y más aún los bits en los 4-6 bytes de la dirección asignada por el fabricante, se distribuyen de manera más o menos uniforme. .

Así, en la dirección MAC real del adaptador de red, los bits son realmente equivalentes y no tienen ningún significado tecnológico, a excepción de dos bits de servicio del byte alto.

Prevalencia

¿Se pregunta qué fabricantes de equipos inalámbricos son los más populares? Combinemos la búsqueda en la base de datos de OUI con los datos de la muestra No. 1.

Proveedor
Proporción de dispositivos, %

Apple
26,09

Samsung
19,79

Ltd de las tecnologías de Huawei
7,80

Xiaomi Comunicaciones Co Ltd
6,83

comunicaciones móviles sony inc.
3,29

LG Electronics (comunicaciones móviles)
2,76

COMPUTADORA ASUSTek INC.
2,58

TCT móvil ltd
2,13

corporación zte
2,00

no encontrado en la base de datos IEEE
1,92

Tecnología de comunicación móvil Lenovo Ltd.
1,71

HTC Corporation
1,68

Fabricación Murata
1,31

Comunicaciones InPro
1,26

Microsoft Corporation
1,11

Shenzhen TINNO tecnología móvil Corp.
1,02

Motorola (Wuhan) Mobility Technologies Communication Co. Limitado.
0,93

Nokia Corporation
0,88

Tecnologías eólicas de Shanghai Co. Limitado
0,74

Lenovo Mobile Communication (Wuhan) Company Limited
0,71

La práctica demuestra que cuanto más próspero sea el contingente de suscriptores de redes inalámbricas en un lugar determinado, mayor será la proporción de dispositivos Apple.

Unicidad

¿Las direcciones MAC son únicas? En teoría, sí, ya que cada fabricante de dispositivos (propietario del bloque MA) debe proporcionar una dirección única para cada uno de los adaptadores de red que produce. Sin embargo, algunos fabricantes de chips, a saber:

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

configure los últimos tres bytes de la dirección MAC en un número aleatorio, aparentemente después de reiniciar cada dispositivo. En mi muestra número 1 había 82 mil direcciones de este tipo.

Por supuesto, puede establecer una dirección extranjera y no única configurándola intencionalmente "como la de su vecino", identificándola con un rastreador o eligiéndola al azar. También es posible establecer accidentalmente una dirección no única, por ejemplo, restaurando una configuración de respaldo de un enrutador como Mikrotik u OpenWrt.

¿Qué pasará si hay dos dispositivos en la red con la misma dirección MAC? Todo depende de la lógica del equipo de red (enrutador cableado, controlador de red inalámbrico). Lo más probable es que ambos dispositivos no funcionen o lo hagan de forma intermitente. Desde el punto de vista de los estándares IEEE, se propone resolver la protección contra la suplantación de direcciones MAC utilizando, por ejemplo, MACsec o 802.1X.

¿Qué sucede si instala una MAC con el séptimo u octavo bit configurado en “1”, es decir? ¿Dirección local o de multidifusión? Lo más probable es que su red no preste atención a esto, pero formalmente dicha dirección no cumplirá con el estándar y es mejor no hacerlo.

Cómo funciona la aleatorización

Sabemos que para evitar el seguimiento de los movimientos de las personas mediante el escaneo y la recopilación de ondas de radio, los sistemas operativos MAC de los teléfonos inteligentes han estado utilizando tecnología de aleatorización durante varios años. Teóricamente, al escanear las ondas en busca de redes conocidas, el teléfono inteligente envía un paquete (grupo de paquetes) del tipo de solicitud de sonda 802.11 con la dirección MAC como fuente:

Todo lo que querías saber sobre la dirección MAC

La aleatorización habilitada le permite especificar no la dirección "unida", sino alguna otra dirección de origen del paquete, que cambia con cada ciclo de escaneo, con el tiempo o de alguna otra manera. ¿Funciona? Veamos las estadísticas de direcciones MAC recopiladas desde el aire por el llamado "radar Wi-Fi":

Muestra completa
Muestra solo con cero séptimo bit

Número de registros en la base de datos.
3920000
305000

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

El panorama es completamente diferente.

El octavo bit del primer byte de la dirección MAC todavía corresponde a la naturaleza de unidifusión de la dirección SRC en el paquete de solicitud de sonda.

El séptimo bit está configurado en Local en el 7% de los casos, es decir Con bastante confianza, podemos suponer que exactamente la misma cantidad de direcciones recopiladas son aleatorias y que menos del 92.2% son reales. En este caso, la distribución de bits en el OUI para dichas direcciones reales coincide aproximadamente con los datos de la tabla anterior.

¿Qué fabricante, según la OUI, posee las direcciones aleatorias (es decir, con el séptimo bit en “7”)?

Fabricante por OUI
Compartir entre todas las direcciones

no encontrado en la base de datos IEEE
62.45%

Google Inc.
37.54%

остальные
0.01%

Además, todas las direcciones aleatorias asignadas a Google pertenecen al mismo OUI con el prefijo DA:A1:19. ¿Qué es este prefijo? miremos dentro fuentes de Android.

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

Stock Android utiliza un OUI especial y registrado cuando busca redes inalámbricas, uno de los pocos con el séptimo bit configurado.

Calcular MAC real a partir de uno aleatorio

Veamos allí:

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

La dirección completa, o sus tres bytes inferiores, es pura Aleatorio.nextLong(). La “recuperación patentada de MAC real” es una estafa. Con un alto grado de confianza, podemos esperar que los fabricantes de teléfonos Android utilicen otros OUI no registrados. No tenemos el código fuente de iOS, pero lo más probable es que se utilice allí un algoritmo similar.

Lo anterior no cancela el trabajo de otros mecanismos para anonimizar a los suscriptores de Wi-Fi, basados ​​en el análisis de otros campos del marco de solicitud de sonda, o la correlación de la frecuencia relativa de las solicitudes enviadas por el dispositivo. Sin embargo, rastrear de forma fiable a un suscriptor utilizando medios externos es extremadamente problemático. Los datos recopilados serán más adecuados para analizar la carga media/pico por ubicación y hora, basándose en grandes números, sin hacer referencia a dispositivos ni personas específicas. Sólo aquellos que están "dentro", los propios fabricantes de sistemas operativos móviles y las aplicaciones instaladas, tienen datos precisos.

¿Qué podría ser peligroso si alguien más supiera la dirección MAC de su dispositivo? Se pueden lanzar ataques de denegación de servicio para redes cableadas e inalámbricas. Para un dispositivo inalámbrico, además, con cierta probabilidad es posible registrar el momento de su aparición en el lugar donde está instalado el sensor. Al falsificar la dirección, puede intentar "hacerse pasar" por su dispositivo, lo que sólo puede funcionar si no se utilizan medidas de seguridad adicionales (autorización y/o cifrado). El 99.9% de la gente aquí no tiene nada de qué preocuparse.

La dirección MAC es más complicada de lo que parece, pero más sencilla de lo que podría ser.

Fuente: habr.com

Añadir un comentario