朋友,在前面关于加密栈的讨论中,我们明确了CMAC等加密算法的实现位于Crypto Driver中,而上层Csm负责作业调度。现在你把问题推进了一步:如果要开发一个软件SHE模块,它属于Crypto Driver还是库?开发工作量有多大?

这是一个非常实际的工程评估问题。今天我们就从SHE规范的核心要求出发,结合AUTOSAR CP的分层架构,给出一个清晰的定位和客观的工作量分析。

第一章:软件SHE模块的功能范畴

HIS SHE规范定义了一个硬件安全模块应具备的最小功能集。如果要开发一个“软件版SHE”,它至少需要实现以下核心功能:

SHE功能 说明 软件实现难度
AES-128加解密 ECB/CBC模式的对称加密 中等(有现成算法库)
CMAC生成与验证 基于AES的消息认证码 中等(依赖AES)
密钥存储管理 安全存储16个密钥槽(含属性位) (无硬件隔离,需额外防护)
安全密钥加载 CMD_LOAD_KEY(M1/M2/M3协议) (涉及防重放计数器)
UID唯一标识 芯片唯一ID(硬件锚点) 极高(软件无法保证不可篡改)
真随机数生成 TRNG或PRNG 中等(PRNG可软件实现,TRNG需硬件)
安全启动支持 固件校验 中-高(取决于安全策略)

关键认知:软件SHE模块可以正确实现所有密码学算法,但它无法提供硬件安全模块的物理安全边界。软件中的密钥仍然存在于RAM或Flash中,容易受到内存dump、冷启动、故障注入等物理攻击。因此,软件SHE模块的适用场景通常是:

  • 开发与测试阶段:在没有HSM硬件的开发板上进行应用开发和调试。
  • 低安全等级ECU:如车身控制器中不需要硬件隔离的非关键数据保护。
  • 算法验证:在硬件HSM可用之前,先用软件验证上层Csm和SecOC的集成逻辑。

第二章:在AUTOSAR CP架构中的精准定位

这是问题的核心:软件SHE模块属于Crypto Driver,还是库(Library)?

答案:它通常作为Crypto Driver存在,但具体取决于实现方式和集成策略。

算法层

实现选项

硬件抽象/驱动层

服务层

Csm 加密服务管理器

Crypto Interface

Crypto Driver

软件SHE
作为CDD实现

软件SHE
作为Crypto Driver实现

AES软件库

CMAC软件库

2.1 作为Crypto Driver实现(推荐方式)

这是最符合AUTOSAR标准的做法。软件SHE模块实现标准的Crypto Driver API,如Crypto_MacGenerateCrypto_KeyElementSet等,然后注册到Csm的配置中。上层SecOC、DCM等模块无需任何修改,即可通过Csm调用软件SHE。

优点

  • 完全符合AUTOSAR标准接口。
  • 与硬件HSM的Crypto Driver接口一致,切换时无需修改上层代码。
  • 可以被Csm的作业队列管理和同步/异步机制覆盖。

缺点

  • 需要完整实现Crypto Driver的所有必需API(初始化、作业处理、密钥管理等),工作量大。
2.2 作为复杂驱动实现(灵活但非标准)

如果只需要部分功能(例如仅CMAC),也可以作为复杂驱动实现,直接向上层提供自定义接口。但这种方式破坏了AUTOSAR的标准化抽象——上层SecOC将无法直接通过Csm调用它,需要在配置中做特殊处理。

优点

  • 实现灵活,可以只做需要的功能。
  • 集成简单,不需要完整的Crypto Driver框架。

缺点

  • 不符合标准AUTOSAR加密栈的使用方式。
  • 上层模块(如SecOC)无法通过标准Csm接口调用,需要额外适配。
2.3 作为库实现(仅算法层)

如果只是实现AES-128、CMAC等密码算法本身,可以将其封装为一个AUTOSAR库。库是无状态的,可被任何模块调用。但库本身不提供SHE的密钥管理和命令解析功能。如果要完整实现SHE,仅靠库是不够的。

结论:软件SHE模块的合理定位是Crypto Driver,它内部可能依赖于多个(AES库、CMAC库、随机数库),但对外呈现的是一个符合AUTOSAR标准的Crypto Driver实例。在某些特殊场景下,也可作为CDD实现。

第三章:开发工作量评估

现在进入最关键的部分——工作量评估。我们将整个开发过程分为六个阶段,分别给出时间估算。

3.1 需求分析与设计(3-5人天)
  • 任务:确定需要实现的SHE功能子集(是否需要CMD_LOAD_KEY?是否需要安全启动?),定义与上层Csm的接口,确定密钥存储方案(RAM中加密存储?还是利用MCU的TrustZone?)。
  • 交付物:软件需求规格、详细设计文档、接口定义。
