蓝牙通信协议的安全问题分析与改进设计(编辑修改稿)内容摘要:

CAP 位于中间数据链路层的核心位置,此协议是作为高层应用层协议从基带层和链接层直接抓取数据而专门设立的一个适配协议。 L2CAP 首先根据预定分组大小对网络数据包进行封装、不足位的数据包则补位完成。 然后与基带层进行协商,对安全的数据包进行标识,再与某些高端应用协议通信,最后以高端应用协议返回的要求进行再次封装,将符合发送条件的分组向应用层发送,并且保持与应用层的通信,随时接受应用层的反馈。 L2CAP 这些功能很重要,基本上应用层操作底层的硬件和底层的请 8 求服务都通过 L2CAP 的分派与转发。 在中间链路层中,业务搜寻协议( SDP)是另外一个重要的组成部分,它是每个蓝牙网络节点查询的基础。 通过 SDP,可以查询设备信息、服务及服务条件, SDP 会在查询之后建立两个或多个蓝牙网络节点之间的查询通道并保持链接。 改变 SDP 的设定条件,可以得到 3 种不同的查询方式:服务条件查询、服务种类查询和信息内容查询。 这三种查询方式都是基于 C/S 模式的应用。 串口仿真协议是为了在无线网络上模拟有线数据网络数而采用的,它是依据 ETSI 标准而设置的串口仿真协议。 串口仿真协议分别在基带层和中间链路 层上仿真 RS232 的传输特性和数据包分派特征,使到上层应用层可以忽略基带层的无线网络特征,直接使用经串口仿真协议仿真输出的各项网络信息。 TCS 是一个基于比特数据流的协议,它是为了蓝牙技术融入到电话系统中而设立,它包括了语音数据和视频数据两个部分,这两个部分的功能类似串口仿真协议,都是转变并封装基带层传递过来的信息以便应用层直接使用这些信息。 高端应用层 应用层位于蓝牙移动系统的最上层,所以定义为高端应用层。 而高端应用层的核心部分是选用协议层。 选用协议层中的点到点传输协议( PointtoPoint Protocol PPP)是由链路层控制协议、网络流量控制协议两个协议组成,它的主要作用是规定点到点传送中数据的传输规范;无线应用协议( Wireless Application Protocol WAP)作为早已存在的无线网络通信协议,原来的作用是在电话系统上实现因特网接入服务,现在蓝牙协议将其完整的移植过来,作为蓝牙系统连接因特网的一种协议方式。 当然应用层还包括了传输控制协议 /网络层协议( TCP/IP)、用户数据报协议( User Datagram Protocol UDP)和对象交换协议( Object Exchange Protocol OBEX),这四个协议无论是在固定网络还是无线网络中都是必要的,而且由于中间链接层和高端应用层中的某些协议的转换功能,这四个协议无需修改就可应用于蓝牙协议栈。 根据每个协议的功能,完整的蓝牙协议又可划分为四层:核心协议层( BB、 LMP、LCAP、 SDP)、线缆替换协议层( RFCOMM)、电话控制协议层( TCSBIN)、选用协议层( PPP、TCP、 TP、 UDP、 OBEX、 IRMC、 WAP、 WAE)。 但是这样的层次划分对于本文的研究方向帮助不大,所以本文还是按照 基带层、中间链路层和高端应用层来划分,这样的层次结构有助于分析各分组在不同的传送阶段的安全特性和处于的不同的安全模式。 9 第三章 蓝牙安全机制分析及其改进 无线通信信号很容易被跟踪、截取和篡改,安全性威胁比有线通信更为严峻;而蓝牙的基带与射频的带宽有限,加密和认证信息不能太多,否则会影响到系统有效传输速率;蓝牙无线通信在安全保护方面存在这些特殊的困难,因此蓝牙 SIG 在蓝牙规范中提供了一系列安全机制来增强蓝牙无线通信的安全性。 本章首先介绍了蓝牙的安全机制。 在此基础上, 主要 对 蓝牙链路层相关安全问题进行分析。 最 后对蓝牙 链路层 安全机制提出了一些改进的方法。 蓝牙安全机制 蓝牙协议采取的安全机制适用于水平对等方式的通信验证 ,即在同一协议层蓝牙设备双方以相同方式实现身份认证和数据加密。 蓝牙网络的安全体系主要有 :应用层的安全机制、链路层的安全机制、射频和基带的安全机制。 蓝牙协议在基带层采用的跳频技术在一定程度上保证了微微网组网时的安全 ,蓝牙协议也在链路层和应用层设置了比较可靠的安全机制。 应用层的安全机制 在蓝牙的体系结构中 ,底层应用安全和高层应用安全是互不干涉、彼此分开的 ,即底层并不了解也并不需要了解 应用层的安全。 基于 L2CAP 之上的应用层的安全机制 ,不同的协议也可以对自己的安全策略进行加强保护。 安全管理器在应用层的安全机制中起重要作用 :蓝牙设备实体间访问请求与答复。 蓝牙设备实体连接时彼此间的认证。 对设备的基本信息进行存储和查询。 对服务应用等相关安全信息的存储和查询。 手机蓝牙设备用户在进行链路连接时 PIN 码的输入也是一种安全机制。 链路层的安全机制 蓝牙的跳频技术虽然对防止窃听起一定作用 ,但仅是这种保护是不够的。 蓝牙协议在最初的设计已经考虑到了这一点 ,所以在蓝牙协议中建立了链路级安 全机制 ,主要包含了设备间身份认证和传输数据进行加密两个功能。 在链路层中 ,蓝牙规范中设计了 3 10 种安全模式 : ( 1)非安全模式。 不采用信息安全管理和不执行安全保护及处理,当设备上运行一般应用时使用它。 在该模式中,设备避开链路层的安全功能,可任意访问不含敏感信息的数据库。 ( 2)业务层安全模式。 蓝牙设备在 L2CAP 层建立信道之后采用信息安全管理并执行安全保护和处理。 这种安全机制建立在 L2CAP 中和它之上的协议中,该模式可为多种应用提供不同的访问政策,可并行运行安全需求不同的应用。 ( 3)链路层安全模式。 是指蓝牙 设备在 LMP 层建立链路的同时就采用信息安全管理和执行安全保护及处理,这种安全机制建立在芯片中和 LMP(链路管理协议)基础上。 在该模式中,链路管理器( LM)在同一层面上对所有的应用强制执行安全措施。 安全模式 2 与安全模式 3 的本质区别在于:安全模式 2 下的蓝牙设备在信道建立以前启动安全性过程,也就是说,它的安全性过程在较低层协议进行。 射频和基带的安全机制 射频是指介于声音频率和红外频率之间的电磁波频率。 蓝牙射频采用调频扩频技术 ,载波中心频率每秒改变 1600次 ,接收方在与发送方保持收发定时同 步的同时还要知道控制频率改变的伪随机序列的规律。 蓝牙射频规范定义了接收机灵敏度、跳频频率、调制方式、发射功率、蓝牙射频频段等参数。 蓝牙设备发送数据时 ,基带部分将来自高层协议的数据进行信道编码 ,向下发送给射频。 接收数据时 ,将射频传来的数据进行信道解码 ,传送给高层协议。 在蓝牙技术中将 通信频段分成 79 个通信频道 ,调频技术可以使每个时隙上发送的数据 ,从一个频道跳到另一个频道上。 跳频扩频会使窃听变得困难 ,攻击者即使知道了链路密钥或加密密钥 ,但也必须同步记录下在链路建立连接期间的 79 个跳频信道。 蓝牙跳频速 率是 1600 次 /秒 ,比一般的跳频速率高。 所以蓝牙系统的跳频机制对于来自其它设备传输干扰起到了一定的保护作用。 蓝牙设备正常的发射功率是 1~ 100mW,在通常操作环境中的 10mW,但是在特定的情况下需采用面向传输以更高的输出功率到达更远的距离。 攻击者就可以利用物理攻击的方法将其能源耗尽。 为了防御这种攻击 ,蓝牙安全体系定义了 3 种节能状态 ,即休眠状态、保持和呼吸状态。 11 蓝牙链路层安全问题分析 与改进方案 由于蓝牙技术的设计目标是低成本和高效率 , 因此在设计目标和安全目标之间作了折中 , 蓝牙系统提供的安全性并 不高。 对于家用电器等对安全性要求不太敏感的应用 ,蓝牙系统提供的安全性已经足够了 ; 但对于对安全性要求较敏感的场合比如银行系统等 , 蓝牙系统所提供的安全性就显得有点不足。 链路层安全是蓝牙系统总体安全中重要的一环,故其安全问题不容忽视。 蓝牙链路层的安全问题包括 PIN 码、鉴权、蓝牙设备地址、 E0 算法这四个方面 ,以下将会对这 4 个重要的安全问题一一进行分析,并给出相应的改进措施。 PIN 码安全问题分析及其改进方案 两个蓝牙设备开启以后 ,设备双方要初始化一个通信链路通道 ,用户双方必须先协商相同的 PIN 码 ,再进行 输入匹配 ,这样两个设备的通信链路成功建立。 在实 际应 用中人们常采用四位十进制数字作为 PIN 码 , 当使用四位十进制数字作PIN 码时 , 只有 10000 种可能的组合 , 其密钥空间太小。 再加上统计显示人们所使用的PIN 码中一半为蓝牙系统的默认值 0, 这就使得初始字的可信度相当低 , 攻击者很容易得到 PIN 码。 由此, 蓝 牙网络中 PIN 码存在着安全隐患 ,蓝牙 PIN 码是否安全在链路通信过程中占据至关重要的位置 ,如何防御 PIN 码攻击是本 节 的主要内容。 那么一般攻击者是怎样获得两设备配对时的 PIN 码的呢。 基本方法就是穷举法 , 一般假 定 PIN 码比较短 , 比如 16 位 (即四位十进制数 )。 当然为了提高穷举效率 , 攻击者会把用户最可能用的 PIN 码编成字典 , 优先试探字典中的 PIN 码。 由于蓝牙链路层采取了一些保护措施 , 如果用户第一次输入的 PIN 码不正确 , 只有等待一段时间才能进行第二次输入。 随着输入不正确次数的增加 , 等待时间将会呈指数形式增加。 这可以抵制试探性攻击 , 防止攻击者短时间内试探多个 PIN 码 , 显然攻击者不能进行在线攻击 , 攻击者一般采用离线攻击。 首先攻击者要记录下两蓝牙设备一次通讯的全过程,即两蓝牙设备所传递的所有信息。 如果这次是两蓝牙设备的 第一次通讯,并且所使用的 PIN 码比较短,攻击者就有可能获得 PIN 码,进而获得两蓝牙设备的公共链路字。 由于两蓝牙设备第一次通讯时要进行配对并产生链路字,当然攻击者也记录下了这个过程。 攻击者可以用一个猜测的 PIN 12 码,申请者 (两蓝牙设备配对时一个为申请者,另一个为检验者 )的蓝牙设备地址以及检验者发送给申请者的随机数 inRAND 经 E22 算法计算出一个初如字 initK。 然后用申请者的蓝牙设备地址、检验者发送给申请者的随机数 auRAND 及刚才计算出的初始字作为蓝牙鉴权算法 E1 的输入,计算出一个应答值。 接着用这个应答值与申请者发送给 initK 检验者的应答进行比较,若两者相同,则此 PIN 码即为两蓝牙设备的 PIN 码;若不相同,则从字典中另选一 PIN 码重复上述过程。 显然在人少的地方 (比如家里 )对蓝牙设备进行配对是对付离线攻击最有效的方法 ,攻击者记录不了两蓝牙设备的配对过程 , 就不能实施离线攻击 , 只能采取在线攻击。 蓝牙协议对在线攻击有很好的保护 , 攻击者很 难得逞。 很多时候用户是无法选择配对地点的 , 比如用蓝牙设备在银行开户时 , 你总不能要求银行人员在你家里开户吧 !这时怎样才能提高蓝牙设备的安全性呢。 第一当然尽量在人少的时候开户 ; 第二就是选择好的PIN 码 (像 我们平时所用的密码一样 ), 尽量不要用生日 、 电话号码之类的 PIN 码 ; 第三也是最重要的是要选择长的 PIN 码 , 长的 PIN 码是对。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。