HSM 规范
HSM是一种自主的硬件,可以用于车辆安全信息(比如密钥)的生成,存贮以及处理,且隔离外部恶意软件的攻击。
HSM可以用于构建,验证可靠的软件,以保护在软件加载并初次访问之前的安全启动。HSM包含有加密/解密硬件加速功能,和软件解决方案相比(Cry),能够有效降低CPU负载。
包含两个部分:
- Security building blocks负责加密/解密的硬件操作;
- Logical building blocks负责与Application ECU交互数据以及软件的加密/解密操作;
hsm 等级
full hsm
- ECC-256:256位高速ECC椭圆加密算法引擎;
- Whirlpool: AES Hash算法;
- AES-128:标准AES加密/解密算法;
- PRNG with TRNG seed:真伪随机数生成器;
Medium hsm
无ECC和Hash引擎;和EVITA full一样,medium的安全区域,完全是和应用程序ECU隔离开的;
light hsm
只有aes 对称加密的加速器
HSM的功能
- 对称密钥加密/解密
- 非对称密钥加密/解密
- 哈希值计算
- 非对称签名的生成和验证
- 对称验证
- 随机数生成
- 安全密钥存贮
- 单调计数器
HSM的应用场景
- 启动保护
- 安全的板级通信
- 安全的诊断锁
- 安全的软件更新
- 访问控制
autosar CSM 调用链的要求
- 密钥存储, 密钥派生, 密钥权限管控
- autosar 调用链存在同步任务/异步任务, 异步任务的实现需要hsm 硬件支持中断
防物理攻击(可选)
FIPS-140 2 标准安全等级
国密标准安全等级
场景示例
ADS控制器状态采用类似机可以采用介于FIP140-2中2或3等级的加密模块HSM保证安全性,在AutoSAR中涉及到的资源及网络安全链路concept如下:
ASIL 来自于 ISO26262 标准, ASIL D 为最高的安全等级 https://zh.wikipedia.org/zh-hans/ISO_26262
CAL 安全等级来自于 ISO/SAE 21434 标准, 网络安全保证级别(CAL) Cybersecurity Assurance Level ,类似于 ISO 26262 中的 ASIL,用来控制网路安全措施的工作。和 ISO 26262 的ASIL不同,ISO/SAE 21434不建议针对CAL有对应措施。CAL主要是产品开发人员评估用的定性分类 https://zh.wikipedia.org/zh-hans/ISO/SAE_21434
App1,App2及App3是ASILD的,同时均需要被网络安全机制保护。
因制动踏板相关信号及HWP功能状态速度通常是10ms一次,因而用AES算法计算比较快,但ADS状态机可以是80ms FHTI,此时可以用保密性更强的RSA模型。
因CSM/CryIf/Crypto Hardware称为Crypto Stack,此时从CSM的工作图,可以简要推导出如下与HSM相关的AutoSAR需求ASIL级别及CAL级别,并由此更加明确HSM的ASIL级别和等级:
Context | ASIL | CAL | HSM functionality | |
---|---|---|---|---|
RS_CRYPTO_02001 | The Crypto Stack shall conceal symmetric keys from the users | D(旧方案,如果新方案考虑座舱对人的监控则可降低到 B) | CAL2 | D (Safety functional)Key store in HSM |
RS_CRYPTO_02002 | The Crypto Stack shall conceal asymmetric private keys from the users | D(旧方案,如果新方案考虑座舱对人的监控则可降低到 B) | CAL2 | D (Safety functional) |
RS_CRYPTO_02109 | The Crypto Stack shall support interfaces for a unified Machine-wide storage and retrieval of different crypto objects | D | CAL2 | D secure storage and retrieval of different crypto objects (e.g. keys, certificates, digests, etc.) |
RS_CRYPTO_02401 | The Crypto Stack should support a joint usage ofmultiple back-end cryptography providers including ones with non-extractable keys | D | CAL2 | D concept of non-extractable keys (HSMs/TPMs). |
SRS_CryptoStack_00101 | Asynchronous Job Processing | Not D,normally | CAL2 | B Different time countering Counter is must |
SRS_CryptoStack_00008 | The Crypto Stack shall allow static configuration of keys used for cryptographic jobs | QM(D) | CAL2 | Configuration FLASH/RAM is requested |
SRS_CryptoStack_00010 | The Crypto Stack shall conceal symmetric keys from the users of crypto services | D | CAL2 | D Keys residing in the HSM |
SRS_CryptoStack_00011 | The Crypto Stack shall conceal asymmetric private keys from the users of Crypto services | D | CAL2 | D Due to keys residing in the HSM |
SRS_CryptoStack_00098 | The Crypto Driver shall provide access to all cryptographic algorithms supported by the hardware | D | CAL2 | D Primitives which are supported by the HSM should be accessible through the Crypto Driver. |
由上述需求的要求,我们得到了该ADS控制器对HSM的特性要求:
Item | 完整HSM | CAL | ASIL | |
---|---|---|---|---|
RAM | x | 2 | B(粗略估计) | SRS_CryptoStack_00008 SRS_CRYPTO_02109 SRS_CRYPTO_02001 |
NVM | x | 2 | D | SRS_CryptoStack_00008 SRS_CryptoStack_00011 SRS_CryptoStack_00010 SRS_CRYPTO_02401 SRS_CRYPTO_02109 SRS_CRYPTO_02001 |
对称加密引擎 | x | 2 | D | RS_CRYPTO_02002 |
非对称加密引擎 | x | 2 | D | RS_CRYPTO_02002 |
哈希引擎(生成MAC) | x | 2 | D | SRS_CryptoStack_00011 SRS_CryptoStack_00010 |
计数 | x | 2 | B | SRS_CryptoStack_00101 |
随机数发生器 | x | 2 | D | RS_CRYPTO_02401 |
CPU安全防护 | x | 2 | D | RS_CRYPTO_02002 |
IO部件 | x | 2 | D | SRS_CryptoStack_00098 |
如下是关于全套HSM上,每个子模块的ASIL级别