Comportement de la randomisation MAC

La fonctionnalité de changement aléatoire d'adresse MAC permet aux appareils d'utiliser une adresse MAC aléatoire lorsqu'ils se connectent à un réseau Wi-Fi. Pour obtenir des instructions sur l'implémentation, consultez Implémenter l'aléatorisation de l'adresse MAC. Cette page décrit le comportement de l'aléatorisation de l'adresse MAC dans Android.

Les adresses MAC sont utilisées par les appareils lorsqu'ils se connectent à un réseau Wi-Fi ou à un point d'accès. Comme ces adresses MAC sont transmises sans chiffrement, elles peuvent être capturées et utilisées pour potentiellement suivre la position d'un utilisateur. Historiquement, les appareils utilisent l'adresse MAC d'usine pour s'associer à un réseau Wi-Fi. L'adresse MAC d'usine est globalement unique et statique, ce qui permet de suivre et d'identifier individuellement l'appareil.

La fonctionnalité de randomisation de l'adresse MAC améliore la confidentialité des utilisateurs en utilisant une adresse MAC aléatoire lors de la connexion à un réseau Wi-Fi.

Les adresses MAC sont composées de 48 bits et sont généralement représentées par 12 chiffres hexadécimaux (6 octets, car chaque octet est composé de 8 bits), comme 00:11:22:AA:BB:CC. La fonctionnalité de randomisation de l'adresse MAC randomise l'adresse en définissant le bit localement administré sur 1 et le bit unicast sur 0. Les 46 autres bits sont aléatoires.

Pour les appareils équipés d'Android 10 ou version ultérieure, le framework utilise par défaut une adresse MAC aléatoire. Les utilisateurs peuvent activer ou désactiver l'aléatorisation de l'adresse MAC pour des réseaux individuels à l'aide d'une option de l'écran Détails du réseau dans Paramètres, comme illustré à la figure 1. Si un utilisateur désactive l'aléatorisation de l'adresse MAC pour un réseau, le framework utilise l'adresse MAC d'usine (adresse unique au niveau mondial).

Option de sélection aléatoire de l'adresse MAC

Figure 1 : Option de sélection aléatoire de l'adresse MAC.

Types de randomisation MAC

Le framework Android utilise deux types de sélection aléatoire de l'adresse MAC : sélection aléatoire persistante et sélection aléatoire non persistante. Si l'utilisateur désactive l'aléatorisation de l'adresse MAC, l'adresse MAC d'usine est utilisée.

Android détermine le type d'aléatorisation de l'adresse MAC à utiliser lorsque l'appareil s'associe à un réseau Wi-Fi. Par défaut, Android utilise une randomisation persistante. À partir d'Android 12, Android utilise une randomisation non persistante dans les situations suivantes :

  • Une application de suggestion de réseau spécifie que la randomisation non persistante doit être utilisée pour le réseau via l'API WifiNetworkSuggestion.Builder#setMacRandomizationSetting.
  • Le réseau est un réseau ouvert qui n'a pas rencontré de portail captif et la superposition config_wifiAllowEnhancedMacRandomizationOnOpenSsids est définie sur true. Cette option est désactivée (définie sur false) par défaut.

Randomisation persistante

Android utilise le type de randomisation persistante par défaut lorsque la fonctionnalité de randomisation de l'adresse MAC est activée. Android génère une adresse MAC aléatoire persistante en fonction des paramètres du profil réseau, y compris le SSID, le type de sécurité ou le nom de domaine complet (pour les réseaux Passpoint). Cette adresse MAC reste la même jusqu'à la réinitialisation des paramètres d'usine. L'adresse MAC n'est pas à nouveau sélectionnée de manière aléatoire si l'utilisateur oublie le réseau Wi-Fi et l'ajoute à nouveau, car l'adresse MAC dépend des paramètres du profil réseau.

Les adresses MAC persistantes sont nécessaires lorsque les réseaux s'appuient sur la persistance de l'adresse MAC pour fournir des fonctionnalités utiles à l'utilisateur, par exemple pour mémoriser un appareil et permettre aux utilisateurs de contourner l'écran de connexion comme prévu, ou pour activer le contrôle parental.

Pour Android 10 et 11, le framework utilise une randomisation persistante pour tous les réseaux lorsque la randomisation de l'adresse MAC est activée.

Randomisation non persistante

Avec le type de randomisation non persistante, qui est utilisé pour certains réseaux dans Android 12 ou version ultérieure, le module Wi-Fi randomise à nouveau l'adresse MAC au début de chaque connexion ou le framework utilise l'adresse MAC randomisée existante pour se connecter au réseau. Le module Wi-Fi re-randomise l'adresse MAC dans les situations suivantes :

  • La durée du bail DHCP a expiré et plus de quatre heures se sont écoulées depuis la dernière déconnexion de l'appareil de ce réseau.
  • L'adresse MAC aléatoire actuelle du profil réseau a été générée il y a plus de 24 heures. Le changement aléatoire de l'adresse MAC ne se produit qu'au début d'une nouvelle connexion. Le Wi-Fi ne se déconnecte pas activement pour réattribuer une adresse MAC de manière aléatoire.

Si aucune de ces situations ne s'applique, le framework utilise l'adresse MAC précédemment aléatoire pour se connecter au réseau.

Option pour les développeurs pour la randomisation non persistante

Pour les appareils équipés d'Android 11 ou version ultérieure, les utilisateurs peuvent activer la randomisation non persistante de l'adresse MAC de manière globale pour tous les réseaux Wi-Fi (pour lesquels la randomisation de l'adresse MAC est activée) sur l'écran des options pour les développeurs. L'option permettant d'activer la sélection aléatoire de l'adresse MAC non persistante pour tous les profils se trouve sous Paramètres > Options pour les développeurs > Sélection aléatoire de l'adresse MAC non persistante en Wi-Fi.

Option de sélection aléatoire de l'adresse MAC non persistante en Wi-Fi

Figure 2. Option de sélection aléatoire de l'adresse MAC non persistante en Wi-Fi.