定义
Device Authentication(设备认证)用于验证终端身份,防止非法设备接入。支持 一机一密(预烧录 Device Credentials)、一型一密+Dynamic Registration、X.509 证书(mTLS)等多种方式。
认证方式对比
一机一密:每台设备预烧录唯一 ProductKey+DeviceName+DeviceSecret,安全等级高,适合对安全要求严格的场景,但产线需管理每台设备的凭证。一型一密:同型号设备共享 ProductSecret,通过 Dynamic Registration 动态注册获取设备级凭证,产线简化,需保障 ProductSecret 不泄露。X.509+mTLS:基于证书的双向认证,适合工业、车联网等高安全场景。
与接入层协同
设备认证是 Device Access 接入层的第一道关口。MQTT 连接时通过 Username/Password 或证书校验;LwM2M 通过 Pre-Shared Key 或证书。认证通过后,平台建立设备会话,分配 Topic 权限,允许上报数据与接收指令。认证失败可记录审计日志,支持黑名单与限流防暴力破解。
最佳实践
生产环境务必使用 TLS 加密传输;定期轮换凭证或证书;对异常认证尝试(如频繁失败)告警;结合 Device Lifecycle 生命周期,对已报废设备吊销凭证,防止遗留设备被滥用。
三种身份材料各自成立的场合
设备认证的技术含义,是在接受上行数据和执行下行控制之前,确认对面持有的秘密或证书属于档案里的那一台设备。一机一密用每台独有的设备密钥,适合产线能为每台写入不同材料、并且泄露一台不应影响其他台的产品。一型一密先用产品级秘密换取设备级秘密,适合大批量、不希望在产线保管每台密钥的产品,但产品级秘密一旦泄露,注册环节就不再可信。证书方式用公私钥和证书链,适合需要轮换、吊销和双向鉴别的场合。三种方式解决的都是“你是谁”,不解决“你现在是否仍可使用”。
选用哪一种,取决于产线能烧录什么、设备能否安全保存私钥、以及现场是否允许换证。材料必须经加密信道提交,不能在调试口令或明文日志里出现。认证通过后,会话只应授予这台设备自己的上行路径和控制范围。时钟偏差过大时,依赖有效期的证书会失败,这是时间问题,不是密钥写错。与审计日志配合时,失败原因要分级记录,例如材料不符、证书过期、设备被停用,便于区分攻击和配置错误。
密钥还在但设备已被停用
容易出错的是只校验密钥匹配就放行。设备已报废、已转移或产品已停用,旧密钥依然数学上正确,策略上却不应再建会话。另一种错误是把产品级秘密固化在每台设备里长期使用,动态注册本应换发的设备级秘密没有落盘,之后每台都用同一个秘密连上来,一台被读出就等于整批失守。证书链不完整、用了错误环境的签发者,也会让正式设备在生产环境全部失败,测试环境却正常。
重放也要防。只比对密钥、不看随机数或时间窗口,截获的旧注册请求可能再次成功。认证通过后如果长期不重新鉴别,被拔出的模块换到另一台外壳上仍会沿用会话。密钥轮换期间要允许新旧材料有明确的交接,而不是两把密钥永久同时有效。设备生命周期进入退役时,应先拒绝新会话,再吊销材料;只删档案不吊销,现场设备仍可能连到别的环境。频繁失败需要告警,但阈值要按设备重连行为设置,避免弱网重试被当成撞库。
产品秘密不应当长期当登录口令
一型一密里的产品级材料只应用于换发每台自己的设备密钥。若设备图省事,之后每次连接仍出示产品秘密,那么读出任意一台就等于能够冒充整批。认证策略应拒绝这种长期复用,并在注册完成后要求设备改用自己的密钥。一机一密则相反,每台密钥从出厂就不同,认证时不应再接受产品级秘密作为替代。证书方案要核对链、有效期和是否已被吊销,只核对公钥格式是不够的。无论哪一种,材料正确都只完成身份这一步,设备已退役、已转移或产品已停用时仍应拒绝新会话。
失败原因要能区分写错、过期、停用和重放,否则产线会把策略拒绝当成烧录失败而反复重写。时钟偏差导致的证书失败应提示校时,而不是提示更换密钥。重放防护依赖随机数或短时窗口,窗口太宽,旧请求仍能注册出新设备;太窄,产线时钟不准又会全部失败。轮换时要有明确的交接终点,不能两把密钥无限期同时有效,也不能在设备确认保存新密钥之前作废旧密钥。频繁失败可以告警,但阈值要避开弱网设备的正常重连,避免把恢复过程误报成撞库。