Android 10 introduce il supporto per gli standard Wi-Fi Protected Access versione 3 (WPA3) e Wi-Fi Enhanced Open della Wi-Fi Alliance (WFA). Per ulteriori informazioni, consulta Sicurezza sul sito WFA .
WPA3 è un nuovo standard di sicurezza WFA per reti personali e aziendali. Mira a migliorare la sicurezza Wi-Fi complessiva utilizzando moderni algoritmi di sicurezza e suite di crittografia più potenti. WPA3 è composto da due parti:
- WPA3-Personal: utilizza l'autenticazione simultanea di uguali (SAE) anziché la chiave precondivisa (PSK), fornendo agli utenti protezioni di sicurezza più efficaci contro attacchi come attacchi di dizionario offline, ripristino di chiavi e falsificazione di messaggi.
- WPA3-Enterprise: offre metodi di autenticazione e crittografia a livello di collegamento più efficaci e una modalità di sicurezza opzionale a 192 bit per ambienti di sicurezza sensibili.
Wi-Fi Enhanced Open è un nuovo standard di sicurezza WFA per reti pubbliche basato sulla crittografia wireless opportunistica (OWE). Fornisce crittografia e privacy su reti aperte e non protette da password in aree come bar, hotel, ristoranti e biblioteche. Enhanced Open non fornisce l'autenticazione.
WPA3 e Wi-Fi Enhanced Open migliorano la sicurezza Wi-Fi complessiva, garantendo maggiore privacy e robustezza contro gli attacchi noti. Poiché molti dispositivi non supportano ancora questi standard o non hanno ancora ricevuto aggiornamenti software per supportare queste funzionalità, WFA ha proposto le seguenti modalità di transizione:
- Modalità di transizione WPA2/WPA3: il punto di accesso servito supporta contemporaneamente gli standard WPA2 e WPA3. In questa modalità, i dispositivi Android 10 utilizzano WPA3 per connettersi e i dispositivi con Android 9 o versioni precedenti utilizzano WPA2 per connettersi allo stesso punto di accesso.
- Modalità di transizione WPA2/WPA3-Enterprise: il punto di accesso servito supporta contemporaneamente gli standard WPA2-Enterprise e WPA3-Enterprise.
- Modalità di transizione OWE: il punto di accesso servito supporta contemporaneamente sia OWE che standard aperti. In questa modalità, i dispositivi Android 10 utilizzano OWE per connettersi e i dispositivi con Android 9 o versioni precedenti si connettono allo stesso punto di accesso senza alcuna crittografia.
Android 12 supporta l'indicazione Transition Disable, un meccanismo che indica a un dispositivo di non utilizzare WPA2 e di utilizzare invece WPA3. Quando un dispositivo riceve questa indicazione, utilizza WPA3 per connettersi a una rete WPA3 che supporta una modalità di transizione. Android 12 supporta anche lo scambio di autenticazione WPA3 Hash-to-Element (H2E). Per ulteriori informazioni, consultare la specifica WPA3 .
WPA3 e Wi-Fi Enhanced Open sono supportati solo in modalità client.
Implementazione
Per supportare WPA3 e Wi-Fi Enhanced Open, implementare l'interfaccia HAL Supplicant. A partire da Android 13, l'interfaccia utilizza AIDL per la definizione HAL. Per le versioni precedenti ad Android 13, le interfacce e le partizioni del fornitore utilizzano HIDL. L'interfaccia HIDL può essere trovata in hardware/interfaces/wifi/supplicant/1.3/
e l'interfaccia AIDL può essere trovata in hardware/interfaces/wifi/supplicant/aidl/
,
Per supportare WPA3 e OWE è necessario quanto segue:
Patch del kernel Linux per supportare SAE e OWE
- cfg80211
- nl80211
wpa_supplicant
con supporto per SAE, SUITEB192 e OWEDriver Wi-Fi con supporto per SAE, SUITEB192 e OWE
Firmware Wi-Fi con supporto per SAE, SUITEB192 e OWE
Chip Wi-Fi con supporto per WPA3 e OWE
I metodi API pubblici sono disponibili in Android 10 per consentire alle app di determinare il supporto del dispositivo per queste funzionalità:
-
WifiManager#isWpa3SaeSupported
-
WifiManager#isWpa3SuiteBSupported
-
WifiManager#isEnhancedOpenSupported
WifiConfiguration.java
contiene nuovi tipi di gestione delle chiavi, nonché crittografie a coppie, crittografie di gruppo, crittografie di gestione di gruppo e crittografie Suite B, necessarie per OWE, WPA3-Personal e WPA3-Enterprise.
Abilitazione di WPA3 e Wi-Fi Enhanced Open
Per abilitare WPA3-Personal, WPA3-Enterprise e Wi-Fi Enhanced Open nel framework Android:
WPA3-Personal: include l'opzione di compilazione
CONFIG_SAE
nel file di configurazionewpa_supplicant
.# WPA3-Personal (SAE) CONFIG_SAE=y
WPA3-Enterprise: includere le opzioni di compilazione
CONFIG_SUITEB192
eCONFIG_SUITEB
nel file di configurazionewpa_supplicant
.# WPA3-Enterprise (SuiteB-192) CONFIG_SUITEB=y CONFIG_SUITEB192=y
Wi-Fi Enhanced Open: include l'opzione di compilazione
CONFIG_OWE
nel file di configurazionewpa_supplicant
.# Opportunistic Wireless Encryption (OWE) # Experimental implementation of draft-harkins-owe-07.txt CONFIG_OWE=y
Se WPA3-Personal, WPA3-Enterprise o Wi-Fi Enhanced Open non sono abilitati, gli utenti non saranno in grado di aggiungere, scansionare o connettersi manualmente a questi tipi di reti.
Validazione
Per testare la tua implementazione, esegui i seguenti test.
Test unitari
Esegui SupplicantStaIfaceHalTest
per verificare il comportamento dei flag di funzionalità per WPA3 e OWE.
atest SupplicantStaIfaceHalTest
Esegui WifiManagerTest
per verificare il comportamento delle API pubbliche per questa funzionalità.
atest WifiManagerTest
Prova di integrazione (ACTS)
Per eseguire un test di integrazione, utilizza il file Android Comms Test Suite (ACTS), WifiWpa3OweTest.py
, situato in tools/test/connectivity/acts_tests/tests/google/wifi
.
Prove VTS
Se è implementata l'interfaccia HIDL, eseguire:
atest VtsHalWifiSupplicantV1_3TargetTest
Se l'interfaccia AIDL è implementata, eseguire:
atest VtsHalWifiSupplicantStaIfaceTargetTest