1. 蓝牙简介
蓝牙(Bluetooth)是一种无线技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换(使用2.4~2.485 GHz的ISM波段的UHF无线电波)。
如今,蓝牙由蓝牙技术联盟(SIG,Bluetooth Special Interest Group)管理。蓝牙技术联盟在全球拥有超过25000家成员公司,它们分布在电信、计算机、网络和消费电子等多重领域。IEEE将蓝牙技术列为IEEE 802.15.1,但如今已不再维持该标准。蓝牙技术联盟负责监督蓝牙规范的开发,管理认证项目,并维护商标权益。制造商的设备必须符合蓝牙技术联盟的标准才能以“蓝牙设备”的名义进入市场。蓝牙技术拥有一套专利网络,可发放给符合标准的设备。
在各大手机厂商以及 PC 厂商的推动下,几乎所有的移动设备和笔记本电脑中都装有蓝牙的模块,用户对于蓝牙的使用也比较多。
蓝牙用于在不同的设备之间进行无线连接,如连接计算机和外围设备(打印机、键盘等),又或让个人数码助理(PDA)与其他附近的 PDA 或计算机进行通信。具备蓝牙技术的手机可以连接到计算机、PDA甚至连接到免持听筒。
蓝牙和Wi-Fi(使用IEEE 802.11标准的产品的品牌名称)有些类似的应用:设置网络、打印或传输文件。Wi-Fi 主要是用于代替工作场所一般局域网接入中使用的高速线缆应用,这类应用有时也称作无线局域网(WLAN)。蓝牙主要是用于便携式设备及其应用的,这类应用也被称作无线个人域网(WPAN)。蓝牙可以代替很多应用场景中的便携式设备的线缆,能够应用于一些固定场所,如智能家庭能源管理(如恒温器)等。
Wi-Fi和蓝牙的应用在某种程度上是互补的。Wi-Fi通常以接入点为中心,通过接入点与路由在网络里形成非对称的客户机—服务器连接。而蓝牙通常是两个蓝牙设备间的对称连接。蓝牙适用于两个设备通过最简单的配置进行连接的简单应用,如耳机和遥控器的按钮,而Wi-Fi更适用于一些能够进行稍复杂的客户端设置和需要高速响应的应用,如通过存取节点接入网络。但是,蓝牙接入点确实存在,而且Wi-Fi的点对点连接虽然不像蓝牙一般容易,但也是可能的。Wi-Fi Direct为Wi-Fi添加了类似蓝牙的点对点功能。
传统蓝牙是指“蓝牙4.0规范”之前的蓝牙设备,而符合“蓝牙4.0规范”的则称为“低功耗蓝牙”。
以下是目前常用的蓝牙版本的介绍,分别介绍了各个版本的改进、优势以及特点。
(1)Bluetooth 2.1
Bluetooth 2.1+EDR 进一步减少耗电量,并简化了设备间的配对过程。2007年,耗电量方面则是蓝牙2.1改进最大的地方。在蓝牙2.0标准中,规定的是每隔0.1 s手机就需要和蓝牙设备进行联系配对一次,而2.1版本中则将这个时间限制延长至0.5 s,手机和蓝牙设备无形中节省了很多电量,大大提升了续航能力。
(2)Bluetooth 3.0
Bluetooth 3.0+HS,高速传输,速率提高到约24 Mbit/s。2009年4月21日,Bluetooth SIG正式颁布了“Bluetooth Core Specification Version 3.0 High Speed”(蓝牙核心规范3.0版高速),蓝牙3.0的核心是“Generic Alternate MAC/PHY”(AMP),这是一种新的交替射频技术,允许蓝牙协议栈针对任一任务动态地选择正确射频。最初被期望用于新规范的技术包括802.11以及UMB,但是新规范中取消了UMB的应用。
作为新版规范,蓝牙3.0的传输速度自然会更高,而秘密就在802.11无线协议上。通过集成“802.11 PAL”(协议适应层),蓝牙3.0的数据传输率提高到了大约24~25 Mbit/s(即可在需要的时候调用802.11Wi-Fi用于实现高速数据传输),是蓝牙2.0的8倍,可以轻松用于录像机至高清电视、PC至PMP、UMPC至打印机之间的资料传输。
功耗方面,通过蓝牙 3.0 高速传送大量数据,自然会消耗更多能量,但由于引入了增强电源控制(EPC)机制,再辅以802.11,实际空闲功耗会明显降低。
(3)Bluetooth 4.0
蓝牙技术联盟于2010年6月30日正式推出蓝牙核心规格4.0(称为Bluetooth Smart)。它包括经典蓝牙、高速蓝牙和蓝牙低功耗协议。高速蓝牙基于 Wi-Fi,经典蓝牙则包括旧有蓝牙协议。蓝牙4.0的改进之处主要体现在3个方面:电池续航时间、节能和设备种类。此外,蓝牙 4.0 的有效传输距离也有所提升。蓝牙 4.0 最重要的特性是省电科技,极低的运行和待机功耗可以使一粒纽扣电池连续工作数年之久。此外,低成本和跨厂商互操作性,3 ms低延迟、100 m以上超长距离、AES-128加密等诸多特色,可以用于计步器、心律监视器、智能仪表、传感器物联网等众多领域,大大扩展蓝牙技术的应用范围。
(4)Bluetooth 5.0
Bluetooth 5是蓝牙技术联盟(Bluetooth Special Interest Group)于2016年6月16日发布的新一代蓝牙标准。蓝牙5.0的开发人员称,新版本的蓝牙传输速度上限为2 Mbit/s,是之前4.2LE版本的两倍。蓝牙5.0 的另外一个重要改进是,它的有效距离是上一版本的4倍,理论上,蓝牙发射和接收设备之间的有效工作距离可达300 m。蓝牙5.0将添加更多的导航功能,因此,该技术可以作为室内导航信标或类似定位设备使用,结合Wi-Fi可以实现精度小于1m的室内定位。
2. 低功耗蓝牙
蓝牙低功耗(BLE,Bluetooth Low Energy)(或BTLE)是Bluetooth v4.0的一项关键功能,将重新定义蓝牙技术的使用方式。蓝牙低功耗延续“传统”蓝牙技术的精神,包括低成本、短距离、可互操作,工作在免许可的2.4 GHz ISM射频频段,同时增加了创新的超低功耗运作模式,提供多种新类型的使用案例和应用可能性。虽然蓝牙 4.0 又号称低功耗和较远距离连接,但实际情况下,智能手机和硬件设备间的连接距离没有理论给出的远。蓝牙低功耗技术是低成本、短距离、可互操作的顽健性无线技术,工作在免许可的2.4 GHz ISM射频频段。低功耗技术从一开始就设计为超低功耗(ULP)无线程技术。它利用许多智能手段最大限度地降低功耗。
BLE分为3部分:Service、Characteristic、Descriptor,这3部分都由UUID作为唯一标识符。一个蓝牙4.0的终端可以包含多个Service,一个Service可以包含多个Characteristic,一个Characteristic包含一个Value和多个Descriptor,一个Descriptor包含一个Value。
BLE工作在ISM频带,定义了两个频段,2.4 GHz频段和896/915 MHz频段。BLE工作在2.4 GHz频段,仅适用3个广播通道,适用于所有蓝牙规范版本通用的自适应调频技术。
(1)蓝牙设备扫描
目前许多手机自带了蓝牙功能,当然也能扫描蓝牙设备。但是手机自带的这些功能往往只是提供了最基本的信息,而没有过多的信息,甚至只有一个蓝牙设备的名称。
在Android设备上有一款名为BLE Scanner的软件,可以提供更全面的信息扫描,详细到信号强度以及硬件地址和方位,而且还拥有历史记录等功能,如图1所示。
图1 BLE Scanner软件
在Linux系统上可以使用hcitool和BTScanner,使用这两个软件扫描可以获得更详细的信息。
$ hcitool scan –all可以扫描附近的蓝牙设备,如图2所示。
图2 扫描附近的蓝牙设备
$ hcitool lescan
扫描附近的低功耗蓝牙设备。
可以使用gatttool进行设备连接,获得主要信息以及服务信息,如图3所示。
图3 获得主要信息和服务信息
UUID是“Universally Unique Identifier”的简称,是通用唯一识别码的意思。对于蓝牙设备,每个服务都有通用、独立、唯一的UUID与之对应,如图4所示。
图4 蓝牙设备的UUID
(2)BLE嗅探
Ubertooth One是一款适用于蓝牙实验的开源2.4 GHz无线开发平台,它适于被动式的蓝牙监测,可以在github上找到最新的源代码。
根据官网上的教程安装好所需的文件之后,原先插在USB口上只会亮两个绿灯,装完了驱动之后,会亮起两个红灯,这时候就证明Ubertooth One可以使用了。
插上天线之后,可以使用Ubertooth观察频谱,如图5所示,命令如下。
$ ubertooth-specan-ui
图5 Ubertooth频谱分析器
使用 Kismet 工具可以测量周围的无线信号,并查看所有可用的无线接入点。可以配合Ubertooth One使用,效果更佳。
(3)BLE攻击
iOS下可以使用Light Blue来强制连接蓝牙设备,而把原来的连接断开。进入Light Blue页面可以看到附近的蓝牙设备,选择Flower care进行连接,如图6所示。
图6 Light Blue连接蓝牙设备
进入连接页面,可以看到该蓝牙设备更详细的信息,包括设备名、设备 UUID、ADVERTISEMENT DATA,以及设备包含的服务、服务包含的特征等,如图7所示。图
图7 详细信息
还可以连接小米手环进行重放攻击。在Alert Level中写入新值1和2(震动级别:0-不震动、1-轻微&小幅震动、2-强烈震动),可控制小米手环的震动。通过这种方法,可控制一定范围内任何人的小米手环,使其不停震动。