Dans les Androïdes les plus récents, il y a une fonction appelée WiFi MAC Randomization. Dans sa forme de base, le mécanisme calcule le MAC aléatoire pour un ESSID donné. Chaque fois que vous vous connectez au même WiFi, Android utilise le MAC généré précédemment. Même si vous oubliez le réseau WiFi et que vous l'ajoutez à nouveau, Android utilisera le même MAC que précédemment. Mais où sont stockées les données de randomisation du MAC WiFi ?
Réponse
Trop de publicités?Selon la documentation d'Android, le randomisation persistante n'est stocké nulle part.
Au lieu de cela, l'"adresse MAC aléatoire" est générée chaque fois que vous vous connectez au Wifi. Cette génération se base sur les paramètres du réseau Wifi :
Android génère une adresse MAC persistante et aléatoire basée sur l'indicateur paramètres du profil de réseau, notamment le SSID, le type de sécurité ou le FQDN (pour les réseaux Passpoint).
Et je suppose qu'en plus un facteur secret unique à votre appareil est inclus dans le calcul, sinon chaque appareil Android générerait la même adresse MAC aléatoire pour le même réseau. Je ne suis pas sûr de ce qu'ils utilisent réellement, peut-être ANDROID_ID ou une donnée aléatoire de ~128 bits stockée quelque part dans votre profil utilisateur.
Dans de telles situations, un algorithme HMAC est généralement utilisé pour générer une sortie pseudo-aléatoire qui peut ensuite être utilisée pour les 46 bits du MAC qui sont randomisés. Il est ainsi pratiquement impossible de déterminer la partie secrète utilisée sur la base de l'adresse MAC randomisée et de calculer les adresses MAC que vous utiliseriez dans d'autres réseaux.
Notez que cette réponse ne concerne que l'AOSP. Le fabricant d'Android peut modifier la randomisation. Selon une étude sur randomisation MAC WiFi Motorola met en œuvre, par exemple, un schéma de randomisation MAC personnalisé (pas le schéma 46 bits décrit dans l'AOSP).