Die MAC-Randomisierungsfunktion ermöglicht es Geräten, beim Herstellen einer Verbindung mit einem Wi-Fi-Netzwerk eine zufällige MAC-Adresse zu verwenden. Anweisungen zur Implementierung finden Sie unter Implementieren der MAC-Randomisierung . Auf dieser Seite wird das Verhalten der MAC-Randomisierung in Android beschrieben.
MAC-Adressen werden von Geräten verwendet, wenn sie eine Verbindung zu einem Wi-Fi-Netzwerk oder einem Zugangspunkt herstellen. Da diese MAC-Adressen unverschlüsselt übertragen werden, können sie erfasst und möglicherweise zur Verfolgung des Standorts eines Benutzers verwendet werden. In der Vergangenheit verwendeten Geräte die werkseitige MAC-Adresse , um sich mit einem Wi-Fi-Netzwerk zu verbinden. Die werkseitige MAC-Adresse ist weltweit eindeutig und statisch, sodass das Gerät verfolgt und individuell identifiziert werden kann.
Die MAC-Randomisierungsfunktion erhöht die Privatsphäre des Benutzers, indem beim Herstellen einer Verbindung zu einem Wi-Fi-Netzwerk eine zufällige MAC-Adresse verwendet wird.
MAC-Adressen sind 48 Bit lang und werden normalerweise durch 12 Hexadezimalziffern dargestellt (6 Oktette, da jedes Oktett 8 Bits umfasst), wie zum Beispiel 00:11:22:AA:BB:CC
. Die MAC-Randomisierungsfunktion randomisiert die Adresse, indem sie das lokal verwaltete Bit auf 1 und das Unicast- Bit auf 0 setzt. Die anderen 46 Bits werden randomisiert.
Für Geräte mit Android 10 oder höher verwendet das Framework standardmäßig eine zufällige MAC-Adresse. Benutzer können die MAC-Randomisierung für einzelne Netzwerke über eine Option im Bildschirm „Netzwerkdetails“ in den Einstellungen aktivieren oder deaktivieren, wie in Abbildung 1 dargestellt. Wenn ein Benutzer die MAC-Randomisierung für ein Netzwerk deaktiviert, verwendet das Framework die werkseitige MAC-Adresse (weltweit eindeutige Adresse).
Abbildung 1. MAC-Randomisierungsoption.
MAC-Randomisierungstypen
Das Android-Framework verwendet zwei Arten der MAC-Randomisierung: persistente Randomisierung und nicht persistente Randomisierung . Wenn der Benutzer die MAC-Randomisierung deaktiviert, wird die werkseitige MAC-Adresse verwendet.
Android bestimmt, welcher MAC-Randomisierungstyp verwendet werden soll, wenn das Gerät eine Verbindung zu einem Wi-Fi-Netzwerk herstellt. Standardmäßig verwendet Android eine dauerhafte Randomisierung. Ab Android 12 verwendet Android in den folgenden Situationen nicht-persistente Randomisierung:
- Eine Netzwerkvorschlags-App gibt über die API
WifiNetworkSuggestion.Builder#setMacRandomizationSetting
an, dass eine nicht persistente Randomisierung für das Netzwerk verwendet werden soll. - Das Netzwerk ist ein offenes Netzwerk, das kein Captive-Portal gefunden hat, und das Overlay
config_wifiAllowEnhancedMacRandomizationOnOpenSsids
ist auftrue
gesetzt. Dieses Overlay ist standardmäßig deaktiviert (auffalse
gesetzt).
Anhaltende Randomisierung
Android verwendet standardmäßig den persistenten Randomisierungstyp, wenn die MAC-Randomisierungsfunktion aktiviert ist. Android generiert eine dauerhafte, zufällige MAC-Adresse basierend auf den Parametern des Netzwerkprofils, einschließlich SSID, Sicherheitstyp oder FQDN (für Passpoint-Netzwerke). Diese MAC-Adresse bleibt bis zum Zurücksetzen auf die Werkseinstellungen gleich. Die MAC-Adresse wird nicht neu randomisiert, wenn der Benutzer das Wi-Fi-Netzwerk vergisst und erneut hinzufügt, da die MAC-Adresse von den Parametern des Netzwerkprofils abhängt.
Permanente MAC-Adressen sind in Fällen erforderlich, in denen Netzwerke auf die Persistenz der MAC-Adresse angewiesen sind, um dem Benutzer nützliche Funktionen bereitzustellen, beispielsweise um sich ein Gerät zu merken und es Benutzern zu ermöglichen, den Anmeldebildschirm wie erwartet zu umgehen, oder um die Kindersicherung zu aktivieren.
Für Android 10 und 11 verwendet das Framework dauerhafte Randomisierung für alle Netzwerke, wenn die MAC-Randomisierung aktiviert ist.
Nicht-persistente Randomisierung
Beim nicht-persistenten Randomisierungstyp, der für einige Netzwerke in Android 12 oder höher verwendet wird, randomisiert das Wi-Fi-Modul die MAC-Adresse zu Beginn jeder Verbindung erneut oder das Framework verwendet die vorhandene zufällige MAC-Adresse, um eine Verbindung herzustellen Netzwerk. Das Wi-Fi-Modul ordnet die MAC-Adresse in den folgenden Situationen neu zu:
- Die DHCP-Lease-Dauer ist abgelaufen und es sind mehr als 4 Stunden vergangen, seit das Gerät das letzte Mal die Verbindung zu diesem Netzwerk getrennt hat.
- Der aktuelle randomisierte MAC für das Netzwerkprofil wurde vor mehr als 24 Stunden generiert. Die erneute Randomisierung der MAC-Adresse erfolgt nur zu Beginn einer neuen Verbindung. Die WLAN-Verbindung wird nicht aktiv getrennt, um eine MAC-Adresse neu zuzuordnen.
Wenn keine dieser Situationen zutrifft, verwendet das Framework die zuvor zufällig ausgewählte MAC-Adresse, um eine Verbindung zum Netzwerk herzustellen.
Entwickleroption für nicht persistente Randomisierung
Bei Geräten mit Android 11 oder höher können Benutzer über den Bildschirm „Entwickleroptionen “ die nicht-persistente MAC-Randomisierung global für alle Wi-Fi-Netzwerke (bei denen die MAC-Randomisierung aktiviert ist) aktivieren. Die Option zum Aktivieren der nicht-persistenten MAC-Randomisierung für alle Profile finden Sie unter Einstellungen > Entwickleroptionen > Nicht-persistente Wi-Fi-MAC-Randomisierung .
Abbildung 2. Nicht-persistente Wi-Fi-MAC-Randomisierungsoption.