15

我需要通过智能手机(iOS 和 Android)和嵌入式设备(CC2540 芯片)之间的蓝牙低功耗 (BLE) 数据连接发送一些敏感数据。

由于我不认为手机上的应用程序代码不会被黑客入侵,我需要依靠 BLE 安全性将我的加密包从服务器一次且一次地传送到设备(我必须假设任何第二次尝试要交付包裹,必须来自攻击者)。

我这几天一直在上网,想看看我的数据是否安全,以及在什么条件下。不幸的是,我无法为我的问题想出一个简单的答案。

  1. 如果我将手机与设备配对,我的数据是否安全?- 我想是的,虽然我知道配对过程本身存在缺陷,所以理论上一些中间人(MITM)可能会在配对过程中嗅探加密密钥,从而危及连接。

  2. 我需要将每台设备与多部手机配对(但一次只能与一部手机通信)。pr的最大配对数是多少?设备?- 不幸的是,我需要将大量手机与我的设备配对。

  3. 我是否可以从设备中获取配对数据(长期密钥等)并将其存储在一些外部存储器中,以增加此限制。

  4. 我可以在不配对的情况下与设备建立安全的数据连接,或者在需要时重新配对吗?- 这个程序对于 MITM 攻击有多安全?

我似乎找不到任何可以明确回答这些问题的文件。任何想法或指示都将受到欢迎。

4

3 回答 3

11

这是我的两分钱:

  1. AFAIK,BLE 配对/加密过程没有缺陷。然而,加密提供了三个级别的 MITM 保护:

    • 无,这使用已知密钥 == 0,因此如果窃听者在配对过程中捕获了您的所有数据包,他可以跟踪您的加密连接。
    • 低 MITM 保护,这是当您使用用户输入的密钥进行配对时,密钥 < 1.000.000。在这里,窃听者只需要尝试一百万个密钥。
    • 高 MITM 保护,使用带外密钥。这将为您的加密提供完整的 128 位强度,即使捕获整个配对过程,窃听者也需要知道跟踪对话的密钥。由于 BLE 中没有密钥交换方法(至少是这样),因此这里最薄弱的一点是密钥分配,但这与在应用程序级别具有附加加密层时的问题相同。
  2. 这取决于实现。您的设备不必绑定,即与主机建立永久关系。如果设备未绑定,则没有状态说明早期连接(交换数据除外,但那是应用程序域,而不是 BLE 堆栈)。如果设备未绑定,则它们必须在下次连接时再次配对以交换受保护的数据。如果设备已绑定,则无需应用程序/用户交互即可继续加密连接,并具有与之前相同的安全级别。对于一次性连接的设备,绑定没有意义,因此您可以拥有一个无状态的实现,对连接的设备数量没有限制。对于多次连接,您还可以有一个无状态的实现,这取决于您如何分发/存储密钥,然后独立于 BLE。

  3. 如果您绑定并因此交换长期密钥等,则可以根据您正在构建的 BLE 实现,随意存储这些密钥。

  4. 正如我在 2. 中所说,您无需绑定即可建立安全(加密)连接。然后,设备需要在下次想要建立安全连接时再次配对。如果由于某种原因您不想/不能配对,那么您只能进行明文通信。

于 2013-08-06T18:34:41.340 回答
2

我会试一试这个。

1)我对配对过程的理解是一样的。如果数据足够敏感,我会在我的应用程序中添加我自己的独立加密层......

2) 对于连接,BLE 协议仅限于每个设备同时使用一个主机,即使连接未绑定/配对。单个设备同时与多个主机建立连接的唯一方法是该设备以某种方式“假装”为多个设备。这是否可以完成将取决于硬件,并且绝对不是使用设备的标准方法之一。即使您可以诱使硬件这样做,您也可能会遇到不可避免的问题,例如发生(几乎)重叠的连接间隔,这可能会导致您丢失数据甚至最终建立连接。

设备与多个主机通信的另一种方式是定期断开连接并让另一台主机建立连接。AFAIK,这种技术没有特殊的协议支持,因此除了使用定向广告之外,您可能无法控制下一个连接的主机以及何时连接。

另请参阅第 1 卷第 4.1.2 节,“Core_V4.0”蓝牙规范的 A 部分(例如,从这里https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=229737

3) 很可能是的,细节会因供应商而异,但有上述限制。

4) 无需绑定/配对即可建立连接。该连接将允许通信,但它将是没有任何安全性的纯文本。AFAICS,做到这一点的唯一方法是在应用程序级别使用您自己的数据保护。

于 2013-08-02T05:59:00.333 回答
0

我假设 CC2450 设备使用 TI 堆栈。CC2540 堆栈行为的一个很好的文档在CC2540 开发套件用户指南中。它可能是继bluetooth.org的 4.0 规范之后最好的文档

  1. 配对过程中使用的 6 位密码可能会阻止 MITM - 输入密码有 30 秒的窗口。

  2. TI 堆栈将配对设备的数量限制为 8 个左右。这是由于重新建立连接所需的 CPU 和加密性能/资源。

  3. 将加密密钥移出 BT 设备会带来安全风险。总的来说,密钥管理是所有加密的致命弱点。

  4. 如果没有绑定,您将不会有加密的特征读/写。请参阅 TI 用户指南的 4.6.1 - 它符合蓝牙 4.0 规范。

于 2013-10-05T15:39:23.287 回答