Comportamiento de aleatorización MAC

La función de aleatorización de MAC permite que los dispositivos utilicen una dirección MAC aleatoria cuando se conectan a una red Wi-Fi. Para obtener instrucciones de implementación, consulte Implementación de la aleatorización MAC . Esta página describe el comportamiento de la aleatorización de MAC en Android.

Los dispositivos utilizan las direcciones MAC cuando se conectan a una red Wi-Fi o a un punto de acceso. Debido a que estas direcciones MAC se transmiten sin cifrado, pueden capturarse y usarse para rastrear potencialmente la ubicación de un usuario. Históricamente, los dispositivos utilizan la dirección MAC de fábrica para asociarse a una red Wi-Fi. La dirección MAC de fábrica es globalmente única y estática, lo que permite rastrear e identificar individualmente el dispositivo.

La función de aleatorización de MAC aumenta la privacidad del usuario mediante el uso de una dirección MAC aleatoria cuando se conecta a una red Wi-Fi.

Las direcciones MAC tienen 48 bits de longitud y generalmente se representan mediante 12 dígitos hexadecimales (6 octetos, ya que cada octeto tiene 8 bits), como 00:11:22:AA:BB:CC . La función de aleatorización MAC aleatoriza la dirección estableciendo el bit administrado localmente en 1 y el bit de unidifusión en 0. Los otros 46 bits son aleatorios.

Para dispositivos con Android 10 o superior, el marco utiliza una dirección MAC aleatoria de forma predeterminada. Los usuarios pueden habilitar o deshabilitar la aleatorización de MAC para redes individuales a través de una opción en la pantalla de detalles de la red en Configuración , como se muestra en la Figura 1. Si un usuario deshabilita la aleatorización de MAC para una red, el marco usa la dirección MAC de fábrica (dirección global única).

Opción de aleatorización MAC

Figura 1. Opción de aleatorización de MAC.

Tipos de aleatorización MAC

El marco de Android utiliza dos tipos de aleatorización MAC: aleatorización persistente y aleatorización no persistente . Si el usuario desactiva la aleatorización de MAC, se utiliza la dirección MAC de fábrica.

Android determina qué tipo de aleatorización de MAC usar cuando el dispositivo se asocia a una red Wi-Fi. De forma predeterminada, Android utiliza aleatorización persistente. A partir de Android 12, Android utiliza aleatorización no persistente en las siguientes situaciones:

  • Una aplicación de sugerencia de red especifica que se utilice aleatorización no persistente para la red a través de la API WifiNetworkSuggestion.Builder#setMacRandomizationSetting .
  • La red es una red abierta que no ha encontrado un portal cautivo y la superposición config_wifiAllowEnhancedMacRandomizationOnOpenSsids está configurada en true . Esta superposición está deshabilitada (establecida en false ) de forma predeterminada.

Aleatorización persistente

Android utiliza el tipo de aleatorización persistente de forma predeterminada cuando la función de aleatorización MAC está habilitada. Android genera una dirección MAC aleatoria persistente basada en los parámetros del perfil de red, incluido SSID, tipo de seguridad o FQDN (para redes Passpoint). Esta dirección MAC sigue siendo la misma hasta el restablecimiento de fábrica. La dirección MAC no se vuelve a aleatorizar si el usuario olvida y vuelve a agregar la red Wi-Fi, ya que la dirección MAC depende de los parámetros del perfil de red.

Las direcciones MAC persistentes son necesarias en los casos en que las redes dependen de la persistencia de la dirección MAC para proporcionar una funcionalidad útil al usuario, por ejemplo, para recordar un dispositivo y permitir a los usuarios omitir la pantalla de inicio de sesión como se espera, o para habilitar los controles parentales.

Para Android 10 y 11, el marco utiliza aleatorización persistente para todas las redes cuando la aleatorización MAC está habilitada.

Aleatorización no persistente

Bajo el tipo de aleatorización no persistente, que se usa para algunas redes en Android 12 o superior, el módulo Wi-Fi vuelve a aleatorizar la dirección MAC al inicio de cada conexión o el marco usa la dirección MAC aleatoria existente para conectarse a la red. El módulo Wi-Fi vuelve a aleatorizar la dirección MAC en las siguientes situaciones:

  • La duración de la concesión de DHCP expiró y han transcurrido más de 4 horas desde la última vez que el dispositivo se desconectó de esta red.
  • La MAC aleatoria actual para el perfil de red se generó hace más de 24 horas. La nueva aleatorización de la dirección MAC solo ocurre al inicio de una nueva conexión. El Wi-Fi no se desconectará activamente con el fin de volver a aleatorizar una dirección MAC.

Si ninguna de estas situaciones se aplica, el marco utiliza la dirección MAC previamente aleatoria para conectarse a la red.

Opción de desarrollador para aleatorización no persistente

Para dispositivos con Android 11 o superior, los usuarios pueden habilitar la aleatorización de MAC no persistente globalmente para todas las redes Wi-Fi (que tengan la aleatorización de MAC habilitada) a través de la pantalla de opciones de desarrollador . La opción para habilitar la aleatorización de MAC no persistente para todos los perfiles se encuentra en Configuración > Opciones de desarrollador > Aleatorización de MAC no persistente de Wi-Fi .

Opción de aleatorización de MAC no persistente Wi-Fi

Figura 2. Opción de aleatorización de MAC no persistente de Wi-Fi.