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.
Lorsque votre appareil se connecte à un réseau Wi-Fi ou à un point d'accès, il utilise des adresses MAC. 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 exécutant Android 10 ou version ultérieure, le framework utilise par défaut une adresse MAC aléatoire. Vous pouvez 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 vous désactivez l'aléatorisation de l'adresse MAC pour un réseau, le framework utilise l'adresse MAC d'usine (adresse unique au niveau mondial).
Figure 1 : Option de randomisation 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 votre 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_wifiAllowEnhancedMacRandomizationOnOpenSsidsest définie surtrue. Cette option est désactivée (définie surfalse) par défaut.
Randomisation persistante
Android utilise le type de randomisation persistante par défaut lorsque la 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'à ce que la configuration d'usine soit rétablie. L'adresse MAC n'est pas à nouveau sélectionnée de manière aléatoire si vous supprimez le réseau Wi-Fi et l'ajoutez à 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 des adresses MAC pour fournir des fonctionnalités utiles. Par exemple, ils peuvent aider à mémoriser un appareil et vous permettre de contourner l'écran de connexion comme prévu, ou d'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 la randomisation non persistante, qui est utilisée 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 réattribue une adresse MAC aléatoire dans les cas suivants :
- 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 randomiser à nouveau une adresse MAC.
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, vous pouvez 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. Vous trouverez l'option permettant d'activer la sélection aléatoire de l'adresse MAC non persistante pour tous les profils sous Paramètres > Options pour les développeurs > 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.