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

WiFiCx поддерживает WPA3-SAE, также известный как WPA3-Personal. Создание и анализ содержимого кадра для проверки подлинности SAE (secure Authentication of Equals) выполняется в Windows, но ОС требует поддержки драйверов для отправки и получения кадров проверки подлинности WPA3-SAE.

Возможности WPA3-SAE

Драйверы WiFiCx указывают на поддержку SAE следующим образом:

  1. Задайте поддерживаемые возможности SAE.
    Драйвер задает возможность SAEAuthenticationSupported в WIFI_DEVICE_CAPABILITIES во время вызова WifiDeviceSetDeviceCapabilities.

  2. Настройка возможности MFP.
    Драйвер задает возможность MFP Capabilit в WIFI_STATION_CAPABILITIES во время вызова WifiDeviceSetStationCapabilities.

  3. Добавьте шифр WDI_AUTH_ALGO_WPA3_SAE .
    Драйвер включает пару WDI_AUTH_ALGO_WPA3_SAE + DOT11_CIPHER_ALGO_CCMP в список сочетаний проверки подлинности и шифра, возвращаемых при вызове WifiDeviceSetStationCapabilities. Он должен быть добавлен в следующую структуру:

    Драйвер также включает пару WDI_AUTH_ALGO_WPA3_SAE + WDI_CIPHER_ALGO_BI в список сочетаний проверки подлинности и шифра, возвращаемых при вызове WifiDeviceSetStationCapabilities. Его следует добавить в следующую структуру:

Поток проверки подлинности WPA3-SAE

Запуск подключения

Подключения SAE инициируются с помощью OID_WDI_TASK_CONNECT или OID_WDI_TASK_ROAM. WDI указывает WDI_AUTH_ALGO_WPA3_SAE в качестве метода проверки подлинности, если драйвер требуется для проверки подлинности SAE. Если WDI предоставляет PMKID в списке BSS задачи Connect/Roam, то драйвер пропускает проверку подлинности SAE и выполняет открытую проверку подлинности, а затем запрос повторной связи с PMKID.

Поток проверки подлинности

Схема, показывающая поток проверки подлинности WPA3-SAE.

Первоначальный запрос параметров SAE

Сначала драйвер выбирает BSS, к которому необходимо подключиться или перемещено, и, если WDI не предоставил PMKID для этого BSS, драйвер запрашивает параметры фиксации из 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_REQUEST)
  • Сбой проверки подлинности SAE (WDI_SAE_REQUEST_TYPE_FAILURE)

При получении ответа о фиксации

Получив ответ Commit, драйвер отправляет NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED с типом WDI_SAE_INDICATION_TYPE_COMMIT_RESPONSE. В ответ WDI отправляет OID_WDI_SET_SAE_AUTH_PARAMS с одним из следующих запросов:

  • Запрос на отправку фиксации (WDI_SAE_REQUEST_TYPE_COMMIT_REQUEST)
  • Отправить запрос подтверждения (WDI_SAE_REQUEST_TYPE_CONFIRM_REQUEST)
  • Сбой проверки подлинности SAE (WDI_SAE_REQUEST_TYPE_FAILURE)

При получении ответа подтверждения

Получив ответ Confirm, драйвер отправляет NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED с типом WDI_SAE_INDICATION_TYPE_CONFIRM_RESPONSE. Затем WDI отправляет OID_WDI_SET_SAE_AUTH_PARAMS с полем состояния SAE, установленным как success или failure. Если проверка подлинности SAE в драйвере завершается сбоем из-за превышения времени ожидания или по другим причинам, драйвер отправляет NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED указание типа se в WDI_SAE_INDICATION_TYPE_ERROR и причину сбоя, указанную в WDI_TLV_SAE_STATUS.

Время ожидания и повторные передачи

Они обрабатываются драйвером.

Связь WPA3-SAE

Устройство подключается к сети SAE с помощью одного из следующих вариантов.

(Re) Связь после обмена SAE

Обычно это первая попытка связывания с сетью SAE. Драйвер задает AKM SAE в RSN IE в кадре запроса связи.

(Re) Сопоставление с помощью PMKID

Если WDI предоставил PMKID для записи BSS в задаче connect/roam, драйвер выполняет следующие действия:

  1. Драйвер выполняет открытую проверку подлинности с последующим включением PMKID в запрос на сопоставление (Re).
  2. Если устройство не получает ответ от AP в течение короткого времени или если AP возвращает ошибку связи в ответе, драйвер пропускает проверку подлинности SE с помощью этого AP и либо переходит на другую точку доступа, либо возвращается к выполнению полной проверки подлинности SAE с помощью этого AP.

Подключение SAE завершается после завершения проверки подлинности или сопоставления SAE. Как и ранее, драйвер отправляет следующие сведения о завершении задачи подключения или перемещения:

Обработка ошибок

Повторная отправка кадра запроса фиксации SAE

Если драйверу необходимо повторно отправить кадр Фиксации из-за истечения времени ожидания, он может либо повторно отправить исходные значения Scalar/Element, предоставленные WDI, либо запросить новый набор значений Scalar/Element из WDI с указанием NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED .

Повторная отправка кадра ответа ПОДТВЕРЖДЕНИЯ SAE

Если драйверу необходимо повторно отправить кадр Подтверждения из-за истечения времени ожидания, он должен запросить новый набор значений SendConfirm и Confirm из WDI с указанием NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED , задав тип WDI_SAE_INDICATION_TYPE_CONFIRM_REQUEST_RESEND_REQUEST.