首页 > 其他分享 >蓝牙入门(随便写写)

蓝牙入门(随便写写)

时间:2022-12-05 18:26:10浏览次数:55  
标签:RPA 入门 蓝牙 写写 地址 IRK address 解析 设备

蓝牙地址相关

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

相关文章

  • Java 编程入门第一课:HelloWorld
    在之前的文章中,壹哥带大家搭建出了Java的开发环境,配置了JDK环境变量,并且我们也熟悉了dos命令行的操作。那么从这篇文章开始,壹哥就开始带各位真正地学习Java代码该......
  • 【原创】OllyDBG 入门系列(一)-认识OllyDBG
    标题:【原创】OllyDBG入门系列(一)-认识OllyDBG作者:CCDebuger <!--google_ad_section_start-->OllyDBG 入门系列(一)-认识OllyDBG作者:CCDebuger一、OllyDBG 的安装与配......
  • Redis入门
    参考:小林coding:redisredis官方文档简介redis:用于将各种数据存储在内存中,然后可以将这些存储在内存的数据转存到磁盘中(这就叫持久化)。redis的作用:将数据暂时存储在内存......
  • 图像处理技术OpencvSharp入门
    目录第一部分初识Opencv1.C#下Opencv库2.安装OpenCvSharp第二部分OpencvSharp入门1.加载图像文件2.显示图像第三部分基础应用1.颜色转换2.尺寸调整3.二值化......
  • redis快速入门
    ​​https://gold.xitu.io/post/5880590d1b69e60058c72803​​​解压后的安装#make指定安装目录:#makePREFIX=/usr/local/redisinstall进入/......
  • JavaScript入门⑤-欲罢不能的对象原型与继承-全网一般图文版
    JavaScript入门系列目录JavaScript入门①-基础知识筑基JavaScript入门②-函数(1)基础{浅出}JavaScript入门③-函数(2)原理{深入}执行上下文JavaScript入门④-万物皆......
  • Web入门:JavaScript文字动画
    欢迎来的我的小院,恭喜你今天又要涨知识了!案例内容利用JavaScript实现文字逐步展现的动画效果。演示学习<!DOCTYPEhtml><htmllang="en"><head><metach......
  • 微信小程序开发笔记[5]-蓝牙控制家居
    esp32[https://www.jianshu.com/p/758f5958bf74]蓝牙UUID生成[https://www.uuidgenerator.net/]打开网址就有一个随机的UUIDWhatisaversion4UUID?AVersion4......
  • MongoDB入门
    MongoDB数据库https://www.liuqingzheng.top/db/Mongodb系列/Mongodb快速入门/1MongoDB介绍#MongoDB数据库简单介绍是一个面对文档(document-oriented)的数据库,不......
  • 详解蓝牙模块的分类
     摘要:蓝牙模块,是一种集成蓝牙功能的PCBA板,用于短距离无线通讯,蓝牙模块将芯片和外围硬件电路集成到一个PCB上,开发出所需的内置程序实现蓝牙功能的设备。可以通过相关接口和......