LWM2M Bootstrap Factory 与客户端

物联网 2米
2021-06-23 10:05:55

在构建将使用 LWM2M 协议的设备的过程中。参考这里的协议规范我们在布局上下行数据包规范方面做了很好的尝试。

剩下要做的项目之一就是弄清楚如何处理 Bootstrap 过程。据我了解,我们有 4 个选择:

  • 工厂引导
  • 从智能卡引导
  • 客户端启动的引导程序
  • 服务器启动的引导程序

我们有一个 COAP 服务器启动并运行,支持 LWM2M 服务器和 Bootstrap 服务器。


图:4.-1 LwM2M Enabler整体架构


我现在要做的是了解如何将 LWM2M 引导服务器用作 LWM2M 客户端并记录工作流程。

更简单的选项似乎是“Factory Bootstrap”过程。

“在这种模式下,LwM2M 客户端在部署设备之前已经配置了必要的引导程序信息。配置的信息可能是 LwM2M 引导程序-服务器引导程序信息和/或 LwM2M 服务器引导程序信息。”

好的,因此在“Factory Bootstrap”设备下具有“部署前必要的引导程序信息”。

此信息似乎是:

  • LwM2M 服务器账号(必填)
  • 附加对象实例(可选)
  • LwM2M 引导服务器帐户(可选)

关于 Factory Bootstrap 的问题

因此,至少对于工厂引导程序和服务器,我需要为工厂生成一个 LWM2M 服务器帐户以写入设备。这个对吗 ?

在这个阶段,这个“LWM2M 服务器帐户”是否需要每个客户端都是唯一的?

客户端启动引导程序的问题

如果我们不走 Factory Bootstrap 路线,那么第二个选项将是 Client Initiated Bootstrap。有没有人有这个过程的经验,可以就这种方法的好处提出建议?

谢谢

1个回答

我不再进一步讨论“工厂引导问题”问题的这一部分

但是我认为可以在这里找到对“客户端启动引导程序的问题”的回答

为什么不在工厂“硬编码”最终服务器 URL 和凭据?

嗯,这是可能的,它被称为“工厂引导程序”,但这不是一个好习惯:如果您需要更改服务器 URL 或凭据(密码),您将需要对设备进行物理访问。

这就是所谓的“设备启动的引导程序”。

  • 在出厂刷新期间,您只需输入“引导程序凭据”即可到达引导程序服务器。
  • 引导服务器的唯一功能是回答引导请求(POST on /bs)并使用服务器 URL 和凭据(私钥、证书、预共享密钥等)配置设备。

bootstrap时配置的参数有:

服务器安全凭证:

  • 用于安全 DTLS PSK 通信的预共享密钥
  • 或用于 DTLS RPK 或 X.509 通信的私钥和证书
  • 用于访问服务器的 URL,如“coaps://my.server.com:5684”
  • 用于与设备或服务器通信的短信安全参数

通讯参数:

  • 通信频率(寿命)
  • 绑定模式:设备是否始终处于连接状态,是否使用 UDP 和/或 SMS

访问控制列表:

  • 哪个服务器可以读/写哪些对象,例如固件更新或连接参数,(仅当您有多个设备管理服务器时)

在以下情况下,设备可以触发引导程序:

  • 当设备仅包含引导程序凭据而没有设备管理服务器凭据时,
  • 当设备由于任何原因无法与配置的设备管理服务器开始通信时(服务器无响应、身份验证失败等)。

为什么要分两步进行安全配置?为什么不将密钥放入工厂并等待需要更改它以触发设备引导程序?

第一个优势:您确定“无线”配置设备凭据是有效的,因为您在设备生命周期内至少使用它一次。

您想更改设备中的凭据是因为您的服务器出现漏洞或因为您想轮换您的密钥/证书?它很容易,经过测试和运行!只需使服务器上的先前凭据无效,设备将触发重新引导并从引导服务器获取新凭据。此过程还可用于重新配置设备以连接到另一台服务器。

一旦通过初始引导,工厂不知道用于通信的最终秘密。因此,有人闯入工厂并收集引导凭证将无法窃听最终的设备管理通信。至少,他们可以观察引导程序通信并发现少数设备的设备管理密钥,但他们不会直接访问您的整个车队。