Android"查找我的设备"网络技术深度解析
测试环境与设备配置
在为期两个半月的测试中,使用了多款设备:
- Pixel 5a(Android 14,5月、6月、7月安全补丁)
- Pixel 8a(Android 14,5月、6月、7月安全补丁)
- Pixel Tablet(Android 14,5月、6月、7月安全补丁)
- Chromebook
- Galaxy S22(One UI 6,5月、6月、7月更新)
- Galaxy S23(One UI 6,5月、6月、7月更新)
- iPhone 14(iOS 17.5.1)
- iPhone 14 Pro(iOS 17.5.1、17.6和17.6.1)
所有Pixel设备和Chromebook使用相同的Google账户,Galaxy设备各有独立的Google账户,iPhone设备未关联Google账户但作为潜在的"受害者"设备参与测试。
追踪器硬件与技术规范
目前只有Chipolo和Pebblebee两家OEM厂商生产兼容FMD网络的蓝牙追踪器。测试使用的是Pebblebee Clip,其特点包括:
- 正面有Pebblebee徽标和物理按钮
- 背面印有序列号和MAC地址
- 支持不同的按压序列实现特定功能
网络参与设置与技术实现
参与选项
用户有两种参与FMD网络的方式:
-
仅在高流量区域使用网络:设备只在有其他Android用户密集的区域报告看到的追踪器,并实施"聚合检测"机制——需要多个Android设备在同一高流量区域检测到追踪器才会报告位置。
-
在所有区域使用网络:移除上述两个限制,单个Android设备在任何位置检测到追踪器都会向FMD报告其位置。
默认设置为"仅在高流量区域使用网络",这虽然保护了隐私但影响了追踪性能。
技术架构
FMD追踪器基于Google快速配对服务(GFPS)运行:
- 使用蓝牙技术
- 类似iOS处理AirPods和AirTags的机制
- 设备进入手机 proximity 范围时自动识别
取证数据分析
设备端数据存储
nearby_fast_pair_item_cache.db
- 位置:
/data/data/com.google.gms/files/ - 格式:LevelDB数据库
- 包含的关键信息:
- 配对时的蓝牙MAC地址(重要:追踪器会随机化MAC地址,规范要求每24小时轮换一次)
- 配对时的设备友好名称
- 配对时间戳(Unix Epoch格式)
- 追踪器图片PNG文件
maestro_devices数据库
- 位置:
/data/data/com.google.android.apps.wearables.maestro.companion/databases/ - 格式:SQLite数据库
- 包含与nearby_fast_pair_item_cache.db相同的信息
Samsung Rubin系统
- 文件:
inferenceengine_logging.db - 位置:
/data/data/com.samsung.android.rubin.app/databases/ - 需要密钥解密
- 相关表格:
- all_bluetooth_dictionary:存储配对信息
- all_bluetooth_log:记录连接/断开时间
云端数据与加密机制
Google Takeout数据
在HomeApp.json文件中包含:
- 追踪器与Google账户关联的时间
- 追踪器名称(用户修改后会更新)
- 关联的电子邮件地址
- 环密钥(Ring Key)前8字节
加密密钥体系
- 临时身份密钥(EIK):32字节随机值,与其他值连接后使用SHA-256哈希生成
- 环密钥:EIK与其他值连接后使用SHA-256哈希生成
- 环密钥变更频率较低(测试中观察到超过三周未变更)
受害者设备检测机制
跨平台检测协议
Google和Apple合作制定了处理不需要的追踪器的规范,两个平台的处理方式相似。
Android检测数据库
personalsafety_db数据库位置:/data/data/com.google.android.gms/databases/
Scan表
记录手机检测到的所有追踪器,包括:
- 蓝牙MAC地址
- 检测时间戳
- 检测时的位置信息(存储在BLOB中)
BLOB数据包含:
- 纬度坐标
- 经度坐标
- 检测时间戳
DeviceData表
记录向用户发送的关于不需要的FMD追踪器的通知,包含:
- 检测到的追踪器的蓝牙MAC地址
- 通知创建时间
- 通知状态(STAGED或SENT)
- 包含追踪器类型和环密钥的protobuf BLOB
iOS检测机制
从iOS 17.5开始支持检测不需要的FMD追踪器:
Unified Logs限制
- 位置信息和相关时间戳被编辑
- AirTag开发者配置文件方法不实用(5天后自动过期)
磁盘存储发现
- 不需要的FMD追踪器信息以加密形式存储在磁盘上
- 解密后的二进制plist文件包含:
- 触发日期/时间
- 首次看到时间
- 位置信息(纬度、经度、水平精度和相关时间戳)
- 追踪器元数据
设备间定位取证
通知机制
当设备通过FMD被定位时,会收到通知并通过Firebase云消息(FCM)平台推送。
fcm_queued_messages.ldb数据库
- 位置:
/data/data/com.google.android.gms/files/ - 格式:LevelDB数据库
- 包含base64编码的protobuf数据,解码后显示:
- 定位设备的Android ID
- 定位设备连接的SSID
- 定位时间戳
技术挑战与隐私考量
MAC地址随机化
- 追踪器会定期轮换蓝牙MAC地址
- 规范要求每24小时轮换一次
- 从调查和检查角度来看这是主要挑战,但对隐私有利
数据保留
- 未配对的追踪器信息在
nearby_fast_pair_item_cache.db中保留数月 - 检查人员应尽快进行数据提取
执法与法律考量
根据追踪器规范,提供商(Google和Apple)应保留足够的追踪器信息以识别所有者,并在通过适当的法律程序请求时向执法部门提供这些数据。
环密钥值可以通过Google Takeout或授权令返回来帮助追踪到所有者的Google账户,为将恶意追踪器关联到所有者提供了有效途径。