首页 > 汽车技术 > 正文

汽车电子硬件开发常用的安全机制

2025-04-07 08:34:10·  来源:汽车电子与软件  作者:SASETECH社区  
 

(2) 侧信道攻击的防御对策

侧信道攻击的本质是利用密码实现过程中产生的依赖于密钥的侧信息来实施密钥恢复攻击。因此,防御对策的核心是减弱甚至消除这种侧信息与密钥之间的直接依赖性。实际上,常见的防御对策可以分为掩码对策和隐藏对策两种。具体来说,掩码对策借助秘密共享和多方安全计算,通过引入随机数将密钥分解为多个分组,从而消除侧信息与密钥的依赖性,增强抵抗侧信道攻击的能力;隐藏对策则采用平均化“0”和“1”对应侧信息的差别,降低通过侧信息区分对应数据的可能性,即降低数据的可区分度,以抵抗侧信道攻击。此外,通过在密码实现中插入随机伪操作或者增加噪声,可以将有用信息“淹没”在噪声中,从而提高密码安全性。

总体而言,两种防御对策适用于不同场景。掩码对策易于在密码算法级进行实现,更易于实现;而隐藏对策通常只能在硬件层进行实现,需要改变硬件实现结构,因而较难实现。此外,两种防御对策可以组合使用,以便最大限度地提高密码安全性。

6. 安全启动

安全启动也叫 Verify  Boot,就是在软件安全启动过程中,前一个部件验证后一个部件的数字签名,验证通过后,运行后一个部件。

网络设备的安全性严重依赖于设备上运行软件的完整性。通常,我们使用信任链来确保软件的完整性。在安全启动期间,每个阶段实行前都会检查下一个阶段。这个过程中有一个特例,即在这一步之前没有任何东西可以进行任何检查,这一阶段被称为“信任根”。

在可信计算体系中,建议信任先拥有可信根,然后建立一条可信链,再将信任传递到系统的各个模块,从而实现整个系统的可信。

安全启动的原理就是“硬件信任锚+信任链”。

目前,安全启动基本上是对安全要求比较高的场景中芯片的必备功能。

(1) MCU 安全启动

 MCU 中一般采用OTP(One  Time  Programming) 的方式去实现信任根。任何软件模块在校验失败后都应该禁止该软件运行。

SHE(Secure  Hardware  Extension,安全硬件扩展规范)中定义了安全启动流程,如图5-20所示。

安全启动流程如下。

1) MCU CPU启动并运行安全启动程序。

2) 安全启动程序来验证应用程序A:

① 安全启动程序读取安全启动MAC 密钥,计算应用程序 CMAC  

② 安全启动程序比较确认计算结果和应用的CMAC 值。

3) 如果步骤2验证通过,则CPU 运行用户程序A,  并接着验证应用程序B

4) 如果步骤3的验证通过,则CPU 执行应用程序B

(2) SoC 安全启动

由于操作系统启动时可能需要多级启动镜像,只要其中任意一级镜像未执行安全启动流程,其后的所有镜像实际上都是不可信的。操作系统安全启动流程示意图如图5-21。

图片

图 5-20 安全启动流程

图片

图 5-21 操作系统安全启动流程示意图

因此,安全启动需要建立安全启动的信任链。在安全启动流程中,每级镜像都由其前级镜像执行合法性验证。这样,只要保证级镜像是合法的,那么第二级镜像的合法性就由第级镜像保证,第三级镜像的合法性由第二级镜像保证。如此,整个启动流程的信任像链条一样连接起来,最终保证整个系统的可信性。

分享到:
 
反对 0 举报 0 收藏 0 评论 0
沪ICP备11026917号-25