W systemie Android 10 wprowadzono obsługę standardów Wi-Fi Protected Access w wersji 3 (WPA3) organizacji Wi-Fi Alliance (WFA) i Wi-Fi Enhanced Open. Aby uzyskać więcej informacji, zobacz Bezpieczeństwo w witrynie WFA .
WPA3 to nowy standard bezpieczeństwa WFA dla sieci osobistych i korporacyjnych. Ma na celu poprawę ogólnego bezpieczeństwa Wi-Fi poprzez zastosowanie nowoczesnych algorytmów bezpieczeństwa i silniejszych zestawów szyfrów. WPA3 składa się z dwóch części:
- WPA3-Personal: wykorzystuje jednoczesne uwierzytelnianie równości (SAE) zamiast klucza wstępnego (PSK), zapewniając użytkownikom silniejszą ochronę przed atakami, takimi jak ataki słownikowe offline, odzyskiwanie kluczy i fałszowanie wiadomości.
- WPA3-Enterprise: oferuje silniejsze metody uwierzytelniania i szyfrowania w warstwie łącza oraz opcjonalny 192-bitowy tryb zabezpieczeń dla wrażliwych środowisk bezpieczeństwa.
Wi-Fi Enhanced Open to nowy standard bezpieczeństwa WFA dla sieci publicznych oparty na oportunistycznym szyfrowaniu bezprzewodowym (OWE). Zapewnia szyfrowanie i prywatność w otwartych sieciach niechronionych hasłem w obszarach takich jak kawiarnie, hotele, restauracje i biblioteki. Enhanced Open nie zapewnia uwierzytelniania.
WPA3 i Wi-Fi Enhanced Open poprawiają ogólne bezpieczeństwo Wi-Fi, zapewniając lepszą prywatność i odporność na znane ataki. Ponieważ wiele urządzeń nie obsługuje jeszcze tych standardów lub nie ma jeszcze aktualizacji oprogramowania obsługujących te funkcje, firma WFA zaproponowała następujące tryby przejścia:
- Tryb przejścia WPA2/WPA3: Obsługujący punkt dostępu obsługuje jednocześnie standardy WPA2 i WPA3. W tym trybie urządzenia z Androidem 10 używają WPA3 do łączenia, a urządzenia z Androidem 9 lub starszym używają WPA2 do łączenia się z tym samym punktem dostępu.
- Tryb przejścia WPA2/WPA3-Enterprise: Obsługujący punkt dostępu obsługuje jednocześnie standardy WPA2-Enterprise i WPA3-Enterprise.
- Tryb przejściowy OWE: Obsługujący punkt dostępowy obsługuje jednocześnie standardy OWE i otwarte. W tym trybie urządzenia z systemem Android 10 korzystają z OWE do łączenia, a urządzenia z systemem Android 9 lub starszym łączą się z tym samym punktem dostępu bez żadnego szyfrowania.
Android 12 obsługuje wskazanie wyłączenia przejścia, czyli mechanizm, który instruuje urządzenie, aby nie korzystało z WPA2 i zamiast tego korzystało z WPA3. Gdy urządzenie odbierze to wskazanie, używa protokołu WPA3 do połączenia się z siecią WPA3 obsługującą tryb przejściowy. Android 12 obsługuje także wymianę uwierzytelniania WPA3 Hash-to-Element (H2E). Więcej informacji można znaleźć w specyfikacji WPA3 .
WPA3 i Wi-Fi Enhanced Open są obsługiwane tylko w trybie klienta.
Realizacja
Aby obsługiwać WPA3 i Wi-Fi Enhanced Open, zaimplementuj interfejs Supplicant HAL. Począwszy od Androida 13, interfejs używa AIDL do definicji HAL. W wersjach wcześniejszych niż Android 13 interfejsy i partycje dostawców używają języka HIDL. Interfejs HIDL można znaleźć w hardware/interfaces/wifi/supplicant/1.3/
, a interfejs AIDL można znaleźć w hardware/interfaces/wifi/supplicant/aidl/
,
Do obsługi WPA3 i OWE wymagane są:
Poprawki na jądro Linuksa obsługujące SAE i OWE
- cfg80211
- nl80211
wpa_supplicant
z obsługą SAE, SUITEB192 i OWESterownik Wi-Fi z obsługą SAE, SUITEB192 i OWE
Oprogramowanie sprzętowe Wi-Fi z obsługą SAE, SUITEB192 i OWE
Układ Wi-Fi z obsługą WPA3 i OWE
W systemie Android 10 dostępne są publiczne metody interfejsu API, które umożliwiają aplikacjom określenie obsługi urządzenia dla następujących funkcji:
-
WifiManager#isWpa3SaeSupported
-
WifiManager#isWpa3SuiteBSupported
-
WifiManager#isEnhancedOpenSupported
WifiConfiguration.java
zawiera nowe typy zarządzania kluczami, a także szyfry parami, szyfry grupowe, szyfry zarządzania grupami i szyfry Suite B, które są wymagane w przypadku OWE, WPA3-Personal i WPA3-Enterprise.
Włączanie WPA3 i Wi-Fi Enhanced Open
Aby włączyć WPA3-Personal, WPA3-Enterprise i Wi-Fi Enhanced Open w systemie Android:
WPA3-Personal: Dołącz opcję kompilacji
CONFIG_SAE
do pliku konfiguracyjnegowpa_supplicant
.# WPA3-Personal (SAE) CONFIG_SAE=y
WPA3-Enterprise: Uwzględnij opcje kompilacji
CONFIG_SUITEB192
iCONFIG_SUITEB
w pliku konfiguracyjnymwpa_supplicant
.# WPA3-Enterprise (SuiteB-192) CONFIG_SUITEB=y CONFIG_SUITEB192=y
Wi-Fi Enhanced Open: Dołącz opcję kompilacji
CONFIG_OWE
do pliku konfiguracyjnegowpa_supplicant
.# Opportunistic Wireless Encryption (OWE) # Experimental implementation of draft-harkins-owe-07.txt CONFIG_OWE=y
Jeśli WPA3-Personal, WPA3-Enterprise lub Wi-Fi Enhanced Open nie są włączone, użytkownicy nie będą mogli ręcznie dodawać, skanować ani łączyć się z tego typu sieciami.
Walidacja
Aby przetestować implementację, uruchom następujące testy.
Testy jednostkowe
Uruchom SupplicantStaIfaceHalTest
, aby sprawdzić zachowanie flag możliwości dla WPA3 i OWE.
atest SupplicantStaIfaceHalTest
Uruchom WifiManagerTest
aby sprawdzić zachowanie publicznych interfejsów API dla tej funkcji.
atest WifiManagerTest
Test integracyjny (ACTS)
Aby uruchomić test integracji, użyj pliku Android Comms Test Suite (ACTS) WifiWpa3OweTest.py
znajdującego się w tools/test/connectivity/acts_tests/tests/google/wifi
.
Testy VTS
Jeśli zaimplementowano interfejs HIDL, uruchom:
atest VtsHalWifiSupplicantV1_3TargetTest
Jeśli zaimplementowano interfejs AIDL, uruchom:
atest VtsHalWifiSupplicantStaIfaceTargetTest