Jan*_*ker 4 sockets encryption bluetooth ios tls1.2
所以,这可能是一个非常特殊的情况,但我希望有人能在这里帮助我。
我需要通过蓝牙与外围设备通话。我们还控制固件的设备。现在的问题是:我们需要确保没有人可以窃听,因为要发送的信息是保密的。这意味着我们需要加密通信。
据我所知,蓝牙 LE 4.2 支持加密,但我们必须能够支持比 6s 更旧的 iPhone。这意味着:没有 BLE 4.2,也没有内置加密。
换句话说:我们需要自己构建加密。外围开发人员和我一致同意使用 TLS 握手来传达密钥交换,以减少我们可能破坏的事情的数量。
最近几天我一直在寻找解决方案以及如何解决这个问题。然而,这似乎是一个非常具体的案例,并没有很多人解决。我能找到的所有库都依赖于套接字。我能找到的关于 iOS 套接字的所有信息都是 IP 网络,而不是蓝牙。
有没有人有这种蓝牙通信的经验?或者其他一些建议?也许我忽略了一些明显的解决方案?
谢谢 :)
TLS 的整个基础建立在信任之上,即证书、证书颁发机构和证书链,并确保所有发送和接收的数据都经过身份验证。您可以说整个安全性依赖于身份验证部分。加密本身非常简单。你应该回答的一个问题是:
是否可以连接到模仿您的协议的外围设备,即非您制造的外围设备?如果没有,对于您的场所,您必须在每个外围设备中拥有一些(唯一的)秘密,例如私钥。相应的公钥可以由您自己的 CA 签名。CA 的公钥可以捆绑在您的智能手机应用程序中(因此您的应用程序中只需要一个密钥,而不是所有外围设备都需要一个)。这样您就可以验证您连接的外围设备是否由您的公司制造。这个公钥也应该是外围设备的标识符。如果您的外围设备中没有私钥/公钥对,并且无法进行密钥比较并且没有任何共享对称密钥,那么据我所知,不可能避免中间人攻击。
由于每个智能手机最初也必须被视为未经身份验证,如果您需要稍后恢复会话,您需要在外围设备中存储分配给每个智能手机的一些唯一 ID。
考虑到这一点,您基本上有三种不同的选择:
| 归档时间: |
|
| 查看次数: |
3494 次 |
| 最近记录: |