3. 车载密码服务需求分析
在AURIX项目里,密码服务需求不是从算法清单出发,而是从整车与ECU的真实安全场景反推。需求分析的目标,是把“安全启动、安全通信、诊断保护、OTA”这些功能语言,翻译成HSM可执行的密码服务语言:需要哪些密钥、哪些算法、哪些调用接口、哪些生命周期状态、哪些性能与安全约束。只有完成这一步,后续的密钥体系设计、HSM固件配置和量产注入才有依据。
一、从场景到密码服务的映射方法
需求提取可以按“资产—威胁—安全目标—密码服务”四层推进。资产是ECU内需要保护的固件、标定数据、诊断权限、通信报文和OTA包;威胁包括固件篡改、报文伪造/重放、诊断越权、OTA包替换或降级;安全目标对应完整性、真实性、机密性、新鲜性和不可否认性;最终落到HSM提供的具体服务,如CMAC、ECDSA验签、AES-GCM加解密、TRNG随机数、单调计数器、密钥派生等。
映射时要注意两点:一是同一场景可能同时需要多种服务,例如安全启动既需要哈希/CMAC做完整性校验,又需要签名验证做真实性确认;二是服务需求必须带约束,包括调用时机(启动阶段/运行阶段)、实时性(毫秒级)、密钥来源(HSM内部/外部注入)、是否允许软件访问明文密钥等。缺少约束的需求无法指导实现。
二、安全启动场景的需求提取
安全启动的核心是“先验证、后执行”。以AURIX TC3xx为例,上电后BootROM先校验HSM固件,再由HSM参与校验应用核固件。需求提取时,要明确被保护对象是Flash中的固件段(如PFlash0的Bootloader、Application),以及校验发生在哪个阶段、由谁执行。
典型需求包括:对每个固件段计算SHA-256摘要,并与预置的参考摘要比对;对固件签名使用ECDSA P-256验签,公钥存储在HSM的OTP或受保护密钥槽中;校验失败时禁止跳转到应用核,进入安全状态或恢复模式。这里的关键约束是启动时间预算,例如冷启动校验总耗时需控制在200 ms以内,因此需要评估HSM的哈希吞吐率,必要时采用分段校验或并行加速。此外,参考摘要和公钥的更新必须受生命周期状态控制,防止被恶意替换。
三、安全通信场景的需求提取
车载安全通信主要覆盖CAN/CAN-FD的SecOC和以太网的TLS/DTLS或IPsec。以SecOC为例,需求包括:对PDU使用AES-CMAC生成消息认证码(MAC),接收端验证MAC;使用单调计数器或新鲜度值防止重放;对敏感报文(如诊断响应、控制指令)可叠加AES-GCM加密。需求中必须写明MAC截断长度(如24 bit或32 bit)、新鲜度同步周期、密钥更新策略。
对于以太网通信,若采用TLS,则HSM需提供会话密钥派生、AES-GCM记录层加解密和ECDHE密钥交换支持。此时要区分“HSM内完成”与“软件完成、HSM仅托管密钥”两种模式,前者安全性高但资源占用大,后者灵活但需确保密钥不以明文出现在应用核内存。需求文档中应明确每种通信矩阵的密码服务调用点、报文周期和最大时延。
四、诊断保护场景的需求提取
UDS诊断中的安全访问(0x27)和认证(0x29)是密码服务需求最集中的场景。0x27通常使用种子—密钥机制,需求包括:HSM生成随机种子(TRNG),ECU与诊断仪基于共享密钥或非对称密钥计算应答;0x29则基于证书和挑战—响应,需要HSM支持ECDSA签名/验签和证书解析。诊断保护还要考虑会话超时、尝试次数限制和失败锁定,这些状态机逻辑可由HSM配合软件实现。
实际项目中,诊断密钥往往按车型或产线分级。需求提取时要明确:不同诊断等级对应哪些密钥、密钥是否可导出、是否允许在HSM外部进行比对。例如,产线诊断密钥可允许在HSM内完成HMAC比对,而售后诊断密钥则要求更强的防提取保护。此外,诊断保护需求应与安全启动、OTA共享同一套密钥生命周期管理,避免出现“诊断密钥可写但启动密钥只读”这类不一致。
五、OTA场景的需求提取
OTA升级对密码服务的需求最综合:既要验证升级包的完整性和真实性,又要防止降级攻击和包重放。典型需求包括:对OTA包使用SHA-256计算摘要,使用ECDSA验签确认来源;使用AES-GCM对包体加密,密钥由HSM派生或托管;使用单调计数器记录当前版本号,拒绝低于当前版本的包;升级完成后重新触发安全启动校验,确保新固件可被信任。
OTA场景还需考虑断点续传和差分升级。若采用差分包,需求中要增加对基础版本和差分包的绑定校验,防止差分包被用于非目标版本。性能方面,OTA包可能达到数MB,HSM的加解密和验签吞吐率直接影响升级时间,需求中应给出可接受的最大升级时长,并据此选择是否启用硬件加速或分块处理。
六、需求汇总与优先级
完成各场景提取后,应形成一份密码服务需求清单,至少包含:服务名称、算法与参数、调用场景、密钥来源、性能约束、生命周期状态和验证方式。下表给出一个简化示例,用于说明需求条目的粒度。
| 需求编号 | 场景 | 密码服务 | 关键参数 | 约束/验证 |
|---|---|---|---|---|
| CS-01 | 安全启动 | SHA-256 + ECDSA P-256 验签 | 固件段≥64 KB,公钥存HSM OTP | 冷启动≤200 ms,失败禁止跳转 |
| CS-02 | SecOC通信 | AES-CMAC | MAC截断32 bit,新鲜度周期10 ms | 接收端验MAC失败丢弃报文 |
| CS-03 | 诊断0x27 | TRNG + HMAC-SHA256 | 种子16字节,密钥按诊断等级分级 | 3次失败锁定,超时30 s |
| CS-04 | OTA升级 | AES-GCM + ECDSA + 单调计数器 | 包体分块4 KB,版本号只增不减 | 升级后重新安全启动校验 |