2007年6月,Wibree技术被纳入蓝牙技术联盟(SIG),并更名为ULP(超低功耗)蓝牙【1】。它继承了传统蓝牙规范的优点,优化运用,且耗能更少,成本更低,用于小型设备件的简单的数据传输。
Wibree作为一项极低耗电量蓝牙技术成为蓝牙规格的一部分,是一种新的低功率无线技术, 为业界开拓了新的市场机会及创新空间。由于采用无线方式进行通信,因此,ULP蓝牙跟传统蓝牙一样面临传输数据被截获的危险。所以如何保证ULP蓝牙运用的安全,是ULP蓝牙技术设计的一个核心问题。
本文基于Bluetooth SIG的技术草案【2】,讨论了ULP蓝牙技术安全结构,介绍ULP蓝牙的地址生成,具体研究了ULP蓝牙的认证、密钥生成和匹配原理及相关过程。
2.ULP蓝牙的安全构架【3】
安全性是ULP蓝牙协议中必不可少的一部分,它提供使用的保护和信息保密。如图1所示,ULP蓝牙系统有三个逻辑组成部分:UIP控制器、ULP主机、HCI(主机控制器接口:介于UIP控制器与ULP主机之间,提供通信服务)。ULP控制器由物理层和链路层组成;ULP主机中主要是ULP的L2CAP协议;高层主要是应用层协议,多种剖面在高层中应用。而安全模块位于ULP控制器中的链路层和ULP主机的L2CAP协议中,由主机控制器提供控制和数据。
ULP蓝牙工作在2.4GHz的ISM(Industrial ScienTIfic Medical)频段,其工作的中心频率为2402+K*2MHz(K=0~39),即,工作频带宽度为2~3.5MHz。划分为40个物理信道,其中包括3个广播信道和37个数据信道。
结构中的链路层有两种工作状态:空闲状态和连接状态,并且,其链路层只能工作在一种工作状态下。同时,ULP蓝牙设备还有5种工作模式:广播模式,扫描模式,申请模式,主设备,从设备。
ULP L2CAP(Logic link control and adaptaTIon protocol)处于链路控制协议之上,属于数据链路层。L2CAP对上层协议可以提供面向连接和无连接数据服务。L2CAP允许高层协议和应用发送和接收最长64K字节数据包(L2CAP服务数据单元,SDU)。
链路层中的连接加密过程由ULP主机负责,而且它还包含一个由链路层独立负责的加密子进程。加密过程由HCI_Setup_EncrypTIon命令来初始化。使用这个命令后,主设备的ULP主机就表明了链路层连接了新的加密模式。只要有这样一个来自于ULP主机的命令,一个SEC_EMPTY_REQ数据包就会在链路层的连接上被传送.
在被用HCI_Command_Completed命令所表示的过程完成之前的时间当中,在HCI_Setup_EncrypTIon命令之后,不允许有来自于ULP主机的任何数据包。
3.ULP蓝牙认证及密钥生成过程
3.1 ULP蓝牙地址【4】
ULP蓝牙使用两种类型的地址:设备地址和存取地址,设备地址细分为公有和私有设备地址。每个ULP设备应该分配一个固定48bit的ULP蓝牙公共设备地址,而私有设备设置的地址是可选的。一个ULP设备只有在证明设备可靠性后,才显示其私有地址。每个链路层的连接有一个伪随机32bit的存取地址,由连接中的申请者产生,每个链路层连接有不同的存取地址。ULP蓝牙系统中,只能有一个数据包格式能在广播通道数据包和数据通道数据包中同时使用。如图2所示,每个数据包含4个实体:标头,同步字,PDU,和CRC。广播数据包中的同步字是固定的,数据通道中的数据包同步字是链路层连接的存取地址。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)