跳至主要内容

BLE 隱私尋址機制:RPA 與 IRK

· 閱讀時間約 19 分鐘
w0x7ce
MySelf

发布于 2026-07-20 22:06:28(微信公众号导出记录)。

本文来自公众号后台的“导出文章内容”功能。博客正文由导出长图进行本地 OCR 转写,并保留原始排版图用于逐段核对。

原文链接:查看原文

OCR 转写有效文字约 9870 字;代码、流程图和版式以文末原始排版图为准。

正文(本地 OCR 转写)

一篇以BluetoothLowEnergy 规为主線的技药科普。本文只封RPA/IRK的理

输、定位置與工程設計,不绑定任何特定產品或程式碼。 BluetoothLow Energy 装置必须在用因互相衢突的票求之闻取得平衡:

  • 對外不能長期使用同一個無線位址,否则任何拥描器都可能跨時圈、跨地贴追酸它。

  • 對已完成绑定的封等装置,又必须保有疆定身分,才能自動重速、恢加密與套用原有權

限。 RPA(Resolvable Private Address,可解析私有位址)是短期、可输暂的無综位址:IRK (Identity ResoLvingKey,身分解析金输)别是受信任装置用来把這困短期位址解析回長 期身分的128位元金。两者共同椭成BLEPrivacy 的核心機制 国定公司位址 完全随機且不可解析的位址 题以运但集法价装置 重造兴授困施 陌生操拦基只着到短期代然 RPA:會婴動的位址 持有IRK的已绑定装置可通

1.这雨個概念位於蓝牙技術體系的哪裡?

RPA/IRK 不是GATT 特微值,也不是匯用厝密碼。它們横跨 BLE 的 Host、Controller 具安全管理流程: 喷势:角色需统 预 AI1/ATT 可男性·重过具P SaP / Seourity iton Host Eond Dwab

K0

Cortrolier / Links Layer

/ Ttadlo 业中量们集性的45 生元位 各责任可以离化為: 屋级 奥RPA/IRK有题的贵任 定羲 LE Privacy 的使用方式、导分位址翼 Privacy Mode GAP SMP 在配封/绑定遇程中協商亚分登IRK奥身分位址资讯 永久保存每個 Bond的身分、IRK、LTK 與感用權限 ↓50H 般定 Controller 的 Resolving List, RPA Timeout HCI 舆私模式 Controler/Link La 在廣播、描、發起速综等状中奎生或解析RPA yer 惠用屠 决定解析出的导分是否為Owner、是否有开镇或管理耀限 因此,RPA/IRK龄BLEPrivacy 奥身分管理:它和 SMP安全糖制合作,但本身不等龄 加密或授權。

2.為什固定蓝牙位址會成為同题?

假設一支手機每天都以固定的D4:7A:.播。商場、車站炭門口的普通搭器即使不知道使 用者姓名,仍可把不同時間看到的同一位址串起来,形成移助轨踪。逼是「可速结性:同题:最 察者不必破解資料,只要判定雨次號来自同一装置,就已经能進行追藏。 單细每次產生全新的随機位址可以降低追跟能力,但也盲旗已绑定装置無法判断:眼前的陷生位 址是不是昨天配到遇的同一支手機。BLE因而需要一种對陌生人不標定、對受信任者可恢疆 定身分的位址。 BLE常見的装置位址類型 可否用 位址频型 高位類型位元 是否输替 IRK解典型用途 析 不丽於Rando Public Device Add 公隔、长期装置身 Address 通常固定 不需要 分 ress 子

一医上電遇

有 Public Add Randon Static Add 期内通常固 不需要ress時的颗定身 11 ress 定 分 Non-Resolvable Pr 不要求受信任划等 可输替 00 显 ivate Address ( NR 端券滋的匿名场景 PA ) Bond後仍需自動 Resolvable Privat 期翰替 是辨舆重速的愿私 θ1 e Address (RPA) 场景 Public Address 奥 Randon Static Address 都可作為 Identity Address(身分位 址).身分位址是Bond資料重中的長期别资料:敏用Privacy 镂,装置在空中未必直接 傅送它。

3.RPA的48位元究竟如何形成?

