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 escolha aleatória de MAC. Esta página descreve o comportamento da escolha aleatória de MAC no Android.

Quando o dispositivo se conecta a uma rede Wi-Fi ou a um ponto de acesso, ele usa endereços MAC. Como esses endereços MAC são transmitidos sem criptografia, eles podem ser capturados e usados para rastrear a localização 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 de comprimento 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 escolha aleatória de MAC randomiza o endereço 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 um endereço MAC aleatório por padrão. É possível 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 você desativar a escolha aleatória de MAC para uma rede, o framework vai 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 escolha aleatória de MAC.

Tipos de escolha aleatória de MAC

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

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

  • Um app de sugestão de rede especifica que a escolha aleatória não persistente seja usada para a rede pela WifiNetworkSuggestion.Builder#setMacRandomizationSetting API.
  • 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á desativada (definida como false) por padrão.

Escolha aleatória persistente

O Android usa o tipo de escolha aleatória persistente por padrão quando a escolha aleatória de MAC está ativada. Ele 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é uma redefinição de fábrica. O endereço MAC não é randomizado novamente se você esquecer e adicionar novamente a rede Wi-Fi, porque ele depende dos parâmetros do perfil de rede.

Os endereços MAC persistentes são necessários quando as redes dependem da persistência do endereço MAC para fornecer funcionalidades úteis. Por exemplo, eles podem ajudar a lembrar um dispositivo e permitir que você ignore a tela de login conforme o esperado ou ative o controle da família.

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

Escolha aleatória não persistente

Com a escolha aleatória não persistente, que é usada para algumas redes no Android 12 ou mais recente, o módulo Wi-Fi randomiza novamente o endereço MAC no início de cada conexão ou o framework usa o endereço MAC aleatório atual para se conectar à rede. O módulo Wi-Fi randomiza novamente o endereço MAC nestas situações:

  • O período de concessão de DHCP expirou e mais de 4 horas se passaram desde que o dispositivo foi desconectado dessa rede.
  • O MAC aleatório atual para o perfil de rede foi gerado há mais de 24 horas. A randomização do endereço MAC só acontece no início de uma nova conexão. O Wi-Fi não vai se desconectar ativamente para randomizar novamente um endereço MAC.

Se nenhuma dessas situações se aplicar, o framework vai usar o endereço MAC randomizado anteriormente para se conectar à rede.

Opção do desenvolvedor para escolha aleatória não persistente

Para dispositivos com o Android 11 ou mais recente, é possível ativar a escolha aleatória de MAC não persistente globalmente para todas as redes Wi-Fi (que têm a escolha aleatória de MAC ativada) na tela de opções do desenvolvedor. A opção para ativar a escolha aleatória de MAC não persistente para todos os perfis pode ser encontrada em Configurações > Opções do desenvolvedor > Escolha aleatória de MAC não persistente no Wi-Fi.

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

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