2. IoT设备身份标识体系
在IoT平台中,设备身份标识并不是一个简单的字符串,而是一套从芯片到云端逐层建立、逐层映射的标识体系。理解这套体系的关键,是区分“物理标识”和“逻辑标识”,并理解它们如何在云端完成身份映射。
物理标识与逻辑标识
物理标识是设备出厂时固化在硬件中的、难以更改的标识,典型代表包括:
- MAC地址:由IEEE分配,48位,通常烧录在网卡或Wi-Fi模组中,全球唯一但可被软件伪造。
- IMEI:15位数字,用于蜂窝网络设备,由GSMA分配TAC段,运营商网络可识别。
- 芯片唯一ID:如STM32的96位UID、ESP32的MAC派生ID,由半导体厂商保证唯一性。
逻辑标识是平台或应用层为设备分配的标识,典型代表是UUID(通用唯一识别码)。UUID通常由云端在设备注册时生成,与物理标识解耦,便于跨协议、跨厂商统一管理。
标识在云端身份映射中的作用
设备接入云端时,平台需要完成一次“身份映射”:将设备上报的物理标识(如MAC或IMEI)与平台预置或动态生成的逻辑标识(如UUID)绑定。这个过程通常发生在设备首次注册或激活时。
以MQTT接入为例,设备连接时携带ClientID和用户名密码。平台侧根据ClientID查找设备记录,若该设备尚未注册,则根据预置的MAC或IMEI白名单进行校验,校验通过后生成UUID并写入设备注册表。此后,设备的所有消息、影子、规则引擎都通过UUID进行索引。
映射关系一旦建立,物理标识通常不再参与业务逻辑,仅用于设备身份校验和防伪。逻辑标识则成为云端所有服务的统一入口。
标识生命周期管理
标识的生命周期贯穿设备从出厂到退役的全过程,每个阶段都有不同的管理重点:
| 阶段 | 物理标识状态 | 逻辑标识状态 | 关键操作 |
|---|---|---|---|
| 出厂 | 已固化 | 未生成 | 烧录MAC/IMEI,录入出厂数据库 |
| 注册 | 已上报 | 已生成 | 白名单校验,生成UUID,建立映射 |
| 激活 | 已绑定 | 已启用 | 下发令牌,绑定物模型,启用策略 |
| 运行 | 只读 | 可更新 | UUID不变,属性/配置可动态更新 |
| 迁移 | 不变 | 可重新映射 | 更换平台时重新生成UUID,保留物理标识 |
| 退役 | 保留记录 | 注销/归档 | 撤销令牌,标记UUID为失效,保留审计日志 |
生命周期管理的核心原则是:物理标识不可变,逻辑标识可管理。物理标识一旦烧录,应视为只读;逻辑标识则可以根据业务需要重新生成、迁移或注销,但每次变更都必须记录审计日志,确保可追溯。
实际映射示例
假设一台ESP32设备,MAC地址为 24:6F:28:AB:CD:EF,在平台注册时上报该MAC。平台校验白名单通过后,生成UUID 550e8400-e29b-41d4-a716-446655440000,并写入设备注册表:
{
"device_id": "550e8400-e29b-41d4-a716-446655440000",
"physical_id": "24:6F:28:AB:CD:EF",
"physical_type": "MAC",
"status": "active",
"registered_at": "2025-01-15T08:30:00Z",
"token": "eyJhbGciOiJIUzI1NiIs..."
}
此后,设备发布消息到主题 devices/550e8400-e29b-41d4-a716-446655440000/telemetry,平台规则引擎根据UUID路由到对应数据表。物理标识MAC仅用于连接时的身份校验,不再出现在业务主题中。
总结来说,IoT设备身份标识体系的核心是“物理标识保真、逻辑标识保业务”。物理标识解决“设备是不是它声称的那台”,逻辑标识解决“这台设备在云端对应哪个业务实体”。两者通过注册映射建立关联,并在生命周期中各自遵循不同的管理规则。理解这一体系,是后续实现设备认证、访问控制和数据隔离的基础。