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:
- 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. - Defina a funcionalidade MFP.
O driver define a funcionalidade MFPCapable em WDI_TLV_STATION_ATTRIBUTES durante a chamada para OID_WDI_GET_ADAPTER_CAPABILITIES. - 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
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:
- O driver executa uma autenticação Open seguida pela inclusão do PMKID na solicitação (Re)association.
- 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.