用于检测易受 WhisperPair 攻击的蓝牙配件的安全研究工具
🌐 WhisperPair 研究 • 📦 安装 • 🚀 使用 • 🔬 技术细节
本工具仅供授权的安全测试和研究使用。 未经明确授权测试设备可能违反当地法律。请仅测试您拥有或已获许可测试的设备。
Google Fast Pair 支持受支持的蓝牙配件一键配对和账户同步。尽管 Fast Pair 已被许多流行消费品牌采用,但研究人员发现,许多旗舰产品并未正确实现 Fast Pair,从而引入了一个缺陷,允许攻击者劫持设备并利用 Google 的"查找我的设备"网络追踪受害者。
WhisperPair 是一系列实用攻击,它利用了旗舰音频配件中 Fast Pair 实现的缺陷。研究结果表明,一个微小的可用性"附加组件"可能会引入数亿用户面临的大规模安全和隐私风险。
📖 如需完整研究论文和详细信息,请访问 whisperpair.eu
WhisperPair 使攻击者能够在用户未同意的情况下,强制将易受攻击的 Fast Pair 配件(例如无线耳机或耳塞)与攻击者控制的设备配对。这使攻击者能够完全控制该配件,从而:
攻击性能:
- ⏱️ 中位时间: 10 秒
- 📏 测试范围: 最远 14 米
- 🚫 无需物理接触
部分设备还支持 Google 的"查找我的设备"网络,使用户能够利用其他 Android 设备的众包位置报告来查找丢失的配件。但是,如果配件从未与 Android 设备配对,攻击者可以将该配件添加到自己的 Google 账户,从而能够通过受感染的配件追踪用户。
受害者可能会在几小时或几天后看到一条不需要的追踪通知,但该通知将显示他们自己的设备。这可能导致用户将该警告误认为是错误而忽略,从而使攻击者能够长时间追踪受害者。
该缺陷源于许多配件未能执行配对过程中的关键步骤。
为了启动 Fast Pair 流程,Seeker(手机)会向 Provider(配件)发送一条基于密钥的配对 (KBP) 消息,表明其希望配对。根据 Fast Pair 规范:
“如果配件未处于配对模式,则应忽略此类消息。”
然而,许多设备在实践中未能强制执行此检查,从而允许未经授权的设备启动配对过程。在收到易受攻击设备的回复后,攻击者可以通过建立常规蓝牙配对来完成 Fast Pair 流程。

字节 0: 消息类型 (0x00 = KBP 请求)
字节 1: 标志位
位 0: 请求设备操作
位 4: 请求绑定
字节 2-7: Provider 的 BLE 地址 (6 字节)
字节 8-15: 随机盐值 (应使用共享密钥加密)
已修补设备将验证盐值是否使用 ECDH 派生的共享密钥正确加密。易受攻击设备接受任何 16 字节的有效载荷而不进行验证。
此攻击利用了以下事实:非 Android 设备在连接到配件时不会执行 Fast Pair 流程。Android 设备在配对完成后会将账户密钥写入配件。此密钥确立了所有权——写入的第一个密钥被标记为所有者账户密钥。
因此,如果受害者从未将配件连接到 Android 设备,攻击者在写入其账户密钥后将被标记为所有者。
WhisperPair 并非孤立问题。研究表明,多个设备、供应商和芯片组均受影响。 这证明了系统性失败,而非个别开发者的错误。不安全的实现大规模地进入了市场,表明在三个层面存在一系列合规失败:
| 层级 | 状态 |
|---|---|
| 实现 | ❌ 失败 |
| 验证 | ❌ 失败 |
| 认证 | ❌ 失败 |
已发现来自多家制造商的许多 Fast Pair 认证设备易受攻击:
⚠️ 此列表并非详尽无遗。 可能会有更多设备受到影响。
修复此漏洞的唯一方法是安装配件制造商发布的软件更新。
尽管许多制造商已为其受影响设备发布了补丁,但并非所有易受攻击设备都已可获得软件更新。我们鼓励研究人员和用户直接向制造商核实补丁可用性。
cd fastpair-scanner
# 创建虚拟环境 (推荐)
python -m venv venv
source venv/bin/activate
# 安装依赖
pip install -r requirements.txt
# 基本扫描 (10 秒)
python main.py scan
# 扩展扫描 (30 秒)
python main.py scan -d 30
扫描并自动测试所有发现的设备:
python main.py scan --mass-test
python main.py test AA:BB:CC:DD:EE:FF
python main.py -v scan --mass-test
╔══════════════════════════════════════════════════════════════╗
║ Fast Pair Vulnerability Scanner ║
║ CVE-2025-36911 Detection Tool ║
╚══════════════════════════════════════════════════════════════╝
Scanning for Fast Pair devices (10.0s)...
────────────────────────────────────────────────────────────────
███░ 5D:55:42:37:D7:60 - OnePlus Buds 3 [PAIRING]
Model ID: 347C9F
Testing 1 device(s) for CVE-2025-36911...
[1/1] Testing OnePlus Buds 3
Connected, discovering services...
Found KBP characteristic, sending test request...
🔴 VULNERABLE! Device accepted unencrypted KBP request
────────────────────────────────────────────────────────────────
Summary:
Total devices: 1
Vulnerable: 1
此工具使用以下方法测试设备:
0xFE2C)发现 Fast Pair 设备...1234...)本软件仅供教育和授权安全测试目的使用。作者不对滥用本工具负责。在测试任何设备之前,请务必获得适当授权。
MIT 许可 - 详见 LICENSE 文件。
基于 whisperpair.eu 的研究
| 属性 |
|---|
| 值 |
|---|
| 攻击时间 | ~10 秒(中位数) |
| 范围 | 测试最远 14 米 |
| 硬件要求 | 普通硬件 |
| 用户交互 | 无需 |
| 物理接触 | 不需要 |
| 制造商 | 已知受影响型号 |
|---|
| OnePlus | Buds 3, Buds Pro 2, Buds Z |
| Pixel Buds Pro, Pixel Buds A-Series | |
| Samsung | Galaxy Buds2 Pro, Galaxy Buds FE |
| JBL | 多种型号 |
| Sony | 多种型号 |