首次使用时信任 (TOFU)

对于运行 Android 13 或更高版本的设备,Android 支持首次使用信任 (TOFU) 身份验证方法 ( RFC7435 ),该方法允许用户通过安装服务器使用的根 CA 并将其域名设置为一个企业网络来信任企业 (EAP) 网络保存的网络。 TOFU 允许设备在用户首次连接到企业网络时获取未经身份验证的公钥,并保留该密钥以供后续连接使用。

背景

与只需要密码的个人网络相比,企业网络使用公钥基础设施(PKI)身份验证,这需要客户端预先安装证书。在 Android 11 或更低版本中,用户可以在网络设置中为服务器 CA 证书选择不验证选项,从而绕过服务器端证书的验证。但是,为了加强安全性并遵守 WPA R2 规范,Android 12 引入了对企业网络进行服务器证书验证的要求。这一附加要求为用户设置了障碍,因为他们需要为此类网络安装 CA 证书。 TOFU 为用户提供了一种只需接受其根 CA 即可连接到基于 PKI 的企业网络的方法。

特征行为

当用户连接到尚未安装经过身份验证的公钥的企业网络时,支持 TOFU 的设备会显示以下行为。

通过 Wi-Fi 选择器连接到新网络

  1. 在 Wi-Fi 选择器中选择新的企业网络。

    设备会显示一个对话框(图 1)以确认网络是否可信。

  2. 点击是,连接以接受网络连接,或点击否,不连接以拒绝。

    • 如果点击是,连接,设备将自动配置安全参数、连接到网络并为网络启用自动连接。

    • 如果您点击否,请勿连接,设备会断开与网络的连接并禁用网络自动连接。

    TOFU 功能对话框

    图 1. TOFU 功能的对话框

连接到现有网络并启用自动连接

当连接到启用了自动连接但没有有效 CA 证书的企业网络时,设备会自动连接,然后显示粘性(不可关闭)通知。

  1. 点击通知。

    设备会显示一个对话框(图 1)以确认网络是否可信。

  2. 点击是,连接以接受网络连接,或点击否,不连接以拒绝。

    • 如果点击是,连接,设备将自动配置安全参数、连接到网络并为网络启用自动连接。

    • 如果您点击否,请勿连接,设备会断开与网络的连接并禁用网络自动连接。

执行

要支持 TOFU 功能,请在/hardware/interfaces/wifi/supplicant/aidl/android/hardware/wifi/supplicant中实施 Android 开源项目 (AOSP) 中提供的请求者 HAL。

Android 13 中提供以下公共 API 供应用程序使用:

验证

要验证 TOFU 在您的设备上的实现,请使用以下测试:

  • CTS: CtsWifiTestCases
  • VTS: VtsHalWifiSupplicantStaNetworkTargetTest