MAC-Randomisierung implementieren

Ab Android 8.0 verwenden Android-Geräte bei der Suche nach neuen Netzwerken zufällige MAC-Adressen, obwohl sie keinem Netzwerk zugeordnet sind. In Android 9 können Sie eine Entwickleroption aktivieren (sie ist standardmäßig deaktiviert), damit das Gerät beim Herstellen einer WLAN-Verbindung eine zufällige MAC-Adresse verwendet.

In Android 10 ist die MAC-Randomisierung standardmäßig für den Clientmodus, SoftAp und Wi-Fi Direct aktiviert.

Die MAC-Randomisierung verhindert, dass Hörer MAC-Adressen verwenden, um einen Verlauf der Geräteaktivitäten zu erstellen, und erhöht so den Datenschutz für Nutzer.

Außerdem werden MAC-Adressen im Rahmen von Wi-Fi Aware- und Wi-Fi RTT-Vorgängen zufällig angeordnet.

Weitere Informationen finden Sie unter Verhalten bei der MAC-Randomisierung.

Implementierung

So implementieren Sie die MAC-Randomisierung auf Ihrem Gerät:

  1. Wenden Sie sich an einen WLAN-Chipanbieter, um die folgenden HAL-Methoden zu implementieren:

    • IWifiStaIface#setMacAddress: Konfiguriert die MAC-Adresse der Schnittstelle. Durch die Standardimplementierung wird die Schnittstelle deaktiviert, die MAC-Adresse geändert und die Schnittstelle wieder aktiviert.
    • IWifiStaIface#getFactoryMacAddress: Ruft den Factory-MAC von wlan0 mit einem ioctl-Aufruf ab.
    • ISupplicantP2pIface#setMacRandomization: Legt die P2P-MAC-Randomisierung im Supplicant fest.
  2. Setze config_wifi_connected_mac_randomization_supported in den Einstellungen config.xml auf true. Das ist in einem benutzerdefinierten Geräte-Overlay möglich.

    • Mit diesem Flag wird gesteuert, ob die MAC-Randomisierung im Clientmodus aktiviert ist.
  3. Setze config_wifi_p2p_mac_randomization_supported in den Einstellungen config.xml auf true. Das ist in einem benutzerdefinierten Geräte-Overlay möglich.

    • Mit diesem Flag wird gesteuert, ob die direkte Wi-Fi-MAC-Randomisierung aktiviert ist.
  4. Testen Sie Ihre Implementierung mit den unter Validierung beschriebenen Methoden.

Die System-UI muss:

  • Option zum Aktivieren oder Deaktivieren der Randomisierung für jede SSID
  • Die MAC-Randomisierung ist für alle neu hinzugefügten Netzwerke standardmäßig aktiviert.

Verwenden Sie die Referenzimplementierung der Einstellungs-UI, um neue Prompts zu implementieren.

Geräte mit Android 9 oder niedriger unterstützen möglicherweise keine WLAN-MAC-Zufallsauswahl. Beim Upgrade solcher Geräte auf Android 10 kann die WLAN-MAC-Randomisierungsfunktion deaktiviert werden, indem das Flag WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION in der HAL-Make-Datei des WLAN-Anbieters auf „true“ gesetzt wird.

Zertifizierungsstufe

Führen Sie einen manuellen Test aus, um zu prüfen, ob die Funktion wie beabsichtigt funktioniert:

  1. Prüfen Sie, ob die MAC-Randomisierung auf dem Gerät aktiviert ist. Prüfen Sie dazu, ob config_wifi_connected_mac_randomization_supported im Geräte-Overlay auf true gesetzt ist.
  2. Du bist mit einem WLAN verbunden.
  3. Tippen Sie auf das Netzwerk, um die Seite mit den Netzwerkdetails aufzurufen. Prüfen Sie, ob die MAC-Randomisierung aktiviert ist. Überprüfen Sie, ob die angezeigte MAC-Adresse eine randomisierte MAC-Adresse ist, bei der das lokal generierte Bit auf 1 und das Multicast-Bit auf 0 gesetzt ist.
  4. Deaktivieren Sie die MAC-Randomisierung. Stellen Sie eine Verbindung zum selben Netzwerk her und prüfen Sie, ob der Factory-MAC verwendet wird.
  5. Löschen Sie das Netzwerk, indem Sie auf der Seite mit den Netzwerkdetails auf Entfernen tippen.
  6. Stellen Sie eine Verbindung zum selben Netzwerk her und prüfen Sie, ob dieselbe zufällige MAC-Adresse verwendet wird.

So testen Sie die MAC-Randomisierung auf einem Gerät mit einer älteren Version als Android 10, das MAC-Randomisierung unterstützt und auf Android 10 oder höher aktualisiert wird:

  1. Es muss mindestens ein gespeichertes Netzwerk auf einem Gerät mit Android 9 oder niedriger vorhanden sein.
  2. Sie können das Android 10-Systemimage blinken.
  3. Prüfen Sie in der WLAN-Auswahl, ob die MAC-Randomisierung für alle gespeicherten Netzwerke deaktiviert ist.
  4. Aktivieren Sie die MAC-Randomisierung. Stellen Sie eine Verbindung zum selben Netzwerk her und prüfen Sie, ob der zufällige MAC verwendet wird.