Tudo o que você queria saber sobre o endereço MAC

Tudo o que você queria saber sobre o endereço MACTodo mundo sabe que esses seis bytes, geralmente exibidos em formato hexadecimal, são atribuídos à placa de rede na fábrica e são aparentemente aleatórios. Algumas pessoas sabem que os três primeiros bytes do endereço são o ID do fabricante e os três bytes restantes são atribuídos a eles. Também se sabe que você mesmo pode definir arbitrário endereço. Muitas pessoas já ouviram falar de “endereços aleatórios” em Wi-Fi.

Vamos descobrir o que é.

Endereço MAC (endereço de controle de acesso à mídia) é um identificador exclusivo atribuído a um adaptador de rede, utilizado em redes dos padrões IEEE 802, principalmente Ethernet, Wi-Fi e Bluetooth. Oficialmente é denominado "identificador de tipo EUI-48". Pelo nome é óbvio que o endereço tem 48 bits, ou seja, 6 bytes. Não existe um padrão geralmente aceito para escrever um endereço (ao contrário de um endereço IPv4, onde os octetos são sempre separados por pontos).Geralmente é escrito como seis números hexadecimais separados por dois pontos:00:AB:CD:EF:11: 22, embora alguns fabricantes de equipamentos prefiram a notação 00 -AB-CD-EF-11-22 e até 00ab.cdef.1122.

Исторически адреса прошивались в ПЗУ чипсета сетевой карты без возможности их модификации без флеш-программатора, но в настоящее время адрес может быть изменен программно, из операционной системы. Задать вручную МАС адрес сетевой карте можно в Linux и MacOS (всегда), Windows (почти всегда, если позволит драйвер), Android (только рутованный); с iOS (без рута) подобный трюк невозможен.

Estrutura de endereço

O endereço consiste em parte do identificador do fabricante, OUI, e um identificador atribuído pelo fabricante. Atribuição de identificadores OUI (Identificador Único Organizacional) envolvido em Organização IEEE. Na verdade, seu comprimento pode ser não apenas de 3 bytes (24 bits), mas de 28 ou 36 bits, dos quais blocos (MAC Address Block, MA) de endereços dos tipos Grande (MA-L), Médio (MA-M) e Pequenos são formados (MA-S), respectivamente. O tamanho do bloco emitido, neste caso, será de 24, 20, 12 bits ou 16 milhões, 1 milhão, 4 mil endereços. Atualmente são cerca de 38 mil blocos distribuídos, que podem ser visualizados através de inúmeras ferramentas online, por exemplo IEEE ou Wireshark.

Quem é o dono dos endereços?

Fácil processamento de informações publicamente disponíveis descarregando bancos de dados O IEEE fornece muitas informações. Por exemplo, algumas organizações tomaram para si muitos blocos OUI. Aqui estão nossos heróis:

Fornecedor
Número de blocos/registros
Número de endereços, milhões

Cisco Systems Inc
888
14208

Apple
772
12352

Samsung
636
10144

Huawei Technologies Co.Ltd
606
9696

Intel Corporation
375
5776

Grupo ARRIS Inc.
319
5104

Nokia Corporation
241
3856

Privado
232
2704

Texas Instruments
212
3392

zte corporação
198
3168

Autoridade de Registro IEEE
194
3072

Hewlett Packard
149
2384

Precisão Hon Hai
136
2176

TP-LINK
134
2144

Dell Inc.
123
1968

Juniper Networks
110
1760

Sagemcom Banda Larga SAS
97
1552

Fiberhome Telecommunication Technologies Co. LTDA
97
1552

Xiaomi Comunicações Co Ltd
88
1408

Guangdong Oppo Mobile Telecommunications Corp.Ltd
82
1312

O Google possui apenas 40 deles, e isso não é surpreendente: eles próprios não produzem muitos dispositivos de rede.

Os blocos MA não são fornecidos gratuitamente, eles podem ser adquiridos por um preço razoável (sem taxa de assinatura) por US$ 3000, US$ 1800 ou US$ 755, respectivamente. Curiosamente, por dinheiro adicional (por ano), você pode adquirir “ocultação” de informações públicas sobre o bloco alocado. São hoje 232, como pode ser visto acima.

Quando ficaremos sem endereços MAC?

Estamos todos cansados ​​das histórias que acontecem há 10 anos de que “os endereços IPv4 estão prestes a acabar”. Sim, novos blocos IPv4 não são mais fáceis de obter. Sabe-se que os endereços IP distribuído de forma extremamente desigual; Existem, no entanto, blocos gigantescos e subutilizados pertencentes a grandes empresas e agências governamentais dos EUA, com pouca esperança de os redistribuir aos necessitados. A proliferação de NAT, CG-NAT e IPv6 tornou o problema da escassez de endereços públicos menos agudo.

