Ulepszone WPA3 i Wi-Fi otwarte

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 OWE

  • Sterownik 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:

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 konfiguracyjnego wpa_supplicant .

    # WPA3-Personal (SAE)
    CONFIG_SAE=y
    
  • WPA3-Enterprise: Uwzględnij opcje kompilacji CONFIG_SUITEB192 i CONFIG_SUITEB w pliku konfiguracyjnym wpa_supplicant .

    # WPA3-Enterprise (SuiteB-192)
    CONFIG_SUITEB=y
    CONFIG_SUITEB192=y
    
  • Wi-Fi Enhanced Open: Dołącz opcję kompilacji CONFIG_OWE do pliku konfiguracyjnego wpa_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