无配对、无密码的蓝牙 RFCOMM 连接是否安全?

信息安全 蓝牙
2021-09-11 01:49:25

我以编程方式在台式电脑(客户端)和树莓派(服务器,蓝牙 4.1)之间建立了蓝牙 RFCOMM 连接。过程中没有密码请求,也没有配对请求。我确信连接有效,因为我能够在它们之间发送数据。

不过,我不确定 RFCOMM 连接是否已加密。在网上找到的信息要么含糊不清,要么似乎将安全条件限定为仅配对设备或提供密码的情况。也有暗示 RFCOMM 连接毕竟可能是安全的(例如这里)。我只是不确定。

谁能给一个肯定的答案?

1个回答

您可能无法抵抗中间人攻击。

这里有两个标准,蓝牙 (BT) 和蓝牙低功耗 (LE)。每个都有不同的加密和身份验证方法,并且可以支持多个安全级别。

NIST 有一篇关于蓝牙安全的相当出色的论文,我将参考它来回答,因为它非常全面但也很容易理解。

BT 有四种设备可以操作的安全模式。每种模式可以做的细节相当复杂,所以我将它简化一下:安全模式 1 没有身份验证或加密,安全模式 2 强制执行身份验证和加密每个服务级别,但不对链路层进行身份验证或加密,安全模式 3 是稍后在链路上进行身份验证和加密,安全模式 4 是模式 2 的更安全版本,具有多级安全实施,允许选择身份验证,没有身份验证,或对所提供的每项服务完全禁用安全性。

在进行身份验证时,BT 使用多种密钥交换方法中的任何一种。最常见的是 4 位 PIN,这是一种传统的身份验证模式。还支持更长的引脚,包括字母数字输入,这提供了更高的安全性。然后,您将获得与安全模式 4 一起使用的安全简单配对 (SSP),允许通过 PIN、密码、一种称为“Just Works”的未经身份验证的机制(加密但不抵抗 MitM)和带外( OOB)通过 Internet、NFC 或其他渠道进行的密钥交换。

LE 支持身份验证、加密和签名,但必须置于两种安全模式之一。每种模式都有控制使用的安全类型的级别。

  • 安全模式 1 具有以下选项:
    1. 没有身份验证或加密。
    2. 无需身份验证,但流量已加密。
    3. 经过身份验证的配对和流量加密。
  • 安全模式 2 具有以下选项:
    1. 未经身份验证的数据签名配对。
    2. 经过身份验证的配对与数据签名。

身份验证也是相当可配置的。您可以执行 OOB 身份验证,这涉及通过另一种传输机制(例如互联网、NFC)交换临时密钥,或者您可以使用 PIN 输入(这很常见)在每个设备上生成临时密钥。还有一种称为“Just Works”的机制,与 BT 中相同,它将临时密钥设置为全零,这仍然启用传输加密,但任何在握手期间监控通信的人都可以获得长期密钥并解密流量.

RFCOMM 是 BT 和 LE 下的服务,因此您的安全性取决于您使用的协议、您所处的安全模式以及您在适用的情况下使用的级别。正如你提到的,你根本没有配对,这让我觉得你可能正在使用 LE,它并不是真正为配对而设计的,就像 BT 那样。在任何一种情况下,您都没有输入 PIN 或执行任何类型的身份验证,这意味着您根本没有传输加密(例如 BT 安全模式 1 或 LE 安全模式 1,级别 1),或者您启用了传输加密但在未经身份验证的密钥交换上(例如 LE 安全模式 1,级别 2)。无论哪种情况,您都可以使用Ubertooth One工具嗅探流量并转储内容。