蓝牙技术安全性解析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

蓝牙技术安全性解析摘要:简要介绍蓝牙技术(IEEE802.15)的基本概念和原理,在此基础上重点分析蓝牙技术的两种安全模式,从抗网络攻击角度出发,提出完善蓝牙安全的一些策略和方法。关键词:蓝牙;协议栈;鉴别与加密;授权;自组网1蓝牙概述蓝牙(Bluetooth)是一项先进的短距离无线网络技术,遵循蓝牙协议的各类数据及语音设备能够用无须许可证的2.4GHzISM频段的微波取代电缆进行通信,从而解决小型移动设备间的无线互连问题。蓝牙(IEEE802.15)是一项最新标准,它是微微网(Piconet)形成和通信的基础,与802.11相互补充。在安全性方面,WAP和蓝牙一直被认为是互补的技术,蓝牙保证了物理层和无线链接层的安全性,而WAP则提供应用和传输层的安全性[1]。1.1微微网的拓扑结构蓝牙网络通信是一种基于邻近组网原则的对等通信,但链路级存在主从关系。一个微微网由一个单独的主控设备(Master)和邻近的从属设备(Slave)构成。多个微微网在时空上部分重叠,形成散列网(Scatternet)。典型散列网的拓扑结构如图1所示。图1散列网拓扑结构当微微网中的设备处于链接状态时,根据功率消耗和响应灵敏度使用四种基带模式。无链接状态时,基带处于待机(Standby)状态[2]。通过休眠成员地址(8位),微微网中主控设备可连接休眠的不超过255个的从属设备,但最多只能有7个处于激活状态;通过基带模式的转换,休眠设备可以获得活动成员地址(AM—ADDR,3位)重新进入活动状态。基带的具体模式由链路管理器控制。1.2蓝牙协议栈蓝牙技术规范的核心是协议栈,该协议栈允许多个设备进行相互定位、连接和交换数据,并实现互操作和交互式的应用。蓝牙协议栈及安全体系结构如图2所示。图2蓝牙协议栈及安全体系结构图传输协议组所包含的协议主要用于蓝牙设备的相互定位,并能创建、配置和管理物理和逻辑链路,方便高层协议传输数据。中间协议组包括SIG为蓝牙制定的协议和第三方及业内一些标准协议,如串行短口仿真协议(RFCOMM)和服务发现协议(SDP)等。应用组包含使用蓝牙的实际应用。1.3蓝牙模块蓝牙通信技术的特征主要通过蓝牙模块体现(如图3)。蓝牙无线收发系统是一个用GFSK技术实现跳频扩频(FHSS)的无线系统。收发双方只有知道频率同步的算法才能进行数据交换。蓝牙设备地址(BD—ADDR)和蓝牙设备时钟(内时钟)是蓝牙所有操作的两个最基本要素。前者决定跳频序列的相位(Phase);后者是蓝牙设备最稳定的实体,确定跳频序列。设备发送的基带分组数据单元(BB—PDU)包含三个部分:接入码(AccessCode)、头部和净荷(Payload),所含的接入码主要用来识别和同步微微网;通过链路管理器协议(LMP),链路管理器之间非实时交换报文LMP—PDU来控制链路,进行传输调度和链路管理,如安全管理(设备鉴别和链路加密)、功率管理和QoS管理等。2蓝牙安全模式分析如图2所示,蓝牙协议的一般接入应用中定义了三种安全模式:模式1无安全机制;模式2服务级;模式3链路级。安全模式2与安全模式3的本质区别在于:安全模式2下的蓝牙设备在信道建立以后启动安全性过程,即其安全性过程在较高层协议进行;安全模式3下的蓝牙设备在信道建立以前启动安全性过程,即其安全性过程在低层协议进行。模式2中的安全性管理器主要包括储存安全性信息、应答请求、强制鉴别和(或)加密等关键任务。设备的三个信任等级和三种服务级别[3],分存在设备数据表和服务数据表中且由安全管理器维护。下面先分析针对模式3的鉴别(Authentication)和加密;再说明模式2机制的授权(Authorization)。2.1密钥管理设备之间的所有安全事务都由链路密钥来处理,它用于鉴别和作为一个参数来产生加密密钥。链路密钥分临时密钥和半永久性密钥,后者在一个共享该密钥的设备通过鉴别后仍能用;前者仅在一对多的连接上传播相同信息(广播)时使用,用完后即被丢弃。链路密钥(Klink)可以是合成密钥、设备密钥、主控设备密钥和初始密钥(Kinit),具体要依赖于当前应用的类型。PIN的长度一般是4~16字节,用于产生Kinit;在产生Klink的过程中,该Kinit用来进行密钥交换,Klink一旦产生,Kinit即被丢弃。数据加密密钥由Klink决定。2.2鉴别与加密假设两台设备进行通信,图4表示蓝牙鉴别与加密的模型,该模型主要步骤可用下列过程简要描述(顺序略有不同):(1)匹配(Pairing)创建链路密钥(Klink)系统根据询问/应答(Challenge/Response)创建Klink,基本步骤如下:a)初始化密钥的创建A→B:Rand;表示设备A产生一个随机数RAND,并发向设备B,下同。A:Klink=E22(Rand,BD—ADDRb,PIN);表示设备A用流密码E22算法根据系数计算Klink,下同。B:Klink=E22(Rand,BD—ADDRb,PIN);b)设备密钥作为链路密钥(用于网内广播)IF设备A没有设备密钥THENA:KA=E21(Rand,BD—ADDRA)A→B:KAXORKinitc)合成密钥作为链路密钥(点对点)A:HA=E21(BD—ADDRA,RANDA);B:HB=E21(BD—ADDRB,RANDB);A→B:RANDAXORKinit;A←B:RANDBXORKinit;A:HB=E21(BD—ADDRB,RANDB);B:HA=E21(BD—ADDRA,RANDA);A:KAB=HAXORHB;B:KAB=HAXORHB;(2)用当前链路密钥(Klink)来鉴别A→B:RAND;A:MAC1=Hash(Klink,RAND,BD—ADDRB,6);B:MAC2=Hash(Klink,RAND,BD—ADDRB,6);A←B:MAC2[0,*,3];A:CheckIFMAC1[0,*,3]=MAC2[0,*,3]THENACO=MAC1[4,*,15];(3)鉴别后加密密钥的产生A:IF当前链路密钥是主控设备密钥THEN加密偏移数COF=串联两个主控设备BD—ADDR;ELSECOF=鉴别加密偏移数ACO;A→B:RAND;A:Kencrypt=Hash(Klink,RAND,COF,12);B:Kencrypt=Hash(Klink,RAND,COF,12)。图4蓝牙鉴别与加密的模型2.3加密通信流密码E0算法用由(3)产生的加密密钥进行通信数据加密,具体过程如图5所示。蓝牙数据加密系统对每个数据包的净荷(Payload)进行加密,这通过硬件由流密码E0完成。2.4服务级安全策略安全模式2能定义设备和服务的安全等级。蓝牙设备访问服务时分可信任、不可信任和未知设备。可信任设备可无限制地访问所有服务,不可信任设备访问服务受限,未知设备也是不可信任设备。对于服务定义了三种安全级别:1)需要授权和鉴别的服务,只有可信任设备可以自动访问服务,其它设备需要手动授权;2)仅需要鉴别的服务,授权是不必要的;3)对所有设备开放的服务,授权和鉴别都不需要。通过鉴别的设备对服务或设备的访问权限取决于对应的注册安全等级[1],各种服务可以进行服务注册,对这些服务访问的级别取决于服务自身的安全机制,因而这也是蓝牙本身的不足。图5数据加密流程图3自组网攻击分析安装了蓝牙的设备,在一定距离内形成一个自组网(adhocnetwork),典型的结构如图1所示。这种网络有一些不同于固定网的安全特性,它没有固定的节点和框架,网中设备能充当路由器来中转信息到发送端不能直接到达的节点上。根据蓝牙两种安全模式的分析和自组网动态而复杂的拓扑结构,自组网可能会遭到以下类型的攻击:·鉴别攻击鉴别是基于设备间相同链路密钥的共享。如果链路密钥是初始化密钥,那么每次通信都依赖于PIN。PIN一般是一个4个数字的数,这使得密钥空间只有10,000个值,攻击者用穷举法很容易获得PIN。如果链路密钥由设备密钥产生,则会产生冒充攻击等。在使用设备密钥作为链路密钥的方案里,如果设备A和设备B通信,然后又和设备C通信。既然A和C使用A的设备密钥,假设A和B使用相同的密钥,那三个设备使用相同的密钥,且能够相互冒充身份。·加密攻击一种攻击是基于PIN弱点的。在匹配创建链路密钥的过程中,入侵者截取第一次握手过程中的通信数据包,为了推导出各种相关参数包括链路密钥,对PIN尝试强力攻击(Brute-forceAttack)。另一种攻击是基于加密算法。链路级的加密算法一般都采用流密码系列算法E0、E1、E21、E22和E3,这种算法加密速度快,易用硬件实现,但是没有块密码强健,易受到反折攻击(ReflectionAttack)。·通信攻击一种通信攻击是“冒充”。这种攻击扫描并记录下有效用户的移动标识号(MIN)和电子序列号(ESN),攻击者用MIN和ESN发出呼叫,通知那些没有对此引起怀疑的用户。蓝牙规范中,数据帧有三处要被编辑[3]。用这些修改伪造过的数据帧,攻击者伪造用户的ID并发出呼叫,用编码扰频器搞乱用户和网络的通信,或以中转方式,重发先前的会话帧破坏被攻击者的重要数据。·跳频攻击虽然跳频(FH)攻击方案较为困难,但是跳频本身有一些易遭攻击的弱点。蓝牙设备里运行着一个28位的内时钟,破坏性攻击者可以用低能量激光(LEL)或电磁脉冲(EMP)来破坏时钟,使其不能和其它设备通信,但这种攻击可能性较小。电波的强度、穿透性、全方位传播和蓝牙设备的中转使得设备通信的范围扩大,使攻击者容易偷听到网络和通信的相关信息,包括跳频算法和相关参数。4鲁棒自组网安全策略的完善针对以上分析,可以从以下几个方面来完善蓝牙技术规范,增强其安全性。1)跳频伪随机数发生器和电源管理方式蓝牙安全策略的基点之一是跳频发射时所用的伪随机数。要增强抗攻击性和抗干扰性,须优化硬件跳频算法和相关参数,选择产生周期长、不呈明显模式和点分布均匀的方法来产生伪随机数,保证跳频序列的高随机性,增强抗攻击性。蓝牙电源管理不仅和跳频有关,还和设备的其它硬软件功能有关。除了会影响蓝牙的所有功能外,还会影响频率选择模式FSM。优化硬件电源管理方式,可增加设备间相互调节功率的能力,减轻电源管理攻击对频率选择模式FSM的影响。使用适当的射频功率,从而可适当减小可侦听电磁波的范围,最大程度上确保不被偷听和攻击。2)加密管理增加蓝牙设备存储(密钥或PIN)能力,避免使用内置固定PIN的蓝牙设备;增加PIN的长度,上层应用程序限制适当的密钥长度下限,增大密钥值空间,从而增加对PIN强力攻击的难度;提高更换PIN的频率,避免弱密钥加密方案;少用设备密钥作为链路密钥,多使用合成密钥作为链路密钥;经常更换链路密钥。优化白化(Whitening)算法,增加净荷数据扰码后的随机性,降低发送数据的DC偏置值。增大线性反馈移位寄存器LFSR的周期,改进流密码的算法,或采用块密码等其它较适合算法,重新设计加密硬件。3)查询策略硬件上优化设计,减少发送频率合成器的切换时间;优化退让机制(算法),避免多个设备对查询ID分组响应时发生冲突而多次重传数据包,降低重传率,减少建立连接前各种连接参数的过分暴露。4)服务安全与服务发现在链路级安全的基础上,完善服务注册机制,增加和完善中间组件和应用程序本身的安全策略;增强应用服务自身的安全性,减轻服务攻击。优化服务发现协议(SDP),减少SDP无线接口上的数据通信量,提高其灵活性,避免延长整个通信过程的初始化时间,降低功率消耗,使SDP能提供一套强壮而全面的服务发现和访问机制。5)路由管理在蓝牙中间组件组或应用组中增加更安全的路由协议,优化散列网的路由算法,保证网络中转访问过程中数据的安全,避免中转攻击,降低设备功率消耗。6)鉴别的本地化安全策略在蓝牙体系结构中增加授权认证CA和授权发布中心CDC的功能[4],采用RSA方案或Diffie-Hellman密钥一致协议[4],解决用户的身份认证和密钥的确立,完善自组网络的安全,避免冒充攻击。5结论蓝牙技术及其安全性随着它的应用越来越受到重视。蓝牙无线

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功