英飞凌 TC3XX单片机HSM内核开发-Secure Boot(二)

安全启动过程及时间

在任何安全启动策略中,一个关键因素是应用程序启动前可以检查多少代码。例如,ECU必须能够在上电后短时间内在CAN或CAN FD总线上进行通信;行业要求的时间范围从50毫秒到200毫秒不等。根据这个范围,可以认证的代码长度将变化几倍。

假设典型ECU的代码大小,基于测试的CMAC吞吐量为69 MB/s,HSM核心频率为100 MHz,下面是官方给出的测试结果。

在这里插入图片描述

如表所示,AURIX HSM可以在50毫秒内验证多达2 MB的数据。在分阶段启动(Staged Boot)场景下,AURIX HSM通常会在这个时间限制内验证CAN通信堆栈,并允许主处理器在HSM完成其余验证的同时运行它。

安全启动失败的情形

在这里插入图片描述

  1. FM1

    • 失败效果:模块的所有后续启动将失败,造成可用性问题。
    • 失败原因:在初始CMAC计算过程中可能发生随机硬件故障(如电压波动或电磁干扰),或者由于软件故障(bug)导致CMAC计算失败。
  2. FM2

    • 失败效果:模块的所有后续启动将失败,造成可用性问题。
    • 失败原因:NVM存储中的随机硬件故障或软件故障(bug)可能导致启动失败。
  3. FM3

    • 失败效果:代码未被验证,从而不安全。
    • 失败原因:在初始化代码的读取或执行过程中发生随机硬件故障。
  4. FM4

    • 失败效果:当前安全启动失败,造成可用性问题。
    • 失败原因:CMAC计算过程中的随机硬件故障导致安全启动失败。
  5. FM5

    • 失败效果:执行了不正确的代码(被破坏或被篡改)。
    • 失败原因:CMAC计算过程中发生随机硬件故障,导致验证失败,从而执行了不正确的代码。
  6. FM6

    • 失败效果:当前安全启动失败,造成可用性问题。
    • 失败原因:CMAC验证过程中的随机硬件故障(如两个值的比较)导致安全启动失败。
  7. FM7

    • 失败效果:执行了不正确的代码(被破坏或被篡改)。
    • 失败原因:CMAC验证过程中的随机硬件故障(如两个值的比较)导致验证失败,从而执行了不正确的代码。
  8. FM8

    • 失败效果:执行了不正确的代码(被破坏或被篡改)。
    • 失败原因:HSM代码执行过程中的随机硬件故障导致安全启动失败或代码被篡改。
  9. FM9

    • 失败效果:当前安全启动失败,造成可用性问题。
    • 失败原因:HSM代码执行过程中的随机硬件故障导致安全启动失败。

安全启动失败的分析

