Condividi tramite


Autenticazione WiFiCx WPA3-SAE

WiFiCx supporta WPA3-SAE, noto anche come WPA3-Personal. La generazione e l'analisi del contenuto dei frame per l'autenticazione SAE (autenticazione sicura di pari) viene eseguita in Windows, ma il sistema operativo richiede il supporto del driver per l'invio e la ricezione dei frame di autenticazione WPA3-SAE.

funzionalità di WPA3-SAE

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

  1. Impostare la funzionalità supportata da SAE.
    Il driver imposta la funzionalità di SAEAuthenticationSupported in WIFI_DEVICE_CAPABILITIES durante la chiamata a WifiDeviceSetDeviceCapabilities.

  2. Impostare la funzionalità MFP.
    Il driver imposta la funzionalità MFPCapable in WIFI_STATION_CAPABILITIES durante la chiamata a WifiDeviceSetStationCapabilities.

  3. Aggiungere la crittografia WDI_AUTH_ALGO_WPA3_SAE.
    Il driver include la coppia WDI_AUTH_ALGO_WPA3_SAE + DOT11_CIPHER_ALGO_CCMP nell'elenco delle combinazioni di crittografia di autenticazione restituite nella chiamata a WifiDeviceSetStationCapabilities. Questa operazione deve essere aggiunta nella struttura seguente:

    Il driver include anche la coppia WDI_AUTH_ALGO_WPA3_SAE + WDI_CIPHER_ALGO_BI nell'elenco delle combinazioni di crittografia di autenticazione restituite nella chiamata a WifiDeviceSetStationCapabilities. Deve essere aggiunto nello struct seguente:

WPA3-SAE flusso di autenticazione

Avvio della 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 è richiesto al driver di 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

Diagramma che mostra il 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 i 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 di commit (WDI_SAE_REQUEST_TYPE_COMMIT_PARAMS)
  • Autenticazione SAE non riuscita (WDI_SAE_REQUEST_TYPE_FAILURE)

Al ricevimento di una risposta Commit

Quando si riceve una risposta Commit, il driver invia NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED con il tipo impostato su WDI_SAE_INDICATION_TYPE_COMMIT_FRAME. In risposta, WDI invia OID_WDI_SET_SAE_AUTH_PARAMS con una delle richieste seguenti:

  • Invia richiesta di commit (WDI_SAE_REQUEST_TYPE_COMMIT_PARAMS)
  • Invia richiesta di conferma (WDI_SAE_REQUEST_TYPE_CONFIRM_PARAMS)
  • Autenticazione SAE non riuscita (WDI_SAE_REQUEST_TYPE_FAILURE)

Alla ricezione di una risposta di conferma

Quando riceve una risposta di conferma, il driver invia NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED con il tipo impostato su WDI_SAE_INDICATION_TYPE_CONFIRM_FRAME. 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 impostato su WDI_SAE_INDICATION_TYPE_ERROR e il motivo dell'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 dopo lo scambio SAE

Si tratta in genere del primo tentativo di associazione a una rete SAE. Il driver imposta l'SAE AKM nell'RSN IE all'interno del frame di richiesta di associazione.

(Re)Associazione tramite 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 aperta seguita dall'inclusione di PMKID nella richiesta di associazione (Riautenticazione).
  2. Se il dispositivo non riceve una risposta dall'API entro un breve periodo di tempo 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 esegue nuovamente l'autenticazione SAE completa con questa API.

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

Gestione degli errori

Invio nuovamente del frame della richiesta di commit SAE

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

Invio di nuovo del frame di risposta di conferma sae

Se il driver deve inviare nuovamente un frame di conferma a causa di un timeout, deve richiedere un nuovo set di valori per SendConfirm e Confirm 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.

Wi-Fi 7 modifiche all’autenticazione SAE

Per gli aggiornamenti dell'autenticazione SAE Wi-Fi 7, vedere i requisiti funzionali di WiFiCx Wi-Fi 7.