Доверие при первом использовании (TOFU)

Для устройств под управлением 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

  1. Выберите новую корпоративную сеть в средстве выбора Wi-Fi.

    Устройство отображает диалоговое окно (рис. 1) для подтверждения того, является ли сеть доверенной.

  2. Нажмите «Да, подключиться» , чтобы принять сетевое подключение, или нажмите «Нет, не подключаться», чтобы отклонить его.

    • Если нажать «Да, подключиться» , устройство автоматически настроит параметры безопасности, подключится к сети и включит автоматическое подключение к сети.

    • Если нажать «Нет, не подключаться» , устройство отключится от сети и отключит автоматическое подключение к сети.

    Диалог для функции TOFU

    Рисунок 1. Диалоговое окно для функции TOFU

Подключитесь к существующей сети с включенной функцией автоматического подключения.

При подключении к корпоративной сети, в которой включено автоматическое подключение, но отсутствует действительный сертификат CA, устройство подключается автоматически, а затем отображает закрепленное (неотключаемое) уведомление.

  1. Нажмите на уведомление.

    Устройство отображает диалоговое окно (рис. 1) для подтверждения того, является ли сеть доверенной.

  2. Нажмите «Да, подключиться» , чтобы принять сетевое подключение, или нажмите «Нет, не подключаться», чтобы отклонить его.

    • Если нажать «Да, подключиться» , устройство автоматически настроит параметры безопасности, подключится к сети и включит автоматическое подключение к сети.

    • Если нажать «Нет, не подключаться» , устройство отключится от сети и отключит автоматическое подключение к сети.

Выполнение

Для поддержки функции TOFU реализуйте HAL-запросы, представленные в проекте Android Open Source Project (AOSP) по адресу /hardware/interfaces/wifi/supplicant/aidl/android/hardware/wifi/supplicant .

В Android 13 доступны следующие публичные API для использования приложениями:

Проверка

Чтобы проверить реализацию TOFU на вашем устройстве, используйте следующие тесты:

  • CTS: CtsWifiTestCases
  • VTS: VtsHalWifiSupplicantStaNetworkTargetTest