蓝牙地址相关
public address
一般写在 固件中,不能改变的地址
BR/EDR也同样使用该地址?
在log中为BD_ADDR参数
random address
另一种类型的地址,可以分为两种,static address和private address
random static address 一般是开机自动产生,有host通过set random address传递给control
private address 分为resolvable 和Non-resolvable两种类型
重点关注resolvable private address,这类地址可以被解析。
当设备同时拥有对端IRK和本地IRK的时候,就可以将resolvable private address解析成indentify address。
indentify address
这类地址是一个抽象的概念,故名思意,其作用就是识别设备的地址
如果一个设备仅支持public address, 那么该public address 可以作为这个设备的indentify address,在配对过程中使用
如果一个设备支持random static address,同样可以作为indentify address使用
如果一个设备使用的是resolvable private address, 通过IRK解析之后的地址,才是indentify address。
RPA(resolveable private address)
如何生成RPA
为了连接过程中的安全,我们可以用RPA地址与对端设备连接
每次连接,RPA地址并不是固定的地址,但是拥有IRK的设备,能够解析RPA地址,指向相同的设备
RPA通过IRK和pRand 产生
可以产生自己的RPA,也可以产生对端设备的RPA
解析RPA
localHash = ah(IRK,pRand)
接收到对端的RPA之后,可以计算出对端的peerHash值,前24bit 即为对端的hash
localHash 与peerHash对比,就能解析出是否是曾经配对过的设备
RPA解析的目的是:将random address转化为indetify address, 然后获取到正确的LTK或者GATT cache
RPA流
IRK(Identity Resolving Key,蓝牙设备地址解析密钥)
IRK是设备配对过程中,SMP 交换的信息
自己的IRK和对端的IRK,用来解析私有地址
所有已经配对过设备的IRK,在resolving list这个表中维护
resolving list
这个列表保护一些列对端和自己的IRK配对记录
列表维护在controller中,可以不经过host,完成解析RPA功能
此列表中的地址是inditify address,一个设备一个地址,通过确定的地址,找到正确的IRK
蓝牙传输速率
BR/EDR
经典传输速度、
BR最大723.2kbps
EDR最大2178kbps
LE 1M PHY
1MHZ占用宽带
LE 2M PHY
2MHZ占用宽带
标签:RPA,入门,蓝牙,写写,地址,IRK,address,解析,设备 From: https://www.cnblogs.com/MiraculousB/p/16953074.html