Comportamento de ordem aleatória de MAC

Com o recurso de escolha aleatória de MAC, os dispositivos usam um endereço MAC aleatório ao se conectar a uma rede Wi-Fi. Para instruções de implementação, consulte Implementar a ordem aleatória de MAC. Esta página descreve o comportamento da ordem aleatória de MAC no Android.

Quando seu 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 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 randomiza o endereço definindo o bit administrado localmente como 1 e o bit unicast como 0. Os outros 46 bits são aleatórios.

Em dispositivos com Android 10 ou mais recente, a estrutura usa um endereço MAC aleatório por padrão. É possível ativar ou desativar a aleatorização de MAC para redes individuais usando uma opção na tela Detalhes da rede em Configurações, como 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 ordem aleatória de MAC.

Tipos de ordem aleatória de MAC

O framework Android usa dois tipos de escolha aleatória de MAC: persistente e não persistente. Se o usuário desativar a randomização de MAC, o endereço MAC original 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 aleatorização persistente. A partir do Android 12, o Android usa a randomização 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 API WifiNetworkSuggestion.Builder#setMacRandomizationSetting.
  • A rede é aberta e não encontrou um portal cativo, e a sobreposição config_wifiAllowEnhancedMacRandomizationOnOpenSsids está definida como true. Por padrão, essa sobreposição fica desativada (definida como false).

Randomização persistente

O Android usa o tipo de escolha aleatória persistente por padrão quando a escolha aleatória de MAC está ativada. 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é 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.

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

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

Randomização não persistente

Com a ordem aleatória não persistente, usada em algumas redes no Android 12 ou mais recente, o módulo Wi-Fi reorganiza aleatoriamente 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 à rede. O módulo Wi-Fi escolhe um novo endereço MAC aleatório nestas situações:

  • O período de concessão de DHCP expirou e se passaram mais de quatro horas desde que o dispositivo se desconectou dessa rede pela última vez.
  • O MAC aleatório atual do perfil de rede foi gerado há mais de 24 horas. A reorganização aleatória do endereço MAC só acontece no início de uma nova conexão. O Wi-Fi não se desconecta ativamente para gerar um novo endereço MAC aleatório.

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

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

Em dispositivos com Android 11 ou versões mais recentes, é possível ativar a aleatorização de MAC não persistente globalmente para todas as redes Wi-Fi (que têm a aleatorização de MAC ativada) na tela Opções do desenvolvedor. A opção para ativar a ordem aleatória de MAC não persistente em todos os perfis pode ser encontrada em Configurações > Opções do desenvolvedor > Ordem 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 ordem aleatória de MAC não persistente no Wi-Fi.