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

На устройствах с Android 13 и более поздних версий поддерживается подход к аутентификации "Доверие при первом использовании" (TOFU) (RFC7435), который позволяет пользователям доверять корпоративной сети (EAP), установив корневой центр сертификации, используемый сервером, и задав его доменное имя в сохраненной сети. TOFU позволяет устройству получить неаутентифицированный открытый ключ при первом подключении пользователя к корпоративной сети и сохранить его для последующих подключений.

Фон

В отличие от личных сетей, для которых достаточно пароля, корпоративные сети используют аутентификацию на основе инфраструктуры открытых ключей (PKI), которая требует предварительной установки сертификатов на клиентском устройстве. В Android 11 и более ранних версиях пользователи могут выбрать в настройках сети вариант Не проверять для сертификата ЦС сервера, чтобы пропустить проверку сертификата на стороне сервера. Однако для повышения безопасности и соответствия спецификации WPA R2 в Android 12 было введено требование о проверке сертификата сервера для корпоративных сетей. Это дополнительное требование создавало препятствия для пользователей, поскольку им приходилось устанавливать сертификат ЦС для таких сетей. TOFU позволяет пользователям подключаться к корпоративной сети на основе инфраструктуры открытых ключей, принимая ее корневой центр сертификации.

Как работает функция

Устройства, поддерживающие TOFU, ведут себя следующим образом, когда пользователь подключается к корпоративной сети, в которой не установлен аутентифицированный открытый ключ.

Как подключиться к новой сети через выбор сети Wi-Fi

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

    На устройстве появится диалоговое окно (рис. 1), в котором нужно подтвердить, что сеть является доверенной.

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

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

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

    Системное диалоговое окно Android с запросом о том, следует ли доверять сети. Текст: "Доверять этой сети?" Варианты ответа: "Нет, не подключаться" и "Да, подключиться".

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

Подключение к существующей сети с включенным автоподключением

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

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

    На устройстве появится диалоговое окно (рис. 1), в котором нужно подтвердить, что сеть является доверенной.

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

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

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

Реализация

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

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

Проверка

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

  • CTS: CtsWifiTestCases
  • VTS: VtsHalWifiSupplicantStaNetworkTargetTest