WPA3-SAE 身份验证
WPA3-SAE(也称为 WPA3 个人版)在 WDI 版本 1.1.8 及更高版本的 Windows 中受支持。 针对 SAE 的帧内容生成和分析 (Equals) 身份验证的安全身份验证是在 Windows 中完成的,但 OS 需要驱动程序支持来发送和接收 WPA3-SAE 身份验证帧。
WPA3-SAE 功能
微型端口驱动程序通过执行以下操作来指示 SAE 支持:
- 设置 SAE 支持的功能。
驱动程序在调用 OID_WDI_GET_ADAPTER_CAPABILITIES 期间在 WDI_TLV_INTERFACE_ATTRIBUTES 中设置 SAEAuthenticationSupported功能。 - 设置 MFP 功能。
驱动程序在调用 OID_WDI_GET_ADAPTER_CAPABILITIES 期间,在 WDI_TLV_STATION_ATTRIBUTES 中设置 MFPCapable 功能。 - 添加 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启动。 当驱动程序需要执行 SAE 身份验证时,WDI 将 WDI_AUTH_ALGO_WPA3_SAE 指定为身份验证方法。 如果 WDI 在连接/漫游任务的 BSS 列表中提供 PMKID,则驱动程序会跳过 SAE 身份验证并改为执行开放式身份验证,然后执行与 PMKID 的重新关联请求。
身份验证流
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)
- WDI_SAE_REQUEST_TYPE_FAILURE) 的 SAE 身份验证 ( 失败
收到 Commit 响应时
收到 Commit 响应时,驱动程序发送 类型设置为 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)
- WDI_SAE_REQUEST_TYPE_FAILURE) 的 SAE 身份验证 ( 失败
收到确认响应时
收到 Confirm 响应时,驱动程序发送 类型设置为 WDI_SAE_INDICATION_TYPE_CONFIRM_RESPONSE 的 NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED。 然后,WDI 发送 OID_WDI_SET_SAE_AUTH_PARAMS ,其中 SAE 状态字段设置为成功或失败。 如果驱动程序中的 SAE 身份验证由于超时或其他原因而失败,驱动程序会发送 一个NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED 指示,指示类型为 se WDI_SAE_INDICATION_TYPE_ERROR ,以及 WDI_TLV_SAE_STATUS中指定的失败原因。
超时和重新传输
这些由驱动程序处理。
WPA3-SAE 关联
设备使用以下选项之一连接到 SAE 网络。
SAE 交换后 (再) 协会
这通常是首次尝试与 SAE 网络关联。 驱动程序在关联请求帧的 RSN IE 中设置 SAE AKM。
使用 PMKID (重新) 关联
如果 WDI 为连接/漫游任务中的 BSS 条目提供了 PMKID,则驱动程序将执行以下操作:
- 驱动程序执行 Open 身份验证,然后将 PMKID 包含在 (Re) 关联请求中。
- 如果设备在短时间内未收到来自 AP 的响应,或者 AP 在响应中返回关联错误,则驱动程序将跳过使用此 AP 的 SE 身份验证,并移动到另一个 AP,或回退到使用此 AP 执行完整的 SAE 身份验证。
SAE 身份验证/关联完成后,SAE 连接将完成。 与以前一样,驱动程序会在连接或漫游任务结束时发送以下指示:
错误处理
重新发送 SAE 提交请求帧
如果驱动程序由于超时而需要重新发送提交帧,它可以重新发送 WDI 提供的原始标量/元素值,或者通过 NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED 指示从 WDI 请求一组新的标量/元素值。
重新发送 SAE 确认响应帧
如果驱动程序由于超时而需要重新发送确认帧,则应从 WDI 请求一组新的 SendConfirm 和 Confirm 值,并指示 NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED ,并将类型设置为 WDI_SAE_INDICATION_TYPE_CONFIRM_REQUEST_RESEND_REQUEST。