BLE静态密钥和动态密钥专题

在BLE中,什么是配对 ?配对做了什么?
配对就是蓝牙主从设备加密特性的交换,并创建临时密钥。
image
image
nordic的实现上,两台设别的配对的信息交换是通过配对请求和配对响应的。
image
image
image
image
image
image
image
image
image
image

看完上面的试验后,是不是感觉好乱,好多,脑瓜子记不住,先把大体的关键点理解一下吧。

什么是绑定
只有分配的密钥在设备的flash中存储下来,设备才处于绑定状态。
绑定在配对之后交换和保存长期密钥,用于以后的连接,配对不是永久的安全机制,绑定才是。
image
绑定是可选的,不是必须的,只是没有绑定时,每次通信都需要输入密码。

作为BLE从设备要完成配对功能,BLE从设备的设计方案是什么?BLE从设备要做什么事情 ?

密钥的功能是什么 ?
为了保证BLE的安全特征,BLE必须完成两件事情,首先必须相互配对,其次,连接一旦加密,
设备必须分配用于加密并对消息进行验证的密钥,只要密钥被保存下来,设备就处于绑定
状态了。

对服务加密
BLE的配对过程中,如果没有输入密码,也可以接入链路中发数据,因此需要对tx/rx的服务属性进行加密,
对通知属性加密,对写属性加密,对写无响应加密。

BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM(&cccd_md.write_perm); BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM(&attr_md.write_perm);
通过上面的代码可以实现在用nrf connect软件写数据时,要弹出密码输入框,输入密码后才能进行写操作。

动态密钥的原理
image
这个动态密钥的使用过程没有搞清楚,到底是主机发送给从机的还是从机发送给主机的?
如果是从机发送给主机的,那么主机收到动态密钥后,把这个密钥输入到手机上,这个流程是没问题的,但是从上图看来
是协议栈发给从机的,这里的协议栈指的是从机协议栈还是主机的协议栈 ?

要做一个数字钥匙产品,配对请求packet中OOB data flag是否要配置为1时 ?
image

我对静态密钥和动态密钥的理解:
怎么理解I/O能力
I0能力就是对应有没有键盘/显示屏等输入输出设备的场景。

交换密钥
交换哪些密钥?密钥长短?

配对的流程
配对有3个流程
1,配对信息交换
2,链路认证
3,密钥分配

第二次重连时和第一次连接的区别是什么?快在哪里?少了哪些步骤?
第二次重连时不需要启动整个配对过程,使用长期密钥。

说的直白一点,就是配对请求包paring request packet中各个字段的配置,软件主要做的就是这个。
密钥分配的过程,需要了解到这个过程是谁做的。

posted @ 2026-04-22 18:23  wzm888  阅读(2)  评论(0)    收藏  举报