Todo 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).
Quen é o propietario dos enderezos?
Fácil procesamento de accesibles ao público
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
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
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 (
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:
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
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