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.
Os endereços MAC são usados pelos dispositivos ao se conectar 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 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, 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 em uma opção na tela Detalhes da rede em Configurações, conforme mostrado na Figura 1. Se um usuário desativar a randomização de MAC em uma rede, o framework vai usar o endereço MAC de fábrica (endereço globalmente exclusivo).
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 nas seguintes 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 comotrue
. Por padrão, essa sobreposição fica desativada (definida comofalse
).
Randomização persistente
O Android usa o tipo de escolha aleatória persistente por padrão quando o recurso de escolha aleatória 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 é aleatorizado novamente se o usuário esquecer e adicionar novamente a rede Wi-Fi, já que o endereço MAC 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 ao usuário, por exemplo, para lembrar um dispositivo e permitir que os usuários ignorem a tela de login conforme o esperado ou para 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
No tipo de escolha aleatória não persistente, usado para 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 gera um novo endereço MAC aleatório nas seguintes 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 randomizar novamente 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 para randomização não persistente
Em dispositivos com Android 11 ou versões mais recentes, os usuários podem 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 está em Configurações > Opções do desenvolvedor > 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.