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 方法:
WifiManager#isWpa3SaeSupported
WifiManager#isWpa3SuiteBSupported
WifiManager#isEnhancedOpenSupported
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_SUITEB192
和CONFIG_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