3. 密钥管理体系架构设计

车载OTA的密钥体系不是“一把密钥走天下”,而是一个按职责分层、按生命周期分域、按信任强度逐级下推的结构。理解这套结构的关键,是先分清三类密钥各自解决什么问题:根密钥解决“信任从哪里来”,签名密钥解决“这个包是不是官方发布的、有没有被篡改”,加密密钥解决“传输和存储过程中内容是否被看到”。三者不能互相替代,也不能混用同一份密钥材料。

从信任链角度看,根密钥位于最顶层,通常以非对称密钥对形式存在,私钥只存在于受控的密钥生成或签发环境中,公钥则被固化到车辆侧的可信存储或安全元件中。签名密钥由根密钥签发或派生,用于对OTA包、清单文件、差分补丁进行数字签名。加密密钥则更多用于会话级或包级的内容保护,可以是AES-128/256对称密钥,也可以是基于ECDH协商出的临时会话密钥。三者的层级关系可以用下面的结构图表示。

车载OTA密钥分层结构与信任锚部署 根密钥签发下级密钥,签名与加密密钥分别承担完整性与机密性职责 云端 / 企业侧密钥基础设施 根密钥 Root Key ECDSA P-384 / RSA-4096 离线保管,仅用于签发 签名密钥 Signing Key ECDSA P-256 / Ed25519 对清单与固件包签名 加密密钥 Encryption Key AES-128-GCM / AES-256-GCM 保护传输与落盘内容 签发 派生/封装 车端密钥执行与保护环境 HSM 硬件安全模块 验签、密钥派生、安全启动度量 私钥不出芯片,支持安全计数器 安全元件 SE / eSE 存储根公钥、设备身份证书 抗物理攻击,绑定车辆唯一身份 协同 OTA 包验证与解密流程 接收OTA包 manifest + payload HSM验签 签名密钥公钥验证 解密载荷 AES-GCM会话密钥 写入与校验 哈希比对 + 版本确认 根公钥固化 签名公钥下发 会话密钥协商

上图把“云端签发—车端执行—包验证”三段关系放在同一张图里,重点不是流程顺序,而是密钥材料在哪个位置、以什么形式存在、由谁使用。根密钥私钥永远不离开云端受控环境;签名私钥可以放在云端HSM中,也可以按车型分域存放;加密密钥则通常以会话密钥形式临时协商,用完即弃,不长期驻留。

根密钥:信任的起点与固化方式

根密钥的核心设计原则是“离线、少用、可轮换但极谨慎”。实际工程中,根密钥私钥一般保存在离线HSM或气隙签名机中,只在签发中级CA或签名密钥时短暂启用。根公钥则需要在车辆下线前写入安全元件或HSM的一次性可编程区域,写入后不可修改。这样即使后续OTA服务器被入侵,攻击者也无法伪造新的根信任锚。

一个常见的分层做法是:根密钥签发“车型级签名密钥”,车型级签名密钥再签发“版本级签名密钥”。这样做的好处是,当某一车型的签名密钥泄露时,只需吊销该车型的密钥,不影响其他车型。示例参数可以这样设定:根密钥使用ECDSA P-384,车型级签名密钥使用ECDSA P-256,版本级签名密钥使用Ed25519。验签时,车端HSM先用根公钥验证车型证书,再用车型公钥验证版本签名,形成两级证书链。

签名密钥:完整性与来源认证

签名密钥解决的是“这个包确实由官方发布,且内容未被篡改”。在OTA场景中,签名对象通常包括manifest清单、固件镜像、差分补丁和安装脚本。签名算法建议使用ECDSA或Ed25519,哈希算法使用SHA-256或SHA-384。签名私钥应存放在HSM中,签名操作通过PKCS#11或厂商API调用,私钥不出芯片。

车端验签时,HSM先计算包摘要,再用预置的签名公钥验证签名值。如果验签失败,OTA流程应立即终止,并记录安全事件。这里有一个容易忽略的细节:验签不仅要验证签名,还要验证证书链的有效期和吊销状态。如果车型证书已过期或被吊销,即使签名值正确,也应拒绝安装。

加密密钥:传输与落盘的机密性

加密密钥解决的是“内容不被看到”。OTA包在传输过程中可能经过公网、经销商网络或诊断接口,落盘后也可能被读取。因此,加密密钥通常分为两类:一类是传输会话密钥,由车端与OTA服务器通过ECDH协商生成,每次会话不同;另一类是包级加密密钥,用于对固件镜像本身加密,密钥由签名密钥派生或由KMS统一管理。

示例参数:传输层使用TLS 1.3,会话密钥由ECDH P-256协商,对称加密使用AES-128-GCM;包级加密使用AES-256-GCM,密钥通过HKDF从主密钥派生,派生信息包含车辆VIN和包版本号。这样即使某个包的加密密钥泄露,也无法解密其他车辆或其他版本的包。

HSM与安全元件的部署位置与职责边界

HSM和安全元件不是二选一的关系,而是分工协作。HSM通常位于车端中央网关或域控制器中,负责验签、密钥派生、安全启动度量和安全计数器管理。安全元件则更靠近身份根,负责存储根公钥、设备身份证书和车辆唯一标识。两者之间通过安全通道通信,HSM向SE请求根公钥或设备证书,SE不直接参与大包验签,避免性能瓶颈。

部署位置可以这样理解:云端HSM负责签名和密钥签发;车端HSM负责验签和解密;安全元件负责身份锚定和证书存储。如果车辆架构中没有独立SE,也可以将根公钥固化在HSM的OTP区域,但安全等级会有所降低。实际选型时,需要根据车型定位、成本和安全认证要求决定。

设计密钥体系时,先画清楚“谁签发谁、谁使用谁、谁存储谁”三张关系,再决定HSM和SE的部署位置。不要先选芯片再补密钥结构,否则容易出现密钥职责重叠或信任链断裂。

密钥轮换与吊销的工程考虑

密钥体系不是一次设计就永久不变。签名密钥建议按车型和年度轮换,根密钥轮换周期更长,通常与车型生命周期一致。轮换时,新密钥需要通过旧密钥签名的方式下发,车端HSM在验证新密钥证书后,将其写入受控存储。吊销则依赖CRL或OCSP,但车端可能长期离线,因此更实际的做法是设置证书有效期,并在OTA包中携带吊销列表。

一个可参考的轮换策略是:版本级签名密钥每12个月轮换一次,车型级签名密钥每3年轮换一次,根密钥在车型停产后不再签发新密钥。每次轮换前,先在测试车辆上验证新密钥的验签和解密流程,确认无误后再全量推送。轮换过程中,旧密钥不能立即删除,应保留至少一个版本周期,以便回滚和兼容旧包。

总结来看,根密钥、签名密钥、加密密钥的分层结构,本质上是把“信任建立”“完整性验证”“机密性保护”三件事拆开,分别交给不同层级、不同生命周期的密钥材料。HSM和安全元件则是这套结构在车端的物理落点,决定了私钥是否可导出、根公钥是否可篡改、验签是否可信。只有把分层结构、部署位置和轮换策略一起设计,OTA密钥治理才具备可落地性。