Um endereço MAC possui 48 bits, dos quais 46 podem ser considerados “úteis” (por que? Continue lendo), o que dá 246 ou 1014 endereços, o que é 214 vezes mais que o espaço de endereços IPv4.
Atualmente, foram distribuídos aproximadamente meio trilhão de endereços, ou apenas 0.73% do volume total. Ainda estamos muito longe de ficar sem endereços MAC.

Bits de aleatoriedade

Pode-se presumir que os OUIs são distribuídos aleatoriamente e o fornecedor também atribui endereços aleatoriamente a dispositivos de rede individuais. É assim? Vejamos a distribuição de bits nos bancos de dados de endereços MAC dos dispositivos 802.11 à minha disposição, coletados por sistemas de autorização em funcionamento em redes sem fio WNAM. Os endereços pertencem a dispositivos reais que se conectaram ao Wi-Fi durante vários anos em três países. Além disso, há um pequeno banco de dados de dispositivos LAN com fio 802.3.

Vamos dividir cada endereço MAC (seis bytes) de cada uma das amostras em bits, byte por byte, e observar a frequência de ocorrência do bit “1” em cada uma das 48 posições. Se o bit for definido de maneira completamente arbitrária, a probabilidade de obter “1” deverá ser de 50%.

Seleção de Wi-Fi nº 1 (RF)
Amostra de Wi-Fi nº 2 (Bielorrússia)
Seleção de Wi-Fi nº 3 (Uzbequistão)
Amostragem de LAN (RF)

Número de registros no banco de dados
5929000
1274000
366000
1000

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

Por que tanta injustiça em 7 e 8 bits? Quase sempre há zeros.

Na verdade, o padrão define esses bits como especiais (Wikipedia):
Tudo o que você queria saber sobre o endereço MAC

O oitavo bit (desde o início) do primeiro byte do endereço MAC é chamado de bit Unicast/Multicast e determina que tipo de quadro (frame) é transmitido com este endereço, regular (0) ou broadcast (1) (multicast ou transmissão). Para comunicação normal de adaptador de rede unicast, esse bit é definido como “0” em todos os pacotes enviados a ele.

O sétimo bit (desde o início) do primeiro byte do endereço MAC é chamado de bit U/L (Universal/Local) e determina se o endereço é globalmente exclusivo (0) ou localmente exclusivo (1). Por padrão, todos os endereços “costurados pelo fabricante” são globalmente únicos, portanto, a grande maioria dos endereços MAC coletados contém o sétimo bit definido como “0”. Na tabela de identificadores OUI atribuídos, apenas cerca de 130 entradas têm um bit U/L de “1” e, aparentemente, estes são blocos de endereços MAC para necessidades especiais.

Do sexto ao primeiro bit do primeiro byte, os bits do segundo e terceiro bytes nos identificadores OUI, e mais ainda os bits nos 4-6 bytes do endereço atribuído pelo fabricante, são distribuídos mais ou menos uniformemente .

Assim, no endereço MAC real do adaptador de rede, os bits são realmente equivalentes e não têm significado tecnológico, com exceção de dois bits de serviço do byte alto.

Prevalência

Quer saber quais fabricantes de equipamentos sem fio são os mais populares? Vamos combinar a pesquisa no banco de dados OUI com os dados da amostra nº 1.

Fornecedor
Participação de dispositivos, %

Apple
26,09

Samsung
19,79

Huawei Technologies Co Ltd
7,80

Xiaomi Comunicações Co Ltd
6,83

Sony Mobile Communications Inc.
3,29

LG Electronics (comunicações móveis)
2,76

ASUSTek COMPUTADOR INC.
2,58

TCT Celulares Ltda.
2,13

zte corporação
2,00

não encontrado no banco de dados IEEE
1,92

Lenovo Tecnologia de Comunicação Móvel Ltd.
1,71

HTC Corporation
1,68

Fabricação Murata
1,31

Comunicação InPro
1,26

Corporação Microsoft
1,11

Shenzhen TINNO Tecnologia Móvel Corp.
1,02

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

Nokia Corporation
0,88

Xangai Wind Technologies Co. Ltda
0,74

Lenovo Mobile Communication (Wuhan) Company Limited
0,71

A prática mostra que quanto mais próspero for o contingente de assinantes de redes sem fio em um determinado local, maior será a participação dos dispositivos Apple.

singularidade

Os endereços MAC são únicos? Em teoria, sim, já que cada fabricante de dispositivo (proprietário do bloco MA) é obrigado a fornecer um endereço exclusivo para cada um dos adaptadores de rede que produz. No entanto, alguns fabricantes de chips, nomeadamente:

  • 00:0A:F5 Airgo Networks, Inc. (agora Qualcomm)
  • 00:08:22 Comunicação InPro (agora MediaTek)

defina os últimos três bytes do endereço MAC para um número aleatório, aparentemente após cada reinicialização do dispositivo. Havia 1 mil desses endereços na minha amostra nº 82.

