La funzione di randomizzazione MAC consente ai dispositivi di utilizzare un indirizzo MAC casuale quando si connettono a una rete Wi-Fi. Per istruzioni sull'implementazione, vedere Implementazione della randomizzazione MAC . Questa pagina descrive il comportamento della randomizzazione MAC in Android.
Gli indirizzi MAC vengono utilizzati dai dispositivi quando si connettono a una rete Wi-Fi o a un punto di accesso. Poiché questi indirizzi MAC vengono trasmessi senza crittografia, possono essere catturati e utilizzati per tracciare potenzialmente la posizione di un utente. Storicamente, i dispositivi utilizzano l' indirizzo MAC di fabbrica per associarsi a una rete Wi-Fi. L'indirizzo MAC di fabbrica è univoco e statico a livello globale, consentendo di tracciare e identificare individualmente il dispositivo.
La funzione di randomizzazione MAC aumenta la privacy dell'utente utilizzando un indirizzo MAC casuale durante la connessione a una rete Wi-Fi.
Gli indirizzi MAC sono lunghi 48 bit e solitamente rappresentati da 12 cifre esadecimali (6 ottetti poiché ogni ottetto è di 8 bit) come 00:11:22:AA:BB:CC
. La funzione di randomizzazione MAC randomizza l'indirizzo impostando il bit amministrato localmente su 1 e il bit unicast su 0. Gli altri 46 bit vengono randomizzati.
Per i dispositivi con Android 10 o versioni successive, il framework utilizza l'indirizzo MAC randomizzato per impostazione predefinita. Gli utenti possono abilitare o disabilitare la randomizzazione MAC per singole reti tramite un'opzione nella schermata Dettagli rete in Impostazioni , come mostrato nella Figura 1. Se un utente disabilita la randomizzazione MAC per una rete, il framework utilizza l'indirizzo MAC di fabbrica (indirizzo univoco globale).
Figura 1. Opzione di randomizzazione MAC.
Tipi di randomizzazione MAC
Il framework Android utilizza due tipi di randomizzazione MAC: randomizzazione persistente e randomizzazione non persistente . Se l'utente disabilita la randomizzazione MAC, viene utilizzato l'indirizzo MAC di fabbrica.
Android determina quale tipo di randomizzazione MAC utilizzare quando il dispositivo si associa a una rete Wi-Fi. Per impostazione predefinita, Android utilizza la randomizzazione persistente. A partire da Android 12, Android utilizza la randomizzazione non persistente nelle seguenti situazioni:
- Un'app per i suggerimenti di rete specifica che per la rete deve essere utilizzata la randomizzazione non persistente tramite l'API
WifiNetworkSuggestion.Builder#setMacRandomizationSetting
. - La rete è una rete aperta che non ha rilevato un captive Portal e l'overlay
config_wifiAllowEnhancedMacRandomizationOnOpenSsids
è impostato sutrue
. Questa sovrapposizione è disabilitata (impostata sufalse
) per impostazione predefinita.
Randomizzazione persistente
Android utilizza il tipo di randomizzazione persistente per impostazione predefinita quando la funzionalità di randomizzazione MAC è abilitata. Android genera un indirizzo MAC randomizzato persistente in base ai parametri del profilo di rete tra cui SSID, tipo di sicurezza o FQDN (per reti Passpoint). Questo indirizzo MAC rimane lo stesso fino al ripristino delle impostazioni di fabbrica. L'indirizzo MAC non viene nuovamente randomizzato se l'utente dimentica e aggiunge nuovamente la rete Wi-Fi poiché l'indirizzo MAC dipende dai parametri del profilo di rete.
Gli indirizzi MAC persistenti sono necessari nei casi in cui le reti si affidano alla persistenza dell'indirizzo MAC per fornire funzionalità utili all'utente, ad esempio, per ricordare un dispositivo e consentire agli utenti di ignorare la schermata di accesso come previsto o per abilitare il controllo genitori.
Per Android 10 e 11, il framework utilizza la randomizzazione persistente per tutte le reti quando è abilitata la randomizzazione MAC.
Randomizzazione non persistente
Con il tipo di randomizzazione non persistente, utilizzato per alcune reti in Android 12 o versioni successive, il modulo Wi-Fi randomizza nuovamente l'indirizzo MAC all'inizio di ogni connessione oppure il framework utilizza l'indirizzo MAC randomizzato esistente per connettersi al rete. Il modulo Wi-Fi randomizza nuovamente l'indirizzo MAC nelle seguenti situazioni:
- La durata del lease DHCP è scaduta e sono trascorse più di 4 ore dall'ultima disconnessione del dispositivo da questa rete.
- L'attuale MAC randomizzato per il profilo di rete è stato generato più di 24 ore fa. La ri-randomizzazione dell'indirizzo MAC avviene solo all'inizio di una nuova connessione. Il Wi-Fi non si disconnetterà attivamente allo scopo di ri-randomizzare un indirizzo MAC.
Se nessuna di queste situazioni si applica, il framework utilizza l'indirizzo MAC precedentemente randomizzato per connettersi alla rete.
Opzione sviluppatore per randomizzazione non persistente
Per i dispositivi con Android 11 o versioni successive, gli utenti possono abilitare la randomizzazione MAC non persistente a livello globale per tutte le reti Wi-Fi (che hanno la randomizzazione MAC abilitata) tramite la schermata delle opzioni sviluppatore . L'opzione per abilitare la randomizzazione MAC non persistente per tutti i profili si trova in Impostazioni > Opzioni sviluppatore > Randomizzazione MAC non persistente Wi-Fi .
Figura 2. Opzione di randomizzazione MAC Wi-Fi non persistente.