您好!
我对在使用 CC2640R2作为 SNP 的 BLE 应用上实现安全性有疑问。
我的用例要求单个 BLE 器件由多个器件(移动应用)控制。 这是通过在应用层(在 GATT 值之上)上实现安全性来实现的、该应用层使用256位对称密钥。
以下是我之前的主题问题以及与此用例相关的其他参考:
https://e2e.ti.com/support/wireless_connectivity/bluetooth_low_energy/f/538/p/613046/2257490#2257490
https://devzone.nordicsemi.com/b/blog/posts/intro-to-application-level-security-using-the-ecb-
在我开发应用时、我发现的问题是在设置 BLE 器件后配置密钥、然后才能使用它。 我决定让 SNP 使用其 RNG 生成密钥。 此密钥应由移动应用程序检索并同步到云、因为此密钥将分发到其他经过云身份验证并有权控制 BLE 器件的移动应用。
要检索密钥、这意味着移动应用程序应与 BLE 器件配对、我仍在寻找保护此连接的方法。 我的问题是:
- 如果我只使用"只工作"机制、就足够了吗?
- 如何在 SNP API 上启用 BLE 提供的加密配对方法(Just Works)? 请原谅我、因为我没有看到 Simplelink BLE SDK 插件中演示如何使用 SNP 设置安全或 SNP 发送安全请求的示例。
- 假设我使用的是 Just Works、我计划实施测试命令等命令、使 BLE 器件上的 LED 闪烁。 此命令由移动应用程序上的用户同意(通过按钮)触发。
由于对手需要实际在场并观察配置设备的用户、它是否提供了更好的安全性? - 我可以想到的另一件事是在器件生产过程中生成设置密钥(256位)、并将其编码到贴纸或卡片上的 QR 代码中。 每个器件都具有唯一的设置密钥、移动应用程序应首先扫描 QR 代码、然后才能安全通信。 此设置密钥与生成的密钥不同、因为它是固定的、永远不会更改、因此我仅限制设置的使用、并允许用户在出厂复位器件并需要再次设置时保留 QR 代码。 但我觉得这在生产线上比较复杂、所以我不把它作为优先事项。
感谢您的关注
此致、
Pranata