1、信息安全课程作业蓝牙通信协议的安全问题分析与改进设计学 院: 计算机学院 专 业: 通信与信息系统 年 级: 2012级 学 号: 2012021495 学生姓名: 尹恒 指导教师: 李秦伟 目录摘要1第一章 绪论21.1 研究背景及现状21.1.1 蓝牙技术背景21.1.2 蓝牙技术研究现状21.1.3 蓝牙信息安全面临的威胁31.2 论文内容和要做的工作4第二章 蓝牙技术概况52.1 蓝牙技术简介52.2 蓝牙的特点52.3 蓝牙通信协议62.3.1 蓝牙协议体系62.3.2 蓝牙核心协议62.3.2.1基带层62.3.2.2 中间链路层72.3.2.3 高端应用层8第三章 蓝牙安全机制分
2、析及其改进93.1 蓝牙安全机制93.1.1应用层的安全机制93.1.2 链路层的安全机制93.1.3射频和基带的安全机制103.2 蓝牙链路层安全问题分析与改进方案113.2.1 PIN码安全问题分析及其改进方案113.2.2 鉴权安全问题分析及改进方案123.2.3 蓝牙设备地址安全问题分析与改进方案153.2.4 蓝牙E0算法安全问题及改进方案15第四章 蓝牙应用层增强技术18第五章 总结215.1 工作总结215.2下一步工作21参考文献23致谢24 摘要蓝牙作为一种短距离低功耗无线通信技术,得到了市场的广泛认可,越来越受到人们的青睐。但是随着蓝牙技术被人们广泛的接受,其应用领域的不断
3、扩大和深入,它自身存在的许多问题被一一暴露出来。其中的安全、共存、抗干扰和网络容量问题现在成为了蓝牙技术研究的热点。而本文主要探讨了蓝牙无线通信的安全性问题。本文先对蓝牙标准中的若干关键技术进行了深入研究,然后通过分析蓝牙安全机制,指出了其中的不足之处,最后分析这些不足之处并提出了相应的解决方案。具体研究工作如下:首先分析了蓝牙技术的背景和研究现状,然后一一列出蓝牙信息安全面临的威胁。接着通过对比研究蓝牙通信协议和标准网络通信协议的异同,得出了一个有利于分析安全机制的蓝牙协议层次划分。再根据这种层次划分,研究了蓝牙的蓝牙链路层的安全问题,包括PIN码、鉴权、蓝牙设备地址、E0算法,并就这四个方
4、面着重讨论了蓝牙安全体系中存在的一些安全漏洞并提出相应的解决方案。最后在蓝牙应用层上提供一些安全措施,对用户的通信内容进行保护。关键词: 蓝牙,安全,PIN码,鉴权,加密,E0算法第一章 绪论1.1 研究背景及现状1.1.1 蓝牙技术背景1995年,瑞典爱立信公司率先提出了蓝牙概念,然后于1998年诺基亚、爱立信、IBM、英特尔和东芝等通信公司共同发起了一个全新的、短距离、低功耗的无线技术标准蓝牙(Bluetooth),并共同创立了蓝牙共同利益集团(Bluetooth SIG)。使用蓝牙技术可以替代现有的各种IT设备之间的无线接口,为小型移动设备的无线联网提供了一种解决方案。蓝牙技术意在建立一
5、种全球规范的数据通信与语音通讯的技术标准,其关键特性是:一种建立在低成本之上的无线连接;一种可以在固定设备与移动设备、移动设备与网络连接设备等之间建立的无线通信;这种通信可以方便的连接入因特网。其实质是建立一个共同的无线通信技术标准,使因特网的进一步整合固定设备和移动设备,使得依靠现代技术发展起来的各种轻易携带的移动设备,可以不必依赖固定线路就能够连接上因特网。在更大范围内,电冰箱、微波炉、汽车和餐厅电子点菜单等等其它各式各样的设备也可以通过蓝牙连接与计算机网络进行互联,组成一个巨大的无线通信网以便实现智能化操作。1.1.2 蓝牙技术研究现状自从蓝牙共同利益集团创立以来,蓝牙技术的发展异常迅速
6、。蓝牙共同利益集团以开放技术标准的方法来促使更加多厂商和组织加入蓝牙技术联盟,蓝牙共同利益集团已经成为一个全球性的技术标准化组织,全球范围内使用蓝牙技术的3000多家各种厂商已经加盟,现在已经改名为蓝牙推广集团。中国蓝牙技术发展与应用论坛是我国主要的蓝牙技术讨论平台。中国蓝牙技术发展与应用论坛的参与者多来自企业界、学术界、政府信息部门、各类科学研究单位的工程师、专家、企业家、教授和领导,还有众多的关注蓝牙技术的各界人士。国内的一些制造商与科研机构也积极参与到蓝牙技术标准的制定和推广,论坛经常组织国内各界与蓝牙推广集团SIG的代表举行一系列的专门技术会议,就双方所共同关注的问题进行了认真的讨论,
7、并就双方今后进一步加强联系、共享蓝牙技术信息资源、共同促进蓝牙技术在中国推广与应用等问题达成了一系列共识。1.1.3 蓝牙信息安全面临的威胁随着蓝牙技术的日趋成熟通信速率的提高、蓝牙芯片集成度的提升和系统开发成本的降低等,其表现出巨大的市场前景,其发展异常迅猛。但是该技术的应用还面临着一些问题:蓝牙在许多方面建立了安全机制,但它的安全性还不是很完备,可能会遭遇到许多方面的攻击。在数据通信安全性要求较强的场合,蓝牙的安全性能还存在一定的问题,尚需进一步的改善;蓝牙工作在全球开放的频段,在这个频段上存在多种干扰源无线局域网、RFID、无绳电话和微波炉等,这么多彼此各异相互无关的信号如何共存;蓝牙存
8、在点到点和点到多点两种连接方式,多个蓝牙节点可以组成微微网和散射网,如何利用现有的蓝牙节点,组建各种样式的网络,优化组网性能,提高整个系统的吞吐量;众多芯片厂商设计了多款蓝牙芯片,提供了多种应用方案。如何挑选合适的蓝牙芯片和应用方案、搭建通信平台和缩短开发时间,是软硬件开发人员所面临的挑战;蓝牙基带设计上,如何达到低功耗、减少对处理器的依赖和支持在线升级等;蓝牙射频端,研究包括收发机、功率放大器和天线等,主要研究在带宽和功率受限的情况下,如何提高射频系统效率。在目前的市场上存在多种短距离无线通信标准,蓝牙面临激烈的竞争无论是在频谱资源上,还是市场占有率上。解决上述问题对于蓝牙继续在短距离无线通
9、信上保持领先的地位,具有决定性的影响。目前蓝牙技术主要的研究热点就是针对上述蓝牙现存的问题上的,可以归纳为共存(coexistence)、安全(security)、服务质量(Quality of service)、应用(Applications)、基带与射频设计和组网(Network)。其中安全性研究主要集中在改进蓝牙安全性算法和鉴权算法上面。本课题研究工作主要是针对安全性这一方面的,通过分析蓝牙现有的安全性机制,提出了通过链路层和应用层增强技术提高蓝牙系统安全性。1.2 论文内容和要做的工作本论文主要分析蓝牙通信协议的安全问题并提出了改进措施。本论文各章的结构安排如下:第一章,绪论。主要描述
10、蓝牙的研究背景和研究现状,然后列出蓝牙信息安全所面临的威胁。第二章,概述蓝牙技术。首先对蓝牙的几个关键特点进行了介绍,然后研究了蓝牙通信协议。第三章,蓝牙的安全性机制分析和改进。主要对链路层安全进行探讨,从PIN码、鉴权、蓝牙设备地址、E0算法4个方面进行分析,提出通过链路层和应用层增强技术来提高蓝牙系统的安全性能。第四章,蓝牙应用层增强技术。从加密算法的角度,从四个方面对用户进行通信的保密。第五章,总结。对整个论文工作进行总结。总结了本人课题研究内容,并指出下一步需要完善的工作。第二章 蓝牙技术概况2.1 蓝牙技术简介随着计算机网络和移动电话技术的迅猛发展,人们越来越迫切需要发展一定范围内的
11、无线数据与语音通信。而在当今的计算机和通信领域里,非公开性的新技术很少能够成功,因为消费者更愿意购买和使用那些符合工业标准的技术产品。正是在这种工业大环境下,以爱立信为首,由五家 IT 界巨人联合提出了一种短距离无线数字通信的技术标准,旨在创立一项软、硬件结合的公开规范,为所有不同设备提供具备互操作性、可交叉开发的工具,这个工具便是蓝牙技术。2.2 蓝牙的特点蓝牙技术的特点主要体现在以下几个方面。(1)全球范围使用:蓝牙工作在2.4GHz的ISM(Industry、Science、Medicine)频段,全球大多数国家ISM频段范围是2.42。4835GHz,使用该频段无须向各国的无线电资源管
12、理部门申请许可证。(2)可以传输语音和数据:蓝牙同时采用了电路交换和分组交换两种交换技术,支持一路数据信道,最多三路语音信道及数据和语音同时传输的信道。(3)组网灵活:根据蓝牙设备在网络中的角色不同,可以将其分为主设备和从设备。在建立连接时,主动发起连接请求的为主设备,响应方为从设备。几个蓝牙设备可以连接建立成一个微微网,在一个微微网中只能有一个主设备,一个设备最多可以带7个从设备。(4)抗干扰能力强:由于工作在ISM频段的设备很多,如家用微波炉、Wi-Fi设备以及Home RF设备等。为了抵抗来自这些设备的干扰,蓝牙技术采用跳频的方式来扩展频谱。(5)体积小,便于集成到其他设备中:目前大多数
13、个人移动设备的体积都很小,而且许多电子设备的体积也有进一步小型化的趋势,这就要求嵌入到这些设备内部的蓝牙模块体积更小,蓝牙芯片的封装尺寸已经缩小到不到16mm。(6)功耗低:蓝牙设备在连接状态下,有4种工作模式:激活(Active)、呼吸(Sniff)、保持(Hold)和休眠(Park)。Active模式是正常的工作模式;Sniff模式下从设备周期性的被激活;Hold模式下从设备停止监听来自主设备的数据分组;park模式下主从设备仍然保持同步,但从设备已经不需要保留其激活成员地址。后3种模式为节能模式,在这3种节能模式中,Sniff模式的功耗最高,对于主设备的响应最快,Park模式的功耗最低,
14、对于主设备的响应最慢。定义出这3种节能模式就是为了尽可能降低蓝牙的功耗。(7)开放的协议标准:全世界范围内的任何单位和个人都可以进行蓝牙产品的开发,只要最终能通过SIG的蓝牙产品兼容性测试,其蓝牙产品就可以推向市场。(8)低成本、应用范围广:蓝牙芯片的量产价一般低于5美元。蓝牙技术的应用越来越广泛了,大量种类的手机和计算机实现了蓝牙功能,人们可以通过手机上的蓝牙进行手机上或者计算机上资料的互相传送。2.3 蓝牙通信协议2.3.1 蓝牙协议体系蓝牙的核心协议包括基带层、中间链路层、应用层等三部分。我们先介绍其中的基带层协议,再介绍中间链路层协议,最后介绍高端应用层和蓝牙通信协议所包括的其它应用层
15、协议,从此我们可以看出蓝牙通信协议也是一个标准的网络通信协议,所以以上的分类很类似 OSI 的层次分类。2.3.2 蓝牙核心协议2.3.2.1基带层基带层是蓝牙核心协议的核心基础部分,所有使用蓝牙技术的设备都必须记过基带层才能进行通信。通常所说的基带层其实是一个狭义的定义,真正广义上的基带层由链路管理 LMP(Link Manager Protocol)(这个是基带层的链路管理协议,与中间链路层的有所不同)、基带层BB(Base Band)和射频RF(Radio Frequency)组成。各部分的分工是:链路管理(LMP)负责蓝牙网络节点之间通信细节。LMP首先在网络条件和物理状态允许下,对已
16、经通过了连接请求和应答状态的两个或两个以上的蓝牙网络节点通信时传输的各种数据进行管理,包括了分组大小,密钥大小,密钥的等级等方面,它为网络的上一层提供了不同的访问接口;LMP 使用初始分组划定基带数据分组;LMP 还负责蓝牙移动系统的许多硬件细节,基本上除RF之外的所有硬件细节都归它管理,LMP是使到整个基带层成为一个完整网络层的关键。射频RF则是专门负责管理与频段有关的模块,并且对通过跳频发送的数据,进行一定抗干扰处理;RF还可以管理蓝牙移动系统使用的各个频段本身的应答措施。基带层(BB)由同步面向连接链路(Synchronous Connection Oriented SCO)和异步无连接
17、链路(Asynchronous Connection Less ACL)两个相互对称的部分组成,BB 负责除了已由LMP和RF管理的传输部分,主要针对所有的网络分组进行前向纠错码(Forward Error Correction FEC)或循环差错校验(Cyclic Redundancy Check CRC),这个也是由OSI 规定的链路层完成的任务,但是在蓝牙网络协议中由基带层来完成;基带层中除了以上三个物理与网络意义上的模块,还有一个很重要的模块就是:蓝牙主机控制器接口(Host Controller Interface HCI)。HCI 是由基带管理器、连接管理器和事件管理器等三个部分组
18、成。HCI 是基带层中联系软硬件之间的接口,可以为中间链路层或者高端应用层直接提供了基带层的 BB、LMP、RF 等的软件接口,比如我们可以在软件上面指定本蓝牙节点的网络 IP 改变时间,或者自主设定发送的数据包的分组大小,任何软硬件之间的明文密文以及服务指令的下达都是必须由 HCI 的转发才能被执行的。其中软件的运行结果直接由蓝牙移动系统的系统软件控制,而且可更改性大,硬件的运行结果由蓝牙移动系统的 CPU 控制,用户不可以直接修改,所以两个层次之间的通信是间接的,而不是直接的。2.3.2.2 中间链路层中间协议层由逻辑链路控制与适配协议(Logical Link Control and A
19、daptation Protocol L2CAP)、服务发现协议(Service Discovery Protocol SDP)、串口仿真协议(Serial port emulation protocol SPEP)和电话控制协议(Telephony Control protocol Specification TCS)组成。中间链路层最重要的协议是逻辑链路控制与适应协议(L2CAP)。L2CAP位于中间数据链路层的核心位置,此协议是作为高层应用层协议从基带层和链接层直接抓取数据而专门设立的一个适配协议。L2CAP首先根据预定分组大小对网络数据包进行封装、不足位的数据包则补位完成。然后与基带层
20、进行协商,对安全的数据包进行标识,再与某些高端应用协议通信,最后以高端应用协议返回的要求进行再次封装,将符合发送条件的分组向应用层发送,并且保持与应用层的通信,随时接受应用层的反馈。L2CAP 这些功能很重要,基本上应用层操作底层的硬件和底层的请求服务都通过 L2CAP 的分派与转发。在中间链路层中,业务搜寻协议(SDP)是另外一个重要的组成部分,它是每个蓝牙网络节点查询的基础。通过SDP,可以查询设备信息、服务及服务条件,SDP 会在查询之后建立两个或多个蓝牙网络节点之间的查询通道并保持链接。改变 SDP的设定条件,可以得到 3 种不同的查询方式:服务条件查询、服务种类查询和信息内容查询。这
21、三种查询方式都是基于 C/S 模式的应用。串口仿真协议是为了在无线网络上模拟有线数据网络数而采用的,它是依据ETSI标准而设置的串口仿真协议。串口仿真协议分别在基带层和中间链路层上仿真RS-232的传输特性和数据包分派特征,使到上层应用层可以忽略基带层的无线网络特征,直接使用经串口仿真协议仿真输出的各项网络信息。TCS 是一个基于比特数据流的协议,它是为了蓝牙技术融入到电话系统中而设立,它包括了语音数据和视频数据两个部分,这两个部分的功能类似串口仿真协议,都是转变并封装基带层传递过来的信息以便应用层直接使用这些信息。2.3.2.3 高端应用层应用层位于蓝牙移动系统的最上层,所以定义为高端应用层
22、。而高端应用层的核心部分是选用协议层。选用协议层中的点到点传输协议(Point-to-Point Protocol PPP)是由链路层控制协议、网络流量控制协议两个协议组成,它的主要作用是规定点到点传送中数据的传输规范;无线应用协议(Wireless Application Protocol WAP)作为早已存在的无线网络通信协议,原来的作用是在电话系统上实现因特网接入服务,现在蓝牙协议将其完整的移植过来,作为蓝牙系统连接因特网的一种协议方式。当然应用层还包括了传输控制协议/网络层协议(TCP/IP)、用户数据报协议(User Datagram Protocol UDP)和对象交换协议(Obj
23、ect Exchange Protocol OBEX),这四个协议无论是在固定网络还是无线网络中都是必要的,而且由于中间链接层和高端应用层中的某些协议的转换功能,这四个协议无需修改就可应用于蓝牙协议栈。根据每个协议的功能,完整的蓝牙协议又可划分为四层:核心协议层(BB、LMP、LCAP、SDP)、线缆替换协议层(RFCOMM)、电话控制协议层(TCS-BIN)、选用协议层(PPP、TCP、TP、UDP、OBEX、IRMC、WAP、WAE)。但是这样的层次划分对于本文的研究方向帮助不大,所以本文还是按照基带层、中间链路层和高端应用层来划分,这样的层次结构有助于分析各分组在不同的传送阶段的安全特性
24、和处于的不同的安全模式。第三章 蓝牙安全机制分析及其改进无线通信信号很容易被跟踪、截取和篡改,安全性威胁比有线通信更为严峻;而蓝牙的基带与射频的带宽有限,加密和认证信息不能太多,否则会影响到系统有效传输速率;蓝牙无线通信在安全保护方面存在这些特殊的困难,因此蓝牙 SIG在蓝牙规范中提供了一系列安全机制来增强蓝牙无线通信的安全性。本章首先介绍了蓝牙的安全机制。在此基础上,主要对蓝牙链路层相关安全问题进行分析。最后对蓝牙链路层安全机制提出了一些改进的方法。3.1 蓝牙安全机制蓝牙协议采取的安全机制适用于水平对等方式的通信验证,即在同一协议层蓝牙设备双方以相同方式实现身份认证和数据加密。蓝牙网络的安
25、全体系主要有:应用层的安全机制、链路层的安全机制、射频和基带的安全机制。蓝牙协议在基带层采用的跳频技术在一定程度上保证了微微网组网时的安全,蓝牙协议也在链路层和应用层设置了比较可靠的安全机制。3.1.1应用层的安全机制在蓝牙的体系结构中,底层应用安全和高层应用安全是互不干涉、彼此分开的,即底层并不了解也并不需要了解应用层的安全。基于 L2CAP 之上的应用层的安全机制,不同的协议也可以对自己的安全策略进行加强保护。安全管理器在应用层的安全机制中起重要作用:蓝牙设备实体间访问请求与答复;蓝牙设备实体连接时彼此间的认证;对设备的基本信息进行存储和查询;对服务应用等相关安全信息的存储和查询;手机蓝牙
26、设备用户在进行链路连接时 PIN 码的输入也是一种安全机制。3.1.2 链路层的安全机制蓝牙的跳频技术虽然对防止窃听起一定作用,但仅是这种保护是不够的。蓝牙协议在最初的设计已经考虑到了这一点,所以在蓝牙协议中建立了链路级安全机制,主要包含了设备间身份认证和传输数据进行加密两个功能。在链路层中,蓝牙规范中设计了 3 种安全模式:(1)非安全模式。不采用信息安全管理和不执行安全保护及处理,当设备上运行一般应用时使用它。在该模式中,设备避开链路层的安全功能,可任意访问不含敏感信息的数据库。(2)业务层安全模式。蓝牙设备在L2CAP层建立信道之后采用信息安全管理并执行安全保护和处理。这种安全机制建立在
27、L2CAP中和它之上的协议中,该模式可为多种应用提供不同的访问政策,可并行运行安全需求不同的应用。(3)链路层安全模式。是指蓝牙设备在LMP层建立链路的同时就采用信息安全管理和执行安全保护及处理,这种安全机制建立在芯片中和LMP(链路管理协议)基础上。在该模式中,链路管理器(LM)在同一层面上对所有的应用强制执行安全措施。安全模式2与安全模式3的本质区别在于:安全模式2下的蓝牙设备在信道建立以前启动安全性过程,也就是说,它的安全性过程在较低层协议进行。3.1.3射频和基带的安全机制射频是指介于声音频率和红外频率之间的电磁波频率。蓝牙射频采用调频扩频技术,载波中心频率每秒改变1600次,接收方在
28、与发送方保持收发定时同步的同时还要知道控制频率改变的伪随机序列的规律。蓝牙射频规范定义了接收机灵敏度、跳频频率、调制方式、发射功率、蓝牙射频频段等参数。蓝牙设备发送数据时,基带部分将来自高层协议的数据进行信道编码,向下发送给射频;接收数据时,将射频传来的数据进行信道解码,传送给高层协议。在蓝牙技术中将2.4GHz通信频段分成79个通信频道,调频技术可以使每个时隙上发送的数据,从一个频道跳到另一个频道上。跳频扩频会使窃听变得困难,攻击者即使知道了链路密钥或加密密钥,但也必须同步记录下在链路建立连接期间的79个跳频信道。蓝牙跳频速率是1600 次/秒,比一般的跳频速率高。所以蓝牙系统的跳频机制对于
29、来自其它设备传输干扰起到了一定的保护作用。蓝牙设备正常的发射功率是1100mW,在通常操作环境中的10mW,但是在特定的情况下需采用面向传输以更高的输出功率到达更远的距离。攻击者就可以利用物理攻击的方法将其能源耗尽。为了防御这种攻击,蓝牙安全体系定义了3 种节能状态,即休眠状态、保持和呼吸状态。3.2 蓝牙链路层安全问题分析与改进方案由于蓝牙技术的设计目标是低成本和高效率,因此在设计目标和安全目标之间作了折中,蓝牙系统提供的安全性并不高。对于家用电器等对安全性要求不太敏感的应用,蓝牙系统提供的安全性已经足够了;但对于对安全性要求较敏感的场合比如银行系统等,蓝牙系统所提供的安全性就显得有点不足。
30、链路层安全是蓝牙系统总体安全中重要的一环,故其安全问题不容忽视。蓝牙链路层的安全问题包括PIN码、鉴权、蓝牙设备地址、E0算法这四个方面,以下将会对这4个重要的安全问题一一进行分析,并给出相应的改进措施。3.2.1 PIN码安全问题分析及其改进方案两个蓝牙设备开启以后,设备双方要初始化一个通信链路通道,用户双方必须先协商相同的PIN码,再进行输入匹配,这样两个设备的通信链路成功建立。在实际应用中人们常采用四位十进制数字作为PIN 码,当使用四位十进制数字作PIN码时,只有10000种可能的组合,其密钥空间太小。再加上统计显示人们所使用的PIN码中一半为蓝牙系统的默认值0,这就使得初始字的可信度
31、相当低,攻击者很容易得到PIN 码。由此,蓝牙网络中PIN码存在着安全隐患,蓝牙PIN码是否安全在链路通信过程中占据至关重要的位置,如何防御PIN码攻击是本节的主要内容。那么一般攻击者是怎样获得两设备配对时的PIN 码的呢?基本方法就是穷举法,一般假定PIN 码比较短,比如16位(即四位十进制数)。当然为了提高穷举效率,攻击者会把用户最可能用的PIN码编成字典,优先试探字典中的PIN码。由于蓝牙链路层采取了一些保护措施,如果用户第一次输入的PIN码不正确,只有等待一段时间才能进行第二次输入。随着输入不正确次数的增加,等待时间将会呈指数形式增加。这可以抵制试探性攻击,防止攻击者短时间内试探多个P
32、IN码,显然攻击者不能进行在线攻击,攻击者一般采用离线攻击。首先攻击者要记录下两蓝牙设备一次通讯的全过程,即两蓝牙设备所传递的所有信息。如果这次是两蓝牙设备的第一次通讯,并且所使用的PIN码比较短,攻击者就有可能获得PIN码,进而获得两蓝牙设备的公共链路字。由于两蓝牙设备第一次通讯时要进行配对并产生链路字,当然攻击者也记录下了这个过程。攻击者可以用一个猜测的PIN码,申请者(两蓝牙设备配对时一个为申请者,另一个为检验者)的蓝牙设备地址以及检验者发送给申请者的随机数经 E22 算法计算出一个初如字。然后用申请者的蓝牙设备地址、检验者发送给申请者的随机数及刚才计算出的初始字作为蓝牙鉴权算法 E1的
33、输入,计算出一个应答值。接着用这个应答值与申请者发送给检验者的应答进行比较,若两者相同,则此PIN码即为两蓝牙设备的PIN 码;若不相同,则从字典中另选一PIN码重复上述过程。显然在人少的地方(比如家里)对蓝牙设备进行配对是对付离线攻击最有效的方法,攻击者记录不了两蓝牙设备的配对过程,就不能实施离线攻击,只能采取在线攻击。蓝牙协议对在线攻击有很好的保护,攻击者很难得逞。很多时候用户是无法选择配对地点的,比如用蓝牙设备在银行开户时,你总不能要求银行人员在你家里开户吧!这时怎样才能提高蓝牙设备的安全性呢?第一当然尽量在人少的时候开户;第二就是选择好的PIN码(像我们平时所用的密码一样),尽量不要用
34、生日、电话号码之类的PIN 码;第三也是最重要的是要选择长的PIN码,长的PIN码是对付穷举法的有效方法。但是长的PIN码的会使用户使用起来很不方便特别是在组网时每次都要输入一长串难记的字符,令人难以忍受。怎样管理 PIN码成了蓝牙用户普遍关心的问题。我们可以采用应用级的密钥交换技术来管理长的PIN 码问题,这样在连接时就不必让用户手工输入PIN码了。我们可以考虑 Diffie-Hellman 密钥交换算法。Diffie-Hellman 算法的有效性依赖于计算离散对数。其安全性依赖于下列事实:虽然计算模一个素数的指数相对容易,但计算离散对数却很困难。对于大的素数,计算离散对数被认为是不可行的。
35、3.2.2 鉴权安全问题分析及改进方案鉴权的主要作用是身份识别,通过鉴权一个蓝牙设备可以确定它所连接的设备是否是它想要通信的设备。通过鉴权后,一个设备可以赋予另一个设备一定的权利,使它能享有相应的服务。可见鉴权在蓝牙安全系统中意义重大,鉴权过程安全与否一直受到人们的重视。由于鉴权过程和后面的数据传输是分开的,同时鉴权过程又没有时间戳和定时或着加入消息摘要,蓝牙设备收到信息后不能辨别所收到的信息是新的信息还是过时的信息,所以鉴权过程易受“中间人”攻击。一般蓝牙设备间中间人攻击的过程主要包括:会话劫持,消息篡改,冒充对方身份在认证过程中转发认证消息等步骤。中间人攻击主要是通过欺骗的手段使正在进行认
36、证的蓝牙设备手段信任中间人发送的认证消息,从而分别与两个受害设备进行正常的数据传输。两个蓝牙设备在相互建立身份认证连接时容易发生中间人攻击,正在通信的两个蓝牙设备在认证的过程中不是与对方建立的相连接而是与中间人攻击的设备上,中间人分别与两个正在通信和蓝牙设备连接并在这两个受害蓝牙设备之间转发和篡改通信消息,分别与两个蓝牙设备完成正常连接等相关工作,实现认证后分别接收与发送两蓝牙设备间的数据。中间人攻击严重危害着蓝牙网络的数据传输安全。在链路层认证过程存在的两种中间人攻击,中间人重放攻击:在攻击者计算出跳频时序的前提下,先窃听蓝牙设备连接过程中传递的认证消息,再伪造一个相同的请求消息发向响应设备
37、,攻击重新与通信的双方建立连接,实现了在认证过程实施重放攻击。中间人篡改攻击:由于蓝牙设备间的鉴权机制较弱,存在很大安全隐患,中间人攻击者在计算出跳频时序后,中间人窃听蓝牙设备间传递的认证消息后,攻击者将消息进行篡改从而对主设备和从设备进行双重欺骗,主、从设备都误以为对方是“从”、“主”设备进行认证。在两蓝牙设备认证过程中存在中间人攻击。通过证书机制来防御设备间中间人攻击,即在系统中设立一个专门的认证中心CA ,主要负责为每个设备签发证书,设备双方通过颁发的证书与数字签名来互相验证对方的身份,此方法可以避免中间人攻击。这种方法在互联网网络中可以防御中间人的攻击。但是在蓝牙网络中,由于蓝牙网络拓
38、扑结构节点少、动态性强的特点,如果将证书机制引入,就需要能够建立所有通信的蓝牙设备作为唯一的、可信任的第三方认证设备。在蓝牙网络中,如果引入第三方认证CA系统时,会影响蓝牙网络中设备间的工作效率的。由于蓝牙协议的缺陷,就会存在蓝牙设备与第三方认证系统认证过程的攻击,所以第三方认证CA系统的引入为蓝牙网络增加了安全隐患。数字签名认证技术要求第三方认证系统必须具有完整的CA体系为基础,不但设计复杂而且高成本,所以这种认证技术不适于在蓝牙网络中作为第三方认证来使用。用于鉴别用户身份,主要通过提供一个可信第三方来负责网络中通信双方的认证,通讯双方借助 Kerberos 提供的可信第三方证书来进行彼此身
39、份认证。若将 Kerberos 用于蓝牙网络中,在每个蓝牙设备组成的网络中,都需要一个实时在线的可信第三方来进行身份认证,这对于易组网、短距离传输的蓝牙设备来说不容易实现,蓝牙协议的特点决定要用简单、有效、易实现的方法来进行认证。基于口令的安全认证协议一直被用于网络连接中中间人攻击的防御中,以Schnorr 协议和S/KEY协议为代表的一次性口令认证技术,在应用的过程中需要借助智能卡来存储认证消息并进行消息处理,而移动通讯携带蓝牙设备在应用的过程中,对蓝牙设备的便携性及灵活性要求较高,因此在手机蓝牙设备上使用智能卡会影响手机整体性能的使用,从而影响到用户的使用需求。根据蓝牙网络的特点,上述几种
40、防御中间人攻击的方法,并不适用于蓝牙网络中。根据蓝牙协议的特点和网络信息安全的要求,可采用加盖时间戳、加入定时、加入消息摘要的设计方案防御中间人攻击。时间戳引入到认证的过程中,由于每次提供的时间戳不同,所以在规定的时间里无法进行中间人重放攻击。时间戳可用来检测消息重及实现有时间限制的访问特权以及检测强迫延时。根据时间戳唯一性和及时性的特性,在方案的实施过程中,运用加入两次相同的时间戳并进行比对是否相等的方法,来判断传递的消息是否新鲜性以及是否被攻击者篡改的问题。另一个比较简单的方法就是在鉴权过程中引入定时概念。我们可以在检验者向申请者发送鉴权随机数后开始一个定时,定时超时将视为鉴权失败。这也可
41、以防止重放攻击。我们知道,蓝牙系统采用时分复用来进行信息传输,一个设备只有在特定的时隙才能收发信息。由于攻击者与另一设备建立连接需要一些时间另外攻击者同时参与两个网络,两个网络的时隙不一定对齐,攻击者在两网络间切换时也要浪费一些时间。因此从攻击者收到检验者发送的随机数到发送应答信息到检验者中间经历了很长一段时间;而正常鉴权时。申请者收到鉴权随机数后,下一个时隙就可以发送应答信息,考虑到干扰情况发送应答信息也用不了几个时隙,比攻击者用的时间要少得多。因此只要定时参数选得合理,这种方法就可以有效抵制重放攻击而不影响正常的鉴权过程。为了防止蓝牙设备间在通信过程其消息被中间人篡改,防御的方案中还可引入
42、消息摘要算法。消息摘要是一个唯一对应一个消息或文本的固定长度的值,它是利用单向Hash函数对数据块进行提取数据块某些关键信息的运算生成。响应的蓝牙设备通过比对接收的消息摘要与原始消息摘要是否相同,从而辨别双方传递的消息是否在通信的过程中被篡改,是否是完整的消息。消息摘要的长度不会随信息的大小而改变,消息摘要是随机的、不可逆的,信息微小的变化通过消息摘要后,结果都会大相径庭。3.2.3 蓝牙设备地址安全问题分析与改进方案我们知道,每一蓝牙设备都有一个全球唯一的遵循IEEE802标准的48位地址,人们常用蓝牙设备地址来标识蓝牙设备。由于蓝牙设备地址的唯一性,如果一个特定的蓝牙设备属于一个特定的人,
43、那么这个人的习性和活动就会和该设备地址有很高的关联性。而蓝牙设备地址又是公开的,人们可以通过人机接口(Man Machine Interface, MMI)的交互取得,也可以通过蓝牙的查询规则自动获得。当一个蓝牙设备和另一个蓝牙设备进行通信时,人们很容易发现这个蓝牙设备地址。如果跟踪和监视这个设备地址,比如在什么时间什么地方出现,就会使该设备的所有者的隐私权处于易受攻击的地位。怎么解决这个问题呢?很自然人们会想到用周期性地改变蓝牙设备地址来抵制跟踪问题。但是蓝牙设备地址又不能随便更改,要保持蓝牙地址的唯一性,至少应该是局部唯一性,这样可以防止在一个散射网或匹克网里出现两个地址相同的蓝牙设备,导
44、致混乱。我们可以指定一些机构专门从事蓝牙地址的管理工作,就像管理因特网的域名一样。需要更改蓝牙地址的用户到指定机构处申请,管理机构从可用的蓝牙设备地址库中随机选出一个蓝牙设备地址分配给申请者。同时收回申请者的原蓝牙设备地址。为了充分利用蓝牙设备地址,我们可以把收回的蓝牙设备地址放入可用蓝牙地址库以备下一次利用。但是更改蓝牙设备地址也会给鉴权和加密带来影响,因为鉴权和加密都是基于蓝牙设备地址。蓝牙是对设备鉴权而不是对用户鉴权,更改了蓝牙地址就等于换了一台新设备,以前与其他蓝牙设备确立的关系已不存在,需重新确立。因此更不更改蓝牙设备地址要根据应用而定,对于安全性要求不高的应用不要盲目更改。为了搞高
45、安全性,当蓝牙设备已经建立连接而又不想建立新的连接时,应将蓝牙设备设为不可查询不可连接状态,这样蓝牙设备将不响应查询和呼叫。3.2.4 蓝牙E0算法安全问题及改进方案E0 算法是蓝牙链路层的加密算法,属于流加密方式,即将数据流与密钥比特流进行异或运算。对每一分组的有效载荷的加密是单独进行的,它发生在CRC校验之后,FEC 编码之前。主要原理是利用线性反馈移位寄存器产生伪随机序列,从而形成可用于加密的密钥流,然后将密钥流与要加密的数据流进行异或,实现加密。解密时把密文与同样的密钥流再异或一次就可得到明文。流密码算法主要的缺点在于若一个伪随机序列发生错误便会使整个密文发生错误,致使在解密过程中无法
46、还原回明文。流加密算法系统的安全完全依靠密钥流发生器的内部机制。如果它的输出是无穷无尽的0序列,那么密文就是明文,这样整个系统就一文不值;如果它的输出是一个周期性的16位模式,那么该算法仅是一个可忽略安全性的异或运算;如果输出的是一系列无尽的随机序列(是真正的随机,非伪随机),那么就有一次一密乱码本和非常完美的安全。实际的流密码算法的安全性依赖于简单的异或运算和一次一密乱码本。密钥流发生器产生的看似随机的密钥流实际上是确定的,在解密的时候能很好的将其再现。密钥流发生器输出的密钥越接近于随机,对密码分析者来说就越困难。然而,这种随机的密钥流却不容易得到。E0算法是蓝牙无线通信技术用于链路层加密的
47、流密码算法。该算法和大多数流加密算法一样,采用多组LFSR并对输出进行有记忆或无记忆的混合,从而达到输出随机位加密流的目的。对于流密码算法一般采用已知一段加密流并利用其重新导出 LFSR 的初始值的方法进行攻击。具体的攻击方法是假设一些 LFSR 的初始值,推导出其他LFSR 所具备的约束条件,从而降低攻击的时间复杂度。针对E0算法的缺点,蓝牙的安全性算法应该利用SAFER+加密算法,提高跳频序列族的安全性,进而加强蓝牙无线通信安全性。SAFER+作为AES首轮15个候选算法之一,由密码学家James L.Massey所设计。用户选择密钥长度128、192或256比特,明文和密文分组长度均为1
48、28比特。用 SAFER+构成的跳频序列发生算法如图3-1所示。图3-1 调频序列发生算法ToD为单调递增的时间序列值,address为通信方地址,可以通过扩展或者压缩,将它们作为128比特的明文输入;密钥KEY为长度128、192或256比特固定的比特值,可以通过用户指定或者是通信方的地址位变换得到。经过SAFER+算法加密得到密文,再根据跳频信道数,通过相应的比特转换最终得到跳频序列族。SAFER是AES的一个候选算法,它的设计按照AES征集算法的要求,分组长度为 128比特,用户选择密钥长度可为128,192或者256比特。根据AES的要求,SAFER+算法的安全性至少和三重DES一样,它的安全性能是非常高的;在密钥长度确定为128 比特情况下,若采用密钥穷尽法攻击该分组密码的复杂度为。SAFER+算法中的混淆层由两轮“混