Condividi tramite


WiFiCx WPA3 SoftAP

La funzionalità SoftAP WPA3 consente ai dispositivi di configurare un punto di accesso software (SoftAP) usando il protocollo di sicurezza Wi-Fi Protected Access 3 - Autenticazione simultanea di equals (WPA3-SAE). Questo SoftAP può operare sulla banda da 2,4 GHz o 5 GHz. A partire da WDI versione 2.0.11 e WiFiCx versione 1.1, è possibile integrare la funzionalità SoftAP WPA3 nel driver client WiFiCx.

WPA3 SoftAP supporta WPA3-SAE e una modalità di transizione WPA3-SAE per compatibilità con le versioni precedenti. La modalità di transizione supporta sia i metodi di autenticazione WPA2-PSK che WPA3-SAE, garantendo la connettività Wi-Fi sicura in vari dispositivi e ambienti.

WPA3 SoftAP è disponibile solo nel modello di driver WiFiCx. Questo articolo descrive come aggiungere il supporto per WPA3 SoftAP nel driver WiFiCx.

Rilevamento delle funzionalità SoftAP WPA3

Il driver client indica il supporto per WPA3 SoftAP quando chiama WifiDeviceSetWiFiDirectCapabilities. Questa chiamata segnala funzionalità dirette Wi-Fi a WiFiCx. Il driver deve includere l'autenticazione e la coppia di crittografia DOT11_AUTH_ALGO_WPA3_SAE + DOT11_CIPHER_ALGO_CCMP nell'elenco UnicastAlgorithms all'interno della struttura WIFI_WIFIDIRECT_CAPABILITIES .

Un driver che supporta sia WPA2-PSK che WPA3-SAE con SoftAP deve segnalare le coppie di algoritmi unicast seguenti:

  • DOT11_AUTH_ALGO_WPA3_SAE + DOT11_CIPHER_ALGO_CCMP
  • DOT11_AUTH_ALGO_RSNA_PSK + DOT11_CIPHER_ALGO_CCMP

Elencare queste coppie segnala a WiFiCx che il driver supporta la funzionalità SoftAP in modalità di transizione WPA3.

Parametri di avvio dell'API

Windows modifica l'attività OID_WDI_TASK_START_AP come indicato di seguito:

  • Il WDI_TLV_AUTH_ALGO_LIST TLV potrebbe includere WDI_AUTH_ALGO_WPA3_SAE se il driver indica il supporto per WPA3 SoftAP.
  • L'WDI_TLV_AUTH_ALGO_LIST TLV può includere sia WDI_AUTH_ALGO_WPA3_SAE che WDI_AUTH_ALGO_RSNA_PSK. In questo caso, il driver deve annunciare il supporto per entrambi i protocolli di sicurezza tramite beacon e risposte probe e deve consentire l'autenticazione client usando WPA2-PSK o WPA3-SAE.

Supporto di AKM

AKM 0xac0f08 (RSNA_AKM_SAE_PMK256) è l'unico AKM supportato per WPA3 SoftAP. Il driver non deve annunciare il supporto per altri AKM.

Rilevamento di frame di gestione protetti (PMF)

Il sistema operativo non fornisce un flag specifico per PMF nei parametri di avvio dell'API. Il driver deve annunciare le funzionalità PMF come indicato di seguito:

Algoritmo di autenticazione presente PMF obbligatorio PmF in grado di supportare
WPA2-PSK No No
WPA3-SAE + WPA2-PSK No
WPA3-SAE

Se il driver segnala funzionalità per WPA3-SAE in SoftAP, il sistema operativo prevede che il driver supporti PMF. Non è disponibile alcuna funzionalità di driver aggiuntiva per PMF.

Autenticazione SAE per WPA3 SoftAP

Questa sezione descrive gli aggiornamenti dell'autenticazione SAE per scenari SoftAP WPA3.

Supporto hash-to-element (H2E) e Hunt e Peck

Il sistema operativo non fornisce un flag specifico per l'uso di H2E solo nei parametri di avvio dell'API. Pertanto, i driver devono indicare in modo coerente che supportano sia i metodi H2E che Hunt e Peck per SoftAP.

Token anti-intasamento

