1. 什么是 IRK?
IRK,全称 Identity Resolving Key(身份解析密钥),是 BLE 设备用于生成和解析 Resolvable Private Address(RPA) 的密钥。
2. IRK 的生成和传递过程
IRK 是在 BLE 配对(Pairing)和绑定(Bonding) 过程中生成并交换的。
2.1 步骤简要如下:
-
发起配对
- 两个 BLE 设备通过 GAP(Generic Access Profile)建立连接,并进入配对流程。
-
密钥协商(配对过程)
-
BLE 采用三种配对方式之一(Just Works、Passkey、Numeric Comparison),最终协商生成一个加密密钥(STK/LTK)。
-
在这个过程中,会决定是否进行 身份信息交换(Identity Information Exchange)。
-
-
交换 IRK
-
如果用户同意保存配对信息(即“配对并信任此设备”),两个设备将互相发送自己的 IRK 和 Identity Address(真实地址)。
-
这一步是 可选的,只在双方开启隐私特性并支持 Bonding 时发生。
-
-
设备保存对方 IRK
- 以后就可以通过 RPA + IRK 来识别彼此了。
2.2 小贴士:
-
IRK 是 128 bit(16 字节)的密钥。
-
你可以把它想象成设备的“身份 DNA”。
3. 例子场景
比如:你把蓝牙耳机和手机配对过一次。
-
手机和耳机互换了 IRK
-
耳机以后广播的都是 RPA(变动的地址)
-
手机收到 RPA 后用 IRK 去“解析”这个地址,就知道:“哦!是我的耳机!”