蓝牙低功耗GATT安全级别

问题描述:

我在调查与GATT相关的蓝牙低功耗(BLE)中可用的安全类型。更具体地说,当使用具有不同安全级别(低,中,高)的gatttool时,会进行什么样的操作?我的理解是,在安全管理中BLE支持4个不同的安全特性:蓝牙低功耗GATT安全级别

  • 没有配对
  • 配对与不支持的关联模型人在这方面的中间人(MITM)保护(JustWorks)
  • 与MitM保护配对(密码输入,数字比较,OOB)
  • LE安全连接配对。

这些安全属性是否与使用gatttool指定的安全级别相关,或者是否存在我在阅读蓝牙规范时错过的其他安全功能?

编辑:我想扩大我的问题,以澄清问题。 4.2蓝牙堆栈如何确定是否使用传统配对?也就是说,如果我有两个BLE 4.2设备配对的数据包捕获,我如何判断是否正在使用传统配对与使用ECDH的配对?安全连接标志是否表明不应该使用传统配对,还是仅仅确保其使用FIPS认可算法的模式?

你是对的,但你忘记了BLE通信中的一个主要威胁。这里有三个基本的威胁:

中间人(MITM)

甲MITM要求攻击者有能力既监控和改变或注入消息转换成一个通信信道

窃听

被动Eavesdropp ING是偷偷听(通过使用嗅探器)给他人的私人通信,未经同意

隐私/身份跟踪

由于大多数蓝牙LE广告和数据包的有发送数据的设备的源地址,第三方设备可以将这些地址与用户的身份相关联,并通过该地址跟踪用户

引号来从developer.bluetooth.org

您已经提到了针对MitM和窃听的保护措施,但仍然存在身份追踪问题。

防止身份跟踪的保护措施是使用无法通过时间链接到同一设备的MAC地址,即MAC地址发生更改(通常每15分钟一次)。有四种类型的MAC地址:

  1. 公共地址:这个地址是不加密的,并包含公司唯一ID和设备ID。这是不安全的,因为它不会随着时间而改变。
  2. 随机静态地址:该地址是随机的(并且因为内部标志而称为随机)并且未加密。一旦它发生变化,你就失去了重新连接已经知道你的设备的能力,你必须从头开始重新连接。
  3. 随机可解析的私有地址:该地址可以通过知道其IRK(设备之间的共享密钥)的设备来解决。至于静态随机地址,它经常变化,但总是可以解析的。这是最常见的选择,因为它保留了隐私并允许恢复连接。
  4. 随机不可解析的私有地址:该地址无法解析。核心规格并没有多说这件事,它似乎并不常见。与静态地址的区别在于,由于它是私有地址(即,设备不希望能够恢复与私有地址设备的连接),所以它不被存储。

这在BLE Core Spec 4.2 Vol。 3 C部分15.1.1蓝牙设备地址类型。

关于安全级别,我不知道gatttool,但我会认为它与nRF Connect/Master Control Panel或LightBlue类似。您在这里看到的可能是与每个属性关联的安全级别。有四个安全级别,它们可以为每个属性不同:

模式1级1

无加密要求。该属性可以通过纯文本的非加密连接访问。

模式1级别2

未验证的加密所需。连接必须经过加密才能访问此属性,但加密密钥不需要认证(尽管它们可以)。

模式1 3级

认证加密所需。连接必须使用已验证的密钥进行加密才能访问此属性。

模式1等级4

认证LE安全连接配对与加密。连接必须使用安全连接配对进行加密,该安全连接配对是自4.2版以来在蓝牙LE中引入的。

1级1-3由罗伯特·戴维森,秋叶,普约尔Cufi,凯文·汤森来自“Getting Started with Bluetooth Low Energy”模式的定义。

的设备也可以是在一个叫Secure Connection Only模式中,所有的服务,除了一个在模式1 1级,只能在模式1级访问4.

+0

感谢您提供的所有信息。使用你关于LE安全模式和级别的观点,我跳入了蓝牙规范,以获得更多的清晰度。根据我的理解,身份验证的要求基于配对期间使用的关联模型以及该模型是否提供了MitM保护: **模式1级别1 ** =不配对; **模式1级别2 ** =使用JustWorks配对(至少); **模式1级别3 ** =使用数字比较,密码输入或OOB进行配对; **模式1级别4 ** =使用安全连接进行配对; – 1nc1n3rat0r

+0

@ 1nc1n3rat0r就是这样。当您连接但未配对时,如果您想要访问超过模式1级别1的特性,则配对完成。 – Tim

是的,这是正确的,但你应该注意到它们仍然存在安全模式,LE安全模式1和LE安全模式2,它们由不同的安全级别组合。在蓝牙4.2之前,LE不安全,即您可以在LE连接刚开始时嗅探加密密钥。

+0

这是很棒的信息。至于BLE 1nc1n3rat0r

+0

那么BLE Emil

+0

感谢您的回复。我应该更改我的问题,使其更清楚一点:如果我有两个BLE 4.2设备配对的数据包捕获,如何判断是否正在使用传统配对与使用ECDH的配对?安全连接标志是否表明不应该使用传统配对,还是仅仅确保其使用FIPS认可算法的模式? – 1nc1n3rat0r

如何进行蓝牙4.2堆栈确定是否使用传统配对?也就是说,如果我有两个BLE 4.2设备配对的数据包捕获,我如何判断是否正在使用传统配对与使用ECDH的配对?安全连接标志是否表明不应该使用传统配对,还是仅仅确保其使用FIPS认可算法的模式?

在配对功能交换阶段,如果在配对请求和配对响应PDU中设置了安全连接(SC)标志,则使用LE SC。它表示这两个设备都支持LE SC并同意使用它。

如果使用LE SC,日志将显示正在交换的“配对公钥”和“配对DHKey检查”PDU。这些是LE SC专用的。