Comportamento de ordem aleatória de MAC

O recurso de escolha aleatória de MAC permite que os dispositivos usem um endereço MAC aleatório ao se conectar a uma rede Wi-Fi. Para instruções de implementação, consulte Implementar a ordenação aleatória de MAC. Esta página descreve o comportamento da ordem aleatória de 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 o local de um usuário. Historicamente, os dispositivos usam o endereço MAC de fábrica para se associar a uma rede Wi-Fi. O endereço MAC de fábrica é globalmente exclusivo e estático, permitindo que o dispositivo seja rastreado e identificado individualmente.

O recurso de escolha aleatória de 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, já que cada octeto tem 8 bits), como 00:11:22:AA:BB:CC. O recurso de randomização de MAC gera um 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 com o Android 10 ou mais recente, o framework usa endereços MAC aleatórios por padrão. Os usuários podem ativar ou desativar a escolha aleatória de MAC para redes individuais usando uma opção na tela Detalhes da rede em Configurações, conforme mostrado na Figura 1. Se um usuário desativar a ordem aleatória de MAC para uma rede, o framework usará o endereço MAC de fábrica (endereço globalmente exclusivo).

Opção de ordem aleatória de MAC

Figura 1. Opção de ordem aleatória de MAC.

Tipos de ordem aleatória de MAC

O framework do Android usa dois tipos de escolha aleatória de MAC: escolha aleatória persistente e escolha aleatória não persistente. Se o usuário desativar a ordem aleatória de MAC, o endereço MAC de fábrica será usado.

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

  • Um app de sugestão de rede especifica que a randomização não persistente seja usada para a rede pela 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 fica desativada (definida como false) por padrão.

Ordem aleatória persistente

O Android usa o tipo de randomização persistente por padrão quando o recurso de randomização de MAC está ativado. 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). Esse endereço MAC permanece o mesmo até a redefinição de fábrica. O endereço MAC não é randomizado novamente se o usuário esquecer e adicionar a rede Wi-Fi novamente, já que o endereço MAC depende dos parâmetros do perfil de rede.

Endereços MAC persistentes são necessários nos casos em que as redes dependem da persistência do endereço MAC para fornecer funcionalidades úteis ao usuário, por exemplo, para lembrar um dispositivo e permitir que os usuários ignorem a tela de login como esperado ou para ativar o controle da família.

No Android 10 e 11, o framework usa a aleatoriedade persistente para todas as redes quando a escolha aleatória de MAC está ativada.

Randomização não persistente

No tipo de ordenação aleatória não persistente, que é usado para algumas redes no Android 12 ou versões mais recentes, o módulo Wi-Fi reorganiza aleatoriamente o endereço MAC no início de cada conexão ou o framework usa o endereço MAC aleatório existente para se conectar à rede. O módulo Wi-Fi reorganiza o endereço MAC de forma aleatória nestas situações:

  • A duração do contrato de DHCP expirou e mais de quatro horas se passaram desde a última desconexão do dispositivo desta rede.
  • O MAC aleatório atual do perfil de rede foi gerado há mais de 24 horas. A ordem aleatória de endereços MAC só acontece no início de uma nova conexão. O Wi-Fi não se desconecta ativamente para re-randomizar um endereço MAC.

Se nenhuma dessas situações se aplicar, o framework vai usar o endereço MAC aleatório anterior para se conectar à rede.

Opção para desenvolvedores de randomização não persistente

Em dispositivos com o Android 11 ou versões mais recentes, os usuários podem ativar a randomização de MAC não persistente globalmente para todas as redes Wi-Fi (que tenham a randomização de MAC ativada) na tela de opções para desenvolvedores. A opção para ativar a ordenação aleatória de MAC não persistente para todos os perfis está em Configurações > Opções do desenvolvedor > Ordem aleatória de MAC não persistente do Wi-Fi.

Opção de ordem aleatória de MAC não persistente no Wi-Fi

Figura 2. Opção de ordem aleatória de MAC não persistente no Wi-Fi.