WPA3-SAE 認証

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

WPA3-SAE の機能

ミニポート ドライバーは、次の操作を実行して、SAE のサポートを指示します。

  1. SAE でサポートされている機能を設定します。
    ドライバーは、OID_WDI_GET_ADAPTER_CAPABILITIES の呼び出し中に、WDI_TLV_INTERFACE_ATTRIBUTESSAEAuthenticationSupported 機能を設定します。
  2. MFP 機能を設定します。
    ドライバーは、OID_WDI_GET_ADAPTER_CAPABILITIES の呼び出し中に、WDI_TLV_STATION_ATTRIBUTESMFPCapable 機能を設定します。
  3. WDI_AUTH_ALGO_WPA3_SAE 認証方法を追加します。
    ドライバーには、OID_WDI_GET_ADAPTER_CAPABILITIES の呼び出しで返される認証と暗号の組み合わせの一覧に、WDI_AUTH_ALGO_WPA3_SAE を含めます。 これは、以下のセクションで追加する必要があります。

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 authentication flow.

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_REQUEST)
  • SAE 認証の失敗 (WDI_SAE_REQUEST_TYPE_FAILURE)

コミット応答を受信した場合

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

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

確認応答を受信した場合

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

タイムアウトと再送信

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

WPA3-SAE の関連付け

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

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

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

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 確認応答フレームの再送信

タイムアウトが原因でドライバーが確認フレームを再送信する必要がある場合は、型を WDI_SAE_INDICATION_TYPE_CONFIRM_REQUEST_RESEND_REQUEST に設定して NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED 指示を使用し、WDI に新しい SendConfirm 値と Confirm 値のセットを要求する必要があります。