隐私:随机选择 MAC 地址
隐私:随机选择 MAC 地址
从 Android 8.0 开始,Android 设备在未连接到网络的情况下探测新网络时会使用随机 MAC 地址。
在 Android 9 中,您可以启用开发者选项(默认处于停用状态),使设备在连接到 WLAN 网络时使用随机选择的 MAC 地址。系统会对每个 SSID 使用随机选择的 MAC 地址。
随机选择 MAC 地址可防止监听器使用 MAC 地址来生成设备活动的历史记录,从而加强对用户隐私的保护。
此外,随机选择 MAC 地址也是 WLAN 感知和 WLAN RTT 操作的一部分。
实现
要在设备上实现随机选择 MAC 地址,请执行以下操作:
-
与 WLAN 芯片供应商合作实现
IWifiStaIface.setMacAddress()
HAL 方法。- AOSP 参考实现会关闭接口、更改 MAC 地址并备份接口。这种参考实现行为可能不适用于某些芯片供应商。
-
在“设置”
config.xml
中,将config_wifi_support_connected_mac_randomization
设置为 true(该步骤可在设备自定义叠层中完成)。- 此标记用于控制参考“设置”实现的开发者选项中是否显示“连接时随机选择 MAC 网址”切换开关。如果设置为 true,则显示该切换开关;如果设置为 false,则不显示该切换开关。
-
使用验证中所述的方法测试实现。
系统界面必须:
- 在开发者菜单中有一项可启用或停用该功能的设置。
- 如果启用了随机选择 MAC 地址功能,则在系统显示 WLAN 接口 MAC 地址时显示生成的随机 MAC 地址。
使用设置界面的参考实现来实现新提示。
验证
要验证该功能是否如期正常运行,请同时运行集成测试 (ACTS) 和手动测试。
要运行集成测试,请使用位于 tools/test/connectivity/acts/tests/google/wifi
中的 ACTS 文件 WifiConnectedMacRandomizationTest.py
,验证设备是否使用随机选择的 MAC 地址,以及是否正确存储为每个网络随机选择的 MAC 地址。
要运行手动测试,请执行以下操作:
- 开启该功能并验证设备是否能够连接到 WLAN 网络。
- 验证 WLAN 设置中显示的 MAC 地址是否与设备正在使用的 MAC 地址(通过 ifconfig 确定)相符。
- 执行数据包捕获来验证设备是否使用随机选择的 MAC 地址(而非出厂 MAC 地址)。
- 检查设备是否会在连接到同一网络时使用同一 MAC 地址,验证设备是否存储了基于网络随机选择的 MAC 地址。
- 验证忘记网络并重新连接到同一 SSID 后是否会生成新的随机 MAC 地址。
在连接到网络时,您可能会遇到长达 3 秒的延迟,这是因为只要设置了新的 MAC 地址,系统就会清除扫描结果。在连接到网络并验证互联网连接时,也可能会出现其他延迟。
如果 WLAN 驱动程序或固件未正确同步 MAC 地址状态与主机内核,则互联网连接检查将会失败。如果出现这种情况,请咨询您的芯片合作伙伴,确保驱动程序或固件已根据新的 MAC 地址进行了相应更新。
posted on 2018-11-20 18:48 huangguanyuan 阅读(2606) 评论(0) 编辑 收藏 举报