На устройствах с Android 13 и более поздних версий поддерживается подход к аутентификации "Доверие при первом использовании" (TOFU) (RFC7435), который позволяет пользователям доверять корпоративной сети (EAP), установив корневой центр сертификации, используемый сервером, и задав его доменное имя в сохраненной сети. TOFU позволяет устройству получить неаутентифицированный открытый ключ при первом подключении пользователя к корпоративной сети и сохранить его для последующих подключений.
Фон
В отличие от личных сетей, для которых достаточно пароля, корпоративные сети используют аутентификацию на основе инфраструктуры открытых ключей (PKI), которая требует предварительной установки сертификатов на клиентском устройстве. В Android 11 и более ранних версиях пользователи могут выбрать в настройках сети вариант Не проверять для сертификата ЦС сервера, чтобы пропустить проверку сертификата на стороне сервера. Однако для повышения безопасности и соответствия спецификации WPA R2 в Android 12 было введено требование о проверке сертификата сервера для корпоративных сетей. Это дополнительное требование создавало препятствия для пользователей, поскольку им приходилось устанавливать сертификат ЦС для таких сетей. TOFU позволяет пользователям подключаться к корпоративной сети на основе инфраструктуры открытых ключей, принимая ее корневой центр сертификации.
Как работает функция
Устройства, поддерживающие 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