本文主要是介绍在 Trezor One 上重现故障注入攻击,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目标
这篇文章旨在提供一个路线图和示例,说明如何复制故障注入攻击以及尝试这样做时可能出现的障碍和缺点。此外,通过概述复制其中一种攻击的过程, 但在深入探讨所有这些之前,让我们简要回顾一下什么是故障注入 (FI)。
故障注入简介
故障注入涉及引入足够小的错误/修改以在目标上导致未定义的行为,但不足以阻止目标完全运行。这通常涉及注入高压脉冲或暂时从目标系统上的目标电源或“轨道”排出电压。
通过引起瞬时电压调制(高于或低于预期电压),我们可以强制我们的目标系统进入未定义行为的领域。有充分针对性的故障可以绕过各种安全检查或其他可能阻碍攻击者或逆向工程的功能。
关于常见的故障注入方法,我们可以尝试引入几种不同类型的故障:时钟毛刺和电压毛刺。
时钟故障
对于时钟故障,我们的目标是跳过或修改指令。这个想法是,通过注入另一个时钟周期,我们可以让处理器跳过一条指令。
如你所见,当我们尝试修改或操纵特定的时钟周期序列以获得我们想要的结果时,这些需要精确。时钟毛刺以 CPU 或微控制器上的外部时钟为目标,最终目标是在适当的时间注入时钟信号,从而导致指令被跳过。
电压毛刺
电压故障涉及针对整个系统的电源。通过短暂切断目标系统的电源,我们可以修改其行为/性能。
对于电压毛刺,我们的目标是在足够短的时间内降低电压,以使处理器不会完全关闭,而是进入未定义状态或导致某种类型的未定义行为。但是,这项任务并不容易,因为许多处理器都是专门为避免这种情况而设计的,有时需要攻击者通过组件删除或注入方法来发挥创造力。
详细的分析文章可以见公众号
在 Trezor One 上重现故障注入攻击
或加入星球获取完整pdf
这篇关于在 Trezor One 上重现故障注入攻击的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!