Il sistema operativo potrebbe rispondere a una richiesta di commit peer richiedendo un token anti-intasamento. Il sistema operativo chiama OID_WDI_edizione Standard T_SAE_AUTH_PARAMS con:

  • Tipo di richiesta WDI_SAE_REQUEST_TYPE_COMMIT_PARAMS o WDI_SAE_REQUEST_TYPE_COMMIT_PARAMS_H2E (se viene usato H2E).
  • StatusCode del frame di commit (WDI_TLV_SAE_COMMIT_PARAMS WDI_TLV_SAE_STATUS_CODE>) impostato su DOT11_FRAME_STATUS_ANTI_CLOGGING_TOKEN_REQUIRED.

Il peer fornisce un token anti-intasamento come parte dei parametri di commit.

In uno scenario SoftAP, quando un token anti-clogging è incluso nei parametri di commit, i valori scalari/element non vengono generati. Questi campi sono quindi facoltativi nella WDI_TLV_SAE_COMMIT_PARAMS TLV e il driver deve verificare la presenza prima di accedervi. Questa modifica rimane compatibile con i driver esistenti. I nuovi driver devono convalidare la presenza di questi campi facoltativi in tutti i percorsi.

Gruppi rifiutati

Il sistema operativo supporta solo il gruppo 19. Se il sistema operativo riceve un frame di commit da un peer che indica un gruppo che il sistema operativo non supporta, il sistema operativo invia un comando OID_WDI_edizione Standard T_SAE_AUTH_PARAMS. Nel comando il sistema operativo imposta:

Se il sistema operativo riceve un frame di commit da un peer che include un gruppo all'interno del campo RejectedGroups supportato dal sistema operativo, il sistema operativo non riuscirà comunque ad eseguire l'autenticazione SAE. Il sistema operativo invierà un comando OID_WDI_edizione Standard T_SAE_AUTH_PARAMS con:

  • WDI_SAE_REQUEST_TYPE impostato su WDI_SAE_REQUEST_TYPE_FAILURE.
  • SaeStatus impostato su WDI_SAE_STATUS_COMMIT_MESSAGE_INVALID_REJECTED_GROUP.

Sequenza di autenticazione SAE

Dopo aver chiamato l'attività OID_WDI_TASK_START_AP , il driver consente ai dispositivi di inviare frame di autenticazione SAE se DOT11_AUTH_ALGO_WPA3_SAE è impostato nell'elenco degli algoritmi di autenticazione in OID_WDI_TASK_START_AP. Il driver usa l'indicazione NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_N edizione Enterprise DED per passare i parametri di autenticazione SAE al sistema operativo.

Windows chiama OID_WDI_edizione Standard T_SAE_AUTH_PARAMS con WDI_SAE_COMMIT_PARAMS e WDI_SAE_CONFIRM_PARAMS per completare lo scambio SAE.

Dopo che il driver riceve i parametri di conferma dal sistema operativo e li invia al peer, può accettare una richiesta di associazione e indicare il parametro al sistema operativo.

SoftAP ad alte prestazioni

Per scenari come la realtà aumentata (AR) o la realtà virtuale (VR), i driver devono ottimizzare le prestazioni softAP il più possibile e assegnarne la priorità alla connessione STA. Questo processo comporta decisioni strategiche all'avvio di SoftAP, ad esempio la selezione di band/canali e la coesistenza con la connessione STA. Implica anche l'ottimizzazione durante il mantenimento di SoftAP.

Il sistema operativo indica gli scenari che richiedono softAP a prestazioni elevate usando un nuovo flag, favorOverSta, nell'attività OID_WDI_TASK_START_AP.

Il sistema operativo non determina il modo in cui il driver deve ottimizzare il collegamento SoftAP, lasciandolo in gran parte alla discrezione del driver. Il driver può degradare il collegamento STA per migliorare il collegamento SoftAP.

Quando il sistema operativo avvia SoftAP con il flag favorOverSta impostato, il driver è autorizzato e incoraggiato a eseguire il roaming della connessione STA a un canale/banda diverso se migliora il collegamento SoftAP.

Se i parametri di banda/canale richiesti dal sistema operativo sono in conflitto con la connessione STA corrente, il driver deve valutare se il roaming della connessione STA lo consentirà di avviare SoftAP con i parametri richiesti.

