Na urządzeniach z Androidem 13 lub nowszym Android obsługuje podejście uwierzytelniania z zaufanym pierwszym użyciem (TOFU) (RFC7435), które pozwala użytkownikom zaufać sieci korporacyjnej (EAP) przez zainstalowanie głównego urzędu certyfikacji używanego przez serwer i ustawienie jego nazwy domeny w zapisanej sieci. TOFU umożliwia urządzeniu uzyskanie nieautoryzowanego klucza publicznego, gdy użytkownik po raz pierwszy łączy się z siecią korporacyjną, i zachowuje ten klucz na potrzeby kolejnych połączeń.
Tło
W odróżnieniu od sieci osobistych, które wymagają tylko hasła, sieci korporacyjne używają uwierzytelniania z wykorzystaniem infrastruktury kluczy publicznych (PKI), co wymaga wstępnej instalacji certyfikatów. W Androidzie 11 lub starszym użytkownicy mogą wybrać opcję Nie weryfikuj dla certyfikatu CA serwera w ustawieniach sieci, omijając weryfikację certyfikatu po stronie serwera. Aby jednak zwiększyć bezpieczeństwo i zapewnić zgodność ze specyfikacją WPA R2, w Androidzie 12 wprowadzono wymóg weryfikacji certyfikatu serwera w sieciach korporacyjnych. Ten dodatkowy wymóg stanowił barierę dla użytkowników, ponieważ musieli oni instalować certyfikat CA dla takich sieci. Dzięki TOFU użytkownicy mogą łączyć się z firmową siecią opartą na protokole PKI, po prostu akceptując jej główny urząd certyfikacji.
Opis funkcji
Gdy użytkownik łączy się z siecią firmową, która nie ma już zainstalowanego uwierzytelnionego klucza publicznego, urządzenia obsługujące TOFU wyświetlają następujące zachowanie.
Łączenie z nową siecią za pomocą selektora sieci Wi-Fi
Wybierz nową sieć firmową w selektorze Wi-Fi.
Urządzenie wyświetla okno (rysunek 1) z prośbą o potwierdzenie, czy sieć jest zaufana.
Kliknij Tak, połącz, aby zaakceptować połączenie z siecią, lub Nie, nie łącz, aby odrzucić.
Jeśli klikniesz Tak, połącz, urządzenie automatycznie skonfiguruje parametry zabezpieczeń, połączy się z siecią i włączy automatyczne łączenie z tą siecią.
Jeśli klikniesz Nie, nie łącz, urządzenie rozłączy się z siecią i wyłączy automatyczne łączenie z nią.
Rysunek 1. Okno funkcji TOFU
Łączenie z istniejącą siecią z włączonym automatycznym łączeniem
Podczas łączenia się z siecią firmową, która ma włączone automatyczne połączenie, ale nie ma ważnego certyfikatu CA, urządzenie łączy się automatycznie, a następnie wyświetla trwałe (nieusuwalne) powiadomienie.
Kliknij powiadomienie.
Urządzenie wyświetla okno (rysunek 1) z prośbą o potwierdzenie, czy sieć jest zaufana.
Kliknij Tak, połącz, aby zaakceptować połączenie z siecią, lub Nie, nie łącz, aby odrzucić.
Jeśli klikniesz Tak, połącz, urządzenie automatycznie skonfiguruje parametry zabezpieczeń, połączy się z siecią i włączy automatyczne łączenie z tą siecią.
Jeśli klikniesz Nie, nie łącz, urządzenie rozłączy się z siecią i wyłączy automatyczne łączenie z nią.
Implementacja
Aby obsługiwać funkcję TOFU, zaimplementuj interfejsy HAL podania dostępne w ramach Projektu Android Open Source (AOSP) pod adresem /hardware/interfaces/wifi/supplicant/aidl/android/hardware/wifi/supplicant
.
Na Androidzie 13 dostępne są te publiczne interfejsy API:
WifiManager#isTrustOnFirstUseSupported()
: określa, czy urządzenie obsługuje ToFu.WifiEnterpriseConfig#enableTrustOnFirstUse(boolean)
: włącza ToFu.WifiEnterpriseConfig#isTrustOnFirstUseEnabled()
: Wskazuje, czy funkcja TOFU jest włączona.
Weryfikacja
Aby zweryfikować implementację funkcji TOFU na urządzeniu, użyj tych testów:
- CTS:
CtsWifiTestCases
- VTS:
VtsHalWifiSupplicantStaNetworkTargetTest