我正在学习蓝牙低功耗(BLE)协议(v4.2),尤其是它的安全特性。我试图理解移动应用程序和BLE设备之间传输的数据加密是如何工作的。
官方文档(v4.2)规定了加密数据、认证设备、生成加密和配对阶段使用的密钥等方面的方法。
第一个问题(我想确保自己已经理解了一些概念):所有这些功能都在主机级别上实现,所以如果我要加密在应用程序(Android)和BLE设备(如健身追踪器)之间传输的数据,我是否需要在BLE设备上实现(或启用)这些方法?开发人员应该只关心在BLE设备上实现这些功能,因为Android蓝牙堆栈仅支持这些功能。我的理解正确吗?如果不对,正确的实现方式是什么(包括移动应用程序和BLE设备)?
第三个问题:SIG规定的安全功能是强制性的还是可选的?
正如您看到的,我有一些疑问,也许有些问题很愚蠢,所以如果有人能够澄清如何在应用程序和BLE设备之间实现安全机制(如加密),并且这些功能是在操作系统或应用程序级别上实现的,我将非常感激。