WPA3 和 Wi-Fi Enhanced Open

Android 10 引入了对 Wi-Fi 联盟 (WFA) 的 Wi-Fi Protected Access 版本 3 (WPA3) 和 Wi-Fi Enhanced Open 标准的支持。如需了解详情,请参阅 WFA 网站上的安全性

WPA3 是 WFA 针对个人网络和企业网络新制定的安全标准,旨在通过使用现代安全算法和更强大的加密套件来提高 WLAN 的整体安全性。它分为两个部分:

  • WPA3-Personal:使用对等实体同时验证 (SAE) 而不是预共享密钥 (PSK),可以为用户提供更强大的安全保护,抵御离线字典攻击、密钥恢复和消息伪造等攻击。
  • WPA3-Enterprise:提供更强大的身份验证和链路层加密方法,以及适用于敏感安全环境的可选 192 位安全模式。

Wi-Fi Enhanced Open 是 WFA 新推出的适用于公共网络的安全标准,基于机会性无线加密 (OWE)。它可以为咖啡馆、酒店、餐馆和图书馆等场所内无密码保护的开放网络提供加密和隐私保护。Enhanced Open 不提供身份验证。

WPA3 和 Wi-Fi Enhanced Open 可以提升 WLAN 的整体安全性,从而提供更好的隐私保护和稳健性来抵御已知攻击。由于许多设备尚不支持这些标准,或者尚未升级软件来支持这些功能,因此 WFA 提供了以下过渡模式:

  • WPA2/WPA3 过渡模式:服务接入点同时支持 WPA2 和 WPA3 标准。在该模式下,搭载 Android 10 的设备使用 WPA3 建立连接,搭载 Android 9 或更低版本的设备使用 WPA2 连接到同一接入点。
  • WPA2/WPA3-Enterprise 过渡模式:服务接入点同时支持 WPA2-Enterprise 和 WPA3-Enterprise 标准。
  • OWE 过渡模式:服务接入点同时支持 OWE 和开放式标准。在该模式下,搭载 Android 10 的设备使用 OWE 建立连接,搭载 Android 9 或更低版本的设备无需任何加密即可连接到同一接入点。

Android 12 支持“过渡停用”指示,这是一种指示设备不使用 WPA2 而改用 WPA3 的机制。设备收到此指示后,会使用 WPA3 连接到支持过渡模式的 WPA3 网络。Android 12 还支持 WPA3 Hash-to-Element (H2E) 身份验证交换。如需了解详情,请参阅 WPA3 规范

WPA3 和 Wi-Fi Enhanced Open 仅在客户端模式下受支持。

实现

如需支持 WPA3 和 Wi-Fi Enhanced Open,请实现客户端 HAL 接口。从 Android 13 开始,接口使用 AIDL 进行 HAL 定义。对于 Android 13 之前的版本,接口和供应商分区使用 HIDL。HIDL 接口位于 hardware/interfaces/wifi/supplicant/1.3/,AIDL 接口则位于 hardware/interfaces/wifi/supplicant/aidl/

如需支持 WPA3 和 OWE,必须具备以下几项:

  • 用以支持 SAE 和 OWE 的 Linux 内核补丁程序

    • cfg80211
    • nl80211
  • 支持 SAE、SUITEB192 和 OWE 的 wpa_supplicant

  • 支持 SAE、SUITEB192 和 OWE 的 WLAN 驱动程序

  • 支持 SAE、SUITEB192 和 OWE 的 WLAN 固件

  • 支持 WPA3 和 OWE 的 WLAN 芯片

Android 10 中提供可以让应用确定设备是否支持这些功能的公共 API 方法:

WifiConfiguration.java 包含新的密钥管理类型,以及成对加密、组加密、组管理加密和 Suite B 加密,这些均是 OWE、WPA3-Personal 和 WPA3-Enterprise 所必需的。

实现 WPA3 和 Wi-Fi Enhanced Open

如需在 Android 框架中实现 WPA3-Personal、WPA3-Enterprise 和 Wi-Fi Enhanced Open,请执行以下操作:

  • WPA3-Personal:在 wpa_supplicant 配置文件中包含 CONFIG_SAE 编译选项。

    # WPA3-Personal (SAE)
    CONFIG_SAE=y
    
  • WPA3-Enterprise:在 wpa_supplicant 配置文件中包含 CONFIG_SUITEB192CONFIG_SUITEB 编译选项。

    # WPA3-Enterprise (SuiteB-192)
    CONFIG_SUITEB=y
    CONFIG_SUITEB192=y
    
  • Wi-Fi Enhanced Open:在 wpa_supplicant 配置文件中包含 CONFIG_OWE 编译选项。

    # Opportunistic Wireless Encryption (OWE)
    # Experimental implementation of draft-harkins-owe-07.txt
    CONFIG_OWE=y
    

如果不实现 WPA3-Personal、WPA3-Enterprise 或 Wi-Fi Enhanced Open,用户将无法手动添加、扫描或连接到这些类型的网络。

验证

要测试实现情况,请运行以下测试。

单元测试

运行 SupplicantStaIfaceHalTest 以验证 WPA3 和 OWE 的功能标志的行为。

atest SupplicantStaIfaceHalTest

运行 WifiManagerTest 以验证此功能的公共 API 的行为。

atest WifiManagerTest

集成测试 (ACTS)

如需运行集成测试,请使用位于 tools/test/connectivity/acts_tests/tests/google/wifi 中的 Android 通讯测试套件 (ACTS) 文件 WifiWpa3OweTest.py

VTS 测试

如果实现的是 HIDL 接口,请运行以下命令:

atest VtsHalWifiSupplicantV1_3TargetTest

如果实现的是 AIDL 接口,请运行以下命令:

atest VtsHalWifiSupplicantStaIfaceTargetTest