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

Todo mundo sabe que esses são seis bytes, geralmente exibidos em formato hexadecimal, atribuídos a uma placa de rede na fábrica e, à primeira vista, são aleatórios. Algumas pessoas sabem que os três primeiros bytes do endereço são o identificador do fabricante e os três bytes restantes são atribuídos a eles. Também é sabido que você pode definir um endereço arbitrário . Muitos já ouviram falar dos "endereços aleatórios" no Wi-Fi.


Vamos descobrir o que é isso.


Endereço MAC (endereço de controle de acesso à mídia) - um identificador exclusivo atribuído a um adaptador de rede; é usado em redes padrão IEEE 802, principalmente Ethernet, Wi-Fi e Bluetooth. Oficialmente, é chamado de "identificador do tipo EUI-48". É óbvio pelo nome que o endereço tem 48 bits, ou seja, 6 bytes. Geralmente, não há um padrão aceito para escrever um endereço (em vez 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 escrever como 00 -AB-CD-EF-11-22 e até 00ab.cdef.1122.


Historicamente, os endereços eram costurados na ROM do chipset da placa de rede sem a possibilidade de sua modificação sem um programador flash, mas atualmente o endereço pode ser alterado programaticamente a partir do sistema operacional. Você pode definir manualmente o endereço MAC da placa de rede no Linux e MacOS (sempre), Windows (quase sempre, se o driver permitir), Android (apenas raiz); com o iOS (sem raiz), um truque semelhante é impossível.


Estrutura de Endereços


O endereço consiste em uma parte do identificador do fabricante, OUI, e o identificador atribuído pelo fabricante. O OUI (Organizationally Unique Identifier) é atribuído pelo IEEE. De fato, seu comprimento pode ser não apenas de 3 bytes (24 bits), mas de 28 ou 36 bits, dos quais são formados os blocos MAC Address Block (MA) dos tipos Grande (MA-L), Médio (MA-M) e Pequeno (MA-S), respectivamente. O tamanho do bloco emitido, neste caso, será de 24, 20, 12 bits ou 16 milhões, 1 milhão e 4 mil endereços. Atualmente, cerca de 38 mil blocos são distribuídos, eles podem ser visualizados com inúmeras ferramentas online, por exemplo, IEEE ou Wireshark .


Quem possui os endereços


O processamento simples do banco de dados de upload IEEE disponível ao público fornece muitas informações. Por exemplo, algumas organizações adotaram muitos blocos de OUI. Aqui estão nossos heróis:


FornecedorO número de blocos / registrosO número de endereços, milhões
Cisco Systems Inc88814208
Maçã77212352
Samsung63610144
Huawei Technologies Co. Ltd6069696
Intel Corporation3755776
ARRIS Group Inc.3195104
Nokia Corporation2413856
Particular2322704
Texas Instruments2123392
corporação zte1983168
Autoridade de Registro IEEE1943072
Hewlett packard1492384
Hon Hai Precision1362176
TP-LINK1342144
Dell Inc.1231968
Juniper Networks1101760
Sagemcom Broadband SAS971552
Fiberhome Telecomunicações Tecnologias Co. LTD971552
Xiaomi Communications Co Ltd881408
Guangdong Oppo Telecomunicações Móveis Corp.Ltd821312

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


Os blocos MA não são fornecidos gratuitamente, eles podem ser adquiridos por dinheiro razoável (sem uma taxa mensal) por US $ 3000, US $ 1800 ou US $ 755, respectivamente. É interessante que, pelo dinheiro extra (por ano), você possa comprar "ocultação" de informações públicas sobre o bloco alocado. Existem 232 deles agora, como pode ser visto acima.


Quando o endereço MAC vai acabar?


Estamos todos cansados ​​da história de dez 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. Também é sabido que os endereços IP são distribuídos de maneira extremamente desigual ; existem blocos gigantes e pouco usados, de propriedade de grandes corporações e do governo dos EUA, no entanto, sem muita esperança de sua redistribuição em favor dos necessitados. A proliferação de NAT, CG-NAT e IPv6 tornou o problema da falta de endereços públicos menos grave.


O endereço MAC possui 48 bits, dos quais 46 são úteis (por quê? Continue lendo), que fornece 2 46 ou 10 14 endereços, o que representa 2 14 vezes o espaço de endereço IPv4.
No momento, são distribuídos aproximadamente meio trilhão de endereços, ou apenas 0,73% do volume total. A exaustão dos endereços MAC ainda é muito, muito longe.


Bit aleatório


Pode-se supor que as OUIs sejam distribuídas aleatoriamente, e o fornecedor também atribui endereços aleatoriamente a dispositivos de rede individuais. É isso mesmo? Vejamos a distribuição de bits nas bases MAC dos endereços que tenho à minha disposição para dispositivos 802.11 coletados por sistemas de autorização de trabalho em redes sem fio WNAM . Os endereços pertencem a dispositivos reais que foram conectados ao Wi-Fi por vários anos em três países. Além disso, há uma pequena base de dispositivos LAN com fio 802.3.


Dividimos cada endereço MAC (seis bytes) de cada uma das amostras em bits por bytes, e observamos 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" deve ser de 50%.


Amostra de Wi-Fi nº 1 (RF)Amostra de Wi-Fi n.º 2 (Bielorrússia)Amostra de Wi-Fi nº 3 (Uzbequistão)Amostra de LAN (RF)
O número de registros no banco de dados592900012740003660001000
Número do bit:% bit "1"% bit "1"% bit "1"% bit "1"
148,6%49,2%50,7%28,7%
244,8%49,1%47,7%30,7%
346,7%48,3%46,8%35,8%
448,0%48,6%49,8%37,1%
545,7%46,9%47,0%32,3%
646,6%46,7%47,8%27,1%
70,3%0,3%0,2%0,7%
80,0%0,0%0,0%0,0%
948,1%50,6%49,4%38,1%
1049,1%50,2%47,4%42,7%
1150,8%50,0%50,6%42,9%
1249,0%48,4%48,2%53,7%
1347,6%47,0%46,3%48,5%
1447,5%47,4%51,7%46,8%
1548,3%47,5%48,7%46,1%
1650,6%50,4%51,2%45,3%
1749,4%50,4%54,3%38,2%
1849,8%50,5%51,5%51,9%
1951,6%53,3%53,9%42,6%
2046,6%46,1%45,5%48,4%
2151,7%52,9%47,7%48,9%
2249,2%49,6%41,6%49,8%
2351,2%50,9%47,0%41,9%
2449,5%50,2%50,1%47,5%
2547,1%47,3%47,7%44,2%
2648,6%48,6%49,2%43,9%
2749,8%49,0%49,7%48,9%
28.49,3%49,3%49,7%55,1%
2949,5%49,4%49,8%49,8%
3049,8%49,8%49,7%52,1%
3149,5%49,7%49,6%46,6%
32.49,4%49,7%49,5%47,5%
3349,4%49,8%49,7%48,3%
3449,7%50,0%49,6%44,9%
3549,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%
4350,1%50,0%50,3%56,1%
4450,1%50,0%50,1%45,8%
4550,0%50,0%50,1%50,1%
46.50,0%50,0%50,1%49,5%
4749,2%49,4%49,7%45,2%
48.49,9%50,1%50,7%54,6%

De onde vem essa injustiça nos bits 7 e 8? Quase sempre há zeros.


De fato, o padrão define esses bits como especiais ( Wikipedia ):


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 (quadro) é transmitido com esse endereço, normal (0) ou broadcast (1) (multicast ou broadcast). Para a interação normal do 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 exclusivos, portanto, o número esmagador de 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, esses são blocos de endereços MAC para necessidades especiais.


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


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


Prevalência


Gostaria de saber quais fabricantes de equipamentos sem fio são os mais populares? Combine a pesquisa OUI com os dados de amostra nº 1.


FornecedorO compartilhamento de dispositivos,%
Maçã26,09
Samsung19,79
Huawei Technologies Co. Ltd7,80
Xiaomi Communications Co Ltd6,83
Sony Mobile Communications Inc3,29
LG Electronics (Comunicações Móveis)2,76
ASUSTek COMPUTER INC.2,58
TCT mobile ltd2,13
corporação zte2,00
não encontrado no banco de dados IEEE1,92
Tecnologia de comunicação móvel Lenovo Ltd.1,71
HTC Corporation1,68
Murata Manufactuaring1,31
Inpro comm1,26
Microsoft Corporation1,11
Shenzhen TINNO Mobile Technology Corp.1,02
Comunicação Co. das tecnologias de mobilidade da Motorola (Wuhan) Ltd.0,93
Nokia Corporation0,88
Tecnologias de vento de Shanghai Co. Ltd0,74
Companhia de Comunicação Móvel Lenovo (Wuhan) Limited0,71

A prática mostra que, quanto mais próspero o contingente de assinantes sem fio neste local, maior a proporção de dispositivos Apple.


Exclusividade


Os endereços MAC são únicos? Em teoria, sim, uma vez que cada um dos fabricantes de dispositivos (proprietários da unidade MA) deve fornecer um endereço exclusivo para cada um de seus adaptadores de rede. No entanto, alguns fabricantes de chips, a saber:


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

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


Você pode se definir como um estranho, não como um endereço exclusivo, é claro, configurando-o propositadamente "como um vizinho", definindo-o como um farejador ou escolhendo aleatoriamente. Também é possível definir acidentalmente um endereço não exclusivo executando, por exemplo, a restauração de uma configuração de backup de um roteador como Mikrotik ou OpenWrt.


O que acontece se dois dispositivos com o mesmo endereço MAC estiverem presentes na rede? Tudo depende da lógica do equipamento de rede (roteador com fio, controlador de rede sem fio). Provavelmente, ambos os dispositivos não funcionarão ou funcionarão intermitentemente. Do ponto de vista dos padrões IEEE, propõe-se resolver a proteção contra a falsificação de endereços MAC usando, por exemplo, MACsec ou 802.1X.


E se você colocar um MAC com o sétimo ou oitavo bit definido como "1", ou seja, endereço local ou multicast? Provavelmente, sua rede não prestará atenção a isso, mas formalmente, esse endereço não estará em conformidade com o padrão, e é melhor não fazê-lo.


Como a randomização funciona


Sabemos que, para impedir o rastreamento do movimento de pessoas através da varredura no ar e da coleta de sistemas operacionais de smartphones com MAC, a tecnologia de randomização vem sendo utilizada há vários anos. Teoricamente, ao varrer o ar em busca de redes conhecidas, o smartphone envia um pacote (grupo de pacotes) do tipo de solicitação do probe 802.11 com o endereço MAC como fonte:



A randomização incluída permite que você especifique não "piscou", mas algum outro endereço de origem do pacote, mudando a cada ciclo de varredura, a tempo ou de alguma forma. Isso funciona? Vejamos as estatísticas dos endereços MAC coletados a partir do ar com o chamado "Wi-Fi Radar":


Amostra inteiraAmostragem com apenas 7m de bit
O número de registros no banco de dados3920000305.000
Número do bit:% bit "1"% bit "1"
166,1%43,3%
266,5%43,4%
331,7%43,8%
466,6%46,4%
566,7%45,7%
631,9%46,4%
792,2%0,0%
80,0%0,0%
967,2%47,5%
1032,3%45,6%
1166,9%45,3%
1232,3%46,8%
1332,6%50,1%
1433,0%56,1%
1532,5%45,0%
1667,2%48,3%
1733,2%56,9%
1833,3%56,8%
1933,3%56,3%
2066,8%43,2%
2167,0%46,4%
2232,6%50,1%
2332,9%51,2%
2467,6%52,2%
2549,8%47,8%
2650,0%50,0%
2750,0%50,2%
28.50,0%49,8%
2950,0%49,4%
3050,0%50,0%
3150,0%49,7%
32.50,0%49,9%
3350,0%49,7%
3450,0%49,6%
3550,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%
4350,0%50,1%
4450,0%50,1%
4550,0%50,0%
46.50,0%49,8%
4750,0%49,8%
48.50,1%50,9%

A imagem é completamente diferente.


O oitavo bit do primeiro byte do endereço MAC ainda corresponde à natureza Unicast do endereço SRC no pacote de solicitação de análise.


O sétimo bit em 92,2% dos casos é definido como Local, ou seja, com uma quantidade razoável de certeza, podemos assumir que apenas tantos endereços coletados são randomizados e menos de 8% são reais. Além disso, a distribuição de bits na OUI para esses endereços reais coincide aproximadamente com os dados da tabela anterior.


De acordo com a OUI, a qual fabricante os endereços aleatórios pertencem (ou seja, com o sétimo bit em "1")?


Fabricante por OUICompartilhar entre todos os endereços
não encontrado no banco de dados IEEE62,45%
Google Inc.37,54%
o resto0,01%

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


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

O Android padrão usa um OUI especial e registrado, um dos poucos com o sétimo bit definido, na busca por redes sem fio.


Calcular MAC real de forma aleatória


Vamos olhar 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 pelo menos três bytes, é Random.nextLong () puro. “Recuperação patenteada de MAS real” - uma fraude. Com um alto grau de certeza, pode-se esperar que os fabricantes de telefones Android usem outras OUIs não registradas. Não temos fontes para iOS, mas provavelmente um algoritmo semelhante é usado lá.


O exposto acima não cancela a operação de outros mecanismos de des-anonimização de assinantes de Wi-Fi, com base na análise de outros campos do quadro de solicitação do probe ou na correlação da frequência relativa de solicitações enviadas pelo dispositivo. No entanto, o rastreamento confiável de um assinante por meios externos é extremamente problemático. Os dados coletados sã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íficos. Dados precisos são apenas para aqueles que estão "dentro", os próprios fabricantes de sistemas operacionais móveis, aplicativos instalados.


O que poderia ser perigoso se alguém descobrir o endereço MAC do seu dispositivo? Para redes com fio e sem fio, um ataque de negação de serviço pode ser organizado. Além disso, para um dispositivo sem fio, com alguma probabilidade, é possível fixar o momento da aparência no local em que o sensor está instalado. Ao falsificar o endereço, você pode tentar “fingir” ser o seu dispositivo, o que só funcionará se medidas de segurança adicionais não forem aplicadas (autorização e / ou criptografia). 99,9% das pessoas aqui não têm nada com que se preocupar.


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

Source: https://habr.com/ru/post/pt483670/


All Articles