“低压故障攻击”中实际发生了什么

信息安全 密码学 攻击
2021-08-13 03:04:19

我知道它们是对在各种处理器上实现的加密算法的攻击,但它们是如何工作的?网上的论文太复杂了,我看不懂。

在此处输入图像描述

2个回答

“故障攻击”是您在某些硬件上执行的操作:

  • 那是在你的物理手中,
  • 但可以防止入侵(“防篡改”),
  • 并使用您不知道但想要的值(“加密密钥”)进行计算。

这种硬件的例子是智能卡一个经典的场景是:您有一张用于卫星电视解码器的智能卡;您通过正常订阅广播公司获得该卡;您希望制作 3000 张该卡的副本,以便您可以将它们转售给想要免费/廉价电视的人。人们这样做。

故障攻击是指您通过更改其环境来诱导屏蔽硬件出错。例如,您尝试在超过卡标称工作温度的温度下在烤箱中运行卡。攻击者的希望是,通过分析卡失败时返回的内容,他可以对卡中存储的秘密值有所了解(这当然非常具体到卡的计算内容以及卡中的实现方式)。低压故障攻击是一种故障攻击,通过向硬件提供低于正常电压的电压来引发故障(在“智能卡”模型中,卡有自己的 CPU、RAM 和 ROM,但电流和时钟信号由外部提供,即在攻击者的控制之下)。例如,如果卡需要 3.3V,你只给它 2V。这里真正的技巧是攻击者只能在很短的时间内降低电压,几个时钟周期,以便在算法执行的特定部分引发故障。

这是本地攻击,是对密码算法本身的攻击。基本上,它利用了在低电压下很难区分 0 和 1 的事实,以便模糊加密算法以泄漏有关密钥的信息。

这是有限的用途,因为它需要一个安全加载和运行加密存储的系统,同时能够改变设备中的功率水平,这确实是一个非常有限的情况。它主要用于取证类型的设置或用于可以维持电力的被盗和登录设备。攻击起作用的关键是私钥必须用于解密或加密操作,但攻击者不能通过其他方式访问。通过强制加密和解密软件以受控方式出错,可以确定有关私钥的信息。

这是有效的,因为控制故障点最终将导致基于值是 1 还是 0 的不同行为变化。由于 0 表示没有电压,而 1 表示存在电压,如果你降低数量电压,一些 1s 将开始读取为 0s。这会导致某个条件的值为 1 的故障,但不会导致某个条件的值为 0 的故障。

这些错误的模式可用于获取有关用于加密过程的密钥的一些有限信息,或者在这种情况下,原始纯文本被加密而不是密钥本身,并通过多次重新运行加密过错。他们在实验上能够通过阻止加密以允许确定纯文本的方式正确发生(这实际上并不需要泄露密钥或任何密钥细节)来恢复明文。这持续了几分钟重新运行加密数千次以取得相当高的成功,但他们能够以设备在攻击后正常工作的方式执行攻击,因此如果对设备进行不受监控的物理访问,则可能是隐蔽的设备。