蓝牙安全管理SM的配对方法
28-bit随机数Srand,并使用这个Srand结合一些其他的输入,使用密码工具箱中c1计算出一个128-bit的Sconfirm值:
Sconfirm = c1(TK, Srand,
Pairing Request command, Pairing Response command,
initiating device address type, initiating device address,
responding device address type, responding device address)
然后Initiator将其计算的Mconfirm值通过Pairing Confirm包发送给Responder,而Responder也将其计算的Sconfirm值通过Pairing Confirm包发送给Initiator;
Initiator收到Sconfirm后,再将Mrand值通过Pairing Random包发送给Responder;
Responder收到Mrand值后计算它的Mconfirm值,再跟前面那个Initiator送过来的Mconfirm值进行比较,若不同说明配对失败了。若相同,则Responder也会将它的Srand值通过Pairing Random包发送给Initiator;
而Initiator也会计算收到的Srand值的Sconfirm值,并跟前面那个Responder送过来的Sconfirm值进行比较,若不同说明配对失败了,若相同,继续;
Initiator计算STK,并通知其Controller允许链路加密:
STK = s1(TK, Srand, Mrand)
纵观以上各过程,其实就是两者互送一个128-bit随机数用来生成STK。窃听者或攻击者只要知道TK,这步骤是很容易破解的。
LE Secure Connections的第二阶段
即LTK的生成,比Legacy pairing还是复杂很多的,这也是BT 4.2安全性要高很多的原因了。这部分这里只简单说明下内容,详细的过程需对照Spec的流程图了。
Public Key交换
Authentication阶段1-Just Works或Numeric Comparison
Authentication阶段1-Passkey Entry方式
Authentication阶段1-Out of Band方式
Authentication阶段2和LTK计算
BR/EDR, LE交叉Key引用
这部分是指蓝牙双模设备,且支持Secure Connections,配对Key其实可以相互共享使用的,这样可以省略掉一些重复配对,不过Key也有个换算的算法的,即密码工具箱中的h6。
- 仅用几分钱就能降低电磁干扰的设计(03-06)
- 基于蓝牙芯片的无线通信模块设计与开发(02-03)
- 蓝牙技术在组建无线局域网中的应用(06-12)
- 移动支付2.4 GHz频段Zigaee、蓝牙及WiFi三标准比较(06-06)
- 蓝牙技术未来发展更加注重低功耗和互联性(12-22)
- 低功耗蓝牙与专有射频技术在HID的应用概述(10-06)