La fonctionnalité de randomisation MAC permet aux appareils d'utiliser une adresse MAC aléatoire lorsqu'ils se connectent à un réseau Wi-Fi. Pour obtenir des instructions d'implémentation, consultez Implémenter la randomisation MAC. Cette page décrit le comportement de la randomisation 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 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), par exemple 00:11:22:AA:BB:CC. La fonctionnalité de randomisation MAC randomise l'adresse en définissant le bit administré localement sur 1 et le bit unicast sur 0. Les 46 autres bits sont randomisés.
Pour les appareils équipés d'Android 10 ou version ultérieure, le framework utilise une adresse MAC aléatoire par défaut. Vous pouvez activer ou désactiver la randomisation MAC pour des réseaux individuels via une option de l'écran Détails du réseau dans Paramètres, comme illustré dans la figure 1. Si vous désactivez la randomisation MAC pour un réseau, le framework utilise l'adresse MAC d'usine (adresse globalement unique).
Figure 1. Option de randomisation MAC.
Types de randomisation MAC
Le framework Android utilise deux types de randomisation MAC : la randomisation persistante et la randomisation non persistante. Si l'utilisateur désactive la randomisation MAC, l'adresse MAC d'usine est utilisée.
Android détermine le type de randomisation MAC à utiliser lorsque votre appareil s'associe à un réseau Wi-Fi. Par défaut, Android utilise la randomisation persistante. À partir d'Android 12, Android utilise la randomisation non persistante dans les cas suivants :
- Une application de suggestion de réseau spécifie que la randomisation non persistante
doit être utilisée pour le réseau via l'
WifiNetworkSuggestion.Builder#setMacRandomizationSettingAPI. - 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 superposition 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 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 randomisée à nouveau si vous oubliez le réseau Wi-Fi et que vous le rajoutez, 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, elles peuvent vous aider à mémoriser un appareil et à contourner l'écran de connexion comme prévu, ou à activer le contrôle parental.
Pour Android 10 et 11, le framework utilise la randomisation persistante pour tous les réseaux lorsque la randomisation MAC est activée.
Randomisation non persistante
Avec la randomisation non persistante, qui est utilisée pour certains réseaux sous 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 aléatoire existante pour se connecter au réseau. Le module Wi-Fi randomise à nouveau l'adresse MAC 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 pour le profil réseau a été générée il y a plus de 24 heures. La randomisation 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 aléatoire précédente 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 MAC non persistante de manière globale pour tous les réseaux Wi-Fi (pour lesquels la randomisation MAC est activée) via l'écran des options pour les développeurs. Vous trouverez l'option permettant d'activer la randomisation 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.