我正在研究蓝牙低功耗(BLE)协议(v4.2),特别是它的安全功能.我试图理解移动应用程序和BLE设备之间传输的数据加密是如何工作的.
官方文档(v4.2)规定了加密数据,验证设备,生成加密和配对阶段使用的密钥等方法.
首先怀疑(我想确定已经理解了一些概念):所有这些功能都是在主机级实现的,所以如果我想加密在App(Android)和BLE设备(如健身追踪器)之间传输的数据,我必须在BLE设备上实现(或启用)这些方法吗?通过这种方式,开发人员应该只关心BLE设备上这些功能的实现,因为Android蓝牙堆栈只支持这些功能.我对吗?如果我错了,实现这些功能的正确方法是什么(在移动应用和BLE设备上)?
第二个疑问:为什么有些BLE设备在GATT协议之上实现自己的加密,而不是使用SIG提供的安全功能?
第三个也是最后一个疑问:SIG指定的安全功能是强制性的还是可选的?
正如您所看到的,我有一些疑问,也许有些问题可能是愚蠢的,所以如果有人可以澄清如何在App和BLE设备之间实现安全机制(如加密),以及在哪些级别实现这些功能(操作系统或应用程序级别),我将非常感激.