联网设备必须有清晰的设备身份。设备 ID、SN、MAC、证书和私钥如果管理混乱,会影响 MQTT 连接、云端认证、售后追踪和安全性。身份信息要从生产阶段就设计好。
一、设备身份包含什么
常见信息:
1 | serial_number |
这些信息通常写入 factory 或 secure 分区。
二、保存位置
建议:
1 | /data/factory/device_info.json |
权限:
1 | chmod 644 /data/secure/device.crt |
私钥不应该被普通日志、support bundle 或远程诊断导出。
三、生产烧录流程
典型流程:
- 烧录固件。
- 写入 SN 和 MAC。
- 生成或写入证书。
- 运行 factory test。
- 设备首次联网注册。
- 记录生产结果。
每一步都要可追踪。
四、证书更新
证书可能过期或需要轮换。
更新时要考虑:
- 新证书校验。
- 私钥保护。
- 更新失败回滚。
- MQTT 连接切换。
- 时间是否准确。
证书更新失败不能让设备永久离线。
五、防止身份丢失
恢复出厂时不要清除:
- SN。
- MAC。
- 私钥。
- 证书。
- 硬件校准数据。
OTA 也不应该覆盖这些文件。
可以给 factory 数据做备份和 checksum:
1 | device_info.json |
启动时校验,坏了就尝试恢复备份。
六、诊断时脱敏
support bundle 要过滤:
- private key。
- token。
- password。
- 完整证书链可按策略决定。
远程诊断需要信息,但不能泄露设备身份凭据。
设备身份是安全和运维的基础,不能等云端接入时才临时补。
- 本文链接: https://blog.hansong.icu/2026/06/26/Embedded_Linux_Series_32_Device_Identity_Certs/
- 版权声明: 本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。