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 MAC . Esta página descreve o comportamento da randomização MAC no Android.
Os endereços MAC são usados pelos dispositivos ao se conectar a uma rede Wi-Fi ou ponto de acesso. Como esses endereços MAC são transmitidos sem criptografia, eles podem ser capturados e usados para potencialmente rastrear 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 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 Android 10 ou superior, a estrutura usa endereços MAC aleatórios por padrão. Os usuários podem ativar ou desativar a randomização 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 desabilitar a randomização MAC para uma rede, a estrutura usará o endereço MAC de fábrica (endereço globalmente exclusivo).
Figura 1. Opção de randomização MAC.
Tipos de randomização MAC
A estrutura 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 será 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 comotrue
. Essa sobreposição está desabilitada (definida comofalse
) 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á 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). Este endereço MAC permanece o mesmo até a redefinição de fábrica. O endereço MAC não será randomizado novamente 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.
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 conforme esperado ou para ativar o controle 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 re-randomiza 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 vez que o dispositivo foi desconectado desta rede.
- O MAC aleatório atual para o perfil de rede foi gerado há mais de 24 horas. A re-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 reorganizar aleatoriamente um endereço MAC.
Se nenhuma dessas situações se aplicar, a estrutura usará o endereço MAC previamente randomizado para se conectar à rede.
Opção do desenvolvedor para randomização não persistente
Para dispositivos com Android 11 ou superior, os usuários podem ativar a randomização MAC não persistente globalmente para todas as redes Wi-Fi (que tenham a randomização MAC habilitada) por meio da tela de opções do desenvolvedor . A opção para ativar a randomização MAC não persistente para todos os perfis é encontrada em Configurações > Opções do desenvolvedor > Randomização MAC não persistente de Wi-Fi .
Figura 2. Opção de randomização MAC não persistente de Wi-Fi.