3.2 密码算法实现(5-10人天)
  • 任务:实现AES-128(ECB/CBC)、CMAC生成与验证、真随机数生成(或强PRNG)。
  • 策略:可直接采用经过验证的开源库(如mbedTLS、wolfSSL)来加速,但需要对其进行功能安全审查。
  • 关键风险:如果从零实现AES,需要严格的正确性验证(NIST测试向量);SHE特定的密钥派生函数需自行实现。
3.3 Crypto Driver封装与AUTOSAR集成(8-15人天)
  • 任务:将密码算法封装为符合AUTOSAR SWS_Crypto规范的Crypto Driver,实现Crypto_InitCrypto_MacGenerateCrypto_MacVerifyCrypto_KeyElementSetCrypto_KeyElementGet等接口。
  • 关键风险:Crypto Driver的作业模型(Job Processing)实现复杂度高,涉及作业队列、优先级、同步/异步通知机制。
3.4 密钥安全存储实现(5-10人天)
  • 任务:在没有HSM物理隔离的情况下,实现密钥的安全存储。常用方法包括:利用MCU的TrustZone或MPU进行内存隔离、使用设备唯一密钥(如UID派生)加密存储密钥、利用Flash写保护防止篡改。
  • 关键风险:纯软件难以抵抗物理攻击,需要明确安全目标和威胁模型。
3.5 功能安全认证(15-30人天,可选)
  • 任务:如果ECU有ASIL等级要求,软件SHE需要通过相应的安全认证(如ISO 26262 ASIL-B或更高),主要工作包括:FMEA分析、代码审查、单元测试与覆盖率分析、测试向量验证(NIST CAVP)、静态分析工具运行。
  • 关键风险:开源库的认证成本较高,需要评估其开发流程是否符合安全标准。
3.6 测试与验证(10-20人天)
  • 任务:单元测试覆盖所有SHE命令、集成测试与上层SecOC/Csm联调、性能测试评估软件AES加解密对CPU负载的影响、压力测试验证大量并发加密作业下的稳定性。
  • 关键风险:性能不足可能导致通信延迟超标,需要用真实的CAN/CAN FD数据进行验证。
3.7 总工作量估算
阶段 最小(人天) 最大(人天)
需求分析与设计 3 5
密码算法实现 5 10
Crypto Driver封装与集成 8 15
密钥安全存储 5 10
功能安全认证(可选) +15 +30
测试与验证 10 20
合计(无安全认证) 31 60
合计(含安全认证) 46 90

结论:一个基本可用的软件SHE模块,不含功能安全认证的开发工作量约在30-60人天(约6-12周,按单人计算)。如果要求通过ASIL认证,可能需要额外增加15-30人天,总工作量达到46-90人天

第四章:真实案例——某Tier-1的软件SHE开发实践

某Tier-1供应商为车身域控制器开发了软件SHE模块。该控制器使用NXP S32K144 MCU,无内置HSM,功能安全要求为QM级别。

开发策略

  • 采用mbedTLS开源库作为AES和CMAC的算法基础(节省算法实现时间)。
  • 封装为符合AUTOSAR SWS_Crypto规范的Crypto Driver。
  • 密钥存储采用AES-ECB加密后存入Data Flash,加密密钥由UID+固定种子派生(软件版UID通过烧录时写入的唯一序列号替代)。
  • 由于是QM级别,省略了ASIL认证。

实际工作量

  • 需求与设计:3人天。
  • mbedTLS裁剪与适配:4人天。
  • Crypto Driver封装:10人天。
  • 密钥管理实现:6人天。
  • 测试与验证:12人天。
  • 总计:35人天(约7周)。

效果:该软件SHE模块成功为SecOC提供了CMAC计算能力,在CAN FD 2Mbps速率下,单帧CMAC计算耗时约80μs,满足通信延迟要求。后续项目切换到带HSM的MCU时,因软件SHE已封装为标准Crypto Driver,只需替换驱动为硬件HSM驱动,上层代码无需任何修改。

第五章:总结

维度 结论
模块归属 软件SHE模块应封装为Crypto Driver,内部可依赖密码算法库。它不属于AUTOSAR标准的库。
开发工作量 基本可用版本约30-60人天(不含功能安全认证),含认证约46-90人天。
关键技术难点 密钥的安全存储(无硬件隔离环境)、Crypto Driver作业模型实现。
适用场景 开发测试阶段、低安全等级ECU、算法验证。
后续迁移 封装为标准Crypto Driver后,切换到硬件HSM只需替换驱动,上层代码零修改。

软件SHE模块是低安全等级ECU或开发阶段实现车内通信安全的有效手段。虽然它无法提供硬件级别的物理隔离,但通过合理的软件设计,可以在QM或ASIL-A级别的应用中提供足够的安全性。关键在于严格遵循AUTOSAR Crypto Driver接口规范,为未来可能的硬件升级预留标准化接口。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