3. PKI核心概念

车载PKI并不是把互联网PKI简单搬进车里。车辆在生命周期内会经历产线注入、下线检测、售后更换、OTA升级、报废回收等多个阶段,每个阶段都可能涉及密钥生成、证书签发、吊销查询与信任建立。理解PKI核心概念,是后续设计密钥生命周期与诊断安全方案的基础。

一、公钥密码学基础:一对密钥,两种用途

公钥密码学使用一对数学关联的密钥:私钥保密,公钥可公开。私钥用于签名或解密,公钥用于验签或加密。车载场景中,最常见的用途是数字签名:ECU用私钥对消息或固件摘要签名,接收方用其公钥验证来源真实性与完整性。

与对称密钥相比,公钥算法计算开销更大,因此实际系统通常采用混合模式:用对称密钥加密数据,用公钥算法保护对称密钥或签名摘要。车载常用算法包括ECDSA、EdDSA、RSA以及用于密钥协商的ECDH。选择时需权衡安全强度、算力、存储和实时性。

核心关系:私钥签名 → 公钥验签;公钥加密 → 私钥解密。私钥一旦泄露,攻击者可伪造身份或签名,因此私钥必须存储在HSM、SE或TEE等受保护区域。

二、数字证书:把公钥和身份绑定起来

公钥本身只是一串数据,无法说明它属于谁。数字证书由CA签发,把公钥、主体身份、有效期、用途、签发者等信息绑定,并由CA私钥签名。验证证书时,使用CA公钥验证签名,从而确认证书内容未被篡改。

X.509是车载PKI最常用的证书格式。一个典型证书包含:版本、序列号、签名算法、签发者、有效期、主体、主体公钥信息、扩展项以及CA签名。扩展项中的Key Usage和Extended Key Usage尤其重要,它们限定证书能做什么,例如只能用于签名、只能用于TLS客户端认证,或只能用于诊断认证。

三、CA体系与信任链:从根到叶的逐级验证

CA体系通常呈层级结构:根CA位于最顶层,其证书自签名并预置在信任库中;中间CA由根CA签发,用于隔离不同业务或不同产线;终端实体证书由中间CA签发,安装在ECU、诊断仪、TSP或OTA服务器上。验证一条证书链时,从终端证书出发,逐级用上级公钥验证下级证书签名,直到根CA。

信任链的关键在于信任锚。车载ECU的信任锚通常是预置的根CA证书或根公钥哈希。如果信任锚被替换,整个信任体系就会崩塌。因此,根密钥必须离线保护,中间CA按业务隔离,终端证书按用途最小化授权。

车载PKI信任链与吊销状态验证 根CA → 中间CA → 终端证书;CRL/OCSP 提供吊销状态 根CA(离线保护) 信任锚 · 自签名证书 中间CA-产线 签发ECU出厂证书 中间CA-服务 签发OTA/TSP证书 ECU终端证书 签名/诊断认证 诊断仪证书 UDS安全访问 OTA服务器证书 TLS/固件签名 TSP证书 车云通信 CRL / OCSP 响应器 吊销列表 · 在线状态查询 信任锚预置 根证书/公钥哈希 吊销检查 CRL下载/OCSP查询

四、CRL与OCSP:证书吊销后的状态查询

证书在有效期内也可能因为私钥泄露、设备报废、售后更换或业务下线而需要提前失效。CRL是CA定期发布的吊销证书列表,包含被吊销证书的序列号和吊销时间。OCSP则提供在线查询,客户端发送证书序列号,响应器返回good、revoked或unknown。

两者各有取舍:CRL可以离线缓存,但列表可能很大且更新有延迟;OCSP实时性更好,但需要网络连接,且可能暴露客户端查询隐私。车载场景中,TBox或网关通常具备联网能力,可优先使用OCSP;产线或售后诊断环境可能网络受限,则依赖预置CRL或短有效期证书。

机制 数据形式 实时性 车载适用场景 主要风险
CRL 吊销列表文件 周期性更新 产线、售后、离线ECU 列表膨胀、更新延迟
OCSP 在线查询响应 准实时 TBox、网关、OTA服务器 网络依赖、隐私泄露
短有效期证书 有效期极短 自然过期 临时会话、OTA任务 频繁签发、时钟同步

五、车载场景的特殊约束

车载PKI面临与互联网不同的约束。第一,资源受限:低端ECU算力、内存和存储有限,证书链不宜过长,算法应优先选择轻量级ECC。第二,网络不稳定:车辆可能长期离线,OCSP不可达时必须有降级策略,例如使用缓存CRL或短有效期证书。第三,生命周期长:车辆使用年限可达10年以上,根CA和中间CA的密钥必须支持长期保护与平滑轮换。第四,安全启动与HSM:私钥必须绑定硬件信任根,防止被导出或复制。第五,法规与合规:不同地区对密码算法、证书策略和隐私保护有不同要求,需支持算法敏捷性。

常见误区:认为“证书有效”就等于“身份可信”。实际上,证书有效只说明签名链完整且未过期;如果私钥已泄露但尚未吊销,证书仍然有效。因此,必须结合吊销检查、短有效期和硬件保护,才能形成完整信任判断。

六、案例:一次诊断仪证书验证失败复盘

某售后诊断仪在连接车辆时被拒绝,日志显示“certificate revoked”。排查发现:该诊断仪证书因维修人员离职被提前吊销,但诊断仪本地仍缓存旧CRL,且当时车间网络无法访问OCSP。车辆ECU执行了严格吊销检查,因此拒绝连接。

诊断日志片段:
[PKI] verify_chain: root -> intermediate-service -> diag-tool
[PKI] chain_status: OK
[PKI] revocation_check: CRL cache age = 36h (max 24h)
[PKI] ocsp_query: timeout
[PKI] result: REJECT (revoked or unknown)

改进措施包括:诊断仪定期同步CRL并校验缓存时效;车间部署本地OCSP代理;对关键诊断操作采用短有效期证书;在无法联网时,允许使用预置白名单与人工授权结合的方式降级,但必须记录审计日志。

工程建议:设计车载PKI时,先明确信任锚、证书层级、吊销策略和离线降级规则,再选择算法与硬件载体。不要等到集成阶段才考虑CRL/OCSP超时、时钟不同步或根证书轮换问题。