SMP Overview
- 蓝牙的配对过程中,加密是核心步骤,SMP关乎到蓝牙通信的安全。
- 在固定信道0x0006中传输数据,0x0006 LE SMP(secure manager protocol)b
- 整个smp过程根据是否支持ble security connection,设备IO capabilities,是否支持OOB(out of band)总共分为6种情况,最终协商确定1种方式实现smp flow。
SMP 命令格式
如果支持LE security connect , L2CAP MTU = 65
否则 L2CAP MTU = 23
所有的交互从pairing request 开始,如果设备不支持smp,需要回复一个pairing fail event, 携带的reason为not support
超时
开启smp 之前,会起一个timer,
每次完成一个command ,smp timer 会被重置,重新计时
smp 结束之后,这个timer 需要被关闭
如果timer =30s,smp 仍未完成,smp timeout
SMP 流程
smp 过程大概分为四个部分
- step1. 交换信息
- step2. 产生STK/LTK,(short term key,long term key)
- step3. 在stk /ltk的基础上加密link
- step4. 在加密的link中分发 特殊的key
以下配图以LE legacy pairing为例说明:
step1:pairing feature exchange
在这一步中,分两种情况,从master发起或者从slave 发起,后半段操作并无区别。
master 收到slave 的request 之后,会主动发起pairing request。
举个例子
根据Secure co