【发布时间】:2017-07-07 15:37:48
【问题描述】:
我们正在设计一个通过 BLE 进行通信的小型硬件设备(称为“puck”),以及一个供 Android 和 iOS 与之通信的应用程序。我们有一个应用程序(用 C#/Xamarin 编写)连接到冰球,它们正在连接和来回发送数据。
根据this web site,当第一次建立蓝牙连接时,两个设备“配对”,这意味着它们交换了安全信息。
问题 1:我的理解是否正确,即安全信息的交换是自动发生的,我不需要在我的代码中做任何事情来导致它发生?
问题 2:我是否保证通信(在初始交换安全信息,包括密钥之后)将被加密?
问题 3a:在 Android 设备上,如何查询连接以了解两个 BLE 设备同意的安全功能?
问题 3b:与 3a 相同,但在 iOS 设备上
冰球没有显示器(几个 LED 和一个按钮),因此无法显示用于绑定的 PIN。计划是让用户在移动应用程序中启动绑定,通过 BLE 连接发送一些命令;作为响应,冰球将以某种模式闪烁其灯光并等待用户按下按钮。如果在某个超时时间内按下按钮,则应该进行绑定。
问题 4:为了使 BLE 连接尽可能安全,绑定的“最佳做法”是什么?
【问题讨论】:
-
最好在Information Security问。
-
除非您请求加密,否则数据不会加密。在 iOS 上,访问加密属性将触发一个配对对话框,要求用户输入 PIN。
标签: android bluetooth bluetooth-lowenergy