目录
1.密钥分类及作用概述
2.密钥管理策略
3.小结
随着智能网联汽车的飞速发展,接入网络的车辆收到黑客攻击的场景越来越多。为保护网联汽车免受网络攻击,使用密码学对个人隐私数据、整车敏感数据进行保护逐渐引起了业内人士的重视。
在CP AUTOSAR中针对车内ECU间CAN\CANFD的安全通信设计了SecOC机制和IdsM机制;借鉴IT领域成熟的安全通信技术,使用TLS保护TCP/UDP级别的以太网通信,使用IPsec保护双方链接,在链路层使用MKA机制保护MAC层的数据加密、签名等。
上述所有的机制来源于密码算法。不过众所周知密码算法是公开的,除部分摘要算法外,大多数密码计算依赖于密钥,因此现代密码机制的安全性更多取决密钥的安全管理和保护。
今天主要讲车规MCU关于密钥的一些理解。
1.密钥分类及作用概述
在当前车规MCU的规格制定中,除了要满足ISO26262,ISO21434也要在考虑之中。因此,目前中高端车规MCU普遍都会设计硬件安全模块(HSM),该模块可以用于密码计算的硬件加速、敏感数据和密钥的存储。 基本上在车规MCU中,密钥都是存放在HSM中。
为保证不同安全机制的有效性,通常情况是把密钥根据应用场景进行分类:
- 安全启动:非对称和对称密码体制均可使用,但考虑启动速度,对称密码体制使用较多;在HSM标识一般称之为Boot_Key;
- 安全通信:在车内ECU通信,为满足实时性,通常采用对称密码体制,称之为SecOC_Key;
- 安全存储:根据数据的重要程度有不同策略,但是目前见得多是对称加密
- 安全诊断:29服务:证书交换(非对称)、挑战响应认证(对称或非对称)
- 安全更新:一般多用非对称进行验签,对称用于解密(使用较少)。
- 安全调试:暂时还没有用到,因此一般整车下线后ECU Debug口会被封住,出bug直接换件。调bug一般是在家里复现。
2.密钥管理策略
我们知道,与功能安全不同,信息安全是要贯穿整车的完整生命周期。我们以一颗芯片从出厂到上车为例,生命周期通常分为:芯片出厂阶段、Tier-1开发阶段、OEM量产阶段、售后阶段和报废阶段,如下图:
很明显,在芯片出厂阶段就已经需要涉及到密钥管理了。
- 芯片出厂阶段:一般来讲,有经验和设计实力的芯片厂会设计2-3个密钥固化在HSM加密引擎中,该密钥通常只能由加密引擎访问以保证其安全性。这些密钥一般是在BootRom设计阶段被芯片原厂使用,主要协助做安全启动设计,称为原始密钥;例如TC3xx固化了2个对称密钥在HSM ROM中,芯驰E3系列在OTP里固化公钥哈希等
- 供应商开发阶段:该阶段的密钥通常也被称之为开发密钥;该类密钥通常不会由原始密钥派生,而是供应商自定义进行生成密钥。开发密钥一般存放在HSM侧的NvM,同时为了方便调试,HSM通常会留有接口获取密钥信息等,在开发上通信方式上也可以分为安全通信和旁路通信(忽略鉴权验证结果);
- OEM量产阶段:OEM在完成整车集成验证后,在汽车下线时会统一使用工具差分下发密钥到整车各ECU中(如网关、座舱域控、T-box、智驾域控等等);或者基于某算法和开发密钥\原始密钥进行派生;这个环境其实很容易出问题。常见的就是某ECU通信鉴权有问题,一看log发现密钥没刷。
- 售后阶段:售后阶段密钥的更新频率就少了很多,并且该阶段密钥是不能以任何方式泄露,包括使用诊断仪。因此,芯片出厂时如果能在HSM侧定义好各生命周期下资源权限,我想OEM会很乐意合作,就像芯驰在流片之前就已经找到α客户进行合作,随着芯片厂对于软件开发的重视,传统芯片厂->Tier 1-> OEM的合作模式会逐步向芯片厂->OEM、芯片厂-> Tier 1这类有特殊客制化的模式演进。
- 报废阶段:该阶段关于HSM存储的所有敏感信息包括密钥都应该被销毁。
3.小结
目前来件,关于密钥管理的方案还是五花八门,因为本质上OEM是希望整车数据独占,所以在方案上对供应商会有众多要求。
虽然说在CP AUTOSAR 4.4中提出了KeyManager模块用于密钥管理和证书管理,但是只是提供了通用接口,具体策略没有标准化。从实操来看,OEM还是倾向于在信息安全方案中做定制化处理。
所以大家在近几年会慢慢发现,不止有众多软件公司声称自己可以按照ISO21434实现完整信息安全解决方案,芯片原厂例如英飞凌、NXP甚至国内MCU厂商也在尝试占领这块高地。毕竟全生命周期的服务,难度大,收获也会很大。
作者:快乐的肌肉
文章来源:汽车MCU软件设计
推荐阅读
更多汽车电子干货请关注汽车电子与软件专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。