Share via


WPA3-SAE-Authentifizierung

WPA3-SAE, auch bekannt als WPA3-Personal, wird in Windows mit WDI-Version 1.1.8 und höher unterstützt. Die Generierung und Analyse von Frameinhalten für die SAE-Authentifizierung (Secure Authentication of Equals) erfolgt in Windows, das Betriebssystem benötigt jedoch Treiberunterstützung für das Senden und Empfangen von WPA3-SAE-Authentifizierungsrahmen.

WPA3-SAE-Funktionen

Miniport-Treiber geben SAE-Unterstützung wie folgt an:

  1. Legen Sie die von SAE unterstützte Funktion fest.
    Der Treiber legt die SAEAuthenticationSupported-Funktion in WDI_TLV_INTERFACE_ATTRIBUTES während des Aufrufs von OID_WDI_GET_ADAPTER_CAPABILITIES fest.
  2. Legen Sie die MFP-Funktion fest.
    Der Treiber legt die MFPCapable-Funktion in WDI_TLV_STATION_ATTRIBUTES während des Aufrufs von OID_WDI_GET_ADAPTER_CAPABILITIES fest.
  3. Fügen Sie die WDI_AUTH_ALGO_WPA3_SAE Authentifizierungsmethode hinzu.
    Der Treiber enthält WDI_AUTH_ALGO_WPA3_SAE in die Liste der Authentifizierungs-Verschlüsselungskombinationen, die beim Aufruf von OID_WDI_GET_ADAPTER_CAPABILITIES zurückgegeben werden. Dies sollte in den folgenden Abschnitten hinzugefügt werden:

WPA3-SAE-Authentifizierungsfluss

Verbindungsinitiierung

SAE-Verbindungen werden mit OID_WDI_TASK_CONNECT oder OID_WDI_TASK_ROAM initiiert. WDI gibt WDI_AUTH_ALGO_WPA3_SAE als Authentifizierungsmethode an, wenn der Treiber für die SAE-Authentifizierung erforderlich ist. Wenn WDI die PMKID in der BSS-Liste in der Aufgabe Connect/Roam bereitstellt, überspringt der Treiber die SAE-Authentifizierung und führt stattdessen die offene Authentifizierung aus, gefolgt von einer Anforderung zur erneuten Zuordnung mit der PMKID.

Authentifizierungsfluss

WPA3-SAE-Authentifizierungsfluss.

Anfängliche Anforderung für SAE-Parameter

Der Treiber wählt zuerst eine BSS aus, mit der eine Verbindung hergestellt oder verschoben werden soll. Wenn WDI die PMKID für diese BSS nicht bereitgestellt hat, fordert der Treiber Commitparameter von WDI mit NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED an. In dieser ersten Anzeige legt der Treiber den Anzeigetyp auf WDI_SAE_INDICATION_TYPE_COMMIT_REQUEST_PARAMS_NEEDED fest. Als Antwort sendet WDI OID_WDI_SET_SAE_AUTH_PARAMS mit einer der folgenden Optionen an den Treiber.

  • Senden einer Commitanforderung (WDI_SAE_REQUEST_TYPE_COMMIT_REQUEST)
  • Fehler bei der SAE-Authentifizierung (WDI_SAE_REQUEST_TYPE_FAILURE)

Beim Empfang einer Commitantwort

Beim Empfang einer Commitantwort sendet der Treiber NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED , wobei der Typ auf WDI_SAE_INDICATION_TYPE_COMMIT_RESPONSE festgelegt ist. Als Antwort sendet WDI OID_WDI_SET_SAE_AUTH_PARAMS mit einer der folgenden Anforderungen:

  • Senden einer Commitanforderung (WDI_SAE_REQUEST_TYPE_COMMIT_REQUEST)
  • Senden einer Bestätigungsanforderung (WDI_SAE_REQUEST_TYPE_CONFIRM_REQUEST)
  • Fehler bei der SAE-Authentifizierung (WDI_SAE_REQUEST_TYPE_FAILURE)

Nach Erhalt einer Bestätigungsantwort

Beim Empfang einer Bestätigungsantwort sendet der Treiber NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED , wobei der Typ auf WDI_SAE_INDICATION_TYPE_CONFIRM_RESPONSE festgelegt ist. WDI sendet dann OID_WDI_SET_SAE_AUTH_PARAMS, wobei das Feld SAE-status auf Erfolg oder Fehler festgelegt ist. Wenn die SAE-Authentifizierung im Treiber aufgrund von Timeouts oder anderen Gründen fehlschlägt, sendet der Treiber eine NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED-Angabe mit dem Typ se an WDI_SAE_INDICATION_TYPE_ERROR und die in WDI_TLV_SAE_STATUS angegebene Fehlerursache.

Timeouts und Erneute Übertragungen

Diese werden vom Treiber verarbeitet.

WPA3-SAE-Zuordnung

Das Gerät stellt mithilfe einer der folgenden Optionen eine Verbindung mit einem SAE-Netzwerk her.

(Re) Zuordnung nach SAE-Austausch

Dies ist normalerweise der erste Zuordnungsversuch zu einem SAE-Netzwerk. Der Treiber legt die SAE-AKM im RSN-IE im Zuordnungsanforderungsrahmen fest.

(Re) Zuordnung mithilfe von PMKID

Wenn WDI eine PMKID für den BSS-Eintrag in der Connect/Roam-Aufgabe bereitgestellt hat, führt der Treiber folgendes aus:

  1. Der Treiber führt eine open-Authentifizierung aus, gefolgt von der Aufnahme der PMKID in die (Re)association-Anforderung.
  2. Wenn das Gerät innerhalb kurzer Zeit keine Antwort vom AP empfängt oder der AP einen Zuordnungsfehler in der Antwort zurückgibt, überspringt der Treiber die SE-Authentifizierung bei diesem AP und wechselt zu einem anderen AP oder greift auf die vollständige SAE-Authentifizierung mit diesem AP zurück.

Die SAE-Verbindung wird nach Abschluss der SAE-Authentifizierung/-zuordnung abgeschlossen. Wie zuvor sendet der Treiber beim Abschluss der Verbindungs- oder Roam-Aufgabe die folgenden Hinweise:

Fehlerbehandlung

Erneutes Senden des SAE-Commit-Anforderungsrahmens

Wenn der Treiber einen Commitframe aufgrund eines Timeouts erneut senden muss, kann er entweder die ursprünglichen Skalar-/Elementwerte, die von WDI bereitgestellt wurden, erneut senden oder einen neuen Satz von Skalar-/Elementwerten von WDI mit einer NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED Angabe anfordern.

Erneutes Senden des SAE-Bestätigungsantwortframes

Wenn der Treiber einen Confirm-Frame aufgrund eines Timeouts erneut senden muss, sollte er einen neuen Satz von SendConfirm - und Confirm-Werten von WDI mit einer NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED-Angabe anfordern, wobei der Typ auf WDI_SAE_INDICATION_TYPE_CONFIRM_REQUEST_RESEND_REQUEST festgelegt wird.