Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция WPA3 SoftAP позволяет устройствам настроить Soft Access Point (SoftAP) с использованием протокола безопасности Wi-Fi Protected Access 3 — Simultaneous Authentication of Equals (WPA3-SAE). Этот SoftAP может работать с диапазоном 2,4 ГГц или 5 ГГц. Начиная с WDI версии 2.0.11 и WiFiCx версии 1.1, вы можете интегрировать функции WPA3 SoftAP в драйвер клиента WiFiCx.
WPA3 SoftAP поддерживает WPA3-SAE и режим перехода WPA3-SAE для обратной совместимости. Режим перехода поддерживает как методы проверки подлинности WPA2-PSK, так и WPA3-SAE, обеспечивая безопасное Wi-Fi подключение между различными устройствами и средами.
WPA3 SoftAP доступен только в модели драйвера WiFiCx. В этой статье описывается, как добавить поддержку WPA3 SoftAP в драйвере WiFiCx.
Обнаружение возможностей WPA3 SoftAP
Драйвер клиента указывает на поддержку WPA3 SoftAP, когда он вызывает WifiDeviceSetWiFiDirectCapabilities. Этот вызов сообщает Wi-Fi прямые возможности WiFiCx. Драйвер должен включать комбинацию проверки подлинности и шифрования DOT11_AUTH_ALGO_WPA3_SAE + DOT11_CIPHER_ALGO_CCMP в список UnicastAlgorithms внутри структуры WIFI_WIFIDIRECT_CAPABILITIES.
Драйвер, поддерживающий как WPA2-PSK, так и WPA3-SAE с SoftAP, должен сообщать о следующих парах юникаст-алгоритмов:
- DOT11_AUTH_ALGO_WPA3_SAE + DOT11_CIPHER_ALGO_CCMP
- DOT11_AUTH_ALGO_RSNA_PSK + DOT11_CIPHER_ALGO_CCMP
Перечисление этих пар уведомляет WiFiCx о том, что драйвер поддерживает функцию SoftAP в режиме совместимости WPA3.
Параметры запуска AP
Windows изменяет задачу OID_WDI_TASK_START_AP следующим образом:
- WDI_TLV_AUTH_ALGO_LIST TLV может включать WDI_AUTH_ALGO_WPA3_SAE, если драйвер указывает на поддержку WPA3 SoftAP.
- WDI_TLV_AUTH_ALGO_LIST TLV может включать как WDI_AUTH_ALGO_WPA3_SAE, так и WDI_AUTH_ALGO_RSNA_PSK. В этом случае драйвер должен объявлять поддержку обоих протоколов безопасности через маяки и ответы пробы, и должен разрешать проверку подлинности клиента с помощью WPA2-PSK или WPA3-SAE.
Поддержка AKM
AKM 0xac0f08 (RSNA_AKM_SAE_PMK256) является единственным AKM, поддерживаемым для WPA3 SoftAP. Драйвер не должен объявлять поддержку других AKM.
Обнаружение возможности защищенных кадров управления (PMF)
ОС не предоставляет определенный флаг для PMF в параметрах запуска AP. Драйвер должен объявлять возможности PMF следующим образом:
Алгоритм проверки подлинности присутствует | Требуется PMF | С поддержкой PMF |
---|---|---|
WPA2-PSK | Нет | Нет |
WPA3-SAE + WPA2-PSK | Нет | Да |
WPA3-SAE | Да | Да |
Если драйвер сообщает о возможности WPA3-SAE в SoftAP, операционная система ожидает, что драйвер будет поддерживать PMF. Для PMF нет дополнительных возможностей драйвера.
Аутентификация SAE для WPA3 SoftAP
В этом разделе описаны обновления проверки подлинности SAE для сценариев WPA3 SoftAP.
Поддержка H2E (хеширование в элемент) и Hunt and Peck
ОС не предоставляет определенный флаг для использования H2E только в параметрах запуска AP. Поэтому драйверы должны постоянно указывать на то, что они поддерживают методы H2E и Hunt и Peck для SoftAP.
Антизасорные токены
ОС может отвечать на запрос фиксации со стороны однорангового узла, запрашивая анти-cлоггинг токен. Операционная система вызывает OID_WDI_SET_SAE_AUTH_PARAMS с:
- Тип запроса WDI_SAE_REQUEST_TYPE_COMMIT_PARAMS или WDI_SAE_REQUEST_TYPE_COMMIT_PARAMS_H2E (если используется H2E).
- Фрейм подтверждения StatusCode (WDI_TLV_SAE_COMMIT_PARAMS>WDI_TLV_SAE_STATUS_CODE) установлено значение DOT11_FRAME_STATUS_ANTI_CLOGGING_TOKEN_REQUIRED.
Одноранговый узел предоставляет токен защиты от засорения как часть параметров фиксации.
При использовании сценария SoftAP, когда маркер защиты от засорения включен в параметры подтверждения, значения Scalar/Element не создаются. Таким образом, эти поля являются необязательными в WDI_TLV_SAE_COMMIT_PARAMS TLV, и драйвер должен проверить их присутствие перед доступом к ним. Это изменение остается совместимым с существующими драйверами. Новые драйверы должны проверить наличие этих необязательных полей во всех путях.
Отклоненные группы
Ос поддерживает только группу 19. Если ОС получает кадр фиксации от однорангового узла, указывающего группу, которую ОС не поддерживает, ОС отправляет команду OID_WDI_SET_SAE_AUTH_PARAMS. В этой команде ОС настраивает:
- WDI_SAE_REQUEST_TYPEWDI_SAE_REQUEST_TYPE_COMMIT_PARAMS или WDI_SAE_REQUEST_TYPE_COMMIT_H2E_PARAMS (если используется H2E).
- SaeStatusWDI_SAE_STATUS_COMMIT_MESSAGE_UNSUPPORTED_FINITE_GROUP.
- Коммит-кадр StatusCode (WDI_TLV_SAE_COMMIT_PARAMS>WDI_TLV_SAE_STATUS_CODE) для DOT11_FRAME_STATUS_UNSUPPORTED_FINITE_CYCLIC_GROUP.
- Кадр фиксации FiniteCyclicGroup (WDI_TLV_SAE_COMMIT_PARAMS>WDI_TLV_SAE_FINITE_CYCLIC_GROUP) в отвергнутую группу (не следует путать с полем RejectedGroups, которое содержит группы, отклоненные одногруппником).
Если ОС получает коммит-кадр от однорангового узла, включающего группу в поле "Отклоненные группы", которую ОС фактически поддерживает, ОС всё равно не пройдет аутентификацию SAE. ОС отправит команду OID_WDI_SET_SAE_AUTH_PARAMS с помощью:
- WDI_SAE_REQUEST_TYPE задано значение WDI_SAE_REQUEST_TYPE_FAILURE.
- SaeStatus установлен на WDI_SAE_STATUS_COMMIT_MESSAGE_INVALID_REJECTED_GROUP.
Последовательность проверки подлинности SAE
После вызова задачи OID_WDI_TASK_START_AP драйвер позволяет устройствам отправлять кадры проверки подлинности SAE, если DOT11_AUTH_ALGO_WPA3_SAE задан в списке алгоритмов проверки подлинности в OID_WDI_TASK_START_AP. Драйвер использует индикацию NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED для передачи ОС параметров аутентификации SAE.
Windows вызывает OID_WDI_SET_SAE_AUTH_PARAMS с WDI_SAE_COMMIT_PARAMS и WDI_SAE_CONFIRM_PARAMS для завершения обмена SAE.
После того как драйвер получает от ОС параметры подтверждения и отправляет их в одноранговый узел, он может принять запрос ассоциации и указать его ос.
Высокая производительность SoftAP
В таких сценариях, как дополненная реальность (AR) или виртуальная реальность (VR), драйверы должны по максимуму оптимизировать производительность SoftAP и отдавать ей предпочтение перед подключением STA. Этот процесс включает в себя стратегические решения при запуске SoftAP, например выбор диапазона или канала и сосуществование с подключением STA. Она также включает в себя оптимизацию в процессе поддержания SoftAP.
Операционная система указывает сценарии, требующие высокой производительности SoftAP, используя новый флаг favorOverStaв задаче OID_WDI_TASK_START_AP.
ОС не диктует, как драйвер должен оптимизировать ссылку SoftAP, оставляя ее в значительной степени на усмотрение водителя. Драйвер может снизить уровень связи STA, чтобы улучшить ссылку SoftAP.
Когда ОС инициирует SoftAP с установленным флагом favorOverSta, драйверу разрешено и рекомендуется переключить подключение STA на другой диапазон или канал, если это улучшает соединение SoftAP.
Если параметры диапазона или канала ОС конфликтуют с текущим подключением STA, драйвер должен рассмотреть возможность перемещения подключения STA для запуска SoftAP с запрошенными параметрами.
При запуске SoftAP с флагом favorOverSta операционная система может отправить задачу OID_WDI_SET_CONNECTION_QUALITY, чтобы запросить оптимизированную производительность в соединении SoftAP. Драйвер должен соблюдать эту задачу, но также должен стремиться улучшить ссылку SoftAP, даже если она не получает конкретные требования через задачу OID_WDI_SET_CONNECTION_QUALITY.
Ожидаемое поведение при роуминге порта STA
ОС запрашивает "любой" диапазон или канал:
Драйвер должен запустить SoftAP на лучшем диапазоне или канале, учитывая текущую конфигурацию и подключение STA. Как правило, лучший диапазон или канал — это тот, который используется ссылкой STA. Затем драйвер должен успешно завершить задачу OID_WDI_TASK_START_AP.
Если перемещение STA потенциально может улучшить соединение с SoftAP, драйвер может отправить запрос на роуминг в ОС с помощью NDIS_STATUS_WDI_INDICATION_ROAMING_NEEDED. После успешного перемещения драйвер может переместить ссылку SoftAP на новый диапазон или канал, который оптимизирует производительность.
ОС запрашивает определенный диапазон или канал:
Если драйвер может поддерживать SoftAP на запрошенном ос диапазоне или канале с разумной производительностью, он должен успешно завершить задачу OID_WDI_TASK_START_AP.
Если драйвер в настоящее время не может поддерживать SoftAP на запрошенном диапазоне или канале, он должен проверить, выполнены ли следующие условия.
- Альтернатива BSS доступна для перемещения по STA.
- Драйвер может поддерживать SoftAP на запрашиваемом операционной системой диапазоне или канале после роуминга по связи STA.
- Маловероятно, что блуждание завершится неудачей.
Если эти условия выполнены, драйвер должен успешно завершить OID_WDI_TASK_START_AP и отправить запрос роуминга для перемещения подключения STA.
В противном случае драйвер должен завершить задачу OID_WDI_TASK_START_AP сбоем с соответствующим кодом ошибки.
После завершения задачи OID_WDI_TASK_START_AP драйвер может отправить запрос на роуминг, чтобы переключить соединение STA для поддержания или повышения производительности SoftAP.
Если роуминг не удается и драйвер не может поддерживать SoftAP без переключения соединения STA, он должен остановить SoftAP. Драйвер информирует операционную систему, отправляя NDIS_STATUS_WDI_INDICATION_STOP_AP с соответствующим кодом причины (обычно WDI_STOP_AP_REASON_FREQUENCY_NOT_AVAILABLE).
Когда SoftAP останавливается, пользователи могут заметить эффект "мерцания", при котором SoftAP запускается, а затем останавливается практически мгновенно. Это поведение следует избегать как можно больше. Если драйверу требуется роуминг для поддержания SoftAP, драйвер должен быть уверен в том, что роуминг будет успешным, прежде чем завершить выполнение задачи OID_WDI_TASK_START_AP.
Коды ошибок SoftAP
Если не удается запустить SoftAP, так как полоса или канал не разрешена по нормативным причинам, драйвер должен завершить задачу OID_WDI_TASK_START_AP с кодом ошибки STATUS_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED или STATUS_NDIS_DOT11_AP_BAND_NOT_ALLOWED.
Если не удается запустить SoftAP, так как STA работает на полосе или канале, несовместимом с запрошенным диапазоном или каналом, и для перемещения нет разумного кандидата, драйвер должен завершить задачу OID_WDI_TASK_START_AP с кодом ошибки STATUS_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE или STATUS_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE.
Если не удается запустить SoftAP по другой причине (неподдерживаемая полоса или канал, проблема универсального драйвера и т. д.), драйвер должен использовать универсальный код ошибки, например STATUS_NOT_SUPPORTED.
Если SoftAP не может быть устойчивым, так как необходимо было перемещать подключение STA, но перемещение завершилось сбоем, драйвер должен остановить SoftAP с кодом причины WDI_STOP_AP_REASON_FREQUENCY_NOT_AVAILABLE.