RPA仍然是一個48位元BLE位址,由两個24位元椭位组成: RPA = prand ( 24 bits) 11 hash (24 bits) hash = ah(IRK, prand) 其中:

  • prand是24位元随糖值:其最高两固频型位元必清為61,用来表示RPA

hash是把128位元IRK與prand 翰人规箱定款的ah函式後截取的24位元结果。 ah的核心是AES-128:它不是把IRK直接放进位址,也不是可逆地加密整個位址。 pnd: 34 y R: 48 tias llpurr RE: 138bhs 以 AES-09 at0

.8 。

  • EI Viajer

Bluetooth Core Specification 中的 RPA 格式翼生或公式 1: Bluetooth SIG 《Core Specification > Link Layer Specification, Private device address generation。墨面同时给出 hosh =ah(IRK,prend) 與 andamiddress = prand Il hasl。来源:Bluetooth Core 6.1 - Link Layer Specification toth:rom/gcontent/mplsafs/F1tes/5pecf1eat1os/L/Came-61/ut/es/s-energy https:/www.b1veto centrn11er/11nk-1ayer spec1f1ratan htm14uurp-sb77-4r1-5-b139-46f9-1hn32Taf7ef 為什看到的十六進位位址顺序常令人困惑? 规范圈、HCI参數、封包嫌取工具买日缺翰出的位元组顺序可能不同。有些工具以人類常见 的AA:BB:CC:DD:EE:FF形式由高位寡到低位,有些API则直接呈现記體或封包中的 little-endian 位元组序列。 工程上鹿先把资料正规化成48位元数值+address type;,再切分prand奥hash; 不要只靠字串左半、右半指需位。位址值相同但 adress type 不同,在 BLE 中仍是不同 位址。

4.IRK是什魔?它奥LTK有何差别?

定的對等端,對等端日後就能判新的RPA是否於这個身分。

一筆典型Bond紀至少可能包含:

是否直接负责资料加 资料 主要用途 密 Identity Address + Addres 侵期索引與楼定身分 显 5 Type Peer IRK 解析封方日後使用的 RPA 香 盈生本機RPA:必要時提供给 Local IRK 香 到方 後續速综恢复LinkLayer LTK ( Long Term Key) 是 加密 用铃签意,不是速源 签善末加密ATT资料 CSRK(若使用) 加密 Owner、管理員、防客、撤 唐用權限 由惠用决定 默態等 最量要的区分是: IRK回答這個會變勤的位址是?」;LTK回答如何恢覆與遗图已定身分的加密速 综?;题用授權回答这個身分可以做什魔? IRK在何時交换? BLE配对不是一個單一勤作,可概略分成靶力交换、生/確加密材料,以及 Transport Spec1f1c Key D1str1but1on.若方商分發 Ident1ty Key,IRK 與 Identity AddressInformation會在金锥分壁段交换,面且鳍段匯在已加密的速線上进行。 Centrsl g pg Peripheral Pairing Request Psiring Response 惊1/0能力·段坦方式舞Key Distr 位 融营科交描益建立通综加密材料 速爆速人加套供趣 皇分身目 Mdenty Infoaton IRK ) 这分能的Identy Iomaton IRK) Identity Addres Informa Identy AddressInfomation 存對方鼻分·Peer RK ·LTK 留存對方分·Peer IRK· LTK

BLuetooth Security Manager 中的 IRK 舅身分位址分 2:Bluetooth SIG《Security Manager Specification》列出IRK透退 Identity Information command 分. Public / Random Static Identity Address 别透通 Identity Address Information command 分發。来源:Bluetooth Core 6.3 — Security Manager Specification 53.6.1 manager -specL fication.htallu10-264a99uB-746b-4ca3-6c94-47cfbc746625 「配到成功,只表示本次安全程序完成:只有把长期资料保存下来,才形成可跨通银使用 的 Bond。若潮重殷後 Bond Database 遗失,即使先前曾經交换 IRK,也無法再解析 封等端。

5.收到一個RPA時,身分如何被解析?

解析不是解密RPA,而是“拿候逻IRK重新計算一次,看看24位元hash是否相同. 元 Addnkm

披:Pbic / Sgric/NRA开 代± pand 优近9] hat M For K soalHlazh * ahPer II, prne

