O recurso de randomização de MAC permite que os dispositivos usem um endereço MAC aleatório ao se conectar a uma rede Wi-Fi. Para obter instruções de implementação, consulte Implementando MAC Randomization . Esta página descreve o comportamento da randomização 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 possivelmente 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 randomização de MAC aumenta a privacidade do usuário usando um endereço MAC aleatório ao conectar-se 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, 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 aleatórios.
Para dispositivos com Android 10 ou superior, a estrutura usa endereço MAC aleatório por padrão. Os usuários podem habilitar ou desabilitar a randomização de MAC para redes individuais por meio de uma opção na tela de detalhes da rede em Configurações , conforme mostrado na Figura 1. Se um usuário desabilitar a randomização de 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 do MAC.
tipos de randomização MAC
A estrutura do Android usa dois tipos de randomização de MAC: randomização persistente e randomização não persistente . Se o usuário desativar a randomização de MAC, o endereço MAC de fábrica será usado.
O Android determina qual tipo de randomização de MAC usar quando o dispositivo se associar 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á desativada (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á habilitado. 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 é 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 de rede.
Os endereços MAC persistentes são necessários nos casos em que as redes dependem da persistência do endereço MAC para fornecer funcionalidade útil 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 habilitar o controle dos pais.
Para Android 10 e 11, a estrutura usa randomização persistente para todas as redes quando a randomização de MAC está habilitada.
Randomização não persistente
Sob o tipo de randomização não persistente, que é usado para algumas redes no Android 12 ou superior, o módulo Wi-Fi torna aleatório 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 torna aleatório 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 o objetivo de randomizar novamente um endereço MAC.
Se nenhuma dessas situações se aplicar, a estrutura usará o endereço MAC previamente aleatório 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 habilitar a randomização MAC não persistente globalmente para todas as redes Wi-Fi (com a randomização MAC habilitada) por meio da tela de opções do desenvolvedor . A opção para ativar a randomização de MAC não persistente para todos os perfis é encontrada em Configurações > Opções do desenvolvedor > Randomização de MAC não persistente de Wi-Fi .
Figura 2. Opção de randomização MAC não persistente de Wi-Fi.