Quando un softAP avviato con il flag favorOverSta è in esecuzione, il sistema operativo potrebbe inviare un'attività OID_WDI_edizione Standard T_CONNECTION_QUALITY per richiedere prestazioni ottimizzate nel collegamento SoftAP. Il driver deve rispettare questa attività, ma dovrebbe anche cercare di migliorare il collegamento SoftAP anche se non riceve requisiti specifici tramite un'attività di OID_WDI_edizione Standard T_CONNECTION_QUALITY.

Comportamento previsto durante il roaming della porta STA

Il sistema operativo richiede "any" band/channel:

  • Il driver deve avviare SoftAP nel miglior canale/banda, considerando la configurazione corrente e la connessione STA. In genere, la banda/canale migliore è quella usata dal collegamento STA. Il driver dovrebbe quindi completare correttamente l'attività OID_WDI_TASK_START_AP .

    Se lo spostamento di STA potrebbe migliorare il collegamento SoftAP, il driver può inviare una richiesta di roaming al sistema operativo usando NDIS_STATUS_WDI_INDICATION_ROAMING_N edizione Enterprise DED. Quando il roaming riesce, il driver può spostare il collegamento SoftAP a un nuovo canale/banda che ottimizza le prestazioni.

Il sistema operativo richiede una banda/canale specifica:

  • Se il driver può sostenere SoftAP sulla banda/canale richiesto dal sistema operativo con prestazioni ragionevoli, dovrebbe completare correttamente l'attività OID_WDI_TASK_START_AP.

  • Se il driver non è attualmente in grado di sostenere softAP sulla banda/canale richiesto, deve verificare se vengono soddisfatte le condizioni seguenti.

    1. Un BSS alternativo è disponibile per il roaming di STA.
    2. Il driver può sostenere SoftAP sulla banda/canale richiesto dal sistema operativo dopo il roaming del collegamento STA.
    3. È improbabile che il roaming abbia esito negativo.

    Se queste condizioni vengono soddisfatte, il driver deve completare OID_WDI_TASK_START_AP correttamente e inviare una richiesta di roaming per spostare la connessione STA.

    In caso contrario, il driver deve avere esito negativo per l'attività OID_WDI_TASK_START_AP con un codice di errore pertinente.

Al termine dell'attività di OID_WDI_TASK_START_AP, il driver può inviare una richiesta di roaming per spostare la connessione STA per mantenere o migliorare le prestazioni softAP.

Se il roaming ha esito negativo e il driver non riesce a sostenere SoftAP senza spostare la connessione STA, il driver deve arrestare SoftAP. Il driver informa il sistema operativo inviando NDIS_STATUS_WDI_INDICATION_STOP_AP con un codice motivo pertinente (in genere, WDI_STOP_AP_REASON_FREQUENCY_NOT_AVAILABLE).

Quando softAP si arresta, gli utenti potrebbero notare un effetto "sfarfallio", in cui il softAP viene avviato e quindi si arresta quasi immediatamente. Questo comportamento deve essere evitato il più possibile. Se il driver richiede un roaming per sostenere softAP, il driver dovrebbe essere sicuro che il roaming avrà esito positivo prima di completare l'attività di OID_WDI_TASK_START_AP.

Codici di errore SoftAP

Se softAP non può essere avviato perché il canale/banda non è consentito per un motivo normativo, il driver deve non riuscire l'attività OID_WDI_TASK_START_AP con il codice di errore STATUS_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED o STATUS_NDIS_DOT11_AP_BAND_NOT_ALLOWED.

Se softAP non può essere avviato perché sta operando su una banda o un canale non compatibile con la banda o il canale richiesto e non è disponibile alcun candidato ragionevole per il roaming, il driver deve non riuscire l'attività OID_WDI_TASK_START_AP con il codice di errore STATUS_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE o STATUS_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE.

Se SoftAP non può essere avviato per un altro motivo (banda/canale non supportato, problema del driver generico e così via), il driver deve usare un codice di errore generico, ad esempio STATUS_NOT_SUPPORTED.

Se SoftAP non può essere sostenuto perché era necessario eseguire il roaming della connessione STA, ma il roaming non è riuscito, il driver dovrebbe arrestare SoftAP con il codice motivo WDI_STOP_AP_REASON_FREQUENCY_NOT_AVAILABLE.