WPA3 和 WLAN Enhanced Open

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

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

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

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

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

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

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

实现

要支持 WPA3 和 Wi-Fi Enhanced Open,请实现 Android 开源项目 (AOSP) 中提供的客户端 HAL 接口设计语言 (HIDL)(位于 hardware/interfaces/wifi/supplicant/1.2/)。

如需支持 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 和 WLAN Enhanced Open

如需在 Android 框架中实现 WPA3-Personal、WPA3-Enterprise 和 WLAN 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
    
  • WLAN 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 或 WLAN Enhanced Open,用户将无法手动添加、扫描或连接到这些类型的网络。

验证

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

单元测试

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

atest SupplicantStaIfaceHalTest

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

atest WifiManagerTest

集成测试 (ACTS)

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

VTS 测试

运行 VtsHalWifiSupplicantV1_2Host 以测试客户端 HAL v1.2 的行为。

vts-tradefed run commandAndExit vts --skip-all-system-status-check --primary-abi-only --skip-preconditions --module VtsHalWifiSupplicantV1_2Host