3. 密码学基础
在车载HSM密码服务与安全存储工程中,所有安全能力最终都落在六类基础密码原语上:对称加密、非对称加密、哈希、MAC、数字签名与密钥交换。它们不是彼此替代的关系,而是分别解决“机密性、完整性、身份真实性、密钥分发”四类问题。理解它们的输入输出、密钥形态与信任假设,是后续设计密钥层级、安全存储结构和诊断安全访问的前提。
一、六类原语的核心定位
对称加密使用同一把密钥完成加密与解密,典型算法为AES-128/256,工作模式常见CBC、CTR、GCM。它的优势是速度快、适合大数据量,例如对整车日志、固件分块、NVM中的敏感配置进行加密。非对称加密使用公钥与私钥配对,典型算法为RSA、ECC(如P-256、Ed25519),适合小数据量加密、签名验证和密钥封装,但计算开销明显高于对称算法。
哈希函数(SHA-256、SHA-3)把任意长度输入压缩为固定长度摘要,具备单向性和抗碰撞性,用于完整性度量、口令派生和签名前的消息压缩。MAC(如HMAC-SHA256、CMAC-AES)在哈希或分组密码基础上引入共享密钥,既验证完整性又验证持有同一密钥的实体身份。数字签名用私钥生成、公钥验证,提供不可否认性,是OTA包、诊断授权、证书链验证的关键。密钥交换(ECDH、DH)让双方在不安全信道上协商出共享会话密钥,解决“对称密钥如何安全到达对端”的问题。
二、方法流程:从明文到可信数据的典型链路
在车载场景中,一条完整的安全数据链路通常按以下顺序组合原语:
- 发送方用哈希对消息计算摘要,保证后续签名只处理定长数据。
- 用私钥对摘要执行签名运算,生成数字签名,随消息一起下发。
- 若消息需要保密,则用对称密钥以AES-GCM加密,GCM同时输出认证标签,等价于“加密+MAC”。
- 对称密钥本身通过ECDH协商,或用接收方公钥做密钥封装后传输。
- 接收方先验证签名与证书链,再用共享密钥解密并校验认证标签,最后比对哈希摘要。
这条链路体现了“非对称解决信任与密钥分发,对称解决吞吐,哈希解决压缩与度量,MAC解决完整性”的分工。任何一环缺失,都会导致安全目标不完整。
三、车载场景案例:OTA升级包的验证与解密
假设T-Box从云端下载一个OTA升级包,包体较大且需防止篡改和伪造。工程实现通常如下:
云端:
digest = SHA-256(firmware)
signature = ECDSA_Sign(OEM_PrivateKey, digest)
sessionKey = ECDH(OEM_Ephemeral_Priv, Vehicle_Pub)
ciphertext, tag = AES-256-GCM(sessionKey, firmware)
车端HSM:
1) 用OEM公钥验证 signature,确认来源与完整性
2) 用ECDH协商同一 sessionKey
3) AES-GCM解密并校验 tag
4) 再次计算 SHA-256 与签名中的 digest 比对
5) 校验通过后写入安全存储区,密钥不出HSM边界
这里数字签名保证“包来自OEM且未被篡改”,AES-GCM保证“包体机密且传输完整”,ECDH保证“会话密钥不通过明文信道传输”。三者缺一不可。
四、常见误区与复盘
误区一:用哈希代替MAC。 哈希没有密钥,攻击者可以同时修改数据和摘要,无法验证来源。需要完整性+身份时必须使用HMAC或CMAC。
误区二:用MAC代替数字签名。 MAC基于共享密钥,接收方也能伪造,不具备不可否认性。对外责任认定场景必须使用数字签名。
误区三:ECB模式加密敏感数据。 ECB相同明文块产生相同密文块,会泄露数据结构,车载配置、日志等应使用CBC、CTR或GCM。
误区四:忽略IV/Nonce唯一性。 GCM在同一密钥下重复Nonce会严重破坏安全性,HSM应强制Nonce管理策略。
五、原语对比清单
| 原语 | 密钥形态 | 主要安全目标 | 典型算法 | 车载典型用途 |
|---|---|---|---|---|
| 对称加密 | 同一密钥 | 机密性 | AES-128/256-GCM | 固件加密、日志保护 |
| 非对称加密 | 公钥/私钥 | 机密性、密钥封装 | RSA-OAEP、ECIES | 会话密钥封装 |
| 哈希 | 无密钥 | 完整性、度量 | SHA-256、SHA-3 | 安全启动度量、口令派生 |
| MAC | 共享密钥 | 完整性+身份 | HMAC-SHA256、CMAC-AES | SecOC报文认证、诊断认证 |
| 数字签名 | 私钥签名/公钥验证 | 真实性、不可否认 | ECDSA、Ed25519 | OTA签名、证书链 |
| 密钥交换 | 双方公私钥对 | 密钥分发 | ECDH、DH | 车云会话密钥协商 |
工程记忆口诀:对称管吞吐,非对称管信任,哈希管压缩,MAC管完整,签名管责任,交换管分发。 在HSM内部,这六类原语通常以独立密钥槽和独立权限位管理,密钥材料不得以明文离开安全边界。