【发布时间】:2016-12-04 09:55:15
【问题描述】:
所以,这可能是一个非常特殊的情况,但我希望有人可以在这里帮助我。
我需要通过蓝牙与外围设备通话。我们还控制其固件的设备。现在的问题是:我们需要确保没有人可以窃听,因为要发送的信息是保密的。这意味着我们需要加密通信。
据我所知,蓝牙 LE 4.2 支持加密,但我们必须能够支持比 6s 更旧的 iPhone。这意味着:没有 BLE 4.2,也没有内置加密。
换句话说:我们需要自己构建加密。外围开发人员和我同意使用 TLS 握手来传达密钥交换,以减少我们可能破坏的东西的数量。
过去几天我一直在寻找解决方案以及如何解决这个问题。然而,这似乎是一个非常具体的案例,并没有很多人处理过。我能找到的所有库都依赖于套接字。我能找到的关于 iOS 套接字的所有信息都是 IP 网络,而不是蓝牙。
有人有这种蓝牙通信的经验吗?或者其他一些建议?也许我忽略了一些明显的解决方案?
谢谢:)
【问题讨论】:
-
在 iphone4s 及更高版本和 iPad mini 及更高版本(即任何具有 BLE 的设备)上支持加密 GATT 属性。 BLE 4.2 具有更好的加密和对加密整个连接的支持,但它为您提供的主要功能是在配对期间防止 MITM 攻击。这对您来说风险很大吗?
-
你的外设有多少 RAM / 代码空间,你的 cpu 有多快?
-
Pre-v4.2 BLE 确实支持 AES-CCM 加密,但对窃听的保护有限。也就是说,如果窃听者在 iPhone 和外围设备之间的配对过程中出现,它可以获取共享密钥并在未来的加密通信中进行监听。如果在配对过程中窃听者不在场,它将无法破译加密数据。
-
你的目标是什么?只是为了保护您的固件吗?如果是这样,请将加密密钥安全地存储在外围设备中,以及用于签名验证的 RSA 公钥。然后只需发送加密和签名的固件。
-
@Paulw11 据我所知(如果我错了,请纠正我)您需要在智能手机上输入一个代码,该代码显示在蓝牙外围设备上,以便您可以绑定。但是:我们的外围设备没有显示器。无法粘合。
标签: ios sockets encryption bluetooth tls1.2