Auf Geräten mit Android 13 oder höher wird der Authentifizierungsansatz „Trust on First Use“ (TOFU) (RFC7435) unterstützt. Damit können Nutzer einem Unternehmensnetzwerk (EAP) vertrauen, indem sie die vom Server verwendete Root-Zertifizierungsstelle installieren und den zugehörigen Domainnamen in einem gespeicherten Netzwerk festlegen. Mit TOFU kann das Gerät einen nicht authentifizierten öffentlichen Schlüssel abrufen, wenn ein Nutzer sich zum ersten Mal mit einem Unternehmensnetzwerk verbindet, und den Schlüssel für nachfolgende Verbindungen beibehalten.
Hintergrund
Im Vergleich zu privaten Netzwerken, für die nur ein Passwort erforderlich ist, verwenden Unternehmensnetzwerke die PKI-Authentifizierung (Public Key Infrastructure), für die auf dem Client Zertifikate vorinstalliert sein müssen. Unter Android 11 oder niedriger können Nutzer in den Netzwerkeinstellungen die Option Nicht validieren für das Server-CA-Zertifikat auswählen und so die Validierung des serverseitigen Zertifikats umgehen. Um die Sicherheit zu erhöhen und die WPA2-Spezifikation einzuhalten, wurde in Android 12 jedoch eine Anforderung für Unternehmensnetzwerke eingeführt, dass Serverzertifikate validiert werden müssen. Diese zusätzliche Anforderung stellte eine Barriere für Nutzer dar, da sie ein CA-Zertifikat für solche Netzwerke installieren mussten. TOFU bietet Nutzern die Möglichkeit, sich mit einem PKI-basierten Unternehmensnetzwerk zu verbinden, indem sie einfach die Stamm-CA akzeptieren.
Verhalten der Funktion
Geräte, die TOFU unterstützen, zeigen das folgende Verhalten, wenn ein Nutzer eine Verbindung zu einem Unternehmensnetzwerk herstellt, in dem kein bereits installierter authentifizierter öffentlicher Schlüssel vorhanden ist.
Über die WLAN-Auswahl mit einem neuen Netzwerk verbinden
Wählen Sie in der WLAN-Auswahl ein neues Unternehmensnetzwerk aus.
Auf dem Gerät wird ein Dialogfeld (Abbildung 1) angezeigt, in dem Sie bestätigen müssen, ob das Netzwerk vertrauenswürdig ist.
Tippe auf Ja, verbinden, um die Netzwerkverbindung zu akzeptieren, oder auf Nein, nicht verbinden, um sie abzulehnen.
Wenn Sie auf Ja, verbinden tippen, konfiguriert das Gerät automatisch die Sicherheitsparameter, stellt eine Verbindung zum Netzwerk her und aktiviert die automatische Verbindung für das Netzwerk.
Wenn Sie auf Nein, nicht verbinden tippen, wird die Verbindung des Geräts zum Netzwerk getrennt und die automatische Verbindung für das Netzwerk deaktiviert.
Abbildung 1: Dialogfeld für die TOFU-Funktion
Mit vorhandenem Netzwerk verbinden, bei dem die automatische Verbindung aktiviert ist
Wenn eine Verbindung zu einem Unternehmensnetzwerk hergestellt wird, in dem die automatische Verbindung aktiviert ist, aber kein gültiges CA-Zertifikat vorhanden ist, stellt das Gerät automatisch eine Verbindung her und zeigt dann eine nicht schließbare Benachrichtigung an.
Tippen Sie auf die Benachrichtigung.
Auf dem Gerät wird ein Dialogfeld (Abbildung 1) angezeigt, in dem Sie bestätigen müssen, ob das Netzwerk vertrauenswürdig ist.
Tippe auf Ja, verbinden, um die Netzwerkverbindung zu akzeptieren, oder auf Nein, nicht verbinden, um sie abzulehnen.
Wenn Sie auf Ja, verbinden tippen, konfiguriert das Gerät automatisch die Sicherheitsparameter, stellt eine Verbindung zum Netzwerk her und aktiviert die automatische Verbindung für das Netzwerk.
Wenn Sie auf Nein, nicht verbinden tippen, wird die Verbindung des Geräts zum Netzwerk getrennt und die automatische Verbindung für das Netzwerk deaktiviert.
Implementierung
Zur Unterstützung der TOFU-Funktion müssen Sie die Supplicant-HALs implementieren, die im Android Open Source Project (AOSP) unter /hardware/interfaces/wifi/supplicant/aidl/android/hardware/wifi/supplicant
bereitgestellt werden.
Die folgenden öffentlichen APIs sind in Android 13 für die Verwendung durch Apps verfügbar:
WifiManager#isTrustOnFirstUseSupported()
: Gibt an, ob das Gerät TOFU unterstützt.WifiEnterpriseConfig#enableTrustOnFirstUse(boolean)
: Aktiviert TOFU.WifiEnterpriseConfig#isTrustOnFirstUseEnabled()
: Gibt an, ob TOFU aktiviert ist.
Zertifizierungsstufe
Verwenden Sie die folgenden Tests, um die Implementierung von TOFU auf Ihrem Gerät zu validieren:
- CTS:
CtsWifiTestCases
- VTS:
VtsHalWifiSupplicantStaNetworkTargetTest