ULP蓝牙技术的安全设计
3.3申请模式中加密会话设置
申请者浏览广播,找到相匹配的广播地址AA={A0,A1,…,A5},初始使用6字节完全随机地址(IRA)。
1.创建随机地址:发送HCI_Rand()命令到链路层(LL),返回HCI_Command_Complete(rand),
2.加密区分标识符(diverfier)密钥:发送设置加密命令到链路层HCI_Set_key(0x00,DHR),返回请求完成命令HCI_Command_Complete(),再发送加密请求命令HCI_Encrypt(addmaster),返回请求完成命令HCI_Command_Complete()。
由div计算出Ediv
由Y = EDHK (IRA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00)
得出Ediv = {Y0, Y1} XOR {div0, div1}
或者在PI=1的条件下,即匹配中由
Y = EPDHK (IRA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00)
得出Ediv = {Y0, Y1} XOR {div0, div1}
最后申请者请求一个连接,该连接建立过程如图4所示。
1.如果请求加密连接,则SEC 字段一直等于1;如果在申请者和广播设备间,扩展匹配继续进行,即PI字段设置为1。
2. 2字节的加密区分标识符密钥(Ediv),6字节的申请者随机地址(IRA)。
3.当连接已经建立,从广播中申请者得到一个10字节的随机向量(IRV)作为层协议数据单元PDU(类型0xFD),然后从长期密钥中,申请者创建会话密钥SK和设置初始值(IV)。
创建会话密钥SK:发送设置长期密钥命令HCI_Set_key(0x00,LTK)到链路层,返回完成命令HCI_Command_Complete(),再发送加密请求命令HCI_encrypt,返回完成创建会话密钥命令HCI_Command_Complete(SK),
,
即可表示为:
SK = (IRA,IRV),
IV = {IRA,A0,A1,A2}。
4.SK和IV被分配给链路层(LL),作为最后的步骤,LL操作中,申请者将初始化"连接模式变化"。
链路层设置会话密钥和初始值:分别发送命令HCI_Set_key(0x01,SK)和HCI_Set_IV(addr|addr[0…23])到链路层设置,返回完成设置命令HCI_Command_Complete()。
3.4密钥更新
安全连接建立之后,不支持密钥更新或者重建安全参数。唯一的例外就是匹配程序,在匹配的第一阶段后,匹配程序中的会话加密密钥和状态发生改变。
4匹配和密钥交换
本文的匹配算法有两个扩展模式,在前n个连接中密钥改变(如果攻击者错过一个更新,安全性提高)。第一个扩展模式尤其适合于移动设备,第二扩展模式是假定两个设备有相同的地址,干扰硬件攻击者,提高密钥的安全性,该模式适用于家庭等固定环境。
匹配分两个阶段执行。开始执行功能交换,使用开始匹配请求和开始匹配响应。第三阶段没有匹配。
4.1匹配和密钥交换的步骤
ULP蓝牙的匹配分三个阶段进行,其流程如图5所示。
第一阶段,成功匹配功能交换后,开始执行第一阶段操作。这一阶段不受加密保护,连接中直接进入扩展的状态(伴随着PI 字段设置为连接请求和SEC 字段关闭)。
第二阶段,在加密通道中执行匹配,受临时密钥或者第一阶段的结果或是早期扩展阶段的保护。该阶段的匹配可以直接输入(PI 字段设置为连接请求),在此保护通道中下面之一被执行:
1.传送长期密钥和认证(从未来的广播到未来的申请者)。
2.传送扩展(临时)密钥和认证(从未来的广播到未来的申请者),在扩展模式中,进行有限的密钥交换。
第三阶段,第三阶段和匹配无关,是正常的会话,并且使用了在第二阶段同样的密钥保护。注:广泛的与这个密钥通信可能会导致(取决于匹配机制)攻击。攻击长期密钥可能导致在第二阶段中提供的长期密钥长度少于128 bit。第三阶段提供方便和实用性的扩展模式,以及可能简单的设备。
总体层次规范定义了第三阶段的用处,如果没有定义任何第三阶段的用途,匹配的设备将终止匹配会话,用长期密钥建立新会话。
- 英飞凌MD8710:多样化应用程序医疗平台(11-20)
- ORIGOsafe智能电子产品强制汽车安全驾驶(02-19)
- 体验蓝牙4.0灯控LED趣味:智能手机“掌”控一屋子照明(07-16)
- Bluetooth 4.1:智能启用物联网(03-08)
- 可穿戴设备市场起飞,蓝牙Smart引爆设计热潮!(02-17)
- 智能戒烟,蓝牙4.0(BLE)智能电子烟方案(06-16)