Для устройств под управлением Android 13 и выше Android поддерживает подход аутентификации Trust on First Use (TOFU) ( RFC7435 ), который позволяет пользователям доверять корпоративной сети (EAP), установив корневой центр сертификации, используемый сервером, и указав его доменное имя в сохраненной сети. TOFU позволяет устройству получить неаутентифицированный открытый ключ при первом подключении пользователя к корпоративной сети и сохранить этот ключ для последующих подключений.
Фон
В отличие от персональных сетей, требующих только пароля, корпоративные сети используют аутентификацию на основе инфраструктуры открытых ключей (PKI), которая требует предварительной установки сертификатов клиентом. В Android 11 и более ранних версиях пользователи могут выбрать опцию «Не проверять сертификат центра сертификации сервера» в сетевых настройках, минуя проверку сертификата на стороне сервера. Однако для повышения безопасности и соответствия спецификации WPA R2 в Android 12 было введено требование о проверке сертификата сервера в корпоративных сетях. Это дополнительное требование создало барьер для пользователей, поскольку им необходимо установить сертификат центра сертификации для таких сетей. TOFU предоставляет пользователям способ подключения к корпоративной сети на основе PKI путем принятия корневого центра сертификации.
Поведение функций
Устройства, поддерживающие TOFU, демонстрируют следующее поведение при подключении пользователя к корпоративной сети, в которой отсутствует предварительно установленный аутентифицированный открытый ключ.
Подключитесь к новой сети через меню выбора Wi-Fi.
Выберите новую корпоративную сеть в окне выбора Wi-Fi.
Устройство отображает диалоговое окно (Рисунок 1) для подтверждения того, является ли сеть доверенной.
Нажмите «Да, подключиться» , чтобы принять сетевое соединение, или нажмите «Нет, не подключаться», чтобы отклонить его.
Если вы нажмете «Да, подключиться» , устройство автоматически настроит параметры безопасности, подключится к сети и включит автоматическое подключение к сети.
Если вы нажмете «Нет, не подключаться» , устройство отключится от сети и отключит автоматическое подключение к сети.

Рисунок 1. Диалоговое окно для функции TOFU.
Подключитесь к существующей сети с включенным автоматическим подключением.
При подключении к корпоративной сети, в которой включено автоматическое подключение, но отсутствует действительный сертификат центра сертификации, устройство подключается автоматически, а затем отображает постоянно отображаемое (неотключаемое) уведомление.
Нажмите на уведомление.
Устройство отображает диалоговое окно (Рисунок 1) для подтверждения того, является ли сеть доверенной.
Нажмите «Да, подключиться» , чтобы принять сетевое соединение, или нажмите «Нет, не подключаться», чтобы отклонить его.
Если вы нажмете «Да, подключиться» , устройство автоматически настроит параметры безопасности, подключится к сети и включит автоматическое подключение к сети.
Если вы нажмете «Нет, не подключаться» , устройство отключится от сети и отключит автоматическое подключение к сети.
Выполнение
Для поддержки функции TOFU необходимо реализовать HAL-интерфейсы supplicant, предоставленные в проекте Android Open Source Project (AOSP), расположенные по адресу /hardware/interfaces/wifi/supplicant/aidl/android/hardware/wifi/supplicant .
В Android 13 для использования приложениями доступны следующие общедоступные API:
-
WifiManager#isTrustOnFirstUseSupported(): Указывает, поддерживает ли устройство TOFU. -
WifiEnterpriseConfig#enableTrustOnFirstUse(boolean): Включает TOFU. -
WifiEnterpriseConfig#isTrustOnFirstUseEnabled(): Указывает, включена ли функция TOFU.
Проверка
Для проверки работоспособности TOFU на вашем устройстве используйте следующие тесты:
- CTS:
CtsWifiTestCases - VTS:
VtsHalWifiSupplicantStaNetworkTargetTest