低功耗蓝牙 GATT 安全级别

Bluetooth Low Energy GATT Security Levels

我正在研究与 GATT 相关的低功耗蓝牙 (BLE) 中可用的安全类型。更具体地说,使用指定了不同安全级别(低、中、高)的 gatttool 时会执行哪些操作?我的理解是 BLE 中的安全管理器支持 4 种不同的安全属性:

这些安全属性是否与 gatttool 指定的安全级别相关,或者我在阅读蓝牙规范时是否遗漏了其他一些安全功能?

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

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

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

中间人 (MITM) :

A MITM requires an attacker to have the ability to both monitor and alter or inject messages into a communication channel

窃听

Passive Eavesdropping is secretly listening (by using a sniffing device) to the private communication of others without consent

Privacy/Identity 跟踪 :

Since most of the Bluetooth LE advertisement and data packets have the source addresses of the devices that are sending the data, third-party devices could associate these addresses to the identity of a user and track the user by that address

引用来自developer.bluetooth.org.

您已经提到了针对MitM 和Eavesdropping 的保护,但是仍然存在身份跟踪的问题。

针对身份跟踪的保护是使用无法随时间链接到同一设备的 MAC 地址,即会更改(通常每 15 分钟)的 MAC 地址。 MAC 地址有四种类型:

  1. Public 地址 :此地址未加密,包含您公司的唯一 ID 和您的设备 ID。这是不安全的,因为它不会随着时间而改变。
  2. 随机静态地址:这个地址是随机的(由于内部标志而被称为随机地址)并且未加密。一旦它确实改变了,你就失去了与已经认识你的设备重新连接的能力,你必须从头开始重新连接。
  3. 随机可解析私有地址:该地址可以由知道其 IRK(设备之间的共享秘密)的设备解析。至于静态随机地址,它经常变化但总是可以解析的。这是最常见的选项,因为它可以保护隐私并允许恢复连接。
  4. 随机不可解析的私有地址:该地址无法解析。核心规范对此并没有说太多,而且似乎也不是很常见。与静态地址的不同之处在于它不会被存储,因为它是一个私有地址(即设备不希望能够恢复与私有地址设备的连接)。

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

关于安全级别,我不知道 gatttool,但我认为它在某种程度上类似于 nRF Connect/Master 控制面板或 LightBlue。您在这里看到的可能是与每个属性关联的安全级别。有四个安全级别,每个属性可以不同:

模式 1 级别 1

No encryption required. The attribute is accessible on a plain-text, non-encrypted connection.

模式 1 级别 2

Unauthenticated encryption required. The connection must be encrypted to access this attribute, but the encryption keys do not need to be authenticated (although they can be).

模式 1 级别 3

Authenticated encryption required. The connection must be encrypted with an authenticated key to access this attribute.

模式 1 级别 4

Authenticated LE Secure Connections pairing with encryption. The connection must be encrypted using the Secure Connection Pairing, which was introduced in Bluetooth LE since version 4.2.

模式 1 级别 1-3 的定义来自 Robert Davidson、Akiba、Carles Cufi、Kevin Townsend 的“Getting Started with Bluetooth Low Energy”。

设备也可以处于称为 Secure Connection Only 的模式,在该模式下,除模式 1 级别 1 中的服务外,其所有服务只能在模式 1 级别 4 中访问。

How does the 4.2 Bluetooth stack determine whether to use legacy pairing or not? That is to say, if I have a packet capture of two BLE 4.2 devices pairing, how can I tell whether legacy pairing is being used vs pairing that uses ECDH? Does the Secure Connections flag indicate that legacy pairing should not be used or is it just its own mode that ensures FIPS approved algorithms are used?

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

如果使用 LE SC,日志将显示 "Pairing Public Key" 和正在交换的 "Pairing DHKey Check" 个 PDU。这些是 LE SC 特有的。