Você pode, é claro, definir um endereço estrangeiro e não exclusivo, definindo-o propositalmente como “como o do seu vizinho”, identificando-o com um sniffer ou escolhendo-o aleatoriamente. Também é possível definir acidentalmente um endereço não exclusivo, por exemplo, restaurando uma configuração de backup de um roteador como Mikrotik ou OpenWrt.

O que acontecerá se houver dois dispositivos na rede com o mesmo endereço MAC? Tudo depende da lógica do equipamento de rede (roteador com fio, controlador de rede sem fio). Muito provavelmente, ambos os dispositivos não funcionarão ou funcionarão de forma intermitente. Do ponto de vista dos padrões IEEE, propõe-se que a proteção contra falsificação de endereço MAC seja resolvida usando, por exemplo, MACsec ou 802.1X.

E se você instalar um MAC com o sétimo ou oitavo bit definido como “1”, ou seja, endereço local ou multicast? Muito provavelmente, sua rede não prestará atenção a isso, mas formalmente tal endereço não atenderá ao padrão e é melhor não fazê-lo.

Como funciona a randomização

Sabemos que, para evitar o rastreamento dos movimentos das pessoas por meio da varredura e coleta de ondas aéreas, os sistemas operacionais MAC dos smartphones vêm usando tecnologia de randomização há vários anos. Teoricamente, ao varrer as ondas aéreas em busca de redes conhecidas, o smartphone envia um pacote (grupo de pacotes) do tipo solicitação de sondagem 802.11 tendo como origem o endereço MAC:

Tudo o que você queria saber sobre o endereço MAC

A randomização habilitada permite que você especifique não o “costurado”, mas algum outro endereço de origem do pacote, mudando a cada ciclo de varredura, ao longo do tempo ou de alguma outra forma. Funciona? Vejamos as estatísticas de endereços MAC coletados do ar pelo chamado “Radar Wi-Fi”:

Amostra inteira
Amostra apenas com zero 7º bit

Número de registros no banco de dados
3920000
305000

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

A imagem é completamente diferente.

O 8º bit do primeiro byte do endereço MAC ainda corresponde à natureza Unicast do endereço SRC no pacote de solicitação de investigação.

O 7º bit é definido como Local em 92.2% dos casos, ou seja, Com um certo grau de confiança, podemos assumir que exatamente muitos dos endereços recolhidos são aleatórios e menos de 8% são reais. Neste caso, a distribuição de bits no OUI para tais endereços reais coincide aproximadamente com os dados da tabela anterior.

Qual fabricante, de acordo com a OUI, possui os endereços aleatórios (ou seja, com o 7º bit em “1”)?

Fabricante por OUI
Compartilhe entre todos os endereços

não encontrado no banco de dados IEEE
62.45%

Google Inc.
37.54%

o resto
0.01%

Além disso, todos os endereços aleatórios atribuídos ao Google pertencem ao mesmo OUI com o prefixo DA:A1:19. Qual é esse prefixo? Vamos dar uma olhada código fonte Android.

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

Stock Android usa um OUI especial registrado ao procurar redes sem fio, um dos poucos com o sétimo bit definido.

Calcule o MAC real a partir de um aleatório

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

O endereço inteiro, ou seus três bytes inferiores, é puro Random.nextLong(). «Патентованное восстановление реального МАС» — надувательство. С большой долей уверенности можно ожидать, что производители Android-телефонов применяют и другие, не зарегистрированные OUI. Исходников iOS у нас нет, но скорее всего там применен схожий алгоритм.

O acima exposto não anula o trabalho de outros mecanismos de desanonimização de assinantes Wi-Fi, com base na análise de outros campos do quadro de solicitação de sondagem, ou na correlação da frequência relativa das solicitações enviadas pelo dispositivo. No entanto, rastrear de forma confiável um assinante usando meios externos é extremamente problemático. Os dados coletados serão mais adequados para analisar a carga média/pico por local e horário, com base em grandes números, sem referência a dispositivos e pessoas específicas. Somente aqueles que estão “dentro”, os próprios fabricantes de sistemas operacionais móveis e os aplicativos instalados possuem dados precisos.

Qual o perigo de alguém descobrir o endereço MAC do seu dispositivo? Um ataque de negação de serviço (DoS) pode ser lançado tanto em redes com fio quanto sem fio. No caso de um dispositivo sem fio, existe também a possibilidade de sua presença no local do sensor ser detectada. A falsificação de endereço pode ser usada para se passar pelo seu dispositivo, mas isso só funcionará se medidas de segurança adicionais (autorização e/ou criptografia) não estiverem implementadas. 99.9% As pessoas aqui não têm nada com que se preocupar.

O endereço MAC é mais complicado do que parece, mas mais simples do que poderia ser.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção DDoS, servidores VPS VDS 🔥 Compre hospedagem de sites confiável com proteção contra DDoS, servidores VPS/VDS | ProHoster