深入解析Android"查找我的设备"网络技术架构与取证分析

本文详细分析了Android"查找我的设备"网络的技术实现,包括蓝牙追踪器配对机制、位置数据存储方式、跨平台检测协议,以及在数字取证中如何提取和分析相关证据数据。

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网络的方式:

  1. 仅在高流量区域使用网络:设备只在有其他Android用户密集的区域报告看到的追踪器,并实施"聚合检测"机制——需要多个Android设备在同一高流量区域检测到追踪器才会报告位置。

  2. 在所有区域使用网络:移除上述两个限制,单个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账户,为将恶意追踪器关联到所有者提供了有效途径。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计