时钟和电源篡改对两种单片机平台的影响外文翻译资料
2022-11-17 17:09:16
英语原文共 10 页,剩余内容已隐藏,支付完成后下载完整资料
时钟和电源篡改对两种单片机平台的影响
Thomas Korak and Michael Hoefler
Institute for Applied Information Processing and Communications
Graz University of Technology, Inffeldgasse 16a, 8010 Graz, Austria.
摘要 - 强制执行密码原语的设备的错误输出以揭示一些秘密信息是众所周知的攻击策略。 干扰时钟信号或电源电压是产生错误行为的两种常用技术。 在这项工作中,我们深入分析了两种不同的微控制器平台在时钟和电源电压干扰方面的脆弱性。 详细讨论对三组不同指令的影响:算术/逻辑指令,分支指令和存储器指令。 采用了一种新颖的方法,将短时间的欠压和时钟故障相结合,以提高故障的可重复性和故障发生的概率。 结果表明,指令流水线的获取阶段和执行阶段主要受时钟故障的影响,导致跳过或重复执行或计算结果错误。 每个平台的一个样本用于实验,但是对于每个故障类型,给出导致故障的参数的间隔,其概率为100%。 这段时间中间的值对样本分布以及环境影响较不敏感。 这种知识可以有效地攻击在其中一个评估平台上实现的密码原语的软件实现。
关键词:单片机,时钟故障,电源故障。
介绍
物理攻击是破解密码-图形实现的流行选择。 这种类型的攻击利用例如时序[17],功耗[18]或电磁发射[13]中的小泄漏来揭示秘密钥匙。 故障攻击也可以分类为物理攻击。 在发生故障攻击的情况下,攻击者通过在受到攻击的设备中执行一些错误的行为来尝试提取一些关于秘密值的信息。 错误的行为是通过影响环境参数产生的。 干扰电源电压[29],时钟信号[3],温度[15]或注入电磁脉冲[20]可以归类为非侵入式故障攻击。 他们通常不需要修改设备。 由于激光引发故障[27]是半导体故障攻击,因为需要对芯片进行解封装。 在Bar等人的工作中可以找到关于故障注入方法的综合概述。 [4]。 在这项工作中,我们关注非侵入性故障攻击,干扰时钟信号和针对两种不同类型微控制器单元(MCU)的电源电压。
为了进行上述攻击,需要对受到攻击的设备进行物理访问。 对于非侵入式攻击,可以在攻击后将设备放置到位,因此攻击未被发现的概率很高。 传感器节点是物理攻击的潜在目标。 他们经常在恶劣的环境中运作,而且只能被人类零星地观察到。 这个事实使得攻击者可以在攻击期间轻松地移除节点,然后将其放置在适当位置。 对于这项工作的分析,我们选择了两个常用作传感器节点中央处理单元的MCU,一个Atmel ATxmega 256和一个ARM Cortex-M0。
相关工作
过去几年文献报道了大量关于非侵入性故障攻击的图形基元。 流行的攻击目标是硬件以及分组密码的软件实现和RSA算法的软件实现。 在攻击算法旁边,可以区分数据路径(例如,在分组密码的状态下更改中间值)或者控制逻辑(例如,影响圆计数器)是否受故障影响。
Selmane等人[24]已经表明,由于欠压造成的安装时间违规可以用来攻击高级加密标准(AES)分组密码。 在[5]中,作者提出了针对AES和RSA软件来实现成功的故障攻击。 实现运行在一个ARM9的通用处理器和用于注入故障的因素。 [1]的作者应用AES的FPGA实现使用时钟故障执行故障攻击。 实际应用结果验证了理论分析的正确性。针对LSI上实现的六种不同的分组密码,提出了实用的故障攻击。作者使用时钟故障来注入故障。。
Choukri和Tunstall利用电源故障,以便修改[8]中的密钥算法的圆形计数器。类似的修改AES计数器的方法是在[10]中提出的。 在这里,作者使用电磁脉冲来执行错误的行为。
Koemmerling和Kuhn [19]提出了从智能卡中提取秘密数据的方法。它们涵盖了各种各样的物理攻击,并提出了一些对策。
Schmidt等人[23] 使用电源尖峰来攻击RSA实现。Kim和Quisquater[16]表明,两个精确定时电源故障安全的RSA算法的实现可以规避的对策。
上述所有的工作都是攻击硬件实现或特定的软件实现。。Balasch等人[3],与此相反,观察在一个黑盒场景中时钟故障对微控制器指令集的影响。他们指出,由于时钟故障的不同形状,可以执行错误的指令。
贡献
在这项工作中,我们遵循类似的方法,如[3]中的作者。主要的区别是,我们比较时钟故障定位选定的指令为两个不同的单片机类型的影响,一个atxmega256一个ARM Cortex-M0。 在[3]中, ATmega162单片机为被测试装置。使用两个不同的MCU平台,我们可以得出类似的故障注入的影响的比较(每一个MCU平台的一个样本已经用于进行的实验)。除了两个不同的MCU平台的使用,我们提供以下,新颖的贡献:
我们首先讨论的是类似的故障在两个不同的管道结构的影响,对ARM Cortex-M0三级管道和管道的atxmega256两级。结果表明,在两个平台上,时钟执行阶段都会影响提取阶段和执行阶段。
bull;
据作者所知,这是第一个在受到实际故障攻击时,除了时钟故障之外还应用受到攻击的设备短时间低压的工作。这种方法已经显著地提高了故障攻击的效率和再现性。
bull;
由于时钟故障的因素可以提高效率,布朗检测可以作为一种简单的对策。 因此,短期因素对布朗进行检测的效果进行了评估。 结果显示,结果表明,对于供电电压降低和持续时间的选择值的因素不是由布朗在ARM Cortex M0的检测机制与一个给定的概率检测。
bull;
详细讨论了故障注入对三个不同组的指令的影响,并对两个评估的MCU平台进行了详细的比较:算术逻辑/逻辑指令,分支指令,指令和内存。
bull;
对于每一个被调查的指令,给出一个以100%概率导致特定错误行为的参数的区间。给予这样的间隔可以补偿样品分布和环境影响。
bull;
外表
其余的工作结构如下。在第二节中,我们给出了故障注入方法对时钟故障和重点因素概述。第三节介绍了故障攻击的设置,两微控制器以及测试场景。第四节讨论结果。我们的研究结果与前面的相关工作进行了比较,第五节和第六节总结了论文。
故障注入方法
在下一节中,我们将简要讨论不同类型的故障注入机制。一般的讨论,我们把重点放在时钟故障和因素后,因为这些故障注入的方法已被用于在这项工作中提出的攻击。
在谈到故障攻击时,首先必须区别非侵入性、半侵入性和侵入性故障攻击:
非侵入性的故障攻击。这种类型不需要对被攻击的设备进行修改以诱导故障。因此,这种攻击仍然没有被受害者的概率高。此外,这种攻击不需要精密的设备。使用电磁脉冲(例如,[9]),在电源线(例如,[29])或添加额外的时钟边缘(例如,[3])的正或负尖峰是典型的方法。在这里,攻击者试图影响被攻击设备的定时行为。 如果设备的组合逻辑的关键路径被削弱,则诱发错误行为的可能性很高。 电磁脉冲或在允许的温度范围之外(例如[22],[25])操作设备可能会进一步导致内存故障。
半侵入式故障攻击。 为了执行半侵入式故障注入,需要穿透受到攻击的设备。 在光学故障攻击的情况下,这种修改等于芯片去封装以接近芯片管芯,但钝化层保持完好。 激光灯(例如[28])以及闪光灯(例如[27])可用于引发故障。 激光器允许瞄准存储器或寄存器中的特定位,而闪光灯只允许瞄准芯片较大区域的全局故障。
侵入性故障攻击。 这种攻击也需要攻击装置的穿透。 在去封装步骤之后,去除钝化层以便用微探针(例如[26])接近金属层。 这种方法可以锁定芯片上的单条总线并修改它们的值(例如,卡在零,卡在一)。 侵入式故障攻击要求最先进的设备具有优势,几乎不存在故障注入的限制。
为了利用加密操作的错误输出,在过去几年中提出了几种分析技术:差分故障分析(DFA)[6],碰撞故障分析(CFA)[14]和无效故障分析(IFA)[7]。 这些故障分析方法超出了本工作的范围,因此不会详细讨论。
时钟小故障
正如已经讨论过的,时钟故障可以被归类为非侵入式攻击。 它们可以应用于提供有外部时钟信号的器件。 目标是通过添加额外的时钟沿来违反器件的时序约束。 图1显示了一个时钟信号,其中插入了一个额外的时钟边沿。T等于正常运行期间的时钟周期,而T故障则等于故障注入时的时钟周期。 图2描述了用示波器测量的故障板产生的时钟信号。 实际上,T故障为8ns和22ns时钟信号之间绘制覆盖
电压 |
T |
TGlitch |
T-TGlitch |
||||
时间
图1.通过插入额外的正时钟边沿来违反关键路径延迟
电压[V]
时间[ns]
图2. 与T故障为8ns和22ns不同设置时钟信号
覆盖 关于时钟信号产生和故障攻击板的更多信息可以在第三节中找到。
通常定义一个最大时钟频率f最大值。 最小周期t等于f最大值的倒数。只要不干扰ge;T分钟,没有错误的行为可以被观察到,但如果故障lt; t min,观察错误行为的概率增大。 错误行为的原因是违反时间规定。 电路中的每个组合路径具有特定的传播延迟(TP),其描述改变输入和提供有效输出值之间的时间间隔。 组合逻辑模块输出端的寄存器通常在正时钟沿采样该值。如果正时钟边缘到达之前,组合逻辑的输出由于时钟错误所造成的时序违规(T故障<p)而稳定为稳定值,寄存器存储错误的值,从而导致计算错误。。
因素
对电源电压的篡改可以分为无故障错误攻击。低功率意味着减少对设备攻击低于最小值的电源电压值,设备指定为。根据电源电压的持续时间的不同而定,一个能区分永久性的因素(例如,对算法执行的整个持续时间)和瞬态的因素(例如,只有一些时钟周期)。我们的研究结果也表明,一些检测机制仍然无法检测到这种方法。 低功耗增加了组合逻辑的传播延迟TP(为了详细解释电源电压对传播延迟的影响,作者参考[29])。 由于这个事实,当干扰时钟信号和电源电压时,也可以达到类似的效果。当降低电源电压时,时序违规可以被强制执行。在结果部分,结合时钟故障的因素和方法,这导致一种改进的故障注入。在该目的的时钟故障期间,电源电压仅降低。
故障注入设置和评估方案
在下面的部分中,介绍了故障注入实验的设置。一个基于FPGA的故障板被用来干扰时钟信号以及微控制器的电源。下一步,调查两个微控制器,分别介绍了ARM Cortex-M0和一atxmega256。在本节的最后,给出了所进行的测试场景的说明。
故障板和扩展板
我们用来干扰电源电压和时钟信号的设备是一个特制的故障板。 故障板如图3所示。故障板如图3所示,该故障板的主要部分是一个Xilinx Spartan-6 xc6slx45 FPGA。为与控制计算机通信,故障板配有USB端口,并通过控制计算机上的MATLAB脚本完成配置,大量的IO引脚可用于连接多种设备。对于在这项工作中进行的实验,三个引脚是必不可少的:时钟信号,电源电压,和触发信号。显示安装的框图可以在图4中找到。用于显示时钟信号和电源电压从picoscope5203已使用。
时钟故障的产生。在故障板上,使用类似于[ 1],[11]中所示的类似方法来生成时钟信号和插入小故障。 对于所有的实验,我们使用24 MHz(T 41.7 ns)的标称时钟频率来为MCU提供时钟。 T故障5.9ns和22.0ns之间的值可以设置来实现的,这相当于45mhz和170mhz之间的频率范围。 图2描述了由故障板生成的时钟信号。在8.0ns到22.0ns T故障值范围,一个1.0ns步长,测量创建该图。 在FPGA的预定义引脚上的触发事件之后插入小故障。定义触发器事件和小故障插入之间的时钟周期允许精确地选择故障发生的时间点。
asymp;
电源电压操作。在其输入端具有不同的可配置电压值的多路复用器可以干扰被攻击设备的电源电压。在0V和5V的电压值之间的范围内支持。 对于不足的情况,我们设定U1 = 3:3 V,U故障=(3:3 U)V。U1等于多路复用器输入1的电压,U故障分别等于多路复用器输入2的电压。U定义在欠压期间电源电压的降低。 在触发事件之后,电源电压降低发生定义的时钟周期数和触发事件后的持续时间可以精确定义的因素。
minus;
扩展板。图3还描述了下面所讨论的所调查微控制器的扩展板。扩展板允许使用相同的故障攻击板攻击多种设备。
图3 (1):故障板; (2):ARM Cortex-M0扩展板; (3):ATxmega 256扩展板lt;
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[24582],资料为PDF文档或Word文档,PDF文档可免费转换为Word