WiFiCx WPA3-SAE 認証

WiFiCx は WPA3-SAE (WPA3-Personal とも呼ばれます) をサポートしています。 SAE (Secure Authentication of Equals) 認証のフレーム コンテンツの生成と解析は Windows 内で行われますが、OS では認証フレーム WPA3-SAE 送受信するためのドライバーサポートが必要です。

WPA3-SAE 機能

WiFiCx ドライバーは、次の手順を実行して、SAE のサポートを示します。

  1. SAE でサポートされる機能を設定します。
    ドライバーは、WifiDeviceSetDeviceCapabilities の呼び出し中に、WIFI_DEVICE_CAPABILITIESSAEAuthenticationSupported 機能を設定します。

  2. 複合機機能を設定します。
    ドライバーは、WifiDeviceSetStationCapabilitiesの呼び出し中に、WIFI_STATION_CAPABILITIESMFPCapableの機能を設定します。

  3. WDI_AUTH_ALGO_WPA3_SAE暗号を追加します。
    ドライバーは、WifiDeviceSetStationCapabilities の呼び出しで返される認証と暗号の組み合わせの一覧に、WDI_AUTH_ALGO_WPA3_SAE + DOT11_CIPHER_ALGO_CCMPペアを含めます。 これは、次の構造で追加する必要があります。

    • WIFI_STATION_CAPABILITIES ->サポートされているユニキャストアルゴリズム数 + ユニキャストアルゴリズム一覧

    ドライバーには、WifiDeviceSetStationCapabilities の呼び出しで返される認証と暗号の組み合わせの一覧に、WDI_AUTH_ALGO_WPA3_SAE + WDI_CIPHER_ALGO_BIペアも含まれています。 これは、次の構造体に追加する必要があります。

    • WIFI_STATION_CAPABILITIES ->対応するマルチキャスト管理アルゴリズム数 + マルチキャスト管理アルゴリズム一覧

WPA3-SAE 認証フロー

接続の開始

SAE 接続は、 OID_WDI_TASK_CONNECT または OID_WDI_TASK_ROAMで開始されます。 WDI は、ドライバーが SAE 認証を実行する必要がある場合に、認証方法として WDI_AUTH_ALGO_WPA3_SAE を指定します。 WDI が接続/ローミング タスクの BSS リストに PMKID を提供する場合、ドライバーは SAE 認証をスキップし、代わりにオープン認証を実行し、その後 PMKID との再関連付け要求を実行します。

認証フロー

WPA3-SAE 認証フローを示す図。

SAE パラメーターの初期要求

ドライバーは、最初に接続またはローミングする BSS を選択し、WDI がその BSS の PMKID を提供しなかった場合、ドライバーは NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED を使用して WDI からコミット パラメーターを要求します。 この初期表示では、ドライバーは表示の種類を WDI_SAE_INDICATION_TYPE_COMMIT_REQUEST_PARAMS_NEEDEDに設定します。 応答として、WDI は次のいずれかのオプションを使用してドライバーに OID_WDI_SET_SAE_AUTH_PARAMS を送信します。

  • コミット要求の送信 (WDI_SAE_REQUEST_TYPE_COMMIT_PARAMS)
  • SAE 認証の失敗 (WDI_SAE_REQUEST_TYPE_FAILURE)

Commit 応答を受信した場合

コミット応答を受信すると、ドライバーは型が WDI_SAE_INDICATION_TYPE_COMMIT_FRAMEに設定されたNDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDEDを送信します。 応答として、WDI は次のいずれかの要求で OID_WDI_SET_SAE_AUTH_PARAMS を送信します。

  • コミット要求の送信 (WDI_SAE_REQUEST_TYPE_COMMIT_PARAMS)
  • 確認要求の送信 (WDI_SAE_REQUEST_TYPE_CONFIRM_PARAMS)
  • SAE 認証の失敗 (WDI_SAE_REQUEST_TYPE_FAILURE)

Confirm 応答を受信した場合

Confirm 応答を受信すると、ドライバーは型を WDI_SAE_INDICATION_TYPE_CONFIRM_FRAME に設定して NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED を送信します。 その後、WDI は、SAE 状態フィールドが成功または失敗に設定された OID_WDI_SET_SAE_AUTH_PARAMS を送信します。 SAE 認証がタイムアウトまたはその他の理由でドライバー内で失敗した場合、NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED の示唆を送信します。この示唆の種類は WDI_SAE_INDICATION_TYPE_ERROR に設定され、WDI_TLV_SAE_STATUS で失敗理由が指定されます。

タイムアウトと再送信

これらはドライバーによって処理されます。

WPA3-SAE の関連付け

デバイスは、次のいずれかのオプションを使用して、SAE ネットワークに接続します。

SAE交換後の(再)関連付け

通常、これは、SAE ネットワークに対する最初のアソシエーション試行です。 ドライバーは、関連付け要求フレームの RSN IE で SAE AKM を設定します。

(Re)PMKID を使用した関連付け

WDI が接続/ローミング タスクの BSS エントリの PMKID を指定した場合、ドライバーは次の処理を行います。

  1. ドライバーは、オープン認証を実行し、続いて PMKID を (再) 関連付け要求に含めます。
  2. デバイスが短時間で AP から応答を受信しない場合、または AP が応答で関連付けエラーを返した場合、ドライバーはこの AP による SE 認証をスキップし、別の AP に移動するか、この AP で完全な SAE 認証を実行するようにフォールバックします。

SAE 認証/関連付けが完了すると、SAE 接続が完了します。 以前と同様に、ドライバーは、接続タスクまたはローミング タスクの終了時に次の指示を送信します。

エラー処理

SAE コミット要求フレームの再送信

タイムアウトが発生したためドライバーがコミットフレームを再送する必要がある場合、WDI によって提供されたスカラー/要素値をそのまま再送するか、もしくは NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED の指示を伴い、新しいスカラー/要素値のセットを WDI に要求できます。

SAE 確認応答フレームの再送信

ドライバーがタイムアウトのために Confirm フレームを再送信する必要がある場合は、新しい SendConfirmConfirm 値のセットを WDI に要求し、 NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED 表示を使用して、種類を WDI_SAE_INDICATION_TYPE_CONFIRM_REQUEST_RESEND_REQUESTに設定する必要があります。

Wi-Fi 7 SAE 認証変更点

Wi-Fi 7 つの SAE 認証更新プログラムについては、 WiFiCx Wi-Fi 7 の機能要件に関する記事を参照してください。