Поделиться через


WiFiCx WPA3 SoftAP

Функция WPA3 SoftAP позволяет устройствам настроить точку доступа (SoftAP) с помощью протокола безопасности 3 с защитой Wi-Fi — одновременная проверка подлинности равного (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 No No
WPA3-SAE + WPA2-PSK No Да
WPA3-SAE Да Да

Если драйвер сообщает о возможности WPA3-SAE в SoftAP, ос ожидает, что драйвер будет поддерживать PMF. Для PMF нет дополнительных возможностей драйвера.

Проверка подлинности SAE для WPA3 SoftAP

В этом разделе описаны обновления проверки подлинности SAE для сценариев WPA3 SoftAP.

Поддержка hash to-Element (H2E) и Хант и Peck

ОС не предоставляет определенный флаг для использования H2E только в параметрах запуска AP. Поэтому драйверы должны постоянно указывать на то, что они поддерживают методы H2E и Hunt и Peck для SoftAP.

Маркеры защиты от засорения

ОС может отвечать на запрос фиксации однорангового узла, запрашивая маркер защиты от засорения. Ос вызывает OID_WDI_SET_SAE_AUTH_PARAMS со следующими вызовами:

Одноранговый узел предоставляет маркер защиты от засорения в рамках параметров фиксации.

В сценарии SoftAP, когда маркер защиты от засорения включен в параметры фиксации, значения Scalar/Element не создаются. Таким образом, эти поля являются необязательными в WDI_TLV_SAE_COMMIT_PARAMS TLV, и драйвер должен проверка для их присутствия перед доступом к ним. Это изменение остается совместимым с существующими драйверами. Новые драйверы должны проверить наличие этих необязательных полей во всех путях.

Отклоненные группы

Ос поддерживает только группу 19. Если ОС получает кадр фиксации от однорангового узла, указывающего группу, которая не поддерживает ОС, ос отправляет команду OID_WDI_SET_SAE_AUTH_PARAMS . В команде наборы ОС:

Если ОС получает кадр фиксации от однорангового узла, включающего группу в поле "Отклоненные группы ", который ос фактически поддерживает, ОС по-прежнему завершится сбоем проверки подлинности 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 на запрошенном диапазоне или канале, он должен проверка, если выполнены следующие условия.

    1. Альтернатива BSS доступна для перемещения по STA.
    2. Драйвер может поддерживать SoftAP на запрошенном ос диапазоне или канале после перемещения по ссылке STA.
    3. Маловероятно, что роуминг завершится ошибкой.

    Если эти условия выполнены, драйвер должен успешно завершить 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.