Comportamento di randomizzazione MAC

La funzionalità di randomizzazione degli indirizzi MAC consente ai dispositivi di utilizzare un indirizzo MAC casuale quando si connettono a una rete Wi-Fi. Per le istruzioni sull'implementazione, consulta Implementare la randomizzazione dell'indirizzo MAC. Questa pagina descrive il comportamento della randomizzazione dell'indirizzo MAC in Android.

Gli indirizzi MAC vengono utilizzati dai dispositivi per la connessione a una rete Wi-Fi o a un punto di accesso. Poiché questi indirizzi MAC vengono trasmessi senza crittografia, possono essere acquisiti e utilizzati per monitorare potenzialmente la posizione di un utente. In genere, i dispositivi utilizzano l'indirizzo MAC di fabbrica per associarsi a una rete Wi-Fi. L'indirizzo MAC di fabbrica è statico e univoco a livello globale, il che consente di monitorare e identificare singolarmente il dispositivo.

La funzionalità di randomizzazione MAC aumenta la privacy dell'utente utilizzando un indirizzo MAC randomizzato quando si connette a una rete Wi-Fi.

Gli indirizzi MAC sono lunghi 48 bit e di solito sono rappresentati da 12 cifre esadecimali (6 ottetti, poiché ogni ottetto è composto da 8 bit), ad esempio 00:11:22:AA:BB:CC. La funzionalità di randomizzazione MAC genera in modo casuale l'indirizzo impostando il bit amministrato localmente su 1 e il bit unicast su 0. Gli altri 46 bit sono casuali.

Per i dispositivi con Android 10 o versioni successive, il framework utilizza per impostazione predefinita un indirizzo MAC randomizzato. Gli utenti possono attivare o disattivare la randomizzazione dell'indirizzo MAC per singole reti tramite un'opzione nella schermata Dettagli rete in Impostazioni, come mostrato in Figura 1. Se un utente disattiva la randomizzazione MAC per una rete, il framework utilizza l'indirizzo MAC di fabbrica (indirizzo univoco a livello globale).

Opzione di randomizzazione dell'indirizzo MAC

Figura 1. Opzione di randomizzazione degli indirizzi MAC.

Tipi di randomizzazione MAC

Il framework Android utilizza due tipi di randomizzazione dell'indirizzo MAC: randomizzazione persistente e randomizzazione non persistente. Se l'utente disattiva la randomizzazione MAC, viene utilizzato l'indirizzo MAC di fabbrica.

Android determina quale tipo di generazione casuale dell'indirizzo 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 di suggerimenti di rete specifica che la randomizzazione non persistente deve essere utilizzata per la rete tramite l'API WifiNetworkSuggestion.Builder#setMacRandomizationSetting.
  • La rete è una rete aperta che non ha rilevato un captive portal e l'overlay config_wifiAllowEnhancedMacRandomizationOnOpenSsids è impostato su true. Questo overlay è disattivato (impostato su false) per impostazione predefinita.

Randomizzazione permanente

Android utilizza il tipo di randomizzazione permanente per impostazione predefinita quando la funzionalità di randomizzazione degli indirizzi 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 le reti Passpoint). Questo indirizzo MAC rimane lo stesso fino al ripristino dei dati di fabbrica. L'indirizzo MAC non viene riassegnato in modo casuale se l'utente dimenticato e aggiunge di nuovo la rete Wi-Fi, poiché l'indirizzo MAC dipende dai parametri del profilo di rete.

Gli indirizzi MAC permanenti sono necessari nei casi in cui le reti si basino sulla persistenza dell'indirizzo MAC per fornire funzionalità utili all'utente, ad esempio per ricordare un dispositivo e consentire agli utenti di bypassare la schermata di accesso come previsto o per attivare il Controllo genitori.

Per Android 10 e 11, il framework utilizza la randomizzazione permanente 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 esegue nuovamente la randomizzazione dell'indirizzo MAC all'inizio di ogni connessione oppure il framework utilizza l'indirizzo MAC randomizzato esistente per connettersi alla rete. Il modulo Wi-Fi genera nuovamente in modo casuale l'indirizzo MAC nelle seguenti situazioni:

  • La durata del lease DHCP è scaduta e sono trascorse più di 4 ore dalla ultima disconnessione del dispositivo da questa rete.
  • L'attuale indirizzo MAC casuale per il profilo di rete è stato generato più di 24 ore fa. La nuova randomizzazione dell'indirizzo MAC avviene solo all'inizio di una nuova connessione. Il Wi-Fi non si disconnetterà attivamente allo scopo di riassegnare un indirizzo MAC in modo casuale.

Se nessuna di queste situazioni è applicabile, il framework utilizza l'indirizzo MAC precedentemente randomizzato per connettersi alla rete.

Opzione sviluppatore per la randomizzazione non persistente

Per i dispositivi con Android 11 o versioni successive, gli utenti possono attivare la randomizzazione degli indirizzi MAC non persistenti a livello globale per tutte le reti Wi-Fi (per le quali è abilitata la randomizzazione degli indirizzi MAC) tramite la schermata delle opzioni per gli sviluppatori. L'opzione per abilitare la randomizzazione degli indirizzi MAC non persistenti per tutti i profili si trova in Impostazioni > Opzioni sviluppatore > Randomizzazione degli indirizzi MAC non permanenti nel Wi-Fi.

Opzione di randomizzazione non persistente dell'indirizzo MAC Wi-Fi

Figura 2. Opzione di randomizzazione non persistente dell'indirizzo MAC Wi-Fi.