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

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

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

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

  1. Задайте поддерживаемые возможности SAE.
    Драйвер задает возможность SAEAuthenticationSupported в WDI_TLV_INTERFACE_ATTRIBUTES во время вызова OID_WDI_GET_ADAPTER_CAPABILITIES.
  2. Настройка возможности MFP.
    Драйвер задает возможность MFP Capabilit в 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, драйвер запрашивает параметры фиксации из 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.