一种针对FLASH擦除过程的故障注入攻击

admin 2025年1月6日09:26:15评论5 views字数 2611阅读8分42秒阅读模式
一种针对FLASH擦除过程的故障注入攻击

对芯片调试接口保护机制的综合分析

撰文 | 刘 铮

编辑 | 刘梦迪

一、背景介绍

微控制器是现代互联世界的支柱,在机器人、医疗设备、航空航天和汽车等领域有广泛的应用。随着物联网(Internet of Things,IoT)的发展,微控制器在工业和消费产品领域获得了更多的普及。由于微控制器负责执行复杂的任务,包含很多竞争对手可能感兴趣的宝贵知识产权,因此值得保护。

故障攻击是一种物理攻击手段,通过改变芯片运行时的物理环境(比如时钟信号的稳定性,供电电压的稳定性等),影响目标芯片的运行过程,造成目标芯片无法正常运行,从而获取目标芯片中存储的敏感内容的信息。

基于以上信息,来自德国慕尼黑工业大学的Marc等人在CHES 2024上讨论了一种针对FLASH擦除过程的抑制攻击,通过在FLASH擦除过程中对目标芯片注入电压毛刺,使得目标芯片的FLASH擦除过程无效,从而保留了FLASH中存储的敏感信息

二、预备知识

现代处理器包含集成的调试接口,用于协助开发,调试系统。这个接口提供了包括FLASH内存在内的处理器内部器件的访问权限。FLASH常常被用来存放一些敏感数据,比如固件,密码学凭证等。由于这一接口具有很高的权限,因此当芯片落地应用时,需要对其数据完整性和可信性做严格的约束。

部分芯片可以永久的禁用调试接口,还有部分芯片为了适应现代化的开发和应用需求,可以进入受限的调试权限。如下图所示,虚线表示只有部分设备包含对应功能。

一种针对FLASH擦除过程的故障注入攻击

调试接口的状态转换图

当目标芯片从受限的调试权限向完全的调试权限转换过程中,会经过一个FLASH擦除的过程,以保证FLASH中的敏感信息不会被泄露。这篇论文的目的就是通过故障攻击无效这一过程,从而跳过调试接口保护机制本身获取芯片的敏感信息。

如下图所示为1T-NOR FLASH内存单元结构。这种结构的FLASH被广泛用于如ST系列的芯片中。图中Source为源极,Drain为漏极,Floating gate为浮栅,Control gate为控制删,P-well为衬底。当浮栅中存在大量电子时,表示比特0,当浮栅中存在少量电子时,表示比特1。

一种针对FLASH擦除过程的故障注入攻击

1T-NOR FLASH内存单元结构

对于FLASH的Read操作,需要在控制栅上施加一个参考电压。如果浮栅中没有电子,就会在源极和漏极之间形成电流,表示此时FLASH单元的状态为逻辑1。否则,表示此时FLASH单元的状态为逻辑0。

对于FLASH的Program操作,需要在控制栅上施加一个大电压,吸引电子进入浮栅。

对于FLASH的Erase操作,需要将电子从浮栅中去除,一般分为三步:第一步是Pre-program,对所有要erase的单元先进行program;第二步是Physical Erase,在控制极和衬大的电场,使得电子从浮栅中出来。第三步是Recovery,对于over-erased的单元,重复program直到其正常。

这篇论文攻击的位置就是FLASH的Erase操作,更具体的,在Erase操作的Pre-program之前就要注入故障,以保证存储在FLASH中的敏感信息没有被篡改。

三、实验内容

这篇论文在不同厂商不同型号的芯片上进行了实验,进行了电压毛刺与电磁故障注入两类实验。其中电压毛刺使用的是CW1200 ChipWhisperer-Pro from NewAE Technology平台。电磁故障使用的是ChipSHOUTER from NewAE Technology平台。被测芯片的型号如下图所示。

一种针对FLASH擦除过程的故障注入攻击

待测芯片型号

四、实验结果

由于几款芯片的实验结果较为类似,因此此处以STM32L422KBT6为例进行说明。

如下图所示为单独的mass erase过程和debug unlock过程的侧信道能量结果。可以发现mass erase过程就是debug unlock过程的前半段,这篇论文的攻击位置就是mass erase过程的开头部分。

一种针对FLASH擦除过程的故障注入攻击

单独的mass erase过程和

debug unlock过程的侧信道能量结果

对上图中A,B和C部分的能量波形进行放大可以得到下图,经过分析发现图中1是芯片初始化过程,2是pre-program过程。B位置只完成了debug unlock过程的一半。3是对安全等级配置块的擦除过程,可以发现B的模式与A类似,只是更短,对应了配置块较短的特点。C是对配置块的重新写入过程。

一种针对FLASH擦除过程的故障注入攻击

debug unlock过程能量波形部分放大的结果

下图为STM32L422KBT6芯片移除package后的背面红外照片,可以观察到左下方的规则阵列为FLASH,其右边的是FLASH的高压控制电路。

一种针对FLASH擦除过程的故障注入攻击

STM32L422KBT6背面红外照片

下图为故障结果图,其中上图为完整的注入故障时的能量波形,下图为故障注入位置的放大结果。故障注入位置对应了前文提到的A位置,具体位置在pre-program之前,可以看到一段超过量程的能量波形,对应了故障注入的位置。当故障注入后,pre-program和physical erase过程的能量波形都变得很低,说明故障使FLASH的擦除过程无效了。结合FLASH的基础知识可以猜测,高电压的电压毛刺破坏了FLASH的控制电路,使得FLASH的擦除过程无效。

一种针对FLASH擦除过程的故障注入攻击
一种针对FLASH擦除过程的故障注入攻击

STM32L422KBT6故障结果

结论

这篇论文针对FLASH的擦除过程进行了故障攻击,无效了FLASH的擦除效果,保留了FLASH中的敏感信息。需要说明这一攻击方法并非这篇论文首创,这篇论文的主要贡献在于对这一攻击过程在多种型号的芯片上进行了详细的分析,一定程度上解释了攻击的原理。对于其他型号芯片上的结果以及更细致的实验过程及结果可以阅读原论文。

参考资料

[1] Schink M, Wagner A, Oberhansl F, et al. Unlock the Door to my Secrets, but don’t Forget to Glitch: A comprehensive analysis of flash erase suppression attacks[J]. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2024, 2024(2): 88-129.

一种针对FLASH擦除过程的故障注入攻击

往期精彩文章推荐

一种针对FLASH擦除过程的故障注入攻击
一种针对FLASH擦除过程的故障注入攻击

原文始发于微信公众号(数缘信安社区):一种针对FLASH擦除过程的故障注入攻击

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月6日09:26:15
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   一种针对FLASH擦除过程的故障注入攻击https://cn-sec.com/archives/3594801.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息