简述

不论什么网络设备而言,都会有自己独特的一个MAC地址,不然在设备量较大的情况下非常可能造成通信的混乱。蓝牙是无线通信中使用非常广泛的技术。当然其蓝牙地址也是相当的重要的了。

蓝牙地址简述

种类划分

- public地址

- random地址

蓝牙地址长度,48bit,即6个byte。

Public地址

该地址是固定的,厂商设定:



public addr和resolvable random addr和unresolvable random addr

Random地址

Random地址事实上又分为两种:

- Static地址

- Private地址

Static地址



这样的地址是在蓝牙设备上电初始化成功后,就不会再变化,而到关闭电源再重新启动,才会使用一个新的值。

Private地址



这样的是non resolvable的private地址,其值不能和public地址一样。对于这样的地址,假设都没有办法解析出,不知道须要这类地址有什么作用?以后知道了再来补充吧。只是认为可能是对Public地址的一个补充。



这样的是resolvable的private地址。prand部分是随机生成的24bit数值。hash部分使用例如以下的方式生成:

hash = ah(IRK, prand)

ah是SMP部分的随机地址生成函数,IRK是密钥(Identity Resolving Key),先随机生成prand部分,然后用这个算法生成hash,然后将hash和prand部分填入上图中相应bit区域,就形成了resolvable private address(RPA)了。

由于上面这样的地址是resolvable的,当然得有相应的地址解析的方法了,通过解密所获得对方的蓝牙地址,才干够进行某些通信,看来是BLE的新特性所提供安全性的一些手段了。

在拿到对方的resolvable private address(RPA)后。本地设备从RPA中取出prand部分,然后会依据上面hash的生成方式生成一个叫localhash的:

localHash = ah(IRK, prand)

然后将这个localHash和从RPA中取出的hash部分进行比較,假设同样,那么对方设备就被识别了。

感觉这里的识别作用就是确定应当用哪个IRK和对方设备交互。对于这样的random地址的方式,后面还得再看看。应当是比較新的特性。

最新文章

  1. Titanium系列--利用js动态获取当前时间
  2. How to set colors of HTML tables
  3. TYVJ P1007 排座椅 Label:多想想输出 水
  4. WCF入门(七)——异常处理1
  5. 对Struts的理解
  6. Keil MDK 无法设置断点【worldsing】
  7. M - 小希的迷宫
  8. IntelliJ IDEA 的Project structure说明
  9. cnn softmax regression bp求导
  10. windows端口占用处理工具
  11. C# 实例练习(第二天)
  12. 面向对象五大原则(SRP、OCP、LSP、DIP、ISP)
  13. HTML5的canvas标签制作黑客帝国里的简单画面
  14. ZeroMQ 教程 002 : 高级技巧
  15. 父页面内获取获取iframe内的变量或者是获取iframe内的值
  16. linux centos7下源码 tar安装mysql5.7.23(5.7以上均可试用)
  17. 09 Zabbix4.0系统clone、mass update使用
  18. DFS 算法总结
  19. 类的调用1(被调用的MyFirstJava)
  20. RuntimeError: Broken toolchain: cannot link a simple C program

热门文章

  1. 自己定义View实现水平滚动控件
  2. hdu5592/BestCoder Round #65 树状数组寻找第K大
  3. UVA 1541 - To Bet or Not To Bet 记忆化DP概率
  4. 杂项-Java:Spring
  5. 浅谈for循环
  6. Beta冲刺提交—星期五
  7. unwrap
  8. P1634 禽兽的传染病
  9. Sqlite基本命令集合(linux/fedora/ubuntu)
  10. [ RESTful ] [ API ] 有用的資訊