清泛IT社区

标题: BLE(一)概述&工作流程&常见问题 [打印本页]

作者: App Inventor 2     时间: 2024-02-05 11:21
标题: BLE(一)概述&工作流程&常见问题
文章源自:https://www.gandalf.site/2018/11/ble.html

0x1 BLE概述“蓝牙”,即Bluetooth,是斯堪的纳维亚语中 Blåtand / Blåtann 的英化版本。该词是十世纪的一位国王Harald Bluetooth的绰号,相传他将纷争不断的丹麦部落统一为一个王国,并引入了基督教。蓝牙技术开发者Jim Kardach于1997年提出用Bluetooth这个名词,据说他当时正在读一本名为The Long Ships的小说,讲述的就是维京人和Harald Bluetooth国王的故事。他认为蓝牙可以把各种不同的通信协议统一在一起,诚如这位国王做的事情一样。至于蓝牙的logo,取自国王Harald Bluetooth名字中的【H】和【B】两个字母的组合,用古北欧文字来表示:


蓝牙技术发展至今衍生出了多个版本,“低功耗蓝牙”(Bluetooth Low Energy)是演化过程当中的一次颠覆性改变。与前面几代不同的是,蓝牙4.0版引入的BLE协议更注重功耗问题,而非通信速率的提升。这也使得低功耗蓝牙更加节能,能使设备的电池维持很长时间,因此在很多可穿戴设备中得到了应用。
0x2 BLE工作流程0x21 工作过程蓝牙适用于短距离无线通信,正常运行时传输距离为10m(低功耗模式下为100m),频段2.4Ghz。先进行三个蓝牙术语介绍:
蓝牙的工作过程为:
蓝牙启动 -> 扫描设备 -> 设备配对(未配对的设备) -> 数据传输0x22 设备配对模式0x23 设备配对过程1 pin码配对在老的蓝牙2.0协议中,配对过程需要输入一个PIN码,长度可以从4到16个数字。(很多设备默认0000或者1234)
在配对的过程中通过PIN码来生成Linkkey。两个配对后的设备共享一个Linkkey,这个行为叫绑定。绑定之后下次两个设备接近后,用Linkkey进行认证,认证通过后生成EncryptionKey进行session的加密。认证的过程采用challenge-response的模式,以claimant and the verifier的方式来验证linkkey。认证完一方之后交换身份,再认证另一方。
2 密钥交换配对后续蓝牙协议配对则通过密钥交换来完成,又分为生成初始密钥(Kinit)、生成链路密钥(Kab)和双方认证三个过程。






0x3 BLE常见问题蓝牙(bluetooth)同WIFI和zigbee等等网络协议一样,因此它的网络协议通信结构和它们大同小异。
因此,它的攻击手段不外乎鉴权攻击、密钥攻击、拒绝服务攻击等等几种手段,只不过随着具体的场景不同,这些攻击手段所采取的具体方法也不同。
在上述的几种攻击方法里,蓝牙的安全问题可以分为两类:第一类是蓝牙协议本身存在的问题。例如节点密钥攻击、离线PIN码攻击、拒绝服务攻击、第二类是在蓝牙实现过程中存在的问题。例如有攻击工具:Bluesnarfing、Bluebugging、Hijacking等。
0x31 针对蓝牙协议本身的攻击1. 节点密钥攻击(中间人)假设一个设备A和B之前已经通信过,当通信完成之后,A和B是互相知道彼此的链路密钥的。这里解释以下啥叫链路密钥:A和B之间的通信数据是需要加密的,怎么加密的不管,总之就是需要
一个链路密钥这样的东西,每次通信的链路密钥是根据蓝牙本身自带生成的,这个链路密钥不是放在协议层生成的,而是蓝牙硬件自身就有的。那么B显然知道A所使用的链路密钥,那么B通过修改自身的地址,把自己的地址改成A的地址后,伪装成A和C通信,那么C此时就以为自己在和A通信。B也可以伪装成C和A去通信,因为B知道A的链路密钥,B是能够通过A的认证从而和A进行连接。
这样A和C之间并没有进行实质的通信,都是B分别伪装和A,C通信。这样就造成了中间人攻击。
这种中间人攻击的主要原因在于蓝牙通信链路密钥在硬件层生成,而且每次认证都相同。
2. 离线PIN码攻击两个设备之间的链接,在应用层上使用PIN码,4位PIN码破解仅仅需要0.06秒,8位暴力攻击不到两个小时就能破解。
3. 中继攻击蓝牙设备使用中继以扩大传输距离,几乎所有的中继攻击,中继设备都有可能遭到信息窃取。
4. 鉴权DOS攻击鉴权时的DOS攻击是从上一次鉴权失败到下一次可以发起鉴权期间,第三方通过伪装发起故意使鉴权失败,从而使间隔时间继续上升,直到达到允许的最大值,在此期间双方不能进行正常的鉴权。
还有一种形式的DOS攻击,快速不断的给远端蓝牙发送文件,而远端设备被大量的是否要接收该文件的命令冲击直到瘫痪。

0x32 针对蓝牙实现过程发起的攻击1. Bluesnarfing蓝牙定义了OBEX协议,这个协议的主要目的是实现数据对象的交换。蓝牙早期规范定义了一个基于OBEX的应用,这个应用主要用来实现使用蓝牙来传输一些名片,这个过程并不必须需要使用鉴权机制,Bluesnarfing就是利用此漏洞连接到手机用户,并且不提示用户已连接。
当不使用蓝牙时,将设备设置成不可发现的模式,或者在通信时将设备设置成为安全模式3来启动链路鉴权,对一些蓝牙设备进行升级可以有效预防此类攻击。

2. BluebuggingBluebugging和Bluesnarfing相似,在事先不通知或提示手机用户的情况下,访问手机命令。
3. Peripheral Hijacking有些设备尽管没有进入连接模式也会对连接请求进行响应,这类设备通常是一些没有MMI(Man Machine Interface)的设备。例如一些蓝牙耳机会被强制连接,还有一些设备有固定的PIN码,Peripheral Hijacking即是对此类设备进行攻击。
4. BluejackingBluejacking是指手机用户使用蓝牙无线技术匿名向附近的蓝牙用户发送名片或不需要信息的行为。Bluejacking通常会寻找ping的通的手机或者有反应的手机,随后会发送更多的其他个人信息到该设备。现在市场上已经出现了很多Bluejacking软件。可以通过把手机设置成不可发现模式来避免此类攻击。






欢迎光临 清泛IT社区 (https://bbs.tsingfun.com/) Powered by Discuz! X3.3