BLE4.0配对绑定通讯过程解析
一、实验目的
1.了解配对与绑定过程的通讯概况
二、说明
1.连接:通讯的基础,通讯数据为明文;
2.配对:在连接的基础上,通讯数据经过加密为密文;
3.绑定:在每次重新连接后,不需要再次配对,通讯数据经过加密为密文;
三、实验平台
1、蓝牙协议栈:1.3.2
2、软件平台:IAR For 8051 8.10.3
3、抓包软件:SmartRF Packet Sniffer 2.16.3
【BLE4.0配对绑定通讯过程解析】4、硬件平台:Smart RF开发板(从机),BTOOL(主机),
四、实验步骤
一、配对认证过程
1.连接未配对之前,通讯数据是明文
2..主机发送配对请求给从机,配对请求配对信息和简单的密钥信息
3.从机接收到配对请求后,根据主机的配对能力和自己的配对能力作比较,由于从机只有显示能力,所以向主机发送密码请求
4.主机接收到从机的密码请求后,输入密码并发送给从机,从机设置的密码是123456,而主机发送过来的是851415(下图所示),所以密码不正确,从机对接收到主机的密码后,进行校验,如果密码不正确,直接触发认证完成事件(认证状态为authstatus=0x04 密码错误),从机请求断开连接(个人设定);
空中抓包,密码错误时的数据:
5.主机接收到从机的密码请求后,输入密码并发送给从机,从机设置的密码是123456,主机发送过来的是123456(下图所示)
从机对接收到主机的密码后,进行校验,如果密码正确,将发送当前认证信息(LTK等)给主机;
6.当主机接收到从机的认证信息(LTK)后,向从机发起加密请求,加密成功后,收到从机的回复(success)
空中抓包,主机向从机发起加密请求
7.加密成功后,通讯数据位密文;
二、绑定后通讯过程
1.每次连接时,从机会向主机发送安全请求,如果主从机相互绑定过,主机不会发送配对请求,主机直接利用绑定时保存的LTK发送加密请求,从机也会利用绑定时保存的LTK来做加密回复,三次握手成功后(加密成功,三次握手通讯由底层完成,用户不可见),从机回复主机加密状态success
空中抓包,绑定后再次连接的加密通讯,开始加密请求后,都是密文了(表示加密成功)
2.如果从机在与主机绑定后,从机删除绑定信息,再次连接时,主机利用绑定时保存的LTK发送加密请求,从机也会利用绑定时保存的LTK来做加密回复,实际上从机已经删除了绑定信息,所以加密不成功,从机回复status=0x06代表绑定信息丢失
空中抓包,绑定后从机删除绑定信息,再次连接时,开始加密请求后,加密失败,errorcode=0x06
空中抓包,加密失败后,不会断开连接(连接跟加密没有直接关系),通讯数据位明文
五、总结
1.配对认证:主从机一方提供密码,一方输入密码,如果双方密码一致,那么此密码将作为TK(临时密码);
2.加密链路:利用得到的TK(临时密码)等信息计算出STK(短期密码)用来做加密认证;
3.绑定:加密认证通过后,利用STK等信息生成LTK(长期密码),把LTK保存下来,用于下次连接时做加密认证,不需要再次配对就可以加密链路,这就是绑定了;
六、补充
1.此实验用到BTOOL作为主机,才能知道加密后的通讯数据,因为加密后,空中抓包是密文,看不到数据,APP也看不到数据,所以只能用BTOOL;
2.上述空中抓包看不到密文是因为版本是2.16.3的,现在官方最新版本2.18.1可以看到密文解析后的明文http://www.ti.com.cn/tool/cn/packet-sniffer#Technical
3.关于BTOOL的配对与绑定的操作,请参考文档CC2541 Evaluation Module Kit 的4.6章节
推荐阅读
- 7、前端--jQuery简介、基本选择器、基本筛选器、属性选择器、表单选择器、筛选器方法、节点操作、绑定事件
- 事件解绑与解绑的兼容代码
- 移动端事件绑定
- 1.块级作用域绑定
- 事件绑定的方式
- 如何理解vue数据双向绑定原理
- vuejs|vuejs 数据绑定原理
- 程序员|vue数据双向绑定,Android-MVP模式详解,附超全教程文档
- 备案后的域名如何与服务器绑定
- SAP|SAP UI5 初学者教程之十七 - 聚合绑定在 UI5 复合控件中的使用试读版