Comportamento de randomização MAC

O recurso de randomização MAC permite que os dispositivos usem um endereço MAC aleatório ao se conectarem a uma rede Wi-Fi. Para obter instruções de implementação, consulte Implementando a randomização de MAC . Esta página descreve o comportamento da randomização MAC no Android.

Os endereços MAC são usados ​​pelos dispositivos ao se conectarem a uma rede Wi-Fi ou a um ponto de acesso. Como esses endereços MAC são transmitidos sem criptografia, eles podem ser capturados e usados ​​para rastrear potencialmente a localização de um usuário. Historicamente, os dispositivos usam o endereço MAC de fábrica para se associarem a uma rede Wi-Fi. O endereço MAC de fábrica é globalmente único e estático, permitindo que o dispositivo seja rastreado e identificado individualmente.

O recurso de randomização MAC aumenta a privacidade do usuário usando um endereço MAC aleatório ao se conectar a uma rede Wi-Fi.

Os endereços MAC têm 48 bits e geralmente são representados por 12 dígitos hexadecimais (6 octetos, pois cada octeto tem 8 bits), como 00:11:22:AA:BB:CC . O recurso de randomização MAC torna o endereço aleatório definindo o bit administrado localmente como 1 e o bit unicast como 0. Os outros 46 bits são randomizados.

Para dispositivos que executam o Android 10 ou superior, a estrutura usa o endereço MAC aleatório por padrão. Os usuários podem habilitar ou desabilitar a randomização de MAC para redes individuais por meio de uma opção na tela Detalhes da rede em Configurações , conforme mostrado na Figura 1. Se um usuário desabilita a randomização de MAC para uma rede, a estrutura usa o endereço MAC de fábrica (endereço globalmente exclusivo).

Opção de randomização MAC

Figura 1. Opção de randomização MAC.

Tipos de randomização MAC

A estrutura do Android usa dois tipos de randomização MAC: randomização persistente e randomização não persistente . Se o usuário desabilitar a randomização MAC, o endereço MAC de fábrica é usado.

O Android determina qual tipo de randomização MAC usar quando o dispositivo se associa a uma rede Wi-Fi. Por padrão, o Android usa randomização persistente. A partir do Android 12, o Android usa randomização não persistente nas seguintes situações:

  • Um aplicativo de sugestão de rede especifica que a randomização não persistente seja usada para a rede por meio da API WifiNetworkSuggestion.Builder#setMacRandomizationSetting .
  • A rede é uma rede aberta que não encontrou um portal cativo e a sobreposição config_wifiAllowEnhancedMacRandomizationOnOpenSsids está definida como true . Essa sobreposição está desabilitada (definida como false ) por padrão.

Randomização persistente

O Android usa o tipo de randomização persistente por padrão quando o recurso de randomização MAC está habilitado. O Android gera um endereço MAC aleatório persistente com base nos parâmetros do perfil de rede, incluindo SSID, tipo de segurança ou FQDN (para redes Passpoint). Este endereço MAC permanece o mesmo até a redefinição de fábrica. O endereço MAC não é re-aleatorizado se o usuário esquecer e adicionar novamente a rede Wi-Fi, pois o endereço MAC depende dos parâmetros do perfil da rede.

Os endereços MAC persistentes são necessários nos casos em que as redes dependem da persistência do endereço MAC para fornecer funcionalidade útil ao usuário, por exemplo, para lembrar um dispositivo e permitir que os usuários ignorem a tela de login conforme esperado ou ativem os controles dos pais.

Para Android 10 e 11, a estrutura usa randomização persistente para todas as redes quando a randomização MAC está habilitada.

Randomização não persistente

No tipo de randomização não persistente, que é usado para algumas redes no Android 12 ou superior, o módulo Wi-Fi reordena o endereço MAC no início de cada conexão ou a estrutura usa o endereço MAC aleatório existente para se conectar ao rede. O módulo Wi-Fi re-randomiza o endereço MAC nas seguintes situações:

  • A duração da concessão do DHCP expirou e mais de 4 horas se passaram desde a última desconexão do dispositivo desta rede.
  • O MAC aleatório atual para o perfil de rede foi gerado há mais de 24 horas. A nova randomização do endereço MAC só acontece no início de uma nova conexão. O Wi-Fi não será desconectado ativamente com a finalidade de re-aleatorizar um endereço MAC.

Se nenhuma dessas situações se aplicar, a estrutura usa o endereço MAC aleatório anteriormente para se conectar à rede.

Opção do desenvolvedor para randomização não persistente

Para dispositivos que executam o Android 11 ou 12, os usuários podem habilitar a randomização MAC não persistente globalmente para todas as redes Wi-Fi (que têm a randomização MAC habilitada) por meio da tela de opções do desenvolvedor . A opção de habilitar a randomização de MAC não persistente para todos os perfis é encontrada em Configurações > Opções do desenvolvedor > Aleatorização de MAC não persistente de Wi-Fi .

Opção de randomização MAC não persistente de Wi-Fi

Figura 2. Opção de randomização de MAC não persistente de Wi-Fi.