蓝牙地址与 WiFi MAC 地址的区别
蓝牙设备也有一个 48 位地址,格式与 WiFi 的 MAC 地址一模一样,前 24 位同样是 IEEE 分配的 OUI,因此可以用同一个数据库查询厂商。但两者的隐私机制和使用方式差别很大。
同样的格式,不同的名字
蓝牙里这个地址叫 BD_ADDR(Bluetooth Device Address)。传统蓝牙(BR/EDR)的地址结构与以太网 MAC 完全一致:24 位 OUI 加 24 位厂商自定义部分。
同一台手机的 WiFi 和蓝牙地址通常相邻但不相同,常见情况是后几位差 1 或 2,因为厂商往往从同一批地址里连续分配给不同射频模块。这个细节在资产识别时有用:知道一台设备的 WiFi MAC,往往能推测它蓝牙地址的大致范围。
BLE 的四种地址类型
低功耗蓝牙(BLE)把地址机制做得复杂得多,分为四类:
公共地址(Public Address)。 就是传统的 IEEE 分配地址,固定不变,可查厂商。
静态随机地址(Static Random)。 开机时随机生成,在本次上电周期内不变,重启后改变。查不到厂商。
不可解析私有地址(Non-resolvable Private)。 完全随机,定期更换,任何人都无法关联。
可解析私有地址(Resolvable Private Address, RPA)。 这是最精巧的设计。设备用一个只有配对双方知道的身份解析密钥(IRK)生成地址,并每隔一段时间更换,典型间隔 15 分钟。已配对的设备能用 IRK 算出"这是我认识的那台设备",而任何第三方看到的只是一串不断变化的随机地址。
RPA 是 AirTag、无线耳机、健康手环这类设备能被主人识别却不被陌生人追踪的原因。
随机地址的识别
与 WiFi 一样,看第一字节的标志位即可。本地管理位被置 1 的地址查不到厂商,规则见读懂 MAC 地址第一字节。BLE 的随机地址还用地址最高两位进一步区分静态与私有类型。
所以你用蓝牙扫描工具看到一堆无厂商的设备,情况和 WiFi 环境里查不到厂商是一样的,说明对方启用了隐私机制。
隐私方面的对比
| WiFi | BLE | |
|---|---|---|
| 随机化引入时间 | iOS 8 起用于扫描,iOS 14 起用于连接 | 蓝牙 4.0 规范即包含 |
| 默认是否启用 | 多数系统默认启用 | 取决于设备实现 |
| 轮换粒度 | 通常按 SSID 固定 | RPA 典型 15 分钟轮换 |
| 已配对方能否识别 | 不适用 | 能,通过 IRK |
BLE 的机制在设计上更成熟,因为它从一开始就假设设备会长期广播存在性,而 WiFi 的随机化是后来补上的。WiFi 的演进过程见MAC 地址随机化,追踪风险的整体分析见MAC 地址的隐私影响。
实务上的注意点
不要用蓝牙地址做长期设备标识。 启用 RPA 的设备地址每 15 分钟就变,任何基于地址的计数或识别都会严重高估设备数量。商场客流统计如果只数 BLE 地址,结果会虚高数倍。
查厂商仍然有用。 对不启用隐私机制的设备,例如工业传感器、老款外设、信标设备,OUI 依然能告出制造方,可以在厂商目录里核对。
扫描他人设备涉及合规。 被动收集周围蓝牙地址在多数司法辖区属于个人数据处理,需要合法依据。自己排查设备没问题,做客流分析就要认真对待合规要求。