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 de 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 encriptación, pueden capturarse y usarse para rastrear potencialmente la ubicación de un usuario. Históricamente, los dispositivos usan 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 que el dispositivo sea rastreado e identificado individualmente.
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 una longitud de 48 bits y generalmente se representan con 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 de MAC aleatoriza la dirección configurando el bit administrado localmente en 1 y el bit de unidifusión en 0. Los otros 46 bits se aleatorizan.
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 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 utiliza la dirección MAC de fábrica (dirección única global).
Figura 1. Opción de aleatorización MAC.
Tipos de aleatorización MAC
El marco de trabajo 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 MAC usar cuando el dispositivo se asocia a una red Wi-Fi. De forma predeterminada, Android utiliza la aleatorización persistente. A partir de Android 12, Android usa la aleatorización no persistente en las siguientes situaciones:
- Una aplicación de sugerencia de red especifica que se use la 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á establecida entrue
. Esta superposición está deshabilitada (establecida enfalse
) de forma predeterminada.
Aleatorización persistente
Android usa 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 en función de los parámetros del perfil de red, incluido el SSID, el tipo de seguridad o el FQDN (para redes Passpoint). Esta dirección MAC permanece igual hasta que se restablece la configuración 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 brindar una funcionalidad útil al usuario, por ejemplo, para recordar un dispositivo y permitir que los usuarios omitan la pantalla de inicio de sesión como se esperaba, o para habilitar los controles parentales.
Para Android 10 y 11, el marco utiliza la aleatorización persistente para todas las redes cuando la aleatorización de 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 comienzo de cada conexión o el marco usa la dirección MAC aleatoria existente para conectarse al 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 ha vencido y han transcurrido más de 4 horas desde que el dispositivo se desconectó por última vez de esta red.
- El MAC aleatorio actual para el perfil de red se generó hace más de 24 horas. La re-aleatorización de la dirección MAC solo ocurre al comienzo de una nueva conexión. Wi-Fi no se desconectará activamente con el fin de volver a aleatorizar una dirección MAC.
Si no se aplica ninguna de estas situaciones, el marco utiliza la dirección MAC previamente aleatoria para conectarse a la red.
Opción de desarrollador para aleatorización no persistente
Para los dispositivos que ejecutan Android 11 o superior, los usuarios pueden habilitar la aleatorización de MAC no persistente globalmente para todas las redes Wi-Fi (que tienen habilitada la aleatorización de MAC) a través de la pantalla de opciones del 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 .
Figura 2. Opción de aleatorización de MAC no persistente Wi-Fi.