Autenticação WPA3-SAE

O WPA3-SAE, também conhecido como WPA3-Personal, tem suporte no Windows com o WDI versão 1.1.8 e posterior. A geração e a análise de conteúdo de quadro para autenticação SAE (Autenticação Segura de Igual) são feitas no Windows, mas o sistema operacional requer suporte de driver para enviar e receber quadros de autenticação WPA3-SAE.

Funcionalidades do WPA3-SAE

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

  1. Defina a funcionalidade com suporte para SAE.
    O driver define a funcionalidade SAEAuthenticationSupported em WDI_TLV_INTERFACE_ATTRIBUTES durante a chamada para OID_WDI_GET_ADAPTER_CAPABILITIES.
  2. Defina a funcionalidade MFP.
    O driver define a funcionalidade MFPCapable em WDI_TLV_STATION_ATTRIBUTES durante a chamada para OID_WDI_GET_ADAPTER_CAPABILITIES.
  3. Adicione o método de autenticação WDI_AUTH_ALGO_WPA3_SAE .
    O driver inclui WDI_AUTH_ALGO_WPA3_SAE na lista de combinações de criptografia de autenticação retornadas na chamada para OID_WDI_GET_ADAPTER_CAPABILITIES. Isso deve ser adicionado nas seguintes seções:

Fluxo de autenticação WPA3-SAE

Iniciação 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 SAE. Se o WDI fornecer o PMKID na lista BSS na tarefa Conectar/Roaming, o driver ignorará a autenticação SAE e executará a Autenticação Aberta, seguido por uma solicitação de reassociação com o PMKID.

Fluxo de autenticação

Fluxo de autenticação WPA3-SAE.

Solicitação inicial para parâmetros SAE

Primeiro, o driver seleciona um BSS ao qual se conectar ou usar roaming e, se o WDI não forneceu o PMKID para esse BSS, o driver solicitará parâmetros de Confirmação do WDI com NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED. Nessa 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 opções a seguir.

  • Enviar solicitação de confirmação (WDI_SAE_REQUEST_TYPE_COMMIT_REQUEST)
  • Falha na autenticação SAE (WDI_SAE_REQUEST_TYPE_FAILURE)

Ao receber uma resposta de confirmação

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

  • Enviar solicitação de confirmação (WDI_SAE_REQUEST_TYPE_COMMIT_REQUEST)
  • Enviar solicitação de confirmação (WDI_SAE_REQUEST_TYPE_CONFIRM_REQUEST)
  • Falha na autenticação SAE (WDI_SAE_REQUEST_TYPE_FAILURE)

Ao receber uma resposta confirmar

Ao receber uma resposta Confirmar, o driver envia NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED com o tipo definido como WDI_SAE_INDICATION_TYPE_CONFIRM_RESPONSE. 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 SAE falhar no driver devido a tempos limite ou outros motivos, o driver enviará uma indicação de NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED com o tipo se para WDI_SAE_INDICATION_TYPE_ERROR e o motivo da falha especificado em WDI_TLV_SAE_STATUS.

Tempos limite e retransmissões

Eles são manipulados pelo driver.

Associação WPA3-SAE

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

(Re) Associação após troca de SAE

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

(Re) Associação usando PMKID

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

  1. O driver executa uma autenticação Open seguida pela inclusão do PMKID na solicitação (Re)association.
  2. Se o dispositivo não receber uma resposta do AP em pouco tempo ou se a AP retornar um erro de associação na resposta, o driver ignorará a autenticação SE com essa AP e passará para outra AP ou voltará a fazer a autenticação SAE completa com essa AP.

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

Tratamento de erros

Reenviando o quadro de solicitação de confirmação sae

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

Reenviando o quadro de resposta Confirmar SAE

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