Android 10 incorpora compatibilidad con los estándares de 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 la WFA.
WPA3 es un nuevo estándar de seguridad de la 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 iguales (SAE) en lugar de la clave precompartida (PSK), lo que brinda a los usuarios protecciones de seguridad más sólidas contra ataques como los ataques con diccionarios sin conexión, la recuperación de claves y la falsificación de mensajes.
- WPA3-Enterprise: Ofrece métodos de autenticación y encriptación de capa de vínculo más sólidos, y 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 la WFA para redes públicas basado en la encriptación inalámbrica oportunista (OWE). Proporciona encriptación y privacidad en redes abiertas y sin protección con contraseña en áreas como cafeterías, hoteles, restaurantes y bibliotecas. Enhanced Open no proporciona autenticación.
WPA3 y Wi-Fi Enhanced Open mejoran la seguridad general de Wi-Fi, lo que proporciona una mayor privacidad y solidez frente a ataques conocidos. Como muchos dispositivos aún no admiten estos estándares o no se han actualizado para admitir estas funciones, la WFA propuso los siguientes modos de transición:
- Modo de transición a WPA2/WPA3: El punto de acceso de servicio 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 con Android 9 o versiones anteriores usan WPA2 para conectarse al mismo punto de acceso.
- Modo de transición de WPA2/WPA3-Enterprise: El punto de acceso de servicio admite los estándares WPA2-Enterprise y WPA3-Enterprise de forma simultánea.
- Modo de transición de OWE: El punto de acceso de servicio admite OWE y estándares abiertos de forma simultánea. En este modo, los dispositivos con Android 10 usan OWE para conectarse, y los dispositivos con 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 que, 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 Hash-to-Element (H2E) de WPA3. Para obtener más información, consulta la Especificación de WPA3.
WPA3 y Wi-Fi Enhanced Open solo se admiten en el modo cliente.
Implementación
Para admitir WPA3 y Wi-Fi Enhanced Open, implementa la interfaz HAL de Supplicant.
A partir de Android 13, la interfaz usa el lenguaje de definición de la interfaz de Android (AIDL) para la definición de la HAL. En las versiones anteriores a Android 13, las interfaces y las particiones del proveedor usan el lenguaje de definición de la interfaz de HAL (HIDL). La interfaz HIDL se encuentra en hardware/interfaces/wifi/supplicant/1.3/, y la interfaz AIDL se encuentra en hardware/interfaces/wifi/supplicant/aidl/.
Para admitir WPA3 y OWE, se requiere lo siguiente:
- Parches del kernel de Linux para admitir SAE y OWE
- cfg80211
- nl80211
wpa_supplicantcon compatibilidad para SAE, SUITEB192 y OWE- Controlador 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
En Android 10, hay métodos de API públicos disponibles para permitir que las apps determinen si el dispositivo admite estas funciones:
WifiManager#isWpa3SaeSupportedWifiManager#isWpa3SuiteBSupportedWifiManager#isEnhancedOpenSupported
WifiConfiguration.java contiene nuevos tipos de administración de claves, así como cifrados 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.
Habilita 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_SAEen el archivo de configuraciónwpa_supplicant.# WPA3-Personal (SAE) CONFIG_SAE=yWPA3-Enterprise: Incluye las opciones de compilación
CONFIG_SUITEB192yCONFIG_SUITEBen el archivo de configuraciónwpa_supplicant.# WPA3-Enterprise (SuiteB-192) CONFIG_SUITEB=y CONFIG_SUITEB192=yWi-Fi Enhanced Open: Incluye la opción de compilación
CONFIG_OWEen 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, escanear ni conectarse manualmente a estos tipos de redes.
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 SupplicantStaIfaceHalTestEjecuta WifiManagerTest para verificar el comportamiento de las APIs públicas de esta función.
atest WifiManagerTestPruebas de VTS
Si se implementa la interfaz de HIDL, ejecuta el siguiente comando:
atest VtsHalWifiSupplicantV1_3TargetTestSi se implementa la interfaz de AIDL, ejecuta el siguiente comando:
atest VtsHalWifiSupplicantStaIfaceTargetTest