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


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

WPA3-SAE, также известный как WPA3-Personal, поддерживается в Windows с WDI версии 1.1.8 и более поздних версий. Создание и анализ содержимого кадра для Безопасной аутентификации равных (SAE) выполняется в Windows, но ОС требует поддержки драйверов для отправки и получения кадров WPA3-SAE.

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

Драйверы минипорта указывают на поддержку SAE, выполнив следующие действия.

  1. Задайте поддерживаемую функцию SAE.
    Драйвер задает возможность SAEAuthenticationSupported в WDI_TLV_INTERFACE_ATTRIBUTES при вызове OID_WDI_GET_ADAPTER_CAPABILITIES.
  2. Установите функции МФУ.
    Драйвер устанавливает возможность MFPCapable в WDI_TLV_STATION_ATTRIBUTES при вызове OID_WDI_GET_ADAPTER_CAPABILITIES.
  3. Добавьте метод проверки подлинности WDI_AUTH_ALGO_WPA3_SAE.
    Драйвер включает WDI_AUTH_ALGO_WPA3_SAE в список сочетаний шифров проверки подлинности, возвращенных в вызове OID_WDI_GET_ADAPTER_CAPABILITIES. Это необходимо добавить в следующих разделах:

поток проверки подлинности 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, драйвер запрашивает параметры Commit из 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)

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

При получении ответа "Подтверждение" драйвер отправляет NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED с типом, заданным для WDI_SAE_INDICATION_TYPE_CONFIRM_RESPONSE. Затем 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 с помощью одного из следующих параметров.

(Re)Объединение после обмена SAE

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

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

Если WDI предоставил PMKID для BSS в процессе подключения или при роуминге, то драйвер выполняет следующее:

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

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

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

Повторная отправка кадра запроса подтверждения SAE

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

Повторная отправка кадра ответа SAE Confirm

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