2. 设备身份与密钥体系基础

工厂烧录的核心任务,不只是把固件写进芯片,而是把“这台设备是谁、它能证明自己是谁、它能安全地跟谁通信”这三件事一次性固化到设备里。要理解烧录产线上的每一个动作,必须先理解设备身份与密钥体系的基本构件:设备唯一标识、X.509 证书、对称密钥与非对称密钥、信任根、证书链,以及密钥生命周期。它们不是抽象概念,而是直接决定烧录工位要写哪些分区、要连哪些服务器、要校验哪些字段的工程对象。

设备唯一标识:身份的锚点

设备唯一标识(Device Unique ID)是设备身份的最小单位。它通常来自芯片出厂时固化的不可改写区域,例如 STM32 的 96 位 UID、ESP32 的 MAC 基址、安全芯片的序列号,也可以由产线在首次烧录时生成并写入一次性可编程(OTP)区域。标识本身不是秘密,它的价值在于“唯一且不可克隆”。工程上常见的做法是:芯片 UID 作为硬件根,再派生出一个设备 ID,例如 DEV-{产品线}-{批次}-{UID后8位},用于在设备管理平台中建立唯一档案。

需要特别注意的是,设备唯一标识必须与私钥绑定。如果只烧录一个 ID 而不绑定密钥,攻击者可以复制 ID 冒充设备;如果只烧录密钥而不绑定 ID,则无法追溯设备来源。因此烧录工位通常会把 UID、设备 ID、公钥指纹三者一起写入安全存储区,并在产线数据库中建立映射关系。

对称密钥与非对称密钥:两种信任工具

对称密钥使用同一把密钥完成加密和解密,典型算法是 AES-128/256。它的优点是速度快、资源占用小,适合设备与云端建立会话后的数据加密,也适合产线内部对固件镜像做批量加密。缺点是密钥分发困难:如果 10 万台设备共用一把对称密钥,一台设备被破解,全部设备都面临风险。

非对称密钥使用公钥和私钥配对,典型算法是 ECC P-256 或 RSA-2048/3072。私钥永远留在设备安全区,公钥可以公开分发。设备用私钥签名,云端用公钥验签;云端用公钥加密,设备用私钥解密。它的核心价值是“私钥不出设备”,因此适合做设备身份认证和证书体系。代价是运算较慢、密钥长度更长,在资源受限的 MCU 上需要硬件加速或安全芯片支持。

工程上的常见组合是:设备内置一对非对称密钥用于身份认证,同时由云端下发一把对称会话密钥用于数据加密。这样既保证了身份可信,又保证了通信效率。

X.509 证书与证书链:把公钥变成可信身份

仅有公钥还不够,因为云端无法判断“这把公钥到底属于谁”。X.509 证书的作用就是由可信第三方(CA)用私钥对“公钥 + 设备身份信息”做签名,形成一份可验证的数字凭证。证书中通常包含:版本、序列号、签名算法、颁发者、有效期、主体(设备 ID 或产品型号)、主体公钥信息、扩展项(如密钥用途)以及 CA 签名。

证书链是信任传递的路径:根 CA 证书(自签名,预置在设备或云端)→ 中间 CA 证书 → 设备证书。验证时,设备或云端从设备证书开始,逐级用上一级公钥验证下一级签名,直到根 CA。只要根 CA 可信,整条链就可信。工厂烧录时,通常把根 CA 证书和中间 CA 证书预置到设备的安全存储区,设备证书则在产线首次连接时由云端签发并写入。

示例参数(教学假设):某工业网关采用 ECC P-256 设备密钥,根 CA 为 FactoryRootCA,中间 CA 为 FactoryIssuingCA,设备证书主体为 CN=GW-2024-0001, O=Factory, C=CN,有效期 10 年。烧录工位将根 CA 和中间 CA 写入 trust_store 分区,设备证书写入 device_cert 分区,私钥写入安全芯片密钥槽,不可导出。

信任根:整条链的起点

信任根(Root of Trust, RoT)是设备安全体系的起点,通常由芯片内部的不可改写区域、安全启动 ROM、OTP 熔丝或安全芯片构成。它决定了“设备上电后第一段代码是否可信”。如果信任根被篡改,后续所有证书和密钥都失去意义。因此工厂烧录必须确保:信任根相关的熔丝位在正确时机烧断,且烧断后不可逆。常见做法是先烧录调试密钥用于产线测试,量产阶段再烧断 JTAG 禁用熔丝和 Secure Boot 使能熔丝。

密钥生命周期与工厂烧录的关系

密钥生命周期包括:生成、注入、使用、轮换、吊销、销毁。工厂烧录主要覆盖“生成”和“注入”两个阶段,但必须为后续阶段预留接口。生成阶段可以在设备内部由 TRNG 产生,也可以在产线 HSM 中批量生成后注入。注入阶段要保证密钥在传输和写入过程中不被泄露,通常采用加密通道 + 安全芯片封装。轮换和吊销则依赖设备证书中的有效期和 CRL/OCSP 机制,烧录时需要确保设备具备联网更新证书的能力。

设备身份与密钥体系:从信任根到设备证书 信任根 RoT 芯片 UID / OTP 熔丝 Secure Boot ROM 根 CA 证书 FactoryRootCA 自签名 · 预置设备 中间 CA 证书 FactoryIssuingCA 由根 CA 签名 设备证书 CN=GW-2024-0001 ECC P-256 公钥 设备私钥 安全芯片密钥槽 不可导出 · 不可读 锚定 签发 签发设备证书 配对 证书链验证路径(设备上电或云端接入时) 根 CA 公钥 验证中间 CA 签名 中间 CA 公钥 验证设备证书签名 设备证书公钥 验证设备签名 设备私钥 完成身份认证 信任链方向:根 CA → 中间 CA → 设备证书 → 设备私钥;私钥始终不出安全区

烧录工位上的实际动作

把上述体系落到产线上,一个典型的设备身份烧录工位会执行以下动作:第一,读取芯片 UID,生成设备 ID,写入 OTP 或安全存储区;第二,在设备内部生成 ECC P-256 密钥对,私钥留在安全芯片,公钥导出;第三,通过加密通道把公钥和设备 ID 发送给产线 CA 服务,请求签发设备证书;第四,把根 CA 证书、中间 CA 证书、设备证书写入指定分区;第五,校验证书链是否可验证、私钥是否可签名、公钥是否与证书匹配;第六,烧断调试禁用熔丝和 Secure Boot 使能熔丝,锁定身份。

这六步中,任何一步失败都可能导致设备无法接入云端或身份被伪造。因此烧录工位必须记录每一步的结果,并与设备 ID 绑定存档。产线数据库中的记录应包含:设备 ID、芯片 UID、公钥指纹、证书序列号、烧录时间、工位号、操作员、校验结果。这些字段是后续设备运维、证书轮换和故障追溯的基础。

工程提示:设备证书的有效期不宜过长。工业设备生命周期常达 10 年以上,但证书有效期建议设为 3~5 年,配合自动轮换机制。烧录时应在设备中预置证书更新所需的根 CA 和更新协议端点,避免设备出厂后无法更换证书。

常见误区:把设备私钥导出到产线服务器备份。私钥一旦离开安全芯片,就失去了“不可导出”的核心保护。正确做法是私钥在设备内部生成、内部使用,产线只保存公钥和证书,不保存私钥。