WPA3 y Wi-Fi Enhanced Open

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 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

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:

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ó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 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