Share via


Autenticazione WPA3-SAE

WPA3-SAE, noto anche come WPA3-Personal, è supportato in Windows con WDI versione 1.1.8 e versioni successive. La generazione e l'analisi dei contenuti frame per l'autenticazione SAE (Secure Authentication of Equals) viene eseguita all'interno di Windows, ma il sistema operativo richiede il supporto del driver per l'invio e la ricezione di frame di autenticazione WPA3-SAE.

Funzionalità WPA3-SAE

I driver Miniport indicano il supporto SAE eseguendo le operazioni seguenti:

  1. Impostare la funzionalità supportata da SAE.
    Il driver imposta la funzionalità SAEAuthenticationSupported in WDI_TLV_INTERFACE_ATTRIBUTES durante la chiamata a OID_WDI_GET_ADAPTER_CAPABILITIES.
  2. Impostare la funzionalità MFP.
    Il driver imposta la funzionalità MFPCapable in WDI_TLV_STATION_ATTRIBUTES durante la chiamata a OID_WDI_GET_ADAPTER_CAPABILITIES.
  3. Aggiungere il metodo di autenticazione WDI_AUTH_ALGO_WPA3_SAE .
    Il driver include WDI_AUTH_ALGO_WPA3_SAE nell'elenco delle combinazioni di crittografia di autenticazione restituite nella chiamata a OID_WDI_GET_ADAPTER_CAPABILITIES. Questa operazione deve essere aggiunta nelle sezioni seguenti:

Flusso di autenticazione WPA3-SAE

Avvio connessione

Le connessioni SAE vengono avviate con OID_WDI_TASK_CONNECT o OID_WDI_TASK_ROAM. WDI specifica WDI_AUTH_ALGO_WPA3_SAE come metodo di autenticazione quando il driver è necessario per eseguire l'autenticazione SAE. Se WDI fornisce PMKID nell'elenco BSS nell'attività Connect/Roam, il driver ignora l'autenticazione SAE ed esegue invece l'autenticazione Open Authentication, seguita da una richiesta di riassociazione con PMKID.

Flusso di autenticazione

Flusso di autenticazione WPA3-SAE.

Richiesta iniziale per i parametri SAE

Il driver seleziona prima un BSS a cui connettersi o eseguire il roaming e, se WDI non ha fornito pmKID per tale BSS, il driver richiede parametri Commit da WDI con NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED. In questa indicazione iniziale il driver imposta il tipo di indicazione su WDI_SAE_INDICATION_TYPE_COMMIT_REQUEST_PARAMS_NEEDED. In risposta, WDI invia OID_WDI_SET_SAE_AUTH_PARAMS al driver con una delle opzioni seguenti.

  • Invia richiesta commit (WDI_SAE_REQUEST_TYPE_COMMIT_REQUEST)
  • Autenticazione SAE non riuscita (WDI_SAE_REQUEST_TYPE_FAILURE)

Al momento della ricezione di una risposta commit

Durante la ricezione di una risposta commit, il driver invia NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED con il tipo impostato su WDI_SAE_INDICATION_TYPE_COMMIT_RESPONSE. In risposta, WDI invia OID_WDI_SET_SAE_AUTH_PARAMS con una delle richieste seguenti:

  • Invia richiesta commit (WDI_SAE_REQUEST_TYPE_COMMIT_REQUEST)
  • Invia richiesta conferma (WDI_SAE_REQUEST_TYPE_CONFIRM_REQUEST)
  • Autenticazione SAE non riuscita (WDI_SAE_REQUEST_TYPE_FAILURE)

Al momento della ricezione di una risposta Di conferma

Durante la ricezione di una risposta Conferma, il driver invia NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED con il tipo impostato su WDI_SAE_INDICATION_TYPE_CONFIRM_RESPONSE. WDI invia quindi OID_WDI_SET_SAE_AUTH_PARAMS con il campo stato SAE impostato su esito positivo o negativo. Se l'autenticazione SAE non riesce nel driver a causa di timeout o altri motivi, il driver invia un'indicazione NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED con il tipo se a WDI_SAE_INDICATION_TYPE_ERROR e il motivo di errore specificato in WDI_TLV_SAE_STATUS.

Timeout e ritrasmissioni

Questi vengono gestiti dal driver.

Associazione WPA3-SAE

Il dispositivo si connette a una rete SAE usando una delle opzioni seguenti.

(Re) Associazione che segue lo scambio SAE

Questo è normalmente il primo tentativo di associazione a una rete SAE. Il driver imposta saE AKM nell'IE RSN nel frame della richiesta di associazione.

(Re) Associazione con PMKID

Se WDI ha fornito un PMKID per la voce BSS nell'attività connect/roam, il driver esegue le operazioni seguenti:

  1. Il driver esegue un'autenticazione Open seguita dall'inclusione del PMKID nella richiesta di associazione (Re).
  2. Se il dispositivo non riceve una risposta dall'AP entro un breve periodo o se l'API restituisce un errore di associazione nella risposta, il driver ignora l'autenticazione SE con questa API e passa a un'altra API oppure torna a eseguire l'autenticazione SAE completa con questa AP.

La connessione SAE viene completata al termine dell'autenticazione/associazione SAE. Come in precedenza, il driver invia le indicazioni seguenti sulla conclusione dell'attività connetti o in roaming:

Gestione degli errori

Inviare nuovamente il frame di richiesta di commit SAE

Se il driver deve eseguire nuovamente il ripristino di un frame di commit a causa di un timeout, può inviare nuovamente i valori scalari/elemento originali forniti da WDI o richiedere un nuovo set di valori Scalar/Element da WDI con un'indicazione NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED .

Inviare nuovamente il frame di risposta di conferma dell'ambiente di sicurezza del servizio di sicurezza

Se il driver deve inviare nuovamente un frame Di conferma a causa di un timeout, deve richiedere un nuovo set di valori SendConfirm e Conferma da WDI con un'indicazione NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED, impostando il tipo su WDI_SAE_INDICATION_TYPE_CONFIRM_REQUEST_RESEND_REQUEST.