设备身份与凭证:唯一标识、密钥与证书

设备要接入物联网,第一件事就是证明「我是谁」。这听起来简单,但实际落地时坑不少。我见过太多项目,设备身份没设计好,上线后才发现没法做安全校验,只能推倒重来。

今天咱们把三个核心概念掰开揉碎讲清楚:设备唯一标识、设备密钥、设备证书。它们各自解决什么问题?有什么区别?怎么搭配使用?

设备唯一标识:出生证明

每个设备出厂时,都得有个「身份证号」。这个号就是设备唯一标识。常见的格式有 UUID 和 IMEI。

  • UUID(通用唯一标识符):128 位随机数,比如 550e8400-e29b-41d4-a716-446655440000。全球唯一,不依赖任何中心节点生成。
  • IMEI(国际移动设备识别码):15 位数字,GSM 模块专用。比如 356938035643809。由设备厂商申请,全球唯一。

核心要点:唯一标识只负责「区分设备」,不负责「验证设备」。就像你的身份证号,别人知道你的号,不代表他就是你本人。

我在一个智能门锁项目里遇到过这样的问题:厂商直接用 MAC 地址当设备标识。结果用户换了个路由器,MAC 地址冲突,后台直接认错设备。后来我们全部切成了 UUID,烧录在安全芯片里,出厂后不可更改。

我的建议:优先用 UUID。IMEI 只适用于蜂窝网络设备,而且存在被篡改的风险。UUID 可以自己生成,不依赖硬件,灵活性高。

设备密钥:数字签名与加密

有了身份证号,还得有「签名笔迹」。设备密钥就是干这个的。密钥分两种:对称密钥和非对称密钥。

类型 密钥数量 典型算法 性能 适用场景
对称密钥 1 个(共享) AES-128/256 快(硬件加速) 数据加密、消息认证
非对称密钥 2 个(公钥+私钥) RSA-2048、ECC P-256 慢(10-100 倍) 身份认证、密钥协商

对称密钥就像你和朋友约定好的暗号。你俩都知道,别人不知道。加密快,但分发困难——怎么把密钥安全地交给设备?

非对称密钥则像一把锁和一把钥匙。公钥是锁,谁都可以拿;私钥是钥匙,只有设备自己藏着。你用公钥加密的数据,只有私钥能解开。反过来,你用私钥签名的数据,别人用公钥就能验证是你签的。

避坑指南:我曾经在一个传感器项目里,直接把对称密钥硬编码在固件里。结果固件被反编译,密钥泄露,整个批次设备都得召回。后来我们改用非对称密钥,私钥放在安全元件里,公钥随便看,安全等级直接拉满。

设备证书:权威认证

密钥解决了「能不能加密」的问题,但没解决「这个公钥到底是谁的」。设备证书就是来解决这个问题的。

X.509 证书是一个数字文件,里面包含:

  • 设备的公钥
  • 设备的唯一标识(通常是 UUID 或设备序列号)
  • 颁发者(CA,证书颁发机构)的信息
  • 有效期
  • CA 的数字签名

说白了,证书就是 CA 给设备公钥做的一个「公证」。你拿到一个证书,用 CA 的公钥验证签名,就知道这个公钥确实是属于这台设备的。

一句话总结:唯一标识是「你是谁」,密钥是「你能做什么」,证书是「别人相信你」。三者缺一不可。

三者的关系与区别

咱们用一个表格把差异说清楚:

维度 唯一标识 密钥 证书
作用 区分设备 加密/签名 绑定身份与公钥
是否保密 公开 私钥保密,公钥公开 公开
能否伪造 能(需冲突) 不能(私钥不泄露) 不能(CA 签名保护)
生命周期 永久 可定期更换 有有效期
依赖基础设施 无 无 需要 CA 系统

你想想看,如果只有唯一标识,攻击者可以伪造设备 ID 冒充合法设备。如果只有密钥,你没法确认这个公钥是不是设备本人的。只有三者配合,才能构建完整的设备身份体系。

知识体系总览

下面这张图把三者的关系和典型流程画出来了:

设备身份与凭证体系 设备唯一标识 UUID / IMEI / MAC 设备密钥 对称 / 非对称 设备证书 X.509 标准 三者关系 标识区分设备 → 密钥提供加密能力 → 证书绑定标识与公钥 典型设备注册流程 1. 读取唯一标识 从安全芯片读取 2. 生成密钥对 ECC P-256 推荐 3. 申请证书 CSR 签名请求 4. 注册完成 证书绑定标识 注:实际项目中,密钥对生成和证书申请通常在设备首次上电时完成 私钥永远不出设备,公钥和证书可以公开传输

实际项目中的选择建议

我做了这么多年物联网安全,总结了几条经验:

  1. 低功耗传感器:用对称密钥 + UUID。性能开销小,但要做好密钥分发管理。
  2. 网关/边缘设备:用非对称密钥 + X.509 证书。计算能力强,安全等级高。
  3. 移动设备:IMEI + 非对称密钥。IMEI 是运营商标准,配合证书做双向认证。
  4. 安全要求极高的场景(金融、医疗):三者全上,私钥放安全元件(SE)或 TEE 环境。

一个小技巧:证书有效期别设太长。我习惯设 1-2 年,配合自动续签机制。这样即使某个证书泄露,影响范围也有限。

嗯,设备身份与凭证这块,核心就是记住:标识是基础,密钥是能力,证书是信任。下一层咱们会聊怎么把这些凭证安全地烧录到设备里,那又是另一门学问了。