IoT 三元组是物联网平台常见的设备接入身份材料,通常由 ProductKey、DeviceName 和 DeviceSecret 组成。它用于让平台识别“这是什么产品、哪一台设备、它是否持有正确秘密”。
不同平台字段名可能不同,但结构大致类似:
| 字段 | 作用 | 是否应保密 |
|---|---|---|
ProductKey | 标识产品、型号或设备族 | 通常不算秘密 |
DeviceName | 标识某一台设备 | 通常不算秘密 |
DeviceSecret | 证明设备身份的共享秘密 | 必须保密 |
核心机制
设备连接平台时,不是把三元组直接当密码明文发出去,而是通常用 DeviceSecret 对时间戳、随机数或连接参数做签名。平台用保存的同一份 secret 验证签名是否正确。
简化模型可以写成:
signature = HMAC(DeviceSecret, ProductKey + DeviceName + timestamp + nonce)平台验证通过后,才认为这台设备拥有对应身份。后续它能不能发布数据、订阅主题、接收配置或执行远控,还要继续受 认证与授权 和生命周期状态约束。
与设备置备的关系
在 设备置备 中,IoT 三元组通常会被:
- 由平台预先生成,或在产线系统中申请生成。
- 写入设备的安全存储、配置分区或 factory data。
- 同步登记到设备台账,绑定 SN 与 Device ID。
- 在首启联网时用于完成设备认证。
如果三元组写错、重复、泄露或平台登记缺失,设备会出现无法上线、冒名上线或整批安全风险。
边界与常见坑
- 三元组不是 SN:SN 用于出厂追溯,DeviceName 可以复用 SN,但二者概念不同。
- ProductKey 不是设备唯一身份:它通常表示产品族,一批设备可以共用。
- DeviceSecret 不是用户密码:它属于设备接入凭据,不应被用户、客服或普通运营后台读取。
- 不要批量共用 DeviceSecret:共用 secret 会让一台设备泄露变成整批设备泄露。
- 不要把三元组写进普通日志:产测日志、异常日志、导出表和截图都可能形成长期泄露面。
- 三元组不替代证书体系:高安全场景通常更偏向每设备 数字证书、私钥 和 PKI(公钥基础设施)。