android mac地址随机化,隐私安全:随机分配 MAC 地址

从 Android 8.0 开始,Android 设备在未连接到网络的情况下探测新网络时,会使用随机分配的 MAC 地址。在 Android 9 中,您可以启用一个开发者选项(默认处于停用状态),使设备在连接到 WLAN 网络时使用随机分配的 MAC 地址。

在 Android 10 中,默认为客户端模式、SoftAp 和 WLAN 直连启用随机分配 MAC 地址功能。

随机分配 MAC 地址可防止监听器使用 MAC 地址来生成设备活动的历史记录,从而加强对用户隐私的保护。

此外,在 Wi-Fi 感知和 Wi-Fi RTT 操作中也会使用随机分配的 MAC 地址。

实现

要在设备上实现随机分配 MAC 地址,请执行以下操作:

与 WLAN 芯片供应商合作实现以下 HAL 方法:

IWifiStaIface#setMacAddress:配置接口的 MAC 地址。默认实现会关闭接口、更改 MAC 地址,然后重新启用接口。

IWifiStaIface#getFactoryMacAddress:使用 ioctl 调用获取 wlan0 的出厂 MAC 地址。

ISupplicantP2pIface#setMacRandomization:在客户端中开启/关闭点对点随机分配 MAC 地址功能。

此标志用于控制是否启用客户端模式随机分配 MAC 地址功能。

在“设置”config.xml 中,将 config_wifi_p2p_mac_randomization_supported 设置为 true(此步骤可在设备自定义叠加层中完成)。

此标志用于控制是否启用 WLAN 直连随机分配 MAC 地址功能。

使用验证中所述的方法测试实现。

系统界面必须:

提供为每个 SSID 启用或停用随机分配 MAC 地址功能的选项。

默认为所有新添加的网络启用随机分配 MAC 地址功能。

使用设置界面的参考实现来实现新提示。

搭载 Android 9 或更低版本的设备可能不支持随机分配 WLAN MAC 地址的功能。将此类设备升级到 Android 10 时,可以通过在 WLAN 供应商 HAL make 文件中将 WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION 标记设置为 true,停用随机分配 WLAN MAC 地址的功能。

验证

如需验证该功能是否按预期正常运行,需要运行一项集成测试 (ACTS) 和一项手动测试。

如需运行集成测试,请使用位于 tools/test/connectivity/acts/tests/google/wifi 中的 ACTS 文件 WifiMacRandomizationTest.py,验证设备是否使用随机分配的 MAC 地址,以及是否正确存储了每个网络的随机分配 MAC 地址。

如需运行手动测试,请执行以下操作:

通过检查设备叠加层中的 config_wifi_connected_mac_randomization_supported 是否设置为 true,验证设备是否支持随机分配 MAC 地址功能。

连接到 WLAN 网络。

点按该网络,转到“网络详情”页面。验证随机分配 MAC 地址功能是否已开启。验证显示的 MAC 地址是否为随机分配的 MAC 地址。随机分配的 MAC 地址会将本地生成的位设置为 1,将多播位设置为 0。

关闭随机分配 MAC 地址功能。连接到同一网络并确认系统使用的是出厂 MAC 地址。

点按“网络详情”页面上的取消保存,删除该网络。

连接到同一网络并验证系统使用的是否是同一随机分配的 MAC 地址。

注意:系统会为每个 SSID 生成随机分配的 MAC 地址,并长久保留这些地址。

要在将要升级到 Android 10 或更高版本的预 Android 10 设备(能够支持随机分配 MAC 地址功能)上测试随机分配 MAC 地址功能,请执行以下操作:

在搭载 Android 9 或更低版本的设备上保存至少一个网络。

刷写 Android 10 系统映像。

在 WLAN 选择器中,确认是否已为保存的所有网络关闭随机分配 MAC 地址功能。

开启随机分配 MAC 地址功能。连接到同一网络并验证系统使用的是否是随机分配的 MAC 地址。

注意:由于接口关闭时,驱动程序会刷新已保存的扫描结果,因此在连接到网络时,您可能会遇到最长可达 3 秒的延迟。如果是这样,请与您的芯片合作伙伴联系,以解决此问题。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值