WPA3 y Wi-Fi Enhanced Open

Android 10 incluye 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 Security 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 mediante el uso de algoritmos de seguridad modernos y conjuntos de cifrado más potentes. WPA3 tiene dos partes:

  • WPA3-Personal: Usa la autenticación simultánea de iguales (SAE) en lugar de la clave precompartida (PSK), lo que proporciona a los usuarios protecciones de seguridad más potentes contra ataques como ataques con diccionarios sin conexión, recuperación de claves y falsificación de mensajes.
  • WPA3-Enterprise: Ofrece métodos de autenticación y encriptación de capa de vínculo más potentes, 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 WFA para redes públicas basado en la encriptación inalámbrica oportunista (OWE). Proporciona encriptación y privacidad en redes abiertas y no protegidas 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 mayor privacidad y solidez frente a ataques conocidos. Como muchos dispositivos aún no admiten estos estándares o no se actualizaron para admitir estas funciones, WFA propuso los siguientes modos de transición:

  • Modo de transición de 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 los estándares OWE y 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 use WPA3 en su lugar. 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-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 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 puede encontrar en hardware/interfaces/wifi/supplicant/1.3/, y la interfaz AIDL se puede encontrar en hardware/interfaces/wifi/supplicant/aidl/.

Se requiere lo siguiente para admitir WPA3 y OWE:

  • 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 con compatibilidad para SAE, SUITEB192 y OWE
  • Firmware de Wi-Fi con compatibilidad para SAE, SUITEB192 y OWE
  • Chip de Wi-Fi con compatibilidad para WPA3 y OWE

Los métodos de la API pública están disponibles en Android 10 para permitir que las apps determinen la compatibilidad del dispositivo con estas funciones:

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_SAE en el wpa_supplicant archivo de configuración.

    # 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 WPA3-Personal, WPA3-Enterprise o Wi-Fi Enhanced Open no están habilitados, 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 HIDL, ejecuta lo siguiente:

atest VtsHalWifiSupplicantV1_3TargetTest

Si se implementa la interfaz AIDL, ejecuta lo siguiente:

atest VtsHalWifiSupplicantStaIfaceTargetTest