bde-blem201 怎么修改蓝牙设备名称名称

[BLE--SMP]蓝牙的SMP安全管理简介
[BLE--SMP]蓝牙的SMP安全管理简介
Net-Bluetooth
SMP即Security Manage Protocol。是蓝牙用来进行安全管理的,其定义了配对和密钥分发的过程实现。SMP被用在LE-only设备或蓝牙双模设备中。
首先看下SM在BLE中的框架(貌似要用到BLE才会使用SM哦):
安全管理的实现基础
前面是简要看了下BLE SM的大体框架,这部分将较为详细的说明BLE的安全管理的实现基础是怎么样的。接下来安全管理可能用SM来代指。
密钥分发的方式来实现
SM,就是使用一种密钥分发的方式来实现识别BLE数据加密和解密的功能。连接建立之后,双方通过某些方式协商共同的密钥,然后将后续要传输的数据用这个密钥通过加密算法进行加密,那实际传送到空中的数据是加密后的数据,在接收到这些数据后,就必须用正确的密钥来解密,才能得到正确的数据了。当然,这种方式的加密,破解的方式就是得到其密钥即可。
配对–Pairing
配对过程,是用来建立密钥的,即完成双方密钥协商,就密钥一事达成共同一致的过程。配对其实内部又分为3个子过程的,先来看看配对过程的总体状况吧(图中initiator是连接发起者,一般是Master,Responder一般是Slave):
Legacy Pairing与Secure Connection区别
这里需要说明下上图中这两者区别:
LE Secure Connection是BT 4.2后新增特性,Key生成方式不同,另BR/EDR与LE可以相互借用配对的key。总之就是在安全方面有较大提升。
配对第一阶段:配对特征交换
即需要知道对方都支持哪些配对功能,像authentication要求,IO capabilities,是否支持Secure Connection等,以便双方后续进行相应的配对操作。比如不能让一个没有输入功能的设备使用PIN码输入来进行配对……
配对第二阶段:Key产生
LE Legacy pairing:产生Short Term Key;
LE Secure Connection:产生Long Term Key。
配对第三阶段:Key分发
分发一些其他用途的Key,像Identity Resolving Key(IRK),这个Key可能是用于Random Address解析的吧(不确定哦,后续确认)。不过在分发这些Key时,此阶段链路是必须要加密的,要是不加密,那密钥就直接被中间截取了,那后续都仍可被破解。因此必须加密,加密的Key是用第二阶段产生的STK或LTK,或者双模下直接共享使用BR/EDR配对产生的Key。
这里是随便抓了两个设备(Master和Slave)建立连接时的包,其中SMP开头的包部分就是整个SMP的流程咯,详细的看图吧:
这里开始时,Advertiser发ADV,然后Scanner搜索到了ADV信息,然后变身Initiator发Connect Request,然后连接就建立起来。随后,立马,Slave发一个Security Request(可选),然后进行配对的第一阶段,交换双方配对支持特征。接着进行第二阶段生成了STK(看来这里的设备是用的Legacy Pairing方式,毕竟目前支持4.2的Secure Connection的还是不太多的),生成完成其实可以看到“LLCP Encryption Start”的过程,立马对链路加密,加密完成了,才进行配对第三阶段,分发其它Key。
密码工具箱
这是一些工具(软件或硬件单元实现),用于某些加密,随机数产生,配对过程用到的一些可复用的小过程吧。密码工具箱里面都是些密码函数了。
这里对这个工具箱中的密码函数主要是进行简要功能上介绍吧,如果要自己实现这些函数的硬件电路设计,或者是coding的话,得详细的查其资料了。
- ah:产生24bit的hash值(random address生成和解析会用哦);
如下的是用于LE Legacy pairing过程的:
- c1:配对过程中产生confirm值;
- s1:配对过程中产生STK;
如下的是用于LE Secure Connections pairing过程的:
- f4:配对过程中产生confirm值;
- f5:配对过程中产生LTK和MacKey;
- f6:配对过程中在authentication过程2中产生检查值;
- g2:配对过程中在authentication过程1中产生6位数字的比较值;
- h6:用于从BR/EDR link key产生LE的LTK,或者从LE的LTK产生BR/EDR link key,相当于一个Key转换作用吧。
以上的密码函数分为两类:
security function e
ah, c1, s1都是属于e这种的,其对数据加密的使用方式如下:
encryptedData = e(key, plaintextData)
/* encrypteData, key, plaintextData are 128 bit data */
security function AES-CMAC
f4, f5, f6, g2, h6都是属于e这种的,其使用方式如下:
MAC = AES-CMACk(m)
其中,MAC是Message Authentication Code(128 bit),m是需要被authenticated的可变长度的数据,k是128-bit Key。
我的热门文章
即使是一小步也想与你分享关于BLE CC2541 设备名称问题 - 蓝牙Bluetooth 技术 - 德州仪器在线技术支持社区
关于BLE CC2541 设备名称问题
发表于3年前
<input type="hidden" id="hGroupID" value="42"
请教TI工程师,&/p>
&p>我用的是TI提供的协议栈例程里面 --广播的工程:SimpleBLEBroadcaster-CC2541&/p>
&p>现在我想改设备名称:对SimpleBLEBroadcaster.c文件做了如下代码的增加:&/p>
&p>//设备新名称&/p>
&p>static uint8 attDeviceName[GAP_DEVICE_NAME_LEN] = &HT15TTTTT&;&/p>
&p>在void SimpleBLEBroadcaster_Init( uint8 task_id )函数增加如下代码:&/p>
&p>& // 设置GAP特性& Set the GAP Characteristics 改名字&br>& uint8 devNamePermission = GATT_PERMIT_READ | GATT_PERMIT_WRITE;&br>&br>& GGS_SetParameter(GGS_W_PERMIT_DEVICE_NAME_ATT, sizeof(uint8), &devNamePermission);&br>& GGS_SetParameter( GGS_DEVICE_NAME_ATT, GAP_DEVICE_NAME_LEN+1, attDeviceName );&br>& //上面是新增加的//////////////////////////////////////////////////////////////////////////////////&br>&&/p>
&p>编译发现如下错误:&/p>
&p>Error[e46]: Undefined external &gapServiceUUID& referred in gapgattserver ( E:\work\MSPBLEindependent\ble\Projects\ble\Libraries\CC2541DB\bin\&a href=&.cn/product/cn/CC2541& target=&extwin&>CC2541&/a>_BLE_bcast.lib ) &br>Error[e46]: Undefined external &primaryServiceUUID& referred in gapgattserver ( E:\work\MSPBLEindependent\ble\Projects\ble\Libraries\CC2541DB\bin\&a href=&.cn/product/cn/CC2541& target=&extwin&>CC2541&/a>_BLE_bcast.lib ) &br>Error[e46]: Undefined external &characterUUID& referred in gapgattserver ( E:\work\MSPBLEindependent\ble\Projects\ble\Libraries\CC2541DB\bin\&a href=&.cn/product/cn/CC2541& target=&extwin&>CC2541&/a>_BLE_bcast.lib ) &br>Error[e46]: Undefined external &deviceNameUUID& referred in gapgattserver ( E:\work\MSPBLEindependent\ble\Projects\ble\Libraries\CC2541DB\bin\&a href=&.cn/product/cn/CC2541& target=&extwin&>CC2541&/a>_BLE_bcast.lib ) &br>Error[e46]: Undefined external &appearanceUUID& referred in gapgattserver ( E:\work\MSPBLEindependent\ble\Projects\ble\Libraries\CC2541DB\bin\&a href=&.cn/product/cn/CC2541& target=&extwin&>CC2541&/a>_BLE_bcast.lib ) &br>Error while running Linker&/p>
&p>请教是什么原因导致的?&/p>
&p>谢谢&/p>
&p>附件是代码源文件&/p>&div style=&clear:&>&/div>" />
关于BLE CC2541 设备名称问题
此问题尚无答案
All Replies
请教TI工程师,
我用的是TI提供的协议栈例程里面 --广播的工程:SimpleBLEBroadcaster-CC2541
现在我想改设备名称:对SimpleBLEBroadcaster.c文件做了如下代码的增加:
//设备新名称
static uint8 attDeviceName[GAP_DEVICE_NAME_LEN] = &HT15TTTTT&;
在void SimpleBLEBroadcaster_Init( uint8 task_id )函数增加如下代码:
& // 设置GAP特性& Set the GAP Characteristics 改名字& uint8 devNamePermission = GATT_PERMIT_READ | GATT_PERMIT_WRITE;& GGS_SetParameter(GGS_W_PERMIT_DEVICE_NAME_ATT, sizeof(uint8), &devNamePermission);& GGS_SetParameter( GGS_DEVICE_NAME_ATT, GAP_DEVICE_NAME_LEN+1, attDeviceName );& //上面是新增加的//////////////////////////////////////////////////////////////////////////////////&
编译发现如下错误:
Error[e46]: Undefined external &gapServiceUUID& referred in gapgattserver ( E:\work\MSPBLEindependent\ble\Projects\ble\Libraries\CC2541DB\bin\_BLE_bcast.lib ) Error[e46]: Undefined external &primaryServiceUUID& referred in gapgattserver ( E:\work\MSPBLEindependent\ble\Projects\ble\Libraries\CC2541DB\bin\_BLE_bcast.lib ) Error[e46]: Undefined external &characterUUID& referred in gapgattserver ( E:\work\MSPBLEindependent\ble\Projects\ble\Libraries\CC2541DB\bin\_BLE_bcast.lib ) Error[e46]: Undefined external &deviceNameUUID& referred in gapgattserver ( E:\work\MSPBLEindependent\ble\Projects\ble\Libraries\CC2541DB\bin\_BLE_bcast.lib ) Error[e46]: Undefined external &appearanceUUID& referred in gapgattserver ( E:\work\MSPBLEindependent\ble\Projects\ble\Libraries\CC2541DB\bin\_BLE_bcast.lib ) Error while running Linker
请教是什么原因导致的?
附件是代码源文件
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
榜眼35967分
C语言不过关啊。增加一个gatt_uuid.c到工程里就搞定了。该文件在\Texas Instruments\BLE-CC254x-1.3.2\Components\ble\host下面。
You have posted to a forum that requires a moderator to approve posts before they are publicly available.iOS &&&&最新内容
iOS &&&&随机内容

我要回帖

更多关于 ios 修改蓝牙设备名称 的文章

 

随机推荐