Partager via


Authentification WPA3-SAE

WPA3-SAE, également appelé WPA3-Personnel, est pris en charge dans Windows avec WDI version 1.1.8 et ultérieure. La génération et l’analyse de contenu frame pour l’authentification SAE (authentification sécurisée d’égal à égal) sont effectuées dans Windows, mais le système d’exploitation nécessite la prise en charge du pilote pour l’envoi et la réception des trames d’authentification WPA3-SAE.

Fonctionnalités WPA3-SAE

Les pilotes Miniport indiquent la prise en charge de SAE en procédant comme suit :

  1. Définissez la fonctionnalité prise en charge par SAE.
    Le pilote définit la fonctionnalité SAEAuthenticationSupported dans WDI_TLV_INTERFACE_ATTRIBUTES pendant l’appel à OID_WDI_GET_ADAPTER_CAPABILITIES.
  2. Définir la fonctionnalité MFP.
    Le pilote définit la fonctionnalité MFPCapable dans WDI_TLV_STATION_ATTRIBUTES pendant l’appel à OID_WDI_GET_ADAPTER_CAPABILITIES.
  3. Ajoutez la méthode d’authentification WDI_AUTH_ALGO_WPA3_SAE .
    Le pilote inclut WDI_AUTH_ALGO_WPA3_SAE dans la liste des combinaisons d’authentification-chiffrement retournées dans l’appel à OID_WDI_GET_ADAPTER_CAPABILITIES. Cela doit être ajouté dans les sections suivantes :

Flux d’authentification WPA3-SAE

Initiation de la connexion

Les connexions SAE sont lancées avec OID_WDI_TASK_CONNECT ou OID_WDI_TASK_ROAM. WDI spécifie WDI_AUTH_ALGO_WPA3_SAE comme méthode d’authentification lorsque le pilote est requis pour effectuer l’authentification SAE. Si WDI fournit le PMKID dans la liste BSS de la tâche De connexion/itinérance, le pilote ignore l’authentification SAE et effectue l’authentification ouverte à la place, suivie d’une demande de réassociation avec le PMKID.

Flux d’authentification

Flux d’authentification WPA3-SAE.

Demande initiale de paramètres SAE

Le pilote sélectionne d’abord un BSS auquel se connecter ou se déplacer et, si WDI n’a pas fourni le PMKID pour ce BSS, le pilote demande des paramètres commit à WDI avec NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED. Dans cette indication initiale, le pilote définit le type d’indication sur WDI_SAE_INDICATION_TYPE_COMMIT_REQUEST_PARAMS_NEEDED. En réponse, WDI envoie OID_WDI_SET_SAE_AUTH_PARAMS au pilote avec l’une des options suivantes.

  • Envoyer une demande de validation (WDI_SAE_REQUEST_TYPE_COMMIT_REQUEST)
  • Échec de l’authentification SAE (WDI_SAE_REQUEST_TYPE_FAILURE)

Lors de la réception d’une réponse de validation

Lors de la réception d’une réponse commit, le pilote envoie NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED avec le type défini sur WDI_SAE_INDICATION_TYPE_COMMIT_RESPONSE. En réponse, WDI envoie OID_WDI_SET_SAE_AUTH_PARAMS avec l’une des requêtes suivantes :

  • Envoyer une demande de validation (WDI_SAE_REQUEST_TYPE_COMMIT_REQUEST)
  • Envoyer une demande de confirmation (WDI_SAE_REQUEST_TYPE_CONFIRM_REQUEST)
  • Échec de l’authentification SAE (WDI_SAE_REQUEST_TYPE_FAILURE)

Lors de la réception d’une réponse Confirm

Lors de la réception d’une réponse Confirm, le pilote envoie NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED avec le type défini sur WDI_SAE_INDICATION_TYPE_CONFIRM_RESPONSE. WDI envoie ensuite OID_WDI_SET_SAE_AUTH_PARAMS avec le champ de status SAE défini sur réussite ou échec. Si l’authentification SAE échoue dans le pilote en raison de délais d’expiration ou d’autres raisons, le pilote envoie une indication de NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED avec le type se à WDI_SAE_INDICATION_TYPE_ERROR et la raison de l’échec spécifiée dans WDI_TLV_SAE_STATUS.

Délais d’expiration et retransmissions

Ils sont gérés par le pilote.

Association WPA3-SAE

L’appareil se connecte à un réseau SAE à l’aide de l’une des options suivantes.

(Re) Association après l’échange SAE

Il s’agit normalement de la première tentative d’association à un réseau SAE. Le pilote définit l’AKM SAE dans l’IE RSN dans le cadre de la demande d’association.

(Re) Association à l’aide de PMKID

Si WDI a fourni un PMKID pour l’entrée BSS dans la tâche de connexion/itinérance, le pilote effectue les opérations suivantes :

  1. Le pilote effectue une authentification Open suivie de l’inclusion du PMKID dans la demande (Re)association.
  2. Si l’appareil ne reçoit pas de réponse de l’AP dans un court laps de temps, ou si l’AP retourne une erreur d’association dans la réponse, le pilote ignore l’authentification SE avec cet AP et passe à un autre AP ou revient à effectuer une authentification SAE complète avec cet AP.

La connexion SAE se termine une fois l’authentification/association SAE terminée. Comme précédemment, le pilote envoie les indications suivantes à la fin de la tâche de connexion ou d’itinérance :

Gestion des erreurs

Renvoi du frame de demande de validation SAE

Si le pilote doit renvoyer une trame de validation en raison d’un délai d’expiration, il peut renvoyer les valeurs Scalar/Element d’origine qui ont été fournies par WDI, ou demander un nouvel ensemble de valeurs Scalar/Element à WDI avec une indication NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED .

Renvoi du cadre de réponse confirm de l’environnement SAE

Si le pilote doit renvoyer une image confirm en raison d’un délai d’expiration, il doit demander un nouvel ensemble de valeurs SendConfirm et Confirm à WDI avec une indication NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED , en définissant le type sur WDI_SAE_INDICATION_TYPE_CONFIRM_REQUEST_RESEND_REQUEST.