Android 10 incluye compatibilidad con los estándares Wi-Fi Protected Access versión 3 (WPA3) y Wi-Fi Enhanced Open de Wi-Fi Alliance (WFA). Para obtener más información, consulta Seguridad en el sitio de WFA.
WPA3 es un nuevo estándar de seguridad de WFA para redes personales y empresariales. Su objetivo es mejorar la seguridad general de Wi-Fi con algoritmos de seguridad modernos y conjuntos de algoritmos de cifrado más sólidos. WPA3 tiene dos partes:
- WPA3-Personal: Usa la autenticación simultánea de equals (SAE) en lugar de la clave precompartida (PSK), lo que proporciona a los usuarios protecciones de seguridad más sólidas contra ataques como ataques de diccionario sin conexión, recuperación de claves y falsificación de mensajes.
- WPA3-Enterprise: Ofrece métodos de autenticación y encriptación en capas de vínculo más sólidos, además de un modo de seguridad opcional de 192 bits para entornos de seguridad sensibles.
Wi-Fi Enhanced Open es un nuevo estándar de seguridad de WFA para redes públicas basado en la encriptación inalámbrica oportunista (OWE). Proporciona encriptación y privacidad en redes abiertas y sin contraseña en áreas como cafeterías, hoteles, restaurantes y bibliotecas. El acceso mejorado no proporciona autenticación.
WPA3 y Wi-Fi Enhanced Open mejoran la seguridad general de Wi-Fi, lo que proporciona una mejor privacidad y solidez contra ataques conocidos. Debido a que muchos dispositivos aún no admiten estos estándares o todavía no recibieron actualizaciones de software para admitir estas funciones, FCA propuso los siguientes modos de transición:
- Modo de transición WPA2/WPA3: El punto de acceso de entrega admite los estándares WPA2 y WPA3 de forma simultánea. En este modo, los dispositivos con Android 10 usan WPA3 para conectarse, y los dispositivos que ejecutan Android 9 o versiones anteriores usan WPA2 para conectarse al mismo punto de acceso.
- Modo de transición WPA2/WPA3-Enterprise: El punto de acceso de entrega es compatible con los estándares WPA2-Enterprise y WPA3-Enterprise al mismo tiempo.
- Modo de transición OWE: El punto de acceso de entrega admite estándares abiertos y OWE al mismo tiempo. En este modo, los dispositivos con Android 10 usan la OWE para conectarse, y los dispositivos que ejecutan Android 9 o versiones anteriores se conectan al mismo punto de acceso sin encriptación.
Android 12 admite la indicación de inhabilitación de la transición, un mecanismo que le indica a un dispositivo que no use WPA2 y, en su lugar, use WPA3. Cuando un dispositivo recibe esta indicación, usa WPA3 para conectarse a una red WPA3 que admite un modo de transición. Android 12 también admite el intercambio de autenticación de hash a elemento (H2E) de WPA3. Para obtener más información, consulta la especificación de WPA3.
WPA3 y Wi-Fi Enhanced Open solo son compatibles en el modo cliente.
Implementación
Para admitir WPA3 y Wi-Fi Enhanced Open, implementa la interfaz de HAL del solicitante.
A partir de Android 13, la interfaz usa el AIDL para la definición de la HAL.
En las versiones anteriores a Android 13, las interfaces y las particiones del proveedor usan HIDL.
La interfaz HIDL se encuentra en hardware/interfaces/wifi/supplicant/1.3/
, y la interfaz del AIDL en hardware/interfaces/wifi/supplicant/aidl/
.
Para admitir WPA3 y OWE, se requiere lo siguiente:
Parches del kernel de Linux que admiten la función SAE y OWE
- cfg80211
- NL80211
wpa_supplicant
compatible con SAE, SUITEB192 y OWEControlador de Wi-Fi compatible con SAE, SUITEB192 y OWE
Firmware de Wi-Fi compatible con SAE, SUITEB192 y OWE
Chip Wi-Fi compatible con WPA3 y OWE
Los métodos de API pública están disponibles en Android 10 para permitir que las apps determinen la compatibilidad del dispositivo con estas funciones:
WifiManager#isWpa3SaeSupported
WifiManager#isWpa3SuiteBSupported
WifiManager#isEnhancedOpenSupported
WifiConfiguration.java
incluye nuevos tipos de administración de claves, así como algoritmos de cifrado por pares, cifrados de grupo, cifrados de administración de grupos y cifrados de Suite B, que son necesarios para OWE, WPA3-Personal y WPA3-Enterprise.
Habilitar WPA3 y Wi-Fi Enhanced Open
Para habilitar WPA3-Personal, WPA3-Enterprise y Wi-Fi Enhanced Open en el framework de Android, haz lo siguiente:
WPA3-Personal: Incluye la opción de compilación
CONFIG_SAE
en el archivo de configuraciónwpa_supplicant
.# WPA3-Personal (SAE) CONFIG_SAE=y
WPA3-Enterprise: Incluye las opciones de compilación
CONFIG_SUITEB192
yCONFIG_SUITEB
en el archivo de configuraciónwpa_supplicant
.# WPA3-Enterprise (SuiteB-192) CONFIG_SUITEB=y CONFIG_SUITEB192=y
Wi-Fi Enhanced Open: Incluye la opción de compilación
CONFIG_OWE
en el archivo de configuraciónwpa_supplicant
.# Opportunistic Wireless Encryption (OWE) # Experimental implementation of draft-harkins-owe-07.txt CONFIG_OWE=y
Si no están habilitados WPA3-Personal, WPA3-Enterprise o Wi-Fi Enhanced Open, los usuarios no podrán agregar o escanear este tipo de redes, ni conectarse a ellas de forma manual.
Validación
Para probar tu implementación, ejecuta las siguientes pruebas.
Pruebas de unidades
Ejecuta SupplicantStaIfaceHalTest
para verificar el comportamiento de las marcas de capacidad para WPA3 y OWE.
atest SupplicantStaIfaceHalTest
Ejecuta WifiManagerTest
para verificar el comportamiento de las APIs públicas para esta función.
atest WifiManagerTest
Pruebas de VTS
Si se implementa la interfaz HIDL, ejecuta lo siguiente:
atest VtsHalWifiSupplicantV1_3TargetTest
Si se implementa la interfaz del AIDL, ejecuta el siguiente comando:
atest VtsHalWifiSupplicantStaIfaceTargetTest