BLE4.0配对绑定通讯过程解析

一、实验目的

1.了解配对与绑定过程的通讯概况


二、说明

1.连接:通讯的基础,通讯数据为明文;

2.配对:在连接的基础上,通讯数据经过加密为密文;

3.绑定:在每次重新连接后,不需要再次配对,通讯数据经过加密为密文;


三、实验平台

1、蓝牙协议栈:1.3.2

2、软件平台:IAR For 8051 8.10.3

3、抓包软件:SmartRF Packet Sniffer 2.16.3

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章节


你可能感兴趣的:(BLE4.0)