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 przeciwieństwie do sieci osobistych, które wymagają jedynie hasła, sieci firmowe korzystają z uwierzytelniania w ramach infrastruktury klucza publicznego (PKI), co wymaga od klienta 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 siecią firmową opartą na protokole PKI, po prostu akceptując certyfikat głównego urzędu certyfikacji.
Opis funkcji
Urządzenia obsługujące TOFU wyświetlają poniższe zachowanie, gdy użytkownik łączy się z siecią firmową, która nie ma już zainstalowanego uwierzytelnionego klucza publicznego.
Łą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 sieciowe, lub Nie, nie łącz, aby odrzucić połączenie.
Jeśli klikniesz Tak, połącz, urządzenie automatycznie skonfiguruje parametry zabezpieczeń, połączy się z siecią i włączy automatyczne łączenie z 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 sieciowe, lub Nie, nie łącz, aby odrzucić połączenie.
Jeśli klikniesz Tak, połącz, urządzenie automatycznie skonfiguruje parametry zabezpieczeń, połączy się z siecią i włączy automatyczne łączenie z 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 dostawcy udostępnione 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()
: Wskazuje, czy urządzenie obsługuje tryb TOFU.WifiEnterpriseConfig#enableTrustOnFirstUse(boolean)
: włącza ToFu.WifiEnterpriseConfig#isTrustOnFirstUseEnabled()
: wskazuje, czy funkcja TOFU jest włączona.
Weryfikacja
Aby sprawdzić wdrożenie TOFU na urządzeniu, przeprowadź te testy:
- CTS:
CtsWifiTestCases
- VTS:
VtsHalWifiSupplicantStaNetworkTargetTest