皮人伟
(蓝光发展股份有限公司 上海市 200940)
我们的攻击目标如下:对于一个给定的BLE 设备和该设备中的给定特征,我们可以使用我们的攻击设备与目标设备建立连接,并满足目标特征的安全要求。然后根据目标特征的读写权限,我们可以读/写目标特征,并通过设备的回应展示我们攻击的结果。
为了保护BLE 设备的数据安全,低功耗蓝牙提供了一种加密策略。如果设备中某项数据设置了加密保护,BLE 会要求访问者必须与该设备建立加密连接,然后才能访问该项数据。同时,BLE 为不同能力的设备提供了不同的配对方法以生成密钥,如基于带外数据交换的配对方法(OOB),一个设备显示六位数字并要求用户输入到另一个设备中(Passkey Entry),两个设备都显示六位数字并要求用户比较是否相同(Numeric Comparison)等等。由于绝大多数配对方法都要求用户参与,攻击者难以绕过用户授权而与目标设备建立加密连接。加密策略有效防止了匿名访问和数据泄露。以上配对方法都要求设备有一定输入输出能力,例如有显示屏,键盘等。如果参与配对的设备没有输入输出能力,BLE 会采用一种不经过用户授权的方法进行配对(Just Works)。当使用Just Works 方法时,双方设备会自行协商密钥。利用这一特性,我们提出了一种访问BLE 设备中加密数据的攻击方法。第三方设备可以在配对过程中修改相关参数,使得配对过程强制使用Just Works 方法配对,以绕过用户参与。利用此方法可以窃取启用加密的BLE 设备的数据。
具体了流程如下:
(1)攻击者使用第三方设备,与目标设备建立BLE 连接。
(2)第三方设备向目标设备发起配对请求,双方设备开始配对流程。
(3)在协商低功耗安全连接时,修改数据包,将第三方设备的SC 位设置为0,进入低功耗传统配对。
(4)在协商带外数据配对时,修改数据包,将第三方设备的OOB 位设置为0,避免使用带外数据配对。
(5)然后,将第三方设备的MITM 位设置为0。如果目标设备MITM 位也为0,则使用Just Works 方法进行配对。如果目标设备MITM 位为1,第三方设备将IO capabilities 位设置为NoInputNoOutput,强制使用Just Works 方式进行配对。
(6)由于使用了Just Works 方式进行配对,该过程将不经用户授权而静默完成。最后,第三方设备使用生成的密钥加密连接,即可访问目标设备的加密数据。
1.3.1 干扰连接
图1:建立连接和访问特征过程
图2:静默配对和访问数据过程
通常,目标外围设备与中央设备处于连接状态。此时,外围设备不发送广播包,因此攻击者的第三方设备无法接收到广播包并与外围设备建立连接。为了中断连接,攻击者可以在BLE 的37 个通信信道中投放大量无用数据包。由于所有的通信信道都被占用,中央设备和外围设备将无法向另一方发送心跳包。因此,他们之间的连接将被关闭,外围设备将再次开始广播。这种攻击方法也称为拒绝服务(DOS)攻击。
1.3.2 建立新连接
由于用户的中央设备和外围设备之间的原有连接已经中断,攻击设备可以从外围设备接收到广播包。然后,攻击设备可以发送CONN_REQ 数据包来与外围设备建立新连接。攻击设备可以从外围设备中查询GATT 的特征列表。从列表中,攻击设备可以获取目标特征的地址和读写权限。应该注意的是,此时的连接还没有进行过数据加密和身份认证。因此,任何对加密和认证有要求的特征,攻击设备都无法访问。
1.3.3 读写数据
我们考虑攻击的目标特征是可读的。攻击设备向未加密未认证的连接中的目标特征发送读取请求。如果外围设备响应了该特征的值,则表示该特征的安全要求为NS,攻击成功。图1 展示了攻击设备和目标设备之间建立连接和读/写特征的数据包交换。如果它返回错误代码Encryption Insufficient,则表示该特征要求加密。攻击设备需要与外围设备配对以满足安全要求。否则(没有响应或返回其他错误代码),表明该特征不需要数据加密,但需要身份认证。
1.3.4 静默配对并读写数据
由于攻击者无法物理接触用户的设备,因此攻击设备应在未经用户授权的情况下与外围设备配对。我们使用静默配对方法与目标设备进行配对。配对完成后,攻击设备与外围设备共享新密钥。因此,接下来的数据传输被加密。第三方设备向目标特征发送读取请求。此时的连接已经进行了加密,但是还没有通过认证。如果特征响应一个值,则表示该特征的安全要求是ER,攻击成功。图2 展示了攻击设备和目标设备之间配对和读/写特征的详细数据包交换。如果没有响应或外围设备响应错误代码,则表示该特征需要身份认证。
1.3.5 退化连接并读写数据
为了通过不同设备的身份认证,我们需要窃取用户中心设备的身份认证凭证,具体过程如下:攻击设备首先将其MAC 地址更改为用户外围设备的MAC 地址。然后攻击设备使用存储的外围设备的广播包进行广播。当用户的中央设备尝试与目标设备重新连接时,中央设备接收来自攻击设备的广播包。攻击者的MAC 地址和广播包与目标设备的MAC 地址和广播包完全相同。同时,目标设备因为攻击设备与其连接而无法进行广播。用户的中心设备将攻击设备视为目标设备,并与攻击设备建立连接。用户的中央设备发送加密请求。攻击设备拒绝加密请求以退化连接。中央设备将停止加密,并使用明文发送身份认证数据包。当攻击设备从中央设备接收到认证请求时,它将请求转发给外围设备,然后将目标设备的响应转发到中央设备。攻击设备重复这一个过程,直到身份认证完成。
到目前为止,中央设备完成了身份认证过程。攻击者的第三方设备也被外围设备认证。攻击设备向目标特征发送读请求。目标设备将响应该值,攻击成功。如果攻击设备与目标设备配对,则该特征的安全要求是EA。否则,安全要求是AR。
我们选择了15 种最流行的代表性设备。我们购买了这些设备,然后,我们在这些设备上应用我们的攻击方法。
们提出的静默配对攻击方法在所有15 种代表性设备上都攻击成功。这表明攻击者可以在不经过用户授权的情况下与他们的设备进行配对,并访问这些设备中需要加密(ER)的特征。由于BLE的配对流程和方法都由BLE 规范所提供,对于所有的设备,该过程都是一样的。因此,我们提出的静默配对方法能够攻击所有的BLE 设备。
然后,我们进一步评估了连接退化方法在这15 种设备上的表现。结果表明,除了华为荣耀手环3 连接退化失败,而其它设备连接退化都成功了。通过对华为荣耀3 手环的分析,我们发现当华为的手机应用的加密请求被拒绝后,程序会停止下一步的执行,而再次发起加密请求。因此,即使拒绝了加密请求,华为荣耀应用也不会以明文发送后续认证数据。因此,对于华为荣耀3 手环,我们无法攻击其中同时要求加密和认证的特征(EA)。但是,对于其它的BLE 设备,我们的连接退化方法都可以获得明文的认证请求包,这意味着我们可以获取它们中所有特征的访问权限。
可以看出我们的攻击方法能够对目前流行的绝大多数BLE 设备适用,造成隐私泄露或恶意控制。我们为BLE 设备生产厂商和用户总结了一些经验教训。对于其他使用不同通信协议、不同软件、不同版本的物联网设备中,这些经验同样适用:
(1)设备的初始化非常重要。我们应该确保初始配对和身份认证是安全的。实际上,许多其他应用程序都假定初始配对和身份认证是安全的。如果初始化不安全,则攻击者可以容易地获取加密密钥和认证凭证,以监听和破解中央设备和外围设备之间的通信内容。
(2)设备不应在本地存储太多数据。在设备将其数据与智能手机等中央设备同步后,它应该在本地清除这些数据。否则,如果此设备受到攻击,攻击者可以获得用户的长时间隐私数据。
(3)在设备的配对过程中应当让用户参与配对,即使用数字比较和密钥输入等方法进行配对。同时,基于中央设备输入输出能力的配对操作也给BLE 带来了安全威胁。例如,攻击设备可以模仿低输入输出能力设备,并轻松地与外围设备建立加密连接。即使对于低输入输出能力设备,也应当参考例如用户手势等侧信道信息,以使用户能够参与加密和身份认证。
(4)设备应当在特征的安全要求中同时启用加密和身份认证,即使用EA 安全要求。然而,在我们的评估中,我们发现现有设备都没有使用EA 安全要求来保护其特征。这使得攻击者非常容易绕过设备的访问权限控制以访问其中的特征。BLE 设备的制造商应该更加关注BLE 设备的安全性。
在本文中,我们结合如今的一些攻击方法,对物联网设备的通信安全的进行了一定的研究。通过对BLE 的深入分析和测量,我们提出了一种新的攻击方法,它可以在不触及设备的情况下通过BLE 设备的访问权限控制,从而读写其中的数据。们总结了用户和制造商的经验教训,并为BLE 设备提出了一种安全的机制。