gpt4 book ai didi

android - 低功耗蓝牙加密和数据安全

转载 作者:可可西里 更新时间:2023-11-01 19:06:13 28 4
gpt4 key购买 nike

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

因为我不认为手机上的应用程序代码是安全的,所以我需要依靠 BLE 安全来将我的加密包从服务器一次又一次地传送到设备(我必须假设任何第二次传递包裹的尝试,都必须来自攻击者)。

我这几天一直在浏览网页,以了解我的数据是否安全,以及在何种情况下安全。不幸的是,我无法对我的问题给出一个简单的答案。

  1. 如果我将手机与设备配对,我的数据是否安全? - 我想是的,尽管我知道配对过程本身存在缺陷,因此理论上某些中间人 (MITM) 可能会在配对过程中嗅探加密 key ,从而破坏连接。

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

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

  4. 我能否在不配对的情况下与设备建立安全数据连接,或者在需要时重新配对? - 对于 MITM 攻击,此过程的安全性如何?

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

最佳答案

这是我的两分钱:

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

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

  3. 如果您绑定(bind)并交换长期 key 等,根据您正在构建的 BLE 实现,这些可以按照您喜欢的方式存储。

  4. 正如我在 2. 下所说的,您可以在不绑定(bind)的情况下建立安全(加密)连接。然后,这些设备在下次想要建立安全连接时需要再次配对。如果您出于某种原因不想/不能配对,那么您只能进行纯文本通信。

关于android - 低功耗蓝牙加密和数据安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17963954/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com