蓝牙技术的安全漏洞及攻击方法分析
2016-11-19杨宏立徐嘉莹周新丽
杨宏立+徐嘉莹+周新丽
摘 要:蓝牙是一种在物联网领域广泛应用的短距离无线传输技术,文中介绍了蓝牙的安全体系并对不同版本蓝牙标准的安全漏洞进行了分析,总结出一些常见的对蓝牙传输进行攻击的方法。
关键词:蓝牙;无线网络;安全威胁;安全体系
中图分类号:TP39 文献标识码:A 文章编号:2095-1302(2016)10-00-03
0 引 言
在当前的网络应用中,物联网具有对物品多样性、低成本、低速率、短距离等特征的泛在需求,这类需求主要通过蓝牙等低速网络协议实现。蓝牙是一种短距离通信开放标准,利用嵌入式芯片实现通讯距离在10 m100 m之间的无线连接。蓝牙的设计目标在于通过统一的近距离无线连接标准使各生产商生产的个人设备都能通过该网络协议更方便地实现低速率数据传输和交叉操作。蓝牙技术具有低成本、低功耗、模块体积小、易于集成等特点,非常适合在新型物联网移动设备中应用。
1 蓝牙技术的安全体系
1.1 四级安全模式
1.1.1 安全模式1
安全模式1无任何安全机制,不发起安全程序,无验证、加密等安全功能,该模式下设备运行较快且消耗更小,但数据在传输过程中极易被攻击。蓝牙V2.0及之前的版本支持该模式。
1.1.2 安全模式2
安全模式2是强制的服务层安全模式,只有在进行信道的逻辑通道建立时才能发起安全程序。该模式下数据传输的鉴权要求、认证要求和加密要求等安全策略决定了是否产生发起安全程序的指令。目前所有的蓝牙版本都支持该模式,其主要目的在于使其可与V2.0之前的版本兼容[1]。
1.1.3 安全模式3
安全模式3为链路层安全机制。在该模式下蓝牙设备必须在信道物理链路建立之前发起安全程序,此模式支持鉴权、加密等功能。只有V2.0以上的版本支持安全模式3,因此这种机制较之安全模式2缺乏兼容性和灵活度。
1.1.4 安全模式4
该模式类似于安全模式2,是一种服务级的安全机制,在链路密钥产生环节采用ECDH算法,比之前三种模式的安全性高且设备配对过程有所简化,可以在某种程度上防止中间人攻击和被动窃听。在进行设备连接时,和安全模式3一样先判定是否发起安全程序,如需要则查看密钥是否可用,密钥若可用则使用SSP简单的直接配对方式,通过鉴权和加密过程进行连接[1]。
建立连接的安全模式机制流程图如图1所示。
1.2 密钥管理
1.2.1 链路密钥
链路密钥是128 b的随机数,由伪随机数RAND和个人识别码PIN、设备地址通过E21或E22流密码算法启动。其中初始密钥及组合密钥经初始化过程生成后作为临时链路密钥在设备间完成鉴权后就被丢弃。主密钥可以用于设备在微微网内进行加密信息的广播,在发送广播信息时主密钥会替代原来的链路密钥。单元密钥生成后在蓝牙设备中会被保存且会一直应用于链路通信。
1.2.2 加密密钥
完成鉴权的蓝牙设备可以在通信中使用加密密钥来加密传递的数据。该密钥由对称加密算法E3算法产生,字长为128 b,由伪随机数RAND、鉴权过程产生的加密偏移数COF和当前链路密钥K生成。蓝牙采用分组加密的方式,加密密钥和其他参数(主体设备的设备地址、随机数、蓝牙时钟参数)通过E0算法产生二进制密钥流从而对传输数据进行加密、解密。密钥的生成如图2所示。
1.3 鉴权
鉴权的目的在于设备身份的认证,同时对参数传递是否成功进行反馈,它既可以是单向过程也可以是相互鉴权,但都需要事先产生链路密钥。被鉴权设备的设备地址、鉴权的主体设备产生的随机数以及链路密钥都参与其中,由此产生应答信息和鉴权加密偏移值,前者被传递至主体设备进行验证,若相同则鉴权成功。若鉴权失败则需要经过一定长度的等待时间才能再次进行鉴权[2]。鉴权过程如图3所示。
2 已知的蓝牙安全漏洞
2.1 跳频时钟
蓝牙传输使用自适应跳频技术作为扩频方式,因此在跳频系统中运行计数器包含28位频率为3.2 kHz的跳频时钟,使控制指令严格按照时钟同步、信息收发定时和跳频控制从而减少传输干扰和错误。但攻击者往往通过攻击跳频时钟对跳频指令发生器和频率合成器的工作产生干扰,使蓝牙设备之间不能正常通信,并且利用电磁脉冲较强的电波穿透性和传播广度来窃听通信内容和跳频的相关参数[3]。
2.2 PIN码问题
密钥控制图中的个人识别码(PIN)为四位,是加密密钥和链路密钥的唯一可信生成来源,两个蓝牙设备在连接时需要用户在设备中分别输入相同的PIN码才能配对。由于PIN码较短,使得加密密钥和链路密钥的密钥空间的密钥数限制在105数量级内,并且在使用过程中若用户使用过于简单的PIN码(如连续同一字符)、长期不更换PIN码或者使用固定内置PIN码的蓝牙设备,则更容易受到攻击[4]。因此在V2.1之后的版本中PIN码的长度被增加至16位,在增大了密钥空间,提高了蓝牙设备建立连接鉴别过程的安全性的同时,也不会因为使用太长的数据串为通信带来不便。
2.3 链路密钥欺骗
通信过程中使用的链路密钥基于设备中固定的单元密钥,而加密过程中其他信息是公开的,因此有较大漏洞。如设备A和不同设备进行通信时均使用自身的单元密钥作为链路密钥,攻击者利用和A进行过通信的设备C获取这个单元密钥,便可以通过伪造另一个和A通信过的设备B的设备地址计算出链路密钥,伪装成B来通过A的鉴权,B伪装成C亦然[5]。
2.4 加密密钥流重复
加密密钥流由E0算法产生,生成来源包括主体设备时钟、链路密钥等。在一个特定的加密连接中,只有主设备时钟会发生改变。如果设备持续使用时间超过23.3小时,时钟值将开始重复,从而产生一个与之前连接中使用的相同的密钥流[6]。密钥流重复则易被攻击者作为漏洞利用,从而得到传输内容的初始明文。
2.5 鉴权过程/简单安全配对中的口令
除使用个人识别码PIN进行配对以外,蓝牙标准从V2.1版本开始,增加了简单安全配对SSP(Secure Simple Pairing,SSP)方式。SSP方式比之前的PIN码配对更方便,不像PIN码配对那样需要两个有输入模块的配对设备同时输入配对密码,而SSP只需要有输出模块的两个配对设备确认屏幕上显示的是否是同一个随机数即可。通过设备搜索建立蓝牙物理连接,产生静态SSP口令,鉴权这四步即可建立连接,但是这种关联模型没有提供中间人攻击保护,静态SSP口令很容易被中间人攻击攻破[7]。
3 蓝牙技术的安全威胁
针对蓝牙的攻击威胁大体上可以分为两种,一种是对不同无线网络均适用的攻击,一种是针对蓝牙特定的攻击。
3.1 拒绝服务攻击
拒绝服务攻击(DoS)的原理是在短时间内连续向被攻击目标发送连接请求,使被攻击目标无法与其他设备正常建立连接。蓝牙的逻辑链路控制和适配协议规定了蓝牙设备的更高层协议可以接收和发送64 KB的数据包,类似于ping数据包,针对这个特点,攻击者可以发送大量ping数据包占用蓝牙接口,使蓝牙接口不能正常使用,并且一直使蓝牙处于高频工作状态从而耗尽设备电池[8]。DoS攻击流程图如图4所示。
3.2 中间人攻击
在两个设备之间的攻击者截获数据一方发送的数据后再转发给另一方,可在不影响双方通信的情况下获得双方通信的内容,是一种广泛应用于无线网络的攻击方式。蓝牙4.0版本的低功耗蓝牙技术(Bluetooth Low Energy,BLE)在设计初始时有防范中间人攻击的安全措施,但是在产品阶段考虑到产品功耗成本等因素,这方面并没有得到足够的重视,依然容易受到攻击[9]。最常见的是用软硬件结合的蓝牙攻击设备伪造BLE通信进行中间人攻击。中间人攻击示意图如图5所示。
3.3 漏洞窃听
蓝牙窃听可以通过对蓝牙漏洞的攻击来实现,蓝牙中的OBEX (Object Exchange)协议,即对象交换协议在早期的蓝牙产品规范中没有强制要求使用权鉴,所以攻击者可以利用此漏洞在被攻击者手机没有提示的情况下链接到被攻击手机,获取对手机内各种多媒体文件以及短信通话记录等文件的增删改权限,甚至可以通过手机命令拨打接听电话。具有这些攻击功能的指令代码被黑客写成了手机软件,可在网络上下载。普通人一般会使用图形化界面去操作,某些山寨手机中甚至自带这项功能,当和别的手机配对成功后即可获得对方手机的操作权限。不过随着蓝牙技术的不断提升,针对早期蓝牙漏洞的攻击现在已经越来越少见。
3.4 重放攻击
重放攻击的原理是监听或者伪造双方通信的认证凭证,经过处理后再回发给被攻击方进行认证。蓝牙传输过程中有79个信道,攻击者可以通过监听信道、计算跳频时序、回放已授权设备的口令来进行攻击。V4.2的标准中已经增加了防止重放攻击的协议。
3.5 配对窃听
蓝牙V2.0及之前更早版本默认的4位PIN码很容易被暴力破解,因为低位数字排列组合的方式十分有限,蓝牙V4.0的LE配对同理。攻击者只要监听到足够的数据帧,就可以通过暴力破解等方式确定密钥,模拟通信方,实现攻击目的。
3.6 位置攻击
每个蓝牙设备都有唯一的6字节序列号作为设备地址,这种序列标识由于在使用过程中不发生改变很容易泄露设备的位置信息。攻击者可以根据蓝牙的调频连接机制和寻呼机制、设备标识符和其他通信参数获得被攻击者设备的地理位置[7]。
3.7 简单配对模式攻击
蓝牙V2.0规定的SSP安全简单配对连接方式并不安全,是由于使用了静态口令而无法防止中间人攻击,并且一旦攻击者取得了口令,在一段时间内可以用此口令进行持续性攻击。
4 结 语
随着物联网技术在制造业、农业以及家居设备等方面的快速推广,蓝牙的应用前景不可小觑,但也面临着较大的挑战。因此我们期待在未来的蓝牙标准设计中可进一步实施必要的安全策略,同时在使用蓝牙设备进行传输时,也应提高蓝牙设备使用的安全意识,尽量使用最强的安全模式。
参考文献
[1]张超,蔚俊刚.蓝牙安全体系的研究与实现[J].仪器仪表用户,2012,19(2):99-100.
[2]田新建.关于蓝牙安全机制的进一步研究[D].重庆:重庆大学,2003.
[3]唐婧壹.蓝牙安全策略研究[J].山西电子技术,2011(2):85-86.
[4]张俊.蓝牙技术及其安全机制研究[J].电脑知识与技术,2008,3(27):1941-1942.
[5]谭凤林,葛临东.蓝牙安全机制分析[J].信息工程大学学报,2002,3(2):76-78.
[6]Guideto Bluetooth Security. NISTSP800-121(修订1)[Z]. 2012(1).
[7]严霄凤.蓝牙安全研究[J].网络安全技术与应用,2013(2):51-54.
[8]Analysisofa Denial of Service Attackon TCP[EB/OL. http: //www.cs.unc.edu/~jeffay/courses/nidsS05/attacks/schuba-ieee-secpriv97.pdf.2003.
[9]狄博,刘署.关于蓝牙技术安全机制的研究[J].计算机工程与设计,2003,24(9):61-63.