WiFiCx Wi-Fi 7 機能要件
WiFiCx は Wi-Fi 7 機能をサポートし、接続速度の高速化、待ち時間の短縮、セキュリティの向上を実現します。 WiFiCx は、ローミング差別化によるマルチリンク操作 (MLO) を可能にし、Wi-Fi アクセス ポイント (AP) への複数の同時チャネルを活用し、GCMP-256 暗号による WPA3-SAE 認証と Opportunistic Wireless Encryption (OWE) の機能が強化されています。
この記事では、これらの機能をサポートするために必要なドライバーの変更について説明します。
Wi-Fi 7 機能検出
Wi-Fi 7 接続をセットアップするには、ドライバーが WDI バージョン 2.0.12 をサポートしている必要があります。
Wi-Fi MLO 接続のサポートを示すには、ドライバーは WIFI_STATION_CAPABILITIES 構造で次の機能を設定する必要があります。
- MLOAddressesList 内のエントリ数は、ドライバーが MLO リンクを設定できるかどうかを示す MaxMLOLinksSupported と一致する必要があります。
- AkmsList 内のエントリ数は NumAkmsSupportedと一致する必要があります。 このリストには、ドライバーがサポートするすべての AKM スイートを含める必要があり、OS が 384 ビット PMK で SAE をサポートすることが予想される場合は AKM 24 を含める必要があります。
GCMP-256 暗号を使用した AKM 24 または AKM 8 を使用した SAE 接続をサポートするには、ドライバーは WifiDeviceSetStationCapabilities を呼び出すときに次の認証暗号ペアを追加する必要があります。
- UnicastAlgorithmsListでは: DOT11_AUTH_ALGO_WPA3_SAE + DOT11_CIPHER_ALGO_GCMP_256
- MulticastMgmtAlgorithmsListでは: DOT11_AUTH_ALGO_WPA3_SAE + DOT11_CIPHER_ALGO_GCMP_256
GCMP-256 暗号を使用した OWE 接続をサポートするには、ドライバーは WifiDeviceSetStationCapabilities を呼び出すときに次の認証暗号ペアを追加する必要があります。
- UnicastAlgorithmsList: DOT11_AUTH_ALGO_OWE + DOT11_CIPHER_ALGO_GCMP_256において
フレームMACアドレス
ドライバーが管理フレームを示す場合は、リンク MAC アドレスを使用します。 4 ウェイ ハンドシェイクや 802.1x 認証フレームなどのデータ フレームには、MLD MAC アドレスを使用します。
4 ウェイ ハンドシェイクや 802.1x 認証フレームなどのデータ フレームの場合、MAC アドレスは MLD Mac アドレスです。
Windows がランダム MAC アドレスを使用する場合、 OID_WDI_TASK_DOT11_RESET タスクを送信するときに、WDI_TLV_CONFIGURED_MLO_LINK_MAC_ADDRESS にランダム アドレスのセットが提供されます。
AP 検出
Windows は、マルチリンク IE と RNR IE のビーコン IE を解析します。 存在する場合、AP は MLO をサポートしているとマークされます。
マルチリンク接続の設定
Windows は、ドライバーが MLO を使用して接続できるかどうかを示す設定を OID_WDI_TASK_CONNECT タスクに提供します。 この設定は、 WDI_TLV_CONNECTION_SETTINGSの MloConnectionSupported フラグによって表されます。 MloConnectionSupported が true の場合、ドライバーは OID_WDI_TASK_CONNECT および OID_WDI_TASK_ROAM 要求で WDI_TLV_RSNA_AKM_CIPHER_SUITE によって指定された AKM と暗号のペアのみを使用できます。 唯一の例外は、認証/暗号が RSNA IE の一部ではない場合です。
SAE ベースの接続の場合、Windows は SAE コミット要求で AKM と暗号を設定し、これにより、後で関連付け要求で使用する AKM と暗号がドライバーに通知されます。
認証
Wi-Fi 7 MLO を使用した SAE 認証の場合、Windows は OID_WDI_SET_SAE_AUTH_PARAMS を呼び出すときに WDI_TLV_SAE_COMMIT_PARAMS で AKM と暗号を設定します。 これらの値は、 WDI_TLV_RSNA_AKM_SUITE および WDI_TLV_CIPHER_ALGORITHM TLV で指定されます。 ドライバーは、後で関連付け要求でこれらの値を使用します。
NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED 表示では、ドライバーは次の操作を行う必要があります。
- BSSID (WDI_TLV_BSSID) を AP のリンク MAC アドレスに設定します。
- LocalMloLinkBssId (WDI_TLV_MLO_LINK_BSSID) をローカルリンク MAC アドレスに設定します。
MLO に接続するときは、認証フレームに適切なマルチリンク IE を含めます。
関連付け
Windows が OID_WDI_TASK_CONNECT および OID_WDI_TASK_ROAM タスクを送信する場合、AP が WDI_TLV_CONNECT_PARAMETERS TLV の WDI_TLV_RSNA_AKM_CIPHER_SUITE にリストされている AKM とのマルチリンク接続をサポートしている場合にのみ、ドライバーは Wi-Fi 7 MLO を使用して AP に接続する必要があります。
ドライバーは、MLO に接続するときに、アソシエーション フレームに適切なマルチリンク IE を含めます。 アソシエーション完了時に、Windows は NDIS_STATUS_WDI_INDICATION_ASSOCIATION_RESULT 表示のアソシエーション要求/応答フレーム内のマルチリンク IE をチェックし、接続で MLO が使用されたかどうかを判断します。
Windows では、NDIS_STATUS_WDI_INDICATION_ASSOCIATION_RESULT を示すときに、ドライバーが WDI_TLV_ASSOCIATION_RESULT でアソシエーション要求フレームと応答フレームを示す必要があります。
Wi-Fi 7 MLO を使用したアソシエーションの場合、ドライバーは NDIS_STATUS_WDI_INDICATION_ASSOCIATION_RESULT に次の値を設定する必要があります。
- WDI_TLV_ASSOCIATION_RESULTのBSSID(WDI_TLV_BSSID)をAPのリンクMACアドレスに設定します。 NDIS_STATUS_WDI_INDICATION_ASSOCIATION_RESULT には、 AssociationResultsContainer エントリのインスタンスが 1 つだけ存在する必要があります。
- WDI_TLV_ASSOCIATION_RESULTのLocalLinkBssId (WDI_TLV_MLO_LINK_BSSID) をローカルリンクMACアドレスに設定します。
注意: LocalLinkBssId が設定されていない場合、Windows は接続に MLO を使用できません。
4ウェイハンドシェイク
Windows は 4 ウェイ ハンドシェイクで GCMP-256 をサポートします。 また、GTK/IGTK/BIGTK キーを設定するときにリンク情報を提供するように WDI インターフェイスも更新されました。
MLO 接続のグループ キー (GTK/IGTK/BIGTK) を設定する場合、Windows は、追加されるキーごとに 1 つの要素の配列を使用して OID_WDI_SET_ADD_CIPHER_KEYS コマンドを呼び出します。
リンク状態表示
NDIS_STATUS_WDI_INDICATION_LINK_STATE_CHANGE 指示は、 WDI_TLV_LINK_INFO のリンクごとに次の情報を提供するようになりました。
- リンク ID
- 接続バンド/チャンネル
- 受信信号強度インジケーター (RSSI)
- 現在の帯域幅
- 現在の Tx MCS
- 現在の Rx MCS
MLO 接続の場合、リンク状態表示は各リンクの情報を提供します。 MLO 以外の接続の場合、単一のリンクの情報を提供します。
関連付けの解除
ドライバーは、すべてのリンクの関連付けが解除された場合にのみ、NDIS_STATUS_WDI_INDICATION_DISASSOCIATION 指示を送信します。 ドライバーが新しいリンクに接続するか、現在接続されているリンクから切断されると、ドライバーは NDIS_STATUS_WDI_INDICATION_LINK_STATE_CHANGE 通知を送信して、現在関連付けられているリンクのセットを更新します。
ドライバーが NDIS_STATUS_WDI_INDICATION_DISASSOCIATION 指示を送信する場合、WDI_TLV_DISASSOCIATION_INDICATION_PARAMETERS の MAC アドレスを AP の MLD MAC アドレスとして設定する必要があります。
SAE認証の変更
SAE認証フレームの送信
OID_WDI_Standard Edition T_SAE_AUTH_PARAMS コマンドでは、次の型と TLV の名前が変更されました。
- WDI_SAE_REQUEST_TYPE列挙型の WDI_SAE_REQUEST_TYPE_COMMIT_REQUEST を WDI_SAE_REQUEST_TYPE_COMMIT_PARAMS に名前変更しました。
- WDI_SAE_REQUEST_TYPE 列挙型の WDI_SAE_REQUEST_TYPE_CONFIRM_REQUEST を WDI_SAE_REQUEST_TYPE_CONFIRM_PARAMS に名前変更しました。
- WDI_TLV_SAE_COMMIT_REQUEST の名前を WDI_TLV_SAE_COMMIT_PARAMSに変更しました。 この TLV は、コミット要求フレームとコミット応答フレームの両方を送信するために使用されます。
- WDI_TLV_SAE_CONFIRM_REQUEST の名前を WDI_TLV_SAE_CONFIRM_PARAMSに変更しました。 この TLV は、確認要求フレームと確認応答フレームの両方を送信するために使用されます。
SAE認証フレームを示す
NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED 表示のために、次のタイプと TLV の名前が変更されました。
- WDI_SAE_INDICATION_TYPE列挙型の WDI_SAE_INDICATION_COMMIT_RESPONSE を WDI_SAE_INDICATION_COMMIT_FRAME に名前変更しました。
- WDI_SAE_INDICATION_TYPE列挙型の WDI_SAE_INDICATION_CONFIRM_RESPONSE を WDI_SAE_INDICATION_CONFIRM_FRAME に名前変更しました。
- WDI_TLV_SAE_COMMIT_RESPONSE の名前を WDI_TLV_SAE_COMMIT_FRAMEに変更しました。
- WDI_TLV_SAE_CONFIRM_RESPONSE の名前を WDI_TLV_SAE_CONFIRM_FRAMEに変更しました。
WDI_SET_SAE_AUTH_PARAMS の呼び出しでは、OS は、ドライバーが関連付け要求を送信するときに使用するオプションのパラメーターとして AKM と暗号を提供します。 AKM/暗号の組み合わせは、SAE 交換中に決定されます。
OWE 接続
OWE 接続の場合、Windows は AP が GCMP-256 暗号をサポートしているかどうかを確認します。 サポートされている場合、Windows は最初にグループ 20 を使用して関連付けを試みます。 APがエラー DOT11_FRAME_STATUS_UNSUPPORTED_FINITE_CYCLIC_GROUP (77) でアソシエーション要求に失敗した場合、OSはアソシエーションにグループ19を使用するようにフォールバックします。
最初に、OS は OID_WDI_TASK_CONNECT の OWE の DH パラメータをグループ 20 に設定します。 AP がサポートされていないグループ エラーで関連付け要求に失敗した場合、OS はグループ 19 の更新された OWE 情報とともに OID_WDI_SET_OWE_DH_IE OID をドライバーに送信します。 ドライバーは、次の関連付け要求に更新された OWE 情報を使用する必要があります。
注: OS が DOT11_FRAME_STATUS_UNSUPPORTED_FINITE_CYCLIC_GROUP エラーを適切に処理するには、ドライバーが NDIS_STATUS_WDI_INDICATION_ASSOCIATION_RESULT 表示の WDI ステータスを WDI_ASSOC_STATUS_ASSOC_FAILED_BY_PEERに設定する必要があります。