谈谈汽车芯片信息安全(上篇)
智能车的安全要构建在芯片安全的基础上。
1. 背景简介
汽车芯片信息安全的必要性
1. 早期由于 ECU 本身设计的资源有限,信息安全考虑的也比较少,导致自身的防护能力很弱,容易导致黑客攻击。随着智能车技术的发展,虽然芯片的数据处理能力不断提升,如果芯片自身的安全防护能力过于薄弱,将导致芯片运行的固件也很容易受到攻击,比如固件篡改,敏感信息(如密钥等)泄露.
2. 随着智能车技术的不断发展,越来越多的政府,行业组织的最佳实践也明确提出智能车的安全需要构建在安全的芯片基础上,比如 EVITA、GSMA 关于汽车安全的要求,HSM 已成为智能车的安全基础,成为行业默认的标准。
3. 智能车功能安全(Safety)和信息安全(Security)在设计阶段也有冲突的地方,比如过度基于软件实现的安全特性,会导致控制指令的延时,影响功能安全特性的实现。因此为了提升产品的性能,以及 Safety 和 Secuirty 的强隔离,也必然会要求将更多的信息安全特性集成到芯片里,或者基于芯片的能力来实现。
2. 芯片安全知识图谱
芯片安全图谱的两个维度
1. 一个维度是芯片自身的安全防护能力,比如能抵抗物理侵入式、半侵入式物理攻击;能检测和防御故障注入攻击;以及耳濡目染的侧信道攻击。这就像是一辆坦克自身厚重的钢板,能抵挡普通子弹和炸弹的攻击。物理攻击需要较强的专业能力,比如借助专用的测试仪器,以及可以近距离接触的物理设备。
2. 另外一个维度是基于芯片的安全服务,比如芯片直接固化的密码类算法,密钥管理机制,真随机数生成器,PUF 等机制。
汽车芯片信息安全知识图谱 V1.0
3. 常见的芯片攻击手段
3.1 侧信道攻击
a)概念:利用设备的接口对芯片进行电磁和功耗的分析,无需对芯片进行破坏
b)常见测评、攻击类型:时间分析、功耗分析,电磁辐射分析,光子分析
c)适用对象:集成电路/芯片、智能卡、智能门锁、物联网终端、车载电子等产品
Source:https://baijiahao.baidu.com/s?id=1670195085429754518&wfr=spider&for=pc
下面是一个针对手机的侧信道攻击(电磁分析攻击),作为一个简单的样例。
Source:https://www.sohu.com/a/165330167_99909589
d)防护原理:消除和降低侧信道信息与密钥的相关性,常用手段:
- 掩码技术:引入随机掩码,平衡“0”和“1”分布。
- 隐藏技术:平均化侧信道信息,降低数据的可区分度
- 混淆技术:降低信噪比(有效侧信道信息)如使用随机时钟等,增加侧信道分析难度。
3.2 故障注入攻击
利用故障(电压、时钟等)引起电路出现异常,根据异常信息分析芯片内部的敏感信息;或者直接利用引起电路的异常来改变程序运行等。
常用测评/攻击类型:电压注入、时钟注入、电磁注入、温度注入,激光注入。
案例:故障注入攻击导致安全启动被成功绕开
(参考 Source:乐鑫发布关于故障注入和安全启动的安全性公告 (CVE-2019-15894))
故障注入攻击的防护技术:
- 传感器:专用传感器(电压、频率、温度等)对电压、时钟故障可以起到检测和告警作用
- 逻辑 &时钟冗余:逻辑冗余分为面积冗余和时间冗余。面积冗余是指多分计算逻辑各计算一次,最终对比各个计算逻辑的结果来检查是否有故障注入;时间冗余是指一份计算逻辑计算多次,比较多次的结果来检查是否有故障注入。
- 金属外壳 &特殊封装:通过金属外壳,可以对激光故障注入,电磁故障注入等手段具有一定的抑制作用
- 逻辑深埋:将关键电路逻辑部署在芯片内层,而不是直接部署在芯片表层,使得故障注入的难度增加
- CRC 校验
3.3 物理攻击
a)概念:去除芯片封装,对内部电路进行电接触,结合其他攻击手段获取保存在芯片内部的敏感信息
b)常见攻击类型:FIB 电路修改/探针攻击、单板级走线篡改/探听、整机攻击。
c)防护技术:
- Passive shield:被动屏蔽层,例如在芯片表面构建钝化层,金属屏蔽层,增加攻击者解封装难度
- Active shield:主动屏蔽层构建一个电路检测网,覆盖在关键电路表面检测电路一旦有损坏,就会发出告警
- 特殊封装:对电路(芯片)采用特殊封装
- 信号完整性、机密性保护等: 针对单板走线篡改 &窃听总线探针窃听 &篡改等,通过对信号完整性和机密性进行保护来应对此类攻击
4. 验证辅助的安全特性
1. Hardware Trust Anchor(HTA)
- 以软件无法操作的方式保护敏感数据
- 提供加解密功能
2. HTA 不同标准:
- SHE
- HSM
- TPM
3. Evita Full-Medium-Light 与 SHE 差异(后面会讲)
以下为详细的案例介绍。
4.1 NXP 高级加解密引擎
(1)架构与功能描述
(2)核心能力:
1) 满足 HSM Full 等级;
2) 芯片内支持 4 个并发加解密任务(job),每个任务带有资源 ID、TZ(Trustzone 标记)和任务 ID,并能和 Trustzone 机制配合使用,具有很强的权限控制能力。
4.2 专用算法密码引擎
(1)NXP 针对 Flash 读写直接加解密引擎-Bus Encryption Engine, BEE
BEE 逻辑架构图
总线加密引擎(BEE)被实现为实时解密引擎,用于 CPU 直接读取并同时解密 Flash(FlexSPI 接口)中的数据。BEE 的主要功能是:
- 即时 AES-128 解密,支持 ECB 和 CTR 模式
- 别名内存空间支持。重新映射最多两个单独的区域
- 针对这两个区域的独立 AES 密钥管理
- 基于安全标签的非安全访问的过滤
- 非法访问检查和过滤
(2)NXP 针对 RAM 在线加解密引擎-Inline Encryption Engine
支持的功能:
- AES-XTS 模式下的 DDR 加密和解密
- QSPI 闪存解密,在 AES-CTR 模式下
- /O DMA 直接加密的存储和检索(AES CTR 128)
- 多核资源域分离
- 使用专用总线安全地加载片上密钥
- 差分功率分析(DPA)电阻
- 检测物理篡改并响应
4.3 小结
1. SHE 规范奠定了汽车安全基础,引入了汽车可配置的安全子系统概念
2. EVITA 的 HSM 规范扩展了 SHE,并采用了 Full,Medium、Light 三种规格,从而满足更多场景的要求
3. 如今,OEM 正在创建自己的技术规范,包括 SHE、EVITA 和 FIPS 140-2 的某些方面,以及区域/行业性特殊要求(比如支持国密算法)
4. 还有一些厂商定义特定的轻量级加密引擎,比如 NXP 的 IEE、BEE、PRINCE 算法等
5. 启动安全
先讲一个概念:信任链 (chain of trust)
在可信计算体系中,建议信任需要先拥有可信根(Root of Trust),然后建立一条可信链(chain of Trust),再将信任传递到系统的各个模块,之后就能建立整个系统的可信。
安全启动的原理就是硬件信任锚+信任链。
网络设备的安全性严重依赖设备上运行软件的完整性,通常使用信任链确保软件完整性,启动期间每个阶段在执行前检查下一个阶段,如下图所示,这个过程有一个特例,这一步之前没有任何东西可以进行任何检查,此阶段称为信任根(Root of Trust)。
5.1 安全启动
安全启动(Secure Boot):安全启动也叫 Verify boot,就是在启动过程中,前一个部件验证后一个部件的数字签名,验证通过后,运行后一个部件。
目前安全启动基本上是对安全要求比较高的场景下,芯片必备功能。
5.2 可信启动
可信启动(Trusted Boot):也称为 Measure boot,就是在启动过程中,前一个部件度量(计算 HASH)后一个部件,然后把度量值安全保存下来,比如放到一个集中的部件(或云端),设备启动后的一致性(完整性)的校验由集中的部件负责完成。
扩展:在 IoT 领域,以微软为主推出了轻量级的类 TPM 技术-DICE,就使用了基于硬件信任锚的可信启动方式。
5.3 加密启动
顾名思义,就是存储在 flash 中的 image 是密文,启动过程中会解密在启动,下图是 NXP 加密启动的流程图:
注:
1.加密启动过程本身没有信任链的构建过程
2.安全启动(Secure boot)、可信启动(Trusted boot)和加密启动(Encryptedboot)三种启动方式并不是互斥的,可以结合实际应用场景、性能要求结合起来使用。比如安全启动(Secure Boot)和加密启动(Encrypted boot)相结合,既可以确保启动过程系统软件的一致性(没有加载被篡改过的软件系统),又能确保 Flash 中的软件 image 不被逆向破解(因为 image 已被加密)
3.需要注意的,如采用加密启动,可以借助前面讲的 IEE 硬件加密引擎,就可以显著提升解密性能,从而提升启动启动。
以上就是基于芯片的安全技术上篇,基于芯片的安全技术上篇请看后续内容。
——————————————
文章来源:汽车信息安全 原文链接:https://mp.weixin.qq.com/s/V7GNR10CYCaSYKQ2OZX-rA
作者:路人甲——青骥小组 版权归原作者所有,如需转载,请联系作者。
原文链接:https://bbs.z-onesoft.com/omp/community/front/api/page/mainTz?articleId=7523
评论