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