在共享单车数量较多的城市,很多人似乎已经习惯了把它们作为出行必备的交通工具,不过在享受便利生活的同时,我们也应注意网络的安全因素。最近,很多小朋友是不是发现了某共享单车的显示图标中,出现了蓝牙标识。
这些用蓝牙标记的自行车,就代表只有你必须打开蓝牙。
小编我就因为要不要打开蓝牙这件事,而纠结了很久。作为一面网络安全的从业者,我深知蓝牙的安全性是无法保障的,为此,我有时即使选择步行,也不会开蓝牙。不过这也不是个办法,为此,我觉地有必要仔细的弄清楚蓝牙的工作原理和攻击途径。
了解蓝牙安全的历史
蓝牙是1989年发明的,但是真正开始广泛使用要等到2000年以后。一开始,蓝牙是没有安全协议的,只是把不同的协议简单地拼凑在一起而已,且管理也仅由一个蓝牙爱好小组即由蓝牙特别兴趣小组管理。目前,蓝牙的最新协议是蓝牙5(切记不是5.0,是5),是蓝牙技术联盟于2016年6月16日发布的新一代蓝牙标准。蓝牙5是蓝牙技术联盟于2016年6月16日发布的新一代蓝牙标准,蓝牙5比原来拥有更快的传输速度,更远的传输距离。
蓝牙5技术特点
1、更快的传输速度
蓝牙5.0的开发人员称,新版本的蓝牙传输速度上限为24Mbps,是之前4.2LE版本的两倍。
2、更远的有效距离
蓝牙5.0的另外一个重要改进是,它的有效距离是上一版本的4倍,理论上,蓝牙发射和接收设备之间的有效工作距离可达300米。
3、导航功能
蓝牙5.0将添加更多的导航功能,因此该技术可以作为室内导航信标或类似定位设备使用,结合wifi可以实现精度小于1米的室内定位。举个例子,如果你和小编一样是路痴的话,你可以使用蓝牙技术,在诺大的商业中心找到路。
4、物联网功能
物联网还在持续火爆,因此,蓝牙5.0针对物联网进行了很多底层优化,力求以更低的功耗和更高的性能为智能家居服务。
5、升级硬件
此前的一些蓝牙版本更新只要求升级软件,但蓝牙5.0很可能要求升级到新的芯片。不过,旧的硬件仍可以兼容蓝牙5.0,你就无法享用其新的性能了。搭载蓝牙5.0芯片的旗舰级手机将于2017年问世,相信中低端手机也将陆陆续续内置蓝牙5芯片。
6、更多的传输功能
全新的蓝牙5.0能够增加更多的数据传输功能,硬件厂商可以通过蓝牙5.0创建更复杂的连接系统,比如Beacon或位置服务。因此通过蓝牙设备发送的广告数据可以发送少量信息到目标设备中,甚至无需配对。
7、更低的功耗
蓝牙5.0将大大降低了蓝牙的功耗,使人们在使用蓝牙的过程中再也不必担心待机时间短的问题。不过根据实际调查,目前大多数设备使用的仍是4.0-4.2的协议,这些落后协议的使用大大的增加了用户的使用风险。黑客利用蓝牙技术允许设备之间在短距离内无线连接的漏洞来控制设备,从而盗取设备里的信息和密码。蓝牙攻击远比以前的攻击更加具有侵略性,并且仍然未被大多数当前的安全防卫所侦察。
与传统的恶意软件或攻击不同,用户不必点击链接或下载可疑的文件。即使用户什么都不做攻击就能自动开始。
从蓝牙4.0以来,蓝牙技术联盟就为蓝牙的安全模型架构了一个新的框架,低功耗蓝牙(BLE)就是从蓝牙4.0开始的。
蓝牙技术联盟于2010年6月30日正式推出蓝牙核心规格4.0 (称为Bluetooth Smart)。它包括经典蓝牙、高速蓝牙和蓝牙低功耗协议。高速蓝牙基于Wi-Fi,经典蓝牙则包括旧有蓝牙协议。
蓝牙低功耗,也就是早前的Wibree,是蓝牙4.0版本的一个子集,它有着全新的协议栈,可快速建立简单的链接。作为蓝牙1.0 – 3.0版本中蓝牙标准协议的替代方案,它主要面向对功耗需求极低、用纽扣电池供电的应用。芯片设计可有两种:双模、单模和增强的早期版本。早期的Wibree和蓝牙ULP(超低功耗)的名称被废除,取而代之的是后来用于一时的BLE。2011年晚些时候,新的商标推出,即用于主设备的 “Bluetooth Smart Ready”和用于传感器的“Bluetooth Smart”。
Bluetooth Smart Ready 设备是连接用户正在使用的数以十亿计蓝牙设备—手机、平板电脑、个人电脑、电视,甚至机顶盒以及游戏机最有效的方式。这些设备可有效地接收传统蓝牙设备和蓝牙智能设备发送的数据并传送至应用程序,从而将数据转换为有用的信息。这些设备都是蓝牙系统的中枢设备。
Bluetooth Smart不仅具备低耗能的特点,它还适合应用创建。这项技术能耗较低,是因为它的能耗远远少于其它无线技术。在应用创建时,适合于蓝牙智能传感器的应用成本较低,并可灵活选择开发结构。
Bluetooth Smart 设备主要用于收集特定类型的信息,家中的所有窗户都关好了吗?我的血糖是多少,我今天的体重是多少?然后将这些信息发送至蓝牙智能就绪设备。这类设备具有无限的发展潜力,包括心率监测仪、血糖仪、智能手表、门窗安全感应器、汽车遥控钥匙和血压护腕等。
虽然 “Bluetooth Smart”和“Bluetooth Smart Ready”非常好用,但有没有人想过如何在计算机和健身追踪器之间以安全的方式保持配对,定期上传数据?当设备大部分时间处于睡眠模式时,如何保护设备或确保设备所有者的隐私?
蓝牙的安全模式
目前蓝牙有两种安全模式:LE安全模式1和LE安全模式2。安全模式1适用于没有数据签名的那些安全级别,而安全模式2与数据签名类似,支持配对和不配对的通信。
除此之外,还有四个编号为1到4的安全级别,其中4是最安全的级别。所以,在设置蓝牙安全模式时,你可以将这两大种安全模式混合着使用。
安全级别为1到4:安全级别1支持没有安全性的通信,并适用于任何蓝牙通信;安全级别2支持AES-CMAC加密,适用于设备未配对的通信过程;安全级别3支持加密并需要设备配对;安全级别4支持目前所有的加密方式。
将两种安全模式混合是指设备需要同时支持安全模式1和2,即需要支持已签名和未签名的数据。仅安全连接模式是具有安全级别4的安全模式1,这意味着蓝牙设备中的所有传入和传出流量都只涉及经过身份验证的连接和加密。如果你觉得复杂,那你也可以使用安全模式2而不是1来运行安全连接模式,以确保所有数据都已签名,但由于数据是加密的,且加密的计算需要更强的计算能力这也意味着更快的电池消耗,而蓝牙技术联盟明显感觉到没有签名的加密对于这种特定的模式来说已经足够了。
在大家了解了安全模式和级别是什么后,我就可以开始回答一些关于在睡眠模式下维持配对的问题,或者在不一定总是彼此通信的设备之间的蓝牙连接上强制保密。但是我们需要讨论它们是如何实施的,这就得从配对开始。
为什么不配对便无法建立连接?
任何无线通信技术都存在被监听和破解的可能,蓝牙SIG为了保证蓝牙通信的安全性,采用认证的方式进行数据交互。同时为了保证使用的方便性,以配对的形式完成两个蓝牙设备之间的首次通讯认证,经配对之后,随后的通讯连接就不必每次都要做确认。所以认证码的产生是从配对开始的,经过配对,设备之间以PIN码建立约定的link key用于产生初始认证码,以用于以后建立的连接。所以不配对,两个设备之间便无法建立认证关系,无法进行连接及其之后的操作,所以配对在一定程度上保证了蓝牙通信的安全,当然这个安全保证机制是比较容易被破解的。
从某种意义上来说,配对过程如果能保证安全,则蓝牙的使用就是安全的,配对过程分三个进程。
第一个进程
在第一个进程中,要配对的装置,首先阅读的是“归因协议”值,该值位于L2CAP第4层,通常不会被加密。这样,在第二进程它们将决定使用哪种配对方法,进而决定设备可以做什么。
第二进程
在第二进程的目的是生成一个临时密钥(Short Term Key,简称STK)。临时密钥不会在设备之间传输。通过STK进行的配对,通常被称为LE配对。但是,如果仅使用安全连接模式,则会在此进程生成长期密钥(LTK),这称为LE安全连接。
第三进程
在第三进程,第二进程的密钥被用来分配通信所需的其它密钥。如果在第二进程没有生成LTK,则在第三进程就要生成一个长期密钥。数据签名的连接签名解析密钥(CSRK)和专用MAC地址生成和查找的身份解析密钥(IRK)等数据在此进程生成。
目前的配对方法共有有四种不同模式:
1.Numeric Comparison(数值比较),数值比较仅适用于低功耗安全连接,而不适用于传统配对。
2. Just Works (不鉴权,直接使用),显然,并非所有设备都有显示器,如耳机或扬声器。因此,Just Works方法可能是最流行的方法。
3. Passkey Entry(密码输入)。使用密钥输入,会在一个设备上显示一个六位数的值,并将其输入到另一个设备中。
4.Out Of Band (OOB),即非蓝牙的传输方式,如NFC。
配对模式和所对应的安全级别
1.发起者或接收者,确定设备是发起者还是接收者。在初始配对期间,启动蓝牙连接的设备将成为Bluetooth Smart Ready设备,而被配对的设备将成为Bluetooth Smart 设备。然后你必须证明它们是Bluetooth Smart Ready还是Bluetooth Smart,这将有助于确定哪些数据包需要在蓝牙协议监控分析仪上查看BLE数据。
如果你正在探索的设备是Bluetooth Smart接收器,则可以从Bluetooth Smart Ready笔记本电脑启动配对,并使用笔记本电脑的蓝牙接口作为Wireshark(一个网络封包分析软件)中的分析源。https://duo.com/blog/bluetooth-hacking-tools-comparison
2.配对说明(Instructions for pairing)。当你获得新的支持蓝牙的设备时,通常会包含配对说明。显然,如果设备的屏幕可以显示值,你可以观察到使用的Numeric Comparison或Passkey Entry。
3.扫描和探测,使用蓝牙扫描仪扫描设备可以帮助确定安全级别。你可以从扫描中获得任何信息,包括所涉及的芯片组信息。如果你可以确定正在使用的芯片组,则可以查看芯片组的功能,例如“它最多可以处理八个连接,并且支持板载AES-128”。如果地址是公共地址,并且OUI( 组织唯一标识符)在数据库中,则它们它们始终使用一个常量作为MAC地址。
如果你可以连接到设备进行探测,但是任何操作似乎都会让你立即退出,此时,很可能只有安全连接模式已经就位。
4.嗅探配对,通过蓝牙嗅探器来检测安全元素的实现可能看起来非常困难,但是一旦你了解了不同的安全模式以及如何使用这些安全模式,就可以轻松确定已经实现的内容,但前提是你进行了分析跟踪。
理想情况下,你最希望捕获配对过程的分析痕迹。如果你正在检查启动程序或Bluetooth Smart Ready设备,则需要“配对请求”数据包。相反,如果你正在检查接收器或蓝牙智能设备,则需要“配对应答”数据包。
配对请求的操作码将是0x01,配对回应的操作码将是0x02。
OOB数据标记将是0x00,对于OOB数据来说,没有OOB数据或0x01。最大加密密钥大小以octets(八进制数)的形式告诉加密密钥的大小,并且启动器和响应者密钥分配字节都用标记表示将分发的密钥。
身份验证请求字节由五个字段组成,不同的标志使用的位也不同。
1.绑定标志,使用两位,最低位为0或1,另一位保留。如果使用绑定,LTK将被交换,这意味着两个设备可以配对,而重新启动或休眠模式不会取消配对设备。如果要支持加密,则在配对之后进行。
2.MITM标志,使用一位,0表示不要求MITM保护,1表示请求了MITM保护。
3.安全连接,使用一位。如果设置为1,则设备正在请求进行安全连接模式,否则设置为0。
4.按键标志,使用一位。如果设置为1,则表示需要使用密码输入,否则将忽略。
5.最后三位保留。
请注意,要时刻检查你的工具,以确保你准确地嗅探数据,不要指望每个制造商都遵守协议规则。以下是Apple Watch和Apple Watch的配对过程,所使用的密钥输入过程中的配对回复数据包。
Wireshark对Apple Watch配对回复数据包的解释,请注意,AuthReq部分与原始数据不匹配。
在上图中,主要问题是字节24的(偏移0x17)值是0x0d。按着Wireshark的解释,只有Bonding和MITM的位被设置,而0x0d的值表明安全连接位也被设置。在嗅探器跟踪时,你会选择密钥输入方法,但在这种情况下,不仅Wireshark解释不显示它的设置,原始数据也表明它没有被设置。
低功耗蓝牙的隐私性
每当蓝牙设备需要传输时,它就会进入广播模式,让其它设备发现它。根据设备的性质,它会在广播过程中使用MAC地址,以便其他设备可以与之通信。
但这会出现一个问题,攻击者可以通过跟踪MAC地址来跟踪一个人的行踪。因此,会有避免跟踪的设备来定期地改变其MAC地址。不够,这又会产生其他问题。如果地址不断变化,配对的设备将如何知道它们配对成功呢?我怎样才能将我的MAC地址限制在只有我信任的设备上,同时还能保护我自己不被追踪?
这就是要用到低功耗蓝牙的隐私性的地方,这个解决方案是在创建Bluetooth Smart(4.0标准)的基础上引入的,它是解决这个问题的有效方法。在如上所述的第三进程的配对过程中,设备之间会交换各种密钥。其中一个关键是身份解析密钥(IRK),这个密钥允许创建和解析在广告数据包中使用的随机MAC地址。
为确保设备重新连接,低功耗蓝牙的隐私性设备将创建一个广播数据包,其中包含配对设备的目标MAC地址和随机MAC地址作,此时配对设备就知道快速解析MAC地址以确定其身份,因为它可能与使用低功耗蓝牙的隐私性的多个设备进行配对。
这就为配对的两个设备提供了一个很好的方式,即使进入睡眠模式,功率循环或设备之间的物理距离大于蓝牙范围而导致中断,也仍然可以通过防止MAC地址跟踪来确保用户的隐私。
低功耗蓝牙的隐私性在测试中非常容易被发现,你只需扫描MAC地址并随时追踪即可。通过在设备上使用低功耗蓝牙的隐私性进行操作,便可可以产生流量,这样会更容易发现。不过时间延迟(从15到30分钟不等)会有所不同,这完全取决于制造商所设置的时间间隔。
蓝牙不用时就关掉
不用蓝牙的时候就关掉,否则你的设备可能会被病毒入侵。当蓝牙在设备上运行时,它会保持运行状态并等待潜在的连接,此时病毒就会对设备进行扫描并检测它们的信息,比如设备类型和操作系统等等,看看它们是否存在相关漏洞,一旦攻击者发现脆弱的目标,可以在很短时间内完成攻击,然后控制用户的设备甚至能控制数据。
在现在的智能机时代,蓝牙依然是手机的标配,不过已经很少人用到这功能了,目前它存在安全隐患,美国的物联网安全初创公司 Armis 2017年就发现了一种新型物联网攻击手段:BlueBorne,它能威胁所有运行在 Android、iOS、Windows 和 Linux 这几种主流操作系统的设备。
lueBorne 攻击手段是如何工作的呢?
首先,要定位周围有效的蓝牙连接(虽然设备没有打开蓝牙连接,也能被攻击者定位到)。
接下来,攻击者利用蓝牙连接获得目标设备的MAC地址,这是每台设备都拥有的唯一标识符。
第三,确定目标设备使用的操作系统,并针对对应的操作系统使用对应的蓝牙协议漏洞。
最后,攻击者就利用在相关系统上的蓝牙协议漏洞,获得设备的访问权限。
本文翻译自:https://duo.com/blog/
翻译作者:xiaohui 原文地址:http://www.4hou.com/web/15936.html