【Bluedroid】 BLE 隐私保护机制深度剖析(btm_ble_reset_id)
本文深入解析 Android BLE 隐私保护实现机制,涵盖身份密钥(IRK/IR/DHK)和加密根密钥(ER)的生成流程、可解析私有地址(RPA)的动态管理,以及跨协议栈(HCI→BTM→BTA→BTIF→Gd)的隐私策略协同。通过代码级分析揭示蓝牙地址防追踪的核心设计,并图解密钥更新与地址轮换的全链路流程。
一、概述
Android BLE 隐私保护通过三层机制实现:
1. 密钥体系
-
身份根(IR)→ 派生身份解析密钥(IRK)和设备哈希密钥(DHK)
-
加密根(ER)→ 保障通信数据机密性
-
密钥通过 AES-128 加密生成(
crypto_toolbox::aes_128
)
2. 动态地址防护
-
基于 IRK 生成可解析私有地址(RPA),结构为:
[AES(IRK,随机数)[0:3] | (随机数[0:3] & 0x3F)
-
RPA 周期