WPA3 y Wi-Fi Enhanced Open

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 potentes. El 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 una mayor protección de seguridad 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 de 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 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 puede encontrar en hardware/interfaces/wifi/supplicant/1.3/, y la interfaz AIDL, 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_supplicant con 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:

WifiConfiguration.java contiene nuevos tipos de administración de claves, así como algoritmos de cifrado por pares, algoritmos de cifrado de grupos, algoritmos de cifrado de administración de grupos y algoritmos de cifrado 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_SAE en el archivo de configuración wpa_supplicant.

    # WPA3-Personal (SAE)
    CONFIG_SAE=y
    
  • WPA3-Enterprise: Incluye las opciones de compilación CONFIG_SUITEB192 y CONFIG_SUITEB en el archivo de configuración wpa_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ón wpa_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 SupplicantStaIfaceHalTest

Ejecuta WifiManagerTest para verificar el comportamiento de las APIs públicas de esta función.

atest WifiManagerTest

Pruebas de VTS

Si se implementa la interfaz de HIDL, ejecuta el siguiente comando:

atest VtsHalWifiSupplicantV1_3TargetTest

Si se implementa la interfaz de AIDL, ejecuta el siguiente comando:

atest VtsHalWifiSupplicantStaIfaceTargetTest