O Android 10 introduz o suporte à versão 3 do Wi-Fi Protected Access (WPA3) da Wi-Fi Alliance (WFA) e aos padrões Wi-Fi Enhanced Open. Para mais informações, consulte Segurança no site do WFA (em inglês).
O WPA3 é um novo padrão de segurança WFA para redes pessoais e empresariais. O objetivo é melhorar a segurança geral do Wi-Fi usando algoritmos de segurança modernos e pacotes de criptografia mais fortes. O WPA3 tem duas partes:
- WPA3-Personal:usa a autenticação simultânea de igual (SAE) em vez de 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 links mais fortes, além de um modo de segurança opcional de 192 bits para ambientes de segurança confidenciais.
O Wi-Fi Enhanced Open é um novo padrão de segurança WFA para redes públicas com base em criptografia sem fio oportunista (OWE, na sigla em inglês). Ele fornece criptografia e privacidade em redes abertas e não protegidas por senha em áreas como cafés, hotéis, restaurantes e bibliotecas. O Advanced Open não fornece 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 não tiveram upgrades de software para oferecer suporte a esses recursos, o WFA propôs os seguintes modos de transição:
- Modo de transição WPA2/WPA3:o ponto de acesso de exibição oferece suporte aos padrões WPA2 e WPA3 simultaneamente. Nesse modo, dispositivos Android 10 usam WPA3 para se conectar e dispositivos com Android 9 ou versões anteriores usam WPA2 para se conectar ao mesmo ponto de acesso.
- Modo de transição WPA2/WPA3-Enterprise:o ponto de acesso de exibição oferece suporte aos padrões WPA2-Enterprise e WPA3-Enterprise simultaneamente.
- Modo de transição OWE:o ponto de acesso de exibição oferece suporte a padrões abertos e OWE simultaneamente. Nesse modo, os dispositivos Android 10 usam OWE para se conectar, e os dispositivos com o Android 9 ou versões anteriores se conectam ao mesmo ponto de acesso sem nenhuma criptografia.
O Android 12 oferece suporte à indicação de desativação de transição, um mecanismo que instrui um dispositivo a não usar WPA2 e usar WPA3. Quando um dispositivo recebe essa indicação, ele usa o WPA3 para se conectar a uma rede WPA3 compatível com um modo de transição. O Android 12 também oferece suporte à troca de autenticação de hash para elemento (H2E) do WPA3. Para mais informações, consulte a Especificação WPA3.
O WPA3 e o Wi-Fi Enhanced Open são compatíveis apenas com o modo cliente.
Implementação
Para oferecer suporte a WPA3 e Wi-Fi Enhanced Open, implemente a interface HAL suplicante.
No Android 13 e versões mais recentes,
a interface usa a AIDL para a definição da HAL.
Para versões anteriores ao Android 13,
as interfaces e partições de fornecedor usam o HIDL.
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/
,
Confira a seguir os requisitos para oferecer suporte a WPA3 e OWE:
Patches do kernel do Linux para oferecer suporte a SAE e OWE
- (cfg80211)
- nl80211
wpa_supplicant
com suporte a SAE, SUITEB192 e OWEDriver de Wi-Fi compatível com SAE, SUITEB192 e OWE
Firmware de Wi-Fi com suporte para SAE, SUITEB192 e OWE
Chip Wi-Fi compatível com WPA3 e OWE
Métodos de API pública estão disponíveis no Android 10 para permitir que os apps determinem a compatibilidade do dispositivo com estes recursos:
WifiManager#isWpa3SaeSupported
WifiManager#isWpa3SuiteBSupported
WifiManager#isEnhancedOpenSupported
WifiConfiguration.java
contém novos tipos de gerenciamento de chaves, bem como cifras em pares, de grupo,
de gerenciamento de grupo e criptografias do pacote B, que são necessárias para OWE,
WPA3-Personal e WPA3-Enterprise.
Ativar WPA3 e 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_SAE
no arquivo de configuraçãowpa_supplicant
.# WPA3-Personal (SAE) CONFIG_SAE=y
WPA3-Enterprise:inclua as opções de compilação
CONFIG_SUITEB192
eCONFIG_SUITEB
no arquivo de configuraçãowpa_supplicant
.# WPA3-Enterprise (SuiteB-192) CONFIG_SUITEB=y CONFIG_SUITEB192=y
Wi-Fi Enhanced Open:inclua a opção de compilação
CONFIG_OWE
no 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 vão poder adicionar, verificar ou se conectar manualmente a esses tipos de redes.
Validação
Para testar a implementação, execute os seguintes testes.
Testes de unidades
Execute
SupplicantStaIfaceHalTest
para verificar o comportamento das flags de recurso para WPA3 e OWE.
atest SupplicantStaIfaceHalTest
Execute
WifiManagerTest
para verificar o comportamento das APIs públicas desse recurso.
atest WifiManagerTest
Testes VTS
Se a interface HIDL estiver implementada, execute:
atest VtsHalWifiSupplicantV1_3TargetTest
Se a interface AIDL estiver implementada, execute:
atest VtsHalWifiSupplicantStaIfaceTargetTest