[BLE--Link Layer]设备蓝牙地址
简述
不论什么网络设备而言,都会有自己独特的一个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地址的方式,后面还得再看看。应当是比較新的特性。
[BLE--Link Layer]设备蓝牙地址的更多相关文章
- 详解BLE 空中包格式—兼BLE Link layer协议解析
BLE有几种空中包格式?常见的PDU命令有哪些?PDU和MTU的区别是什么?DLE又是什么?BLE怎么实现重传的?BLE ACK机制原理是什么?希望这篇文章能帮你回答以上问题. 虽然BLE空中包(pa ...
- 蓝牙BLE LINK LAYER剖析(二) -- PDU
DATA FORMAT The Link Layer has only one packet format used for both advertising channel packets and ...
- 蓝牙BLE LINK LAYER剖析(一) -- status and channel
一.LINK LAYER STATES 二.PHYSICAL CHANNEL
- 【Android应用开发】Android 蓝牙低功耗 (BLE) ( 第一篇 . 概述 . 蓝牙低功耗文档 翻译)
转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/50515359 参考 : -- 官方文档 : https://develope ...
- c#程序如何从海康ipserver查询获取DVR设备ip地址
海康威视提供的ipserver可以记录DVR设备的IP地址,并提供一个7071的端口给客户端查询用,我们在c#程序中可以用海康SDK包中的NET_DVR_GetDVRIPByResolveSvr函数来 ...
- 获取设备mac地址和md5加密
SGMSettingConfig.h #import <Foundation/Foundation.h> @interface SGMSettingConfig : NSObject{ N ...
- Android获取蓝牙地址
最近做一个项目,发现Android6.0以上的版本获取的蓝牙地址始终为02:00:00:00, Google一下发现Android早就封掉了相关接口,于是想到反射的方式去获取Mac地址,在此记录一下 ...
- Android6.0以上版本获取本机蓝牙地址
Android6.0以上版本使用BluetoothAdapter.getDefaultAdapter().getAddress()是获取不到正确的蓝牙地址的,返回的值都是02:00:00:00:00: ...
- Android BLE设备蓝牙通信框架BluetoothKit
BluetoothKit是一款功能强大的Android蓝牙通信框架,支持低功耗蓝牙设备的连接通信.蓝牙广播扫描及Beacon解析. 关于该项目的详细文档请关注:https://github.com/d ...
随机推荐
- hive join 优化 --小表join大表
1.小.大表 join 在小表和大表进行join时,将小表放在前边,效率会高.hive会将小表进行缓存. 2.mapjoin 使用mapjoin将小表放入内存,在map端和大表逐一匹配.从而省去red ...
- COGS 2580. [HZOI 2015]偏序 II
COGS 2580. [HZOI 2015]偏序 II 题目传送门 题目大意:给n个元素,每个元素有具有4个属性a,b,c,d,求i<j并且ai<aj,bi<bj,ci<cj, ...
- elasticsearch源码分析之search模块(server端)
elasticsearch源码分析之search模块(server端) 继续接着上一篇的来说啊,当client端将search的请求发送到某一个node之后,剩下的事情就是server端来处理了,具体 ...
- maven的pom.xml配置标签
转自:https://blog.csdn.net/wf787283810/article/details/76188595 <project xmlns="http://maven.a ...
- HttpClient连接超时及读取超时
HttpClient连接超时及读取超时 httpClient在执行具体http请求时候 有一个连接的时间和读取内容的时间: HttpClient连接时间 所谓连接的时候 是HttpClient发送请求 ...
- 网易NAPM Andorid SDK实现原理--转
原文地址:https://neyoufan.github.io/2017/03/10/android/NAPM%20Android%20SDK/ NAPM 是网易的应用性能管理平台,采用非侵入的方式获 ...
- MarkDown 语法备份
标题 标题1 标题2 标题3 标题4 标题5 无序列表 飞雪连天射白鹿 书神侠倚碧鸳 有序列表 飞雪连天射白鹿 笑书神侠倚碧鸳 超链接 百度 图片 粗体和斜体 粗体 斜体 表格 左对齐标题 右对齐标题 ...
- SQL学习——小结练习(1)
到处淘来的SQL题 1. 用一条SQL 语句 查询出每门课都大于80 分的学生姓名 name kecheng fenshu 张三 语文 81张三 数学 ...
- P3图片导致iOS9.3以下崩溃问题
如果你刚刚升级了Xcode8,而你的项目的Deployment Target是iOS 9.3以下,运行iOS8的时候过了几十秒后crash到main函数,出现EXC_BAD_ACCESS,或者崩溃到i ...
- 防范CSRF(三)
除了可以更改微软默认的cookie的名字外,还可以更改默认的加密方法.继承IAntiForgeryAdditionalDataProvider接口,实现里面的方法即可. 采用的加密方法有加盐和使用时间 ...