2. 无线设备身份标识体系
在IoT无线设备身份认证工程中,设备身份标识体系是整个信任链的起点。一个设备从出厂到退役,会携带多种标识,它们分别由不同层级的主体生成、在不同阶段被写入、以不同方式被读取,并承担不同的安全职责。理解这些标识的差异与协作关系,是设计认证方案、排查身份冲突、规划密钥轮换的前提。
五类标识的定位与生成主体
MAC地址由IEEE统一分配OUI前缀,厂商在网卡控制器生产时烧入,长度48位,通常写作AC:1F:6B:3D:8E:02。它标识的是"网络接口"而非"设备本身",一台设备有Wi-Fi和蓝牙两个接口就有两个MAC。MAC可被软件改写,因此只能作为链路层寻址依据,不能单独作为可信身份。
IMEI是蜂窝模组的15位数字标识,由GSMA授权分配TAC(前8位),厂商补入序列号(6位)和Luhn校验位(1位)。例如861234567890123。IMEI绑定的是蜂窝通信模块,写入模组基带存储区,普通应用无法修改,但专业工具仍可篡改。
芯片ID是MCU或安全芯片出厂时由晶圆制造环节产生的唯一序列号,如STM32的96位UID、ESP32的MAC派生ID。它固化在芯片掩膜或OTP区域,读取接口由芯片厂商定义,通常通过HAL_GetUID()一类API获取。芯片ID不可改写,是设备身份最底层的锚点。
PUF(物理不可克隆函数)不存储密钥,而是利用芯片制造过程中随机分布的微观工艺偏差(如SRAM上电初值、环形振荡器频率差)生成唯一响应。同一激励在不同芯片上产生不同响应,同一芯片多次响应则高度一致。PUF输出的是"指纹"而非"编号",密钥在需要时现场重建,不落盘。
证书指纹是设备证书经哈希运算得到的摘要,常见SHA-256,如3A:F2:...:9C。它由设备在密钥生成后计算,或由CA在签发时记录。指纹本身不是秘密,但它是证书内容的完整性凭证,用于快速比对和吊销判断。
烧录与读取的实际工程做法
芯片ID和PUF无需烧录,出厂即存在。真正需要工程介入的是证书和密钥的注入。典型产线流程是:设备上电后通过安全调试接口进入引导模式,产线工具向设备发送CSR请求,设备在安全芯片内生成密钥对并返回CSR,CA签发证书后回传,设备将证书写入安全存储区。整个过程私钥不出芯片。
以某ESP32-S3产线为例,使用espsecure.py工具将设备证书写入NVS分区:
# 产线工装读取芯片UID作为设备序列号
esptool.py read_mac
# 输出: MAC: ac:1f:6b:3d:8e:02
# 生成CSR并请求CA签发
espsecure.py generate_csr --key device_key.pem --output device.csr
# 将签发证书烧入NVS
esptool.py write_flash 0x290000 device_cert.bin
读取时,应用层通过esp_efuse_read_field_blob()读取UID,通过mbedTLS接口读取证书并计算SHA-256指纹,与云端注册的指纹比对。若不一致,说明证书被替换或设备被克隆。
生命周期管理的四个关键节点
注册阶段:设备首次联网时,将芯片ID、证书指纹、IMEI上报至设备管理平台,建立"一机一档"。平台记录绑定关系,后续认证以此为准。
认证阶段:设备发起TLS连接时提交证书,平台校验证书链和指纹,同时可要求设备用PUF重建的密钥对挑战值签名,实现"证书+物理指纹"双因子认证。
轮换阶段:证书临近有效期(如剩余30天)时,设备通过已建立的信任通道申请新证书。旧证书在宽限期后吊销,指纹列表同步更新。
退役阶段:设备下线时,平台将证书指纹加入CRL,芯片ID标记为已退役。若设备被回收再部署,必须重新走注册流程,不能复用旧身份。
标识冲突与异常排查
实际运维中常见三类问题:一是MAC冲突导致DHCP分配异常,排查时对比设备标签MAC与ifconfig输出,若不一致说明被改写;二是证书指纹不匹配导致TLS握手失败,检查设备证书是否被替换或NVS分区是否损坏;三是PUF响应不稳定,通常由供电电压波动或温度超出工作范围引起,需在认证前增加多次采样和纠错码(如BCH码)处理。
建议在设备管理平台中建立标识关联表,字段包括:芯片ID、PUF标识符、证书指纹、MAC、IMEI、注册时间、证书有效期、状态。任一标识异常时,可通过关联表快速定位影响范围。
| 标识 | 生成主体 | 存储位置 | 可改写性 | 典型用途 |
|---|---|---|---|---|
| 芯片ID | 晶圆厂 | OTP/掩膜 | 不可 | 硬件信任根 |
| PUF | 工艺偏差 | 不存储 | 不可克隆 | 密钥重建 |
| 证书指纹 | CA/设备 | 安全存储 | 可轮换 | 应用层认证 |
| MAC | IEEE/厂商 | 网卡控制器 | 可软件改 | 链路寻址 |
| IMEI | GSMA/厂商 | 基带存储 | 专业工具可改 | 蜂窝接入 |