随机化Mac地址蓝牙LE广播

时间:2017-01-17 22:21:54

标签: android bluetooth bluetooth-lowenergy beacon

据我所知,今天的一些Android手机可以充当BLE信标(在大多数设备中通常禁用此功能)。当Android设备充当信标并且可被发现时,它的MAC地址是否被随机化?当设备可被发现时,我们能否以任何方式显示实际的MAC ID?

1 个答案:

答案 0 :(得分:1)

大多数5.0+的新设备都支持蓝牙LE外设模式,这意味着它们可以作为信标进行传输。该功能在Android 5.0+中出现,但一些制造商已选择禁用某些型号的支持,尤其是旧型号。您可以在此处查看已知支持且不支持此功能的设备列表:http://altbeacon.github.io/android-beacon-library/beacon-transmitter-devices.html

启用此功能后,MAC地址在传输过程中不会随机化,传输包括设备的实际蓝牙MAC地址,允许接收设备读取此MAC地址。 < / p>

编辑:后续测试向我证明上述说法不正确。每次重新启动发射机时,MAC地址都会随机化。您可以看到proof of this here.

Android中没有机制可以更改此内容。

在Android上扫描时,会返回传输中的实际MAC地址。为了证明这一点,我使用iOS 8.3的iPod Touch第五代上的Locate应用程序启动了iOS信标发射器,同时在Linux设备和Android 6.0的Nexus 5X上扫描了该设备:

Android使用Android 6.0在Nexus 5X上找到Beacon App: MAC地址:60:35:48:79:D8:08

Linux Bluez sudo hcitool lescan: MAC地址:60:35:4B:79:D8:0B

正如您所看到的,两个设备都读取相同的MAC地址,证明在Android或Linux扫描时它不会被欺骗。

还有两个注释:

  • iPod Touch在设置中使用iOS 8.3报告的蓝牙MAC地址 - &gt;一般 - &gt;蓝牙报告2C:FF:EE:xx:xx:xx(最后三个八位字节消隐)与发送的地址不同。这表明iOS在传输时会随机化MAC地址。

  • 当你在iOS设备上停止并重新启动广告时,Linux和Android检测到的蓝牙MAC地址不会改变,这表明iOS在重启时保留了相同的随机地址。重新启动iOS设备并重新启动传输后,Linux和Android都检测到不同的MAC地址:46:59:C9:CB:0C:D5。这表明随机传输的MAC是iOS上重启的变化。