在 BLE 中随机化 Mac 地址

Posted

技术标签:

【中文标题】在 BLE 中随机化 Mac 地址【英文标题】:Randomize Mac Address in BLE 【发布时间】:2020-03-03 09:35:16 【问题描述】:

我制作了一款将 ios 设备变成信标的应用。现在,当我从 android 设备扫描 BLE 设备时,我在扫描列表中得到了那个 iOS 设备,但问题是每次我得到随机的 Mac 地址。

所以,我的问题是:这种默认行为是否意味着获取随机 MAC 地址? 我检查了所有关于堆栈溢出的问题并得到了相同的答案,但我还想确认吗?

另外,如果更改 mac 地址是默认行为,那么我们可以在 mac 地址更改时得到吗?

对于 android 也是如此,如果我的 android 设备用作信标并且如果我扫描它,那么它仍然会旋转我的 mac 地址吗?

【问题讨论】:

【参考方案1】:

每当广播 BLE 时,iOS 设备将在未指定的时间段和条件后自动轮换广播数据包的 MAC 地址。

发生这种情况的确切条件和频率是未记录的、专有的,并且可能随时由 Apple 更改。没有可靠的方法来预测 iOS 设备何时会轮换正在进行的 BLE 广告的 MAC,尽管随机测试表明它通常一次保持稳定几分钟。

了解 MAC 何时更改的唯一方法是让 iOS 发布附近没有其他设备发布的已知 iBeacon 标识符,并在 Android 或其他操作系统上跟踪此标识符,以便您读取原始广告的 MAC。然后,您可以直接测量 MAC 何时发生变化。

上述技术有效,但在大多数用例中帮助有限,因为它需要附近有两台设备和 iOS 的固定广告。

【讨论】:

最后一个问题,android 也一样,如果我的 android 设备作为信标工作,如果我从 android 设备扫描它,它仍然会旋转我的 mac 地址吗?每次都能得到相同的mac地址吗?

以上是关于在 BLE 中随机化 Mac 地址的主要内容,如果未能解决你的问题,请参考以下文章

BLE:2 个带有随机 MAC 的 BLE 设备如何知道它们是不是已配对?

Android Softap Mac地址随机化

Android Softap Mac地址随机化

Wi-Fi MAC 地址随机化与人群监控

从随机私有可解析地址获取 BLE MAC

Linux: 生成随机的MAC地址