BLE <-> Android, iOS 设备通信是否需要 Bonding?

Is Bonding required for BLE <-> Android, iOS device communication?

我们有一个 BLE 设备和 android/ios 用于与设备通信的应用程序。

要求是 android/ios 应用程序连接到设备而无需任何配对请求。设备上不需要安全性。

下面围绕这个问题提出几个问题:

请在下面查看您的问题的答案:-

  • A1。是的,可以这样做,因为配对和连接是两个独立的操作。连接是指您与远程设备建立通信通道,而配对是指您与设备交换安全密钥并可选择加密该连接。
  • A2。不,pairing/bonding 不是 BLE 通信所必需的,但为了在该连接上具有额外的功能和额外的安全性,它是首选。
  • A3。不,没有绑定不会影响 connection/communication 的稳定性。有一些缺点,包括连接的安全性较低,以及如果实施隐私,则可能无法找到设备。下面的 link 中提供了更多详细信息。
  • A4。该应用程序是配对对话框的发起者。具体来说,中央设备(发起连接的设备)是负责发起配对的设备。当此中央设备请求与远程设备配对时,会显示配对对话框。
  • A5.我相信这取决于 OS 类型 (Android/iOS) 和 OS 的版本号,但一般来说配对对话框不应弹出,因为顾名思义,它应该只是工作。请求 MITM 保护时弹出配对对话框。

您可以找到有关 pairing/bonding 的更多详细信息,下面是一般 BLE 通信的答案:-

我还建议在 iOS 和 Android 上尝试使用 nRF Connect 应用程序,以查看连接和绑定之间的区别并验证您无需配对即可正常连接

添加到 Youssif 的回答:

A3:一个区别是连接设置会更快,因为绑定允许使用 GATT 数据库缓存。否则必须在每个连接上重新发现服务(如果存在服务更改特征)。

A4:在Android上可以调用createBond开始配对,但是在iOS上没有API安全性,所以要么需要交互具有发送需要配对的错误的特征,或者远程设备可以发送安全请求以启动配对。

A5:iOS 显示了一个对话框 "accept / abort" 可以正常工作,Android 没有。

基于我们的工作成果和对这个问题的回答。

  • A1: 是的,如果没有设置 MITM 并且 Security scheme 设置为 Just Works 也有可能,这意味着根本没有安全性。
  • A2:BLE通信不需要绑定。如果 BLE 设备无法存储 Bond 信息,可能会导致我们遇到的一些问题。如果BLE设备能够存储和使用Bond信息,那么推荐Bond。
  • A3: 连接不会被关闭。我们得到的唯一缺点是现在重新连接需要更多时间。
  • A4:应用程序正在启动连接,但只有当 BLE 设备请求某种类型的安全时才会显示对话框,它可以是 MITM、加密、pin。简短的回答,可以通过更改 BLE 设备上的设置来避免配对对话框。
  • A5:如果设备具有 Just Works 安全协议,没有绑定且没有 MITM 保护,则不应显示配对对话框。我们在 iOS 和 Android.
  • 上都没有配对对话体验