WiFiCx WPA3-SAE 驗證
WiFiCx 支援 WPA3-SAE,也稱為 WPA3-Personal。 在 Windows 中完成 SAE(等同性安全驗證)驗證的幀內容生成和剖析,但作業系統需要驅動程式支援以傳送和接收 WPA3-SAE 驗證幀。
WPA3-SAE 功能
WiFiCx 驅動程式會執行下列動作來指出 SAE 支援:
設定 SAE 支援的功能。
在呼叫 WifiDeviceSetDeviceCapabilities期間,驅動程式會在 WIFI_DEVICE_CAPABILITIES 中設置 SAEAuthenticationSupported 功能。設定 MFP 功能。
驅動程式在呼叫 WifiDeviceSetStationCapabilities時,於 WIFI_STATION_CAPABILITIES 中設置MFPCapable 功能。新增 WDI_AUTH_ALGO_WPA3_SAE 加密。
驅動程式會在呼叫 WifiDeviceSetStationCapabilities時所傳回的驗證加密組合清單中,包含 WDI_AUTH_ALGO_WPA3_SAE + DOT11_CIPHER_ALGO_CCMP組合。 這應該新增在下列結構中:- WIFI_STATION_CAPABILITIES ->NumSupportedUnicastAlgorithms + UnicastAlgorithmsList
驅動程式也會在呼叫 wifiDeviceSetStationCapabilities時,將 WDI_AUTH_ALGO_WPA3_SAE + WDI_CIPHER_ALGO_BI 組包含在返回的身份驗證加密組合列表中。 它應該新增在下列結構中:
- WIFI_STATION_CAPABILITIES ->NumSupportedMulticastMgmtAlgorithms + MulticastMgmtAlgorithmsList
WPA3-SAE 驗證流程
連接起始
SAE 連線是由 OID_WDI_TASK_CONNECT 或 OID_WDI_TASK_ROAM發起。 當驅動程式需要執行 SAE 驗證時,WDI 會將 WDI_AUTH_ALGO_WPA3_SAE 指定為驗證方法。 如果 WDI 在 Connect/Roam 任務中的 BSS 清單中提供 PMKID,那麼驅動程式會跳過 SAE 驗證,改為執行開放式驗證,然後使用 PMKID 發出重新關聯請求。
驗證流程
SAE 參數的初始要求
驅動程式會先選取要連線或漫遊的 BSS,如果 WDI 未提供該 BSS 的 PMKID,驅動程式會向 WDI 要求認可參數,並搭配 NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED。 在此初始指示中,驅動程式會將指示類型設定為 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 回應時,驅動程式會傳送 NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED,類型設定為 WDI_SAE_INDICATION_TYPE_COMMIT_FRAME。 當 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 回應時,驅動程式會傳送 NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED,並將類型設定為 WDI_SAE_INDICATION_TYPE_CONFIRM_FRAME。 然後 WDI 會傳送 OID_WDI_SET_SAE_AUTH_PARAMS,並將 SAE 狀態字段設定為成功或失敗。 如果驅動程式中的 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。
(重新)使用 PMKID 的關聯
如果 WDI 為連線/漫遊工作中的 BSS 項目提供 PMKID,則驅動程式會執行下列動作:
- 驅動程式先執行 Open 認證,然後在重新關聯請求中包含 PMKID。
- 如果裝置在短時間內未收到來自 AP 的回應,或 AP 在回應中傳回關聯錯誤,則驅動程式會略過此 AP 的 SE 驗證,並移至另一個 AP,或回復為使用此 AP 執行完整的 SAE 驗證。
SAE 連線完成之後,SAE 驗證/關聯就會完成。 和之前一樣,驅動程式會傳送下列指示來結束連線或漫遊工作:
錯誤處理
重新傳送 SAE 認可要求框架
如果驅動程式因逾時而需要重新傳送認可框架,它可以重新傳送由 WDI 提供的原始 Scalar/Element 值,或者發出帶有 NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED 指示的請求,從 WDI 獲得一組新的 Scalar/Element 值。
重新傳送 SAE 確認回應框
如果驅動程式因逾時而需要重新傳送 Confirm 幀,它應該從 WDI 要求一組新的 SendConfirm 和 Confirm 值,並使用 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 功能需求。