机成 : 胰肤 Bore ojofe)/ IG 這也是為什座Controller的解析清單容量與装置支援的Bond数量有同:最直巍的解析方 式,必须在候選IRK中寻找匹配者。實晶片可能用硬体加速:例如Nordic的AAR (Accelerated Address Resolver)周會IRK 資料结橘逐项管試,成功或失胶後 生事件。 nRF5340 Product Specification Resolving a resovable address

Nord1c nRF5340 AAR 硬想解析 RPA 的营方期期 3:Nordic nRF534e Product Specification 的 AAR 明 硬體 IRK9 起,依 NIRK 指定的数量逐一解析,最後毫生RESOLVED 或NOTRESOLVED。来源:Nord1c Semiconductor - Resolving a resolvable address https://decs. nsrdic icml,com/bL CtentIdFED5CkBH-B44ULU 24位元hash是否可能碰撞? 可能。RPA中可供比對的hash只有24位元,因此它不是無碰握的全城易分别碼。實作 应使用规轮提供的解析结果與完整Bond上下文,不鹿把 24位元hash單指蓄成使用者 ID、安全過涨或資料虚主键。真正的安全確仍由後缩的LTK加密程序鼠庭用层授完成。

6.ResolvingList:Controller如何知道有哪些可信身分?

支援Controller-based Privacy 的控制器通需维Resolving List(解析清單)。 每一筆纪疑到一個已绑定對等端,常見橘位包括:

  • Peer Identity Address S address type

  • Peer IRK:用来解析對方的 RPA

  • LocalIRK:奥额對等端互釉時,用来秦生或虚理本楼睡私位址

  • 该身分的 Privacy Node

Host 透遇 HCI 把 Bond Database 中的资料同步到 Controller. Controller Reset 後,解析清单通常需要重新建立:因此持久化BondDatabase與翔機重建流程同等重要。

Resolving List 不是 Filter Accept List 雨者經常一起出现,但用途不同: 清軍 解決的同题 Resolving List 这個RPA對度到回已知身分? 哪些位址/易分可以参與指定的质握、操描或速银程序?」 Filter Accept List 先解析易分、再套用接受政策,是酸正確的心智模型。只把當下的RPA放进一般白名单,位址 替後就可能失效。

7.Controller-based 奥 Host-based Privacy

BLE规巅允許疆私功能主要由Host 或Controller執行:

Controller-based Privacy 的侵黏是反惠快、Host 唤醒少,且可直接参與展插、描與 Init1at1ng等L1nkLayer 流程;限制则是硬體解析清單容量有限,董且必须正處理 HCI 同步奥 Reset 後重建。Host-based Privacy 比鞍弹性,但可能增加 CPU、延遮與 功耗,且控制器在某些诀质點未必来得及等待Host。 v Privaty

TI BLE5-Stack Host-based ControLLer-based Privacy 官方t用 4:TI BLE5-Stack User's Guide 戴明 LE Privacy 需通期性毫生新位址以降低長 期追,亚比较Host-based 與Controller-based Privacy。束源:Texas 期运浆, Instruments BLE5-Stack Privacy https://seftsare dt1 com/sirptelink/esd/sinpelnk c13kxcc26oxsdk/6.30.0.B4/e html/bte-stsck-5:x/prdwacy.tnt

8.一次完整的位址了但仍能安全重連

RPA只完成第一步身分開融。成熟系统的重速路狸感把身分解析、加密恢復與愿用授權分: 名塞 Cortrslle / L Kest 8ord.Narupr 使异新的 IRA 保究适性 Renslieg Lit 中 Pee R 基 时指列其 Pe lHeveity

