Compartilhar via


Autenticação WPA3-SAE da WiFiCx

O WiFiCx suporta WPA3-SAE, também conhecido como WPA3 Pessoal. A geração e análise de conteúdo de quadros para autenticação SAE (Secure Authentication of Equals) é feita no Windows, mas o sistema operacional requer suporte para drivers para enviar e receber quadros de autenticação de WPA3-SAE.

Funcionalidades de WPA3-SAE

Os drivers de WiFiCx indicam o suporte a SAE fazendo o seguinte:

  1. Defina o recurso compatível com SAE.
    O driver define o recurso SAEAuthenticationSupported no WIFI_DEVICE_CAPABILITIES durante a chamada para WifiDeviceSetDeviceCapabilities.

  2. Defina a capacidade de MFP.
    O driver define o recurso MFPCapable no WIFI_STATION_CAPABILITIES durante a chamada para WifiDeviceSetStationCapabilities.

  3. Adicione a criptografia WDI_AUTH_ALGO_WPA3_SAE.
    O driver inclui o par WDI_AUTH_ALGO_WPA3_SAE + DOT11_CIPHER_ALGO_CCMP na lista de combinações de autorização e criptografia retornadas na chamada para WifiDeviceSetStationCapabilities. Isso deve ser adicionado na seguinte estrutura:

    O driver também inclui o par WDI_AUTH_ALGO_WPA3_SAE + WDI_CIPHER_ALGO_BI na lista de combinações de autorização e criptografia retornadas na chamada para WifiDeviceSetStationCapabilities. Ele deve ser acrescentado na seguinte estrutura:

Fluxo de autenticação de WPA3-SAE

Início da conexão

As conexões SAE são iniciadas com OID_WDI_TASK_CONNECT ou OID_WDI_TASK_ROAM. O WDI especifica WDI_AUTH_ALGO_WPA3_SAE como o método de autenticação quando o driver é necessário para fazer a autenticação de SAE. Se o WDI fornecer o PMKID na lista BSS na tarefa de conexão/roaming, o driver ignorará a autenticação de SAE e executará a Autenticação Aberta, seguida por uma solicitação de reassociação com o PMKID.

Fluxo de autenticação

Diagrama mostrando o fluxo de autenticação de WPA3-SAE.

Solicitação inicial de parâmetros de SAE

O driver primeiro seleciona um BSS ao qual se conectar ou mover e, se o WDI não tiver fornecido o PMKID para esse BSS, o driver solicitará parâmetros de compromisso do WDI com NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED. Na indicação inicial, o driver define o tipo de indicação como WDI_SAE_INDICATION_TYPE_COMMIT_REQUEST_PARAMS_NEEDED. Em resposta, o WDI envia OID_WDI_SET_SAE_AUTH_PARAMS para o driver com uma das seguintes opções.

  • Enviar solicitação de compromisso (WDI_SAE_REQUEST_TYPE_COMMIT_PARAMS)
  • Falha na autenticação de SAE (WDI_SAE_REQUEST_TYPE_FAILURE)

Ao receber uma resposta de compromisso

Ao receber uma resposta de compromisso, o driver envia NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED com o tipo definido como WDI_SAE_INDICATION_TYPE_COMMIT_FRAME. Em resposta, a WDI envia OID_WDI_SET_SAE_AUTH_PARAMS com uma das seguintes solicitações:

  • Enviar solicitação de compromisso (WDI_SAE_REQUEST_TYPE_COMMIT_PARAMS)
  • Enviar solicitação de confirmação (WDI_SAE_REQUEST_TYPE_CONFIRM_PARAMS)
  • Falha na autenticação de SAE (WDI_SAE_REQUEST_TYPE_FAILURE)

Ao receber uma resposta de confirmação

Ao receber uma resposta de confirmação, o driver envia NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED com o tipo definido como WDI_SAE_INDICATION_TYPE_CONFIRM_FRAME. Em seguida, o WDI envia OID_WDI_SET_SAE_AUTH_PARAMS com o campo de status SAE definido como êxito ou falha. Se a autenticação de SAE falhar no driver devido a um tempo limite atingido ou outros motivos, o driver enviará uma indicação NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED com o tipo definido como WDI_SAE_INDICATION_TYPE_ERROR e o motivo da falha especificado em WDI_TLV_SAE_STATUS.

Tempos limite e retransmissões

Eles são manuseados pelo driver.

Associação de WPA3-SAE

O dispositivo se conecta a uma rede de SAE usando uma das seguintes opções.

(Re)associação após intercâmbio de SAE

Esta é normalmente a primeira tentativa de associação a uma rede de SAE. O driver define o AKM de SAE no IE de RSN no quadro Solicitação de Associação.

(Re)associação usando PMKID

Se o WDI forneceu um PMKID para a entrada de BSS na tarefa de conexão/roaming, o driver fará o seguinte:

  1. O driver executa uma autenticação aberta seguida da inclusão do PMKID na solicitação de (re)associação.
  2. Se o dispositivo não receber uma resposta do ponto de acesso em um curto período ou se o ponto de acesso retornar um erro de associação na resposta, o driver ignorará a autenticação de SE com esse ponto de acesso e será movido para outro ponto de acesso ou voltará a fazer a autenticação de SAE completa com esse ponto de acesso.

A conexão de SAE é concluída quando a autenticação/associação de SAE é concluída. Como antes, o driver envia as seguintes indicações na conclusão da tarefa de conexão ou roaming:

Tratamento de erros

Reenviar o quadro de solicitação de compromisso de SAE

Se o driver precisar reenviar um quadro de compromisso devido a um tempo limite, ele poderá reenviar os valores de escalonamento/Elemento originais que foram fornecidos pelo WDI ou solicitar um novo conjunto de valores de escalonamento/elemento do WDI com uma indicação NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED.

Reenviar o quadro de resposta de confirmação de SAE

Se o driver precisar reenviar um quadro de confirmação devido a um tempo limite, ele deverá solicitar um novo conjunto de valores SendConfirm e Confirm do WDI com uma indicação NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED, configurando o tipo para WDI_SAE_INDICATION_TYPE_CONFIRM_REQUEST_RESEND_REQUEST.

Alterações de autenticação de SAE do Wi-Fi 7

Para atualizações de autenticação de SAE do Wi-Fi 7, consulte Requisitos de recurso Wi-Fi 7 do WiFiCx.