在这里插入图片描述

  1. TM1

    • 安全属性:完整性、真实性、可用性
    • 效果:所有后续的安全启动(使用合法过程)可能失败,这可能会启用更严重的攻击。
    • 脆弱性(原因):非安全的软件下载过程允许攻击者更新NVM并生成包含非合法代码的新CMAC。未加防篡改保护的芯片在初始CMAC计算过程中可能被篡改(例如电压扰动)。
  2. TM2

    • 安全属性:完整性、真实性、可用性
    • 效果:所有后续的安全启动(使用合法过程)可能失败,这可能会启用更严重的攻击。
    • 脆弱性(原因):对NVM写入的保护不足,或特权升级不足。
  3. TM3

    • 安全属性:完整性、真实性
    • 效果:安全启动过程的目标失败。如果应用代码被攻击者修改,则可能导致系统完全崩溃。
    • 脆弱性(原因):对初始化代码写入的保护不足。未加防篡改保护的芯片在芯片初始化过程中可能被篡改。
  4. TM4

    • 安全属性:完整性
    • 效果:ECU功能减少。这可能会启用更严重的攻击。
    • 脆弱性(原因):对初始化代码写入的保护不足。未加防篡改保护的芯片在芯片初始化过程中可能被篡改。
  5. TM5

    • 安全属性:完整性、真实性、可用性
    • 效果:当前安全启动失败(可用性问题)。当与TM1/TM2结合时可能导致系统完全崩溃。
    • 脆弱性(原因):对NVM写入代码的保护不足,或特权升级不足(非合法代码被写入NVM)。
  6. TM6

    • 安全属性:可用性
    • 效果:当前安全启动失败。非安全CMAC代码可能被攻击者干扰(例如被中断)。
    • 脆弱性(原因):未加防篡改保护的芯片在CMAC计算过程中可能被篡改。
  7. TM7

    • 安全属性:完整性、真实性
    • 效果:系统完全崩溃。
    • 脆弱性(原因):对“已知良好”CMAC的读取保护不足,以及对用于CMAC验证的寄存器/内存写入的保护不足(例如攻击者读取“已知良好”CMAC然后在启动时将其写入正确的寄存器)。
  8. TM8

    • 安全属性:可用性
    • 效果:当前安全启动失败。非安全CMAC比较代码可能被攻击者干扰(例如被中断)。
    • 脆弱性(原因):未加防篡改保护的芯片在比较过程中可能被篡改(例如故障注入)。
  9. TM9

    • 安全属性:完整性、真实性
    • 效果:系统完全崩溃。非安全CMAC比较代码可能被攻击者干扰(例如被中断)。
    • 脆弱性(原因):未加防篡改保护的芯片在比较过程中可能被篡改(例如故障注入)。
  10. TM10

    • 安全属性:完整性、真实性
    • 效果:系统完全崩溃。非安全代码可能被攻击者干扰(例如被中断)。
    • 脆弱性(原因):未加防篡改保护的芯片在启动的最后阶段可能被篡改。
  11. TM11

    • 安全属性:可用性
    • 效果:当前安全启动失败。非安全代码可能被攻击者干扰(例如被中断)。
    • 脆弱性(原因):未加防篡改保护的芯片在启动的最后阶段可能被篡改。

安全启动失败的应对策略

在这里插入图片描述

1. 利用AURIX™微控制器硬件特性
  • 错误更正码(ECC):AURIX 中的内存和总线实现了ECC,用于减轻位翻转的风险。
  • HSM的特权操作:HSM在最高权限下操作,保护对某些内存区域(如用户配置块UCBs)的访问,同时其他区域即使是HSM也无法读取。
  • 一次性可编程(OTP)闪存:HSM使用的闪存可以设置为一次性可编程(OTP),之后不能再写入,从而防止篡改。
  • 支持功能安全:AURIX 设计支持高达ASIL D的功能安全目标,包含冗余、自检等安全特性,以减轻随机硬件故障的影响。
2. 编程策略和对策
  • 引入冗余:在哈希计算、存储和验证操作中引入冗余,以提高系统的可靠性。
  • 安全编码实践:使用安全编码实践可以减少软件和硬件攻击的可能性和影响,这些实践在嵌入式安全和智能卡领域得到了广泛应用。
  • 环境监控:AURIX 配备温度和电压传感器,用于监测环境条件,确保微控制器在不超出界限的条件下操作,从而减少故障的可能性。

安全启动故障策略

在安全启动过程中,如果发生故障,可以采取以下策略和措施来处理和恢复:

1. 错误检查和诊断
  • 检查错误更正码(ECC):故障可能是由位翻转引起的,通过ECC检查来验证错误。
  • 检查擦除计数器:如果擦除计数器已增加,说明微控制器可能被重新编程。
  • 检查安全管理单元(SMU):SMU可以设置警报来捕捉不可纠正的多位错误和/或已纠正的错误。
  • 重新运行代码检查:对CMAC、哈希、签名等进行全面检查,确保初始计算没有被随机硬件故障干扰。
  • 发送诊断故障码(DTC):通过CAN发送DTC,以便更精确地诊断故障。
  • 进入安全模式:执行“临时运行模式”程序,确保系统在出现故障时能够保持基本操作。
  • 执行恢复程序:可以是本地恢复或远程恢复,ECU可能在外部闪存中有备份代码,或者车辆的中央存储库中有加密的ECU代码备份。
2. “临时运行模式”的实施

“临时运行模式”的具体格式会因应用而异。一些ECU可能需要大量的代码,而另一些(非关键的)可能可以安全地保持在复位状态。通常可以采取以下措施:

  • 备份代码的OTP保护:后备代码应该设置为一次性可编程(OTP),并经过广泛验证以防止漏洞。
  • 确保安全性:后备代码在攻击者强制ECU进入“临时运行模式”时应保持安全。
  • 最小化总线通信:后备代码应尽量减少总线上的通信需求。
  • 18
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

美好生活丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值