拒比受作/要家量所配刻 未关到等式 (ortr 这個顺序揭示三條不能退浠的安全界: L.RPA解析成功不等於通退显。它只是指出最可能是娜一董Bond。

2.LTK加密成功不等於有全部案務權限。愿用仍需检查角色、撤状患與敏感操作缘件。

3.GATT已速線不等於已授耀。BLE允許先建立實速線,再到特微值存取要求加密、韶證或

鹰用添据。

9.RPA是否代表支援多支手機?

不直接代表。RPA/IRK解决的是多個已期定身分的辨端,而不是同时通線数量。 如景装置保存了手機A、B、C三筆Bond,亚把三個PeerIRK装入解析清單,那度三支手 楼即使各自输替RPA,装置仍可判断新的位址分别匾於A、B或C.這可支援多Owner、多 使用者或家庭成員的自勤量速设計。 但能記住三支手機;與能同時持三條BLE逼線;是两件事: Bond容量 能保存機固長期身分 可辨識多少支手機 Resolving List 容量 能同時解析固PeerIRK

Controller線資源 可同時連線支手機 排程·記憶體與協定樣上限

應用政策 每個身分能做什度 單一主控·多Owner·防客 所以部估多手機支援:至少要分别機查 Bond Database 容量、Resolving List 容量、 同时ACL速综上限,以及Owner/權限葡突政策。

10.PrivacyMode奥位址输替调期

GAP定差两种與已知對等指互勤時的疆私模式: 核心行為 模式 常见考量 NetworkPr1到等端感使用可解析的私有位址;不把Id曝私鞍格,遗合希望降低 apou 人eA entity Address 成正常暂代 导分位址暴露的投計 封鲁装置/特殊流程较實 在特定相容情境下,也可接受封等端直接 Dev1ce Pr1v acy Mode 使用 Identity Address 容,但身分位址可能暴露 RPA输替频露,長時照靓察者金難只靠位址申接勒题:代循可能是更多位址更新、控制器工 作與互通性遗界。输替太慢则降低隐私效果,傅统實作常見15分键的RPATimeout; Bluetooth Core 6.1 进一步引入 Randon1zed RPA Updates,使更新時間不再形成遇度 退律的可觀察特。详見 Bluetooth SIG 的 Randomized RPA Updates 锐明。 位址响替也不能消除所有追隆線素。如果质播内容長期包含唯一序碱、固定商资料、罕見服務 祖合,或虞播间隔具有高度揭特性,翻察者仍可能进行指紋胃账:。完整的限私投計必须同時 检查位址岛 Advertising Data。

11.最常見的實作錯误

把當下RPA當成永久资料库主键 位址输替後會被蓄成新装置。永久资料愿以BondRecord/Identity Address/内部不可 翼ID為索引,RPA只存在於短期速線上下文。 只保存IRK,没有保存身分位址奥addresstype 解析成功後仍需要知道它到愿一国標定身分。Address type也是身分的一部分,不能省 略。 Local IRK 與Peer IRK 放反

  • Local IRK:本楼身分的IRK,主要用来產生本機RPA

  • Peer IRK:對方身分的IRK,主要用来解析對方 RPA。

名耦癌始以目前造一端:為视角。資料康 schema、HCI参数與封包日若湿用视角,很 容易生方向错织。 Bond 已存入Flash,但Controller Reset 後没有重建Resolving List 會呈现為「刚配對時可重速,重般後全部炭成陌生手J。感把ResolvingList視為可 重建的敦行期快取,而不是唯一資料来源。 解析成功就直接授予敏感操作 RPA的24位元hash不提供完整虚强度。必须邀完成LTK 加密奥愿用授,敏感命 令遗应考虚重放防据、時序與使用者在場條件。 忽略容量、淘汰與撒銷 Bond Database 與硬禮ResolvingList 可能有不同容量。设計時要明確定瓣:清單滿了 如何虑理、哪些Bond侵先载入、删除使用者時如何同步移除IRK/LTK、善手機道失後如何 撤。 用位址字串直接拆prand/hash 不同API的byteorder 可能相反。测试向量必须同時固定:48位元数值、顯示字串、對 包位元组、addresstype、IRK 與预期解析结果。

12.建的工程架構

一個健的BLE身分系统可分成五固明確模组:

Palring Manager 協商安全等级典金编分报

Bond Store 持久化 IdentityIRK LTK·舒数器

Privacy Manager RPA Tmeout Prlvacy Mode Resolving List 同步

Link Security Manager 恢復加密椎查安全等级

Application Authorization Owner/角色/嫩/敏感 操作政策 遵守以下設計原则:

1.定身分奥空中位址分。鹰用層永遗使用内部Peer ID 或 Bond Handle,不直接依銷

目前 RPA,

2.IRK、LTK奥權限分保存。三者生命通期相圆但磁賣不同,便於撤銷、通移與稽核。

3.解析清單可重建。以非捶赞Bond Store為真實来源,開機與 ControllerReset 後

重新同步。

1.授權晚於身分解析奥加密確。不渡“看起来像已知装置:直接榮成「可敦行敏感命令」。

.删除 Bond 必须原子化。同時處理 Flash 紀錄、Resolving List、Filter Accept List、快取速線與度用角色。

3.把容量奥淘汰政策做成座品需求,不要等硬體回报MemoryCapacityExceeded才臨时

决定。 最低限度測試矩陣 预期结果 全部解析到同—Peer Identity 同一手機速續座生多個RPA 不同手機各自输替 RPA 分别解析到各自 Bond,不互相串號 解析失亚套用陌生装置致策 未知IRK 產生的合法 RPA Controller Reset、Host 资料 重建Resolving List 後可再次解析 仍在 RPA不再取得原權限,蓄LTK不能恢復受信任 删除/撤销Bond 默慧 Resolving List 滋载 有明罐、淘汰或 Host fallback 行為 位元组顺序與 address type 错 测試能明確慎测,不出现默误判 RPA 解析成功但LTK验失胶 不授權敏感GATT 操作 隔私测试愿判定仍可被聊,要求修正payLoad 捶内容保持唯一指紋 RPA/IRK的本質不是「把MAC位址加密」,而是建立一個可遥選 性運結的假名系统:

  • 對没有IRK的旁者,RPA是通期改曼、鞋以直接串接的短期代號。

  • 對完成锦定亚持有IRK的到等端,RPA可以映射回概定身分。

  • 映射身分之後,仍需由LTK恢復速综加密,再由應用盾决定權限。

  • 多個PeerIRK可以支援辨满多支已绑定手機,但不自動代表可以同時速線多支手機。

  • 真正完整的實作不只包含ah()演算法,遗包括Pairing Key Distribution、Bond

Store、Resolving List 同步、Reset 重建、撤銷、容量政策與应用授。 巴期湿的实全理明 炎界 Pee lbeitit 允济的建电预代 延伸開讀

Generation/ Resolution] https://ww.bluetooth.com/wp- content/uploads/Files/Specification/HTML/Core-61/out/en/Low-energy- controller/link-layer-specification.htnl ?. [Bluetooth Core 6.3 - Security Manager Specification: Pairing 奥 Key Distr1but1on] https://waw.bluetooth.com/wp- content/uploads/F1les/Spec1f1cation/HTML/Core_v6.3/out/en/host/secu rity-manager-specification.html

