Autenticación WIFiCx WPA3-SAE

WiFiCx admite WPA3-SAE, también conocido como WPA3-Personal. La generación y el análisis de contenido de fotogramas para la autenticación SAE (autenticación segura de iguales) se realiza en Windows, pero el sistema operativo requiere compatibilidad con controladores para enviar y recibir marcos de autenticación WPA3-SAE.

Funcionalidades WPA3-SAE

Los controladores WiFiCx indican la compatibilidad con SAE haciendo lo siguiente:

  1. Establezca la funcionalidad compatible con SAE.
    El controlador establece la funcionalidad SAEAuthenticationSupported en WIFI_DEVICE_CAPABILITIES durante la llamada a WifiDeviceSetDeviceCapabilities.

  2. Establezca la funcionalidad MFP.
    El controlador establece la funcionalidad MFPCapable en WIFI_STATION_CAPABILITIES durante la llamada a WifiDeviceSetStationCapabilities.

  3. Agregue el cifrado WDI_AUTH_ALGO_WPA3_SAE .
    El controlador incluye el par WDI_AUTH_ALGO_WPA3_SAE + DOT11_CIPHER_ALGO_CCMP en la lista de combinaciones de cifrado de autenticación devueltas en la llamada a WifiDeviceSetStationCapabilities. Esto debe agregarse en la estructura siguiente:

    El controlador también incluye el par WDI_AUTH_ALGO_WPA3_SAE + WDI_CIPHER_ALGO_BI en la lista de combinaciones de cifrado de autenticación devueltas en la llamada a WifiDeviceSetStationCapabilities. Debe agregarse en la estructura siguiente:

Flujo de autenticación WPA3-SAE

Inicio de la conexión

Las conexiones SAE se inician con OID_WDI_TASK_CONNECT o OID_WDI_TASK_ROAM. WDI especifica WDI_AUTH_ALGO_WPA3_SAE como método de autenticación cuando se requiere el controlador para realizar la autenticación SAE. Si WDI proporciona el PMKID en la lista de BSS en la tarea Connect/Roam, el controlador omite la autenticación SAE y realiza open Authentication en su lugar, seguido de una solicitud de reasociación con PMKID.

Flujo de autenticación

Diagrama que muestra el flujo de autenticación WPA3-SAE.

Solicitud inicial de parámetros SAE

El controlador selecciona primero un BSS al que conectarse o desplazarse y, si WDI no proporcionó el PMKID para ese BSS, el controlador solicita parámetros Commit de WDI con NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED. En esta indicación inicial, el controlador establece el tipo de indicación en WDI_SAE_INDICATION_TYPE_COMMIT_REQUEST_PARAMS_NEEDED. En respuesta, WDI envía OID_WDI_SET_SAE_AUTH_PARAMS al controlador con una de las siguientes opciones.

  • Enviar solicitud de confirmación (WDI_SAE_REQUEST_TYPE_COMMIT_REQUEST)
  • Error de autenticación saE (WDI_SAE_REQUEST_TYPE_FAILURE)

Después de recibir una respuesta de confirmación

Al recibir una respuesta Commit, el controlador envía NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED con el tipo establecido en WDI_SAE_INDICATION_TYPE_COMMIT_RESPONSE. En respuesta, WDI envía OID_WDI_SET_SAE_AUTH_PARAMS con una de las siguientes solicitudes:

  • Enviar solicitud de confirmación (WDI_SAE_REQUEST_TYPE_COMMIT_REQUEST)
  • Enviar solicitud confirm (WDI_SAE_REQUEST_TYPE_CONFIRM_REQUEST)
  • Error de autenticación saE (WDI_SAE_REQUEST_TYPE_FAILURE)

Después de recibir una respuesta Confirm

Al recibir una respuesta Confirm, el controlador envía NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED con el tipo establecido en WDI_SAE_INDICATION_TYPE_CONFIRM_RESPONSE. A continuación, WDI envía OID_WDI_SET_SAE_AUTH_PARAMS con el campo estado de SAE establecido en correcto o error. Si se produce un error en la autenticación SAE en el controlador debido a tiempos de espera u otros motivos, el controlador envía una indicación de NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED con el tipo se para WDI_SAE_INDICATION_TYPE_ERROR y el motivo del error especificado en WDI_TLV_SAE_STATUS.

Tiempos de espera y retransmisiones

Estos se controlan mediante el controlador.

Asociación WPA3-SAE

El dispositivo se conecta a una red SAE mediante una de las siguientes opciones.

(Re) Asociación después del intercambio de SAE

Normalmente, esta es la primera asociación que intenta realizar una red SAE. El controlador establece el AKM saE en el IE de RSN en el marco de solicitud de asociación.

(Re) Asociación mediante PMKID

Si WDI proporcionó un PMKID para la entrada BSS en la tarea connect/roam, el controlador hace lo siguiente:

  1. El controlador realiza una autenticación abierta seguida de la inclusión de PMKID en la solicitud de asociación (Re).
  2. Si el dispositivo no recibe una respuesta del AP en poco tiempo, o si el AP devuelve un error de asociación en la respuesta, el controlador omite la autenticación SE con esta API y se mueve a otra AP, o vuelve a realizar la autenticación SAE completa con esta API.

La conexión SAE se completa una vez completada la autenticación o asociación de SAE. Como antes, el controlador envía las siguientes indicaciones sobre la conclusión de la tarea de conexión o itinerancia:

Control de errores

Reenvío del marco de solicitud de confirmación de SAE

Si el controlador necesita volver a enviar un marco de confirmación debido a un tiempo de espera, puede reenviar los valores escalares o elementos originales proporcionados por WDI o solicitar un nuevo conjunto de valores escalares o de elementos de WDI con una indicación de NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED .

Reenvío del marco de respuesta Confirm de SAE

Si el controlador necesita volver a enviar un marco Confirm debido a un tiempo de espera, debe solicitar un nuevo conjunto de valores SendConfirm y Confirm de WDI con una indicación de NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED , estableciendo el tipo en WDI_SAE_INDICATION_TYPE_CONFIRM_REQUEST_RESEND_REQUEST.