跳至主要内容

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 段)