3. [Bluetooth Core 6.2 - Generic Access Profile: Privacy Feature 奥

Privacy Mode] https://waw.bluetooth. com/wp- content/uploads/Files/Specification/HTML/Core- 62/out/en/host/generic-access-profile.htnl

1. [Bluetooth SIG - Bluetooth Security and Privacy Best Practices

Guide] https://www. bluetooth. com/download/bluetooth-security-and- privacy-best-practices-guide/

5. [Bluetooth SIG Enhancing Device Privacy with Randomized RPA

Updates] https://www.bluetooth .com/blog/enhancing-device-privacy- and-energy-efficiency-with-bluetooth-randomized-rpa-updates/

5. [Texas Instruments - BLE5-Stack Privacy] https://software-

dl. ti.com/simplelink/esd/simplelink_cc13xx_cc26xx_sdk/6.30.00.84/ex ports/docs/ble5stack/ble_user_guide/htnl/ble-stack-5 .x/privacy-html

7. [Nordic Semiconductor - Accelerated Address Resolver (AAR) ]

https://docs.nordicsemi .com/bundle/ps_nrf5348/page/aar.html - resolving_resolvable_address?contentId=FE15Ck8QH~X8yB34t4ULUw

3. [Silicon Labs Resolving List API]

https://docs .silabs.com/bluetooth/latest/bluetooth-stack-api/sl-bt- resolving-l1st

原始排版图

原始导出图超过单张 WebP 的尺寸上限,以下图片按从上到下的顺序连续保存。 BLE 隱私尋址機制 與 IRK:微信公众号导出原始排版图(第 1 段,共 2 段) BLE 隱私尋址機制 與 IRK:微信公众号导出原始排版图(第 2 段,共 2 段)