O Android 10 introduz suporte para o Wi-Fi Protected Access versão 3 (WPA3) e os padrões Wi-Fi Enhanced Open da Wi-Fi Alliance (WFA, na sigla em inglês). Para mais informações, consulte Segurança no site da WFA.
O WPA3 é um novo padrão de segurança da WFA para redes pessoais e empresariais. Ele tem como objetivo melhorar a segurança geral do Wi-Fi usando algoritmos de segurança modernos e conjuntos de cifras mais fortes. O WPA3 tem duas partes:
- WPA3-Personal:usa a autenticação simultânea de iguais (SAE, na sigla em inglês) em vez da chave pré-compartilhada (PSK, na sigla em inglês), oferecendo aos usuários proteções de segurança mais fortes contra ataques como ataques de dicionário off-line, recuperação de chaves e falsificação de mensagens.
- WPA3-Enterprise:oferece métodos de autenticação e criptografia de camada de link mais fortes, além de um modo de segurança opcional de 192 bits para ambientes de segurança sensíveis.
O Wi-Fi Enhanced Open é um novo padrão de segurança da WFA para redes públicas com base na criptografia sem fio oportunista (OWE, na sigla em inglês). Ele oferece criptografia e privacidade em redes abertas e não protegidas por senha em áreas como cafés, hotéis, restaurantes e bibliotecas. O Enhanced Open não oferece autenticação.
O WPA3 e o Wi-Fi Enhanced Open melhoram a segurança geral do Wi-Fi, oferecendo melhor privacidade e robustez contra ataques conhecidos. Como muitos dispositivos ainda não oferecem suporte a esses padrões ou ainda não receberam upgrades de software para oferecer suporte a esses recursos, a WFA propôs os seguintes modos de transição:
- Modo de transição WPA2/WPA3:o ponto de acesso de serviço oferece suporte aos padrões WPA2 e WPA3 simultaneamente. Nesse modo, os dispositivos Android 10 usam o WPA3 para se conectar, e os dispositivos com o Android 9 ou versões anteriores usam o WPA2 para se conectar ao mesmo ponto de acesso.
- Modo de transição WPA2/WPA3-Enterprise:o ponto de acesso de serviço oferece suporte aos padrões WPA2-Enterprise e WPA3-Enterprise simultaneamente.
- Modo de transição OWE:o ponto de acesso de serviço oferece suporte aos padrões OWE e abertos simultaneamente. Nesse modo, os dispositivos Android 10 usam o OWE para se conectar, e os dispositivos com o Android 9 ou versões anteriores se conectam ao mesmo ponto de acesso sem criptografia.
O Android 12 oferece suporte à indicação de desativação de transição, um mecanismo que instrui um dispositivo a não usar o WPA2 e usar o WPA3. Quando um dispositivo recebe essa indicação, ele usa o WPA3 para se conectar a uma rede WPA3 que oferece suporte a um modo de transição. O Android 12 também oferece suporte à troca de autenticação WPA3 Hash-to-Element (H2E). Para mais informações, consulte a especificação WPA3.
O WPA3 e o Wi-Fi Enhanced Open são compatíveis apenas no modo cliente.
Implementação
Para oferecer suporte ao WPA3 e ao Wi-Fi Enhanced Open, implemente a interface HAL do suplicante.
No Android 13 e versões mais recentes, a interface usa a Linguagem de definição de interface do Android (AIDL, na sigla em inglês) para a definição da HAL. Em versões anteriores ao Android 13, as interfaces e as partições do fornecedor usam a Linguagem de definição de interface HAL (HIDL, na sigla em inglês). A interface HIDL pode ser encontrada em
hardware/interfaces/wifi/supplicant/1.3/, e a interface AIDL pode ser
encontrada em hardware/interfaces/wifi/supplicant/aidl/.
Os seguintes itens são necessários para oferecer suporte ao WPA3 e ao OWE:
- Patches do kernel do Linux para oferecer suporte a SAE e OWE
- cfg80211
- nl80211
wpa_supplicantcom suporte a SAE, SUITEB192 e OWE- Driver de Wi-Fi com suporte a SAE, SUITEB192 e OWE
- Firmware de Wi-Fi com suporte a SAE, SUITEB192 e OWE
- Chip Wi-Fi com suporte a WPA3 e OWE
Os métodos de API pública estão disponíveis no Android 10 para permitir que os apps determinem o suporte do dispositivo a esses recursos:
WifiManager#isWpa3SaeSupportedWifiManager#isWpa3SuiteBSupportedWifiManager#isEnhancedOpenSupported
WifiConfiguration.java contém novos tipos de gerenciamento de chaves, bem como cifras de pares, cifras de grupo, cifras de gerenciamento de grupo e cifras Suite B, que são necessárias para OWE, WPA3-Personal e WPA3-Enterprise.
Ativar o WPA3 e o Wi-Fi Enhanced Open
Para ativar o WPA3-Personal, o WPA3-Enterprise e o Wi-Fi Enhanced Open no framework do Android:
WPA3-Personal: Inclua a opção de compilação
CONFIG_SAEnowpa_supplicantarquivo de configuração.# WPA3-Personal (SAE) CONFIG_SAE=yWPA3-Enterprise: inclua as opções de compilação
CONFIG_SUITEB192eCONFIG_SUITEBno arquivo de configuraçãowpa_supplicant.# WPA3-Enterprise (SuiteB-192) CONFIG_SUITEB=y CONFIG_SUITEB192=yWi-Fi Enhanced Open:inclua a opção de compilação
CONFIG_OWEno arquivo de configuraçãowpa_supplicant.# Opportunistic Wireless Encryption (OWE) # Experimental implementation of draft-harkins-owe-07.txt CONFIG_OWE=y
Se o WPA3-Personal, o WPA3-Enterprise ou o Wi-Fi Enhanced Open não estiverem ativados, os usuários não poderão adicionar, verificar ou se conectar manualmente a esses tipos de redes.
Validação
Para testar sua implementação, execute os testes a seguir.
Testes de unidade
Execute SupplicantStaIfaceHalTest para verificar o comportamento das flags de capacidade para WPA3 e OWE.
atest SupplicantStaIfaceHalTestExecute WifiManagerTest para verificar o comportamento das APIs públicas desse
recurso.
atest WifiManagerTestTestes VTS
Se a interface HIDL estiver implementada, execute:
atest VtsHalWifiSupplicantV1_3TargetTestSe a interface AIDL estiver implementada, execute:
atest VtsHalWifiSupplicantStaIfaceTargetTest