WPA3 и Wi-Fi Enhanced Open

В Android 10 добавлена поддержка стандартов Wi-Fi Protected Access версии 3 (WPA3) и Wi-Fi Enhanced Open от Wi-Fi Alliance (WFA). Подробнее о безопасности на сайте WFA…

WPA3 – это новый стандарт безопасности WFA для персональных и корпоративных сетей. Он позволяет повысить безопасность Wi-Fi за счет использования современных алгоритмов и более надежных наборов шифров. WPA3 состоит из двух частей:

  • WPA3-Personal. Использует одновременную аутентификацию равных узлов (SAE) вместо общего ключа (PSK), обеспечивая пользователям более надежную защиту от таких атак, как офлайн-атаки по словарю, восстановление ключа и подделка сообщений.
  • WPA3-Enterprise. Предлагает более надежные методы аутентификации и шифрования на уровне канала, а также дополнительный 192-битный режим безопасности для сред с повышенными требованиями к безопасности.

Wi-Fi Enhanced Open – это новый стандарт безопасности WFA для общедоступных сетей, основанный на оппортунистическом беспроводном шифровании (OWE). Она обеспечивает шифрование и конфиденциальность в открытых сетях без пароля, например в кафе, отелях, ресторанах и библиотеках. Enhanced Open не предусматривает аутентификацию.

WPA3 и Wi-Fi Enhanced Open повышают общую безопасность Wi-Fi, обеспечивая лучшую конфиденциальность и устойчивость к известным атакам. Поскольку многие устройства пока не поддерживают эти стандарты или не получили обновления ПО, необходимые для работы этих функций, WFA предложила следующие режимы перехода:

  • Режим перехода WPA2/WPA3. Точка доступа поддерживает стандарты WPA2 и WPA3 одновременно. В этом режиме устройства с Android 10 подключаются с помощью WPA3, а устройства с Android 9 или более ранней версией – с помощью WPA2 к одной и той же точке доступа.
  • Режим перехода WPA2/WPA3-Enterprise. Точка доступа поддерживает стандарты WPA2-Enterprise и WPA3-Enterprise одновременно.
  • Режим перехода OWE. Точка доступа, через которую передается трафик, поддерживает одновременно стандарты OWE и открытый стандарт. В этом режиме устройства с Android 10 используют для подключения OWE, а устройства с Android 9 или более ранней версией подключаются к той же точке доступа без шифрования.

Android 12 поддерживает индикатор отключения перехода – механизм, который указывает устройству не использовать WPA2, а использовать WPA3. Когда устройство получает такое указание, оно использует WPA3 для подключения к сети WPA3, которая поддерживает режим перехода. Android 12 также поддерживает обмен данными для аутентификации WPA3 Hash-to-Element (H2E). Дополнительную информацию можно найти в спецификации WPA3.

WPA3 и Wi-Fi Enhanced Open поддерживаются только в клиентском режиме.

Реализация

Чтобы поддерживать WPA3 и Wi-Fi Enhanced Open, реализуйте интерфейс Supplicant HAL. Начиная с Android 13, для определения HAL в интерфейсе используется язык описания интерфейсов Android (AIDL). В версиях до Android 13 интерфейсы и разделы поставщиков используют язык определения интерфейсов HAL (HIDL). Интерфейс HIDL можно найти в hardware/interfaces/wifi/supplicant/1.3/, а интерфейс AIDL – в hardware/interfaces/wifi/supplicant/aidl/.

Для поддержки WPA3 и OWE требуются следующие компоненты:

  • Исправления ядра Linux для поддержки SAE и OWE
    • cfg80211
    • nl80211
  • wpa_supplicant с поддержкой SAE, SUITEB192 и OWE
  • Драйвер Wi-Fi с поддержкой SAE, SUITEB192 и OWE
  • Встроенное ПО Wi-Fi с поддержкой SAE, SUITEB192 и OWE
  • Чип Wi-Fi с поддержкой WPA3 и OWE

В Android 10 доступны методы общедоступного API, позволяющие приложениям определять, поддерживаются ли на устройстве следующие функции:

WifiConfiguration.java содержит новые типы управления ключами, а также парные шифры, групповые шифры, шифры управления группами и шифры Suite B, которые необходимы для OWE, WPA3-Personal и WPA3-Enterprise.

Включить WPA3 и Wi-Fi Enhanced Open

Чтобы включить WPA3-Personal, WPA3-Enterprise и Wi-Fi Enhanced Open в фреймворке Android:

  • WPA3-Personal. Включите параметр компиляции CONFIG_SAE в файл конфигурации wpa_supplicant.

    # WPA3-Personal (SAE)
    CONFIG_SAE=y
    
  • WPA3-Enterprise. Включите параметры компиляции CONFIG_SUITEB192 и CONFIG_SUITEB в файл конфигурации wpa_supplicant.

    # WPA3-Enterprise (SuiteB-192)
    CONFIG_SUITEB=y
    CONFIG_SUITEB192=y
    
  • Wi-Fi Enhanced Open. Добавьте параметр компиляции CONFIG_OWE в файл конфигурации wpa_supplicant.

    # Opportunistic Wireless Encryption (OWE)
    # Experimental implementation of draft-harkins-owe-07.txt
    CONFIG_OWE=y
    

Если WPA3-Personal, WPA3-Enterprise или Wi-Fi Enhanced Open не включены, пользователи не смогут вручную добавлять, сканировать или подключаться к сетям этих типов.

Проверка

Чтобы проверить реализацию, выполните следующие тесты.

Модульные тесты

Выполните команду SupplicantStaIfaceHalTest, чтобы проверить поведение флагов возможностей для WPA3 и OWE.

atest SupplicantStaIfaceHalTest

Выполните команду WifiManagerTest, чтобы проверить работу общедоступных API для этой функции.

atest WifiManagerTest

Тесты VTS

Если интерфейс HIDL реализован, выполните следующую команду:

atest VtsHalWifiSupplicantV1_3TargetTest

Если интерфейс AIDL реализован, выполните следующие действия:

atest VtsHalWifiSupplicantStaIfaceTargetTest