使用声音恢复 RSA 密钥 - 它是如何工作的?

信息安全 RSA 侧信道
2021-08-14 23:44:35

昨天发布了一个非常有趣的 Debian安全公告。

Genkin、Shamir 和 Tromer 发现 RSA 密钥材料可以通过使用计算机在解密某些选定密文时产生的声音来提取。

这种攻击如何运作?有哪些可能的缓解措施?

2个回答

这种攻击是针对 RSA的一种侧信道攻击形式。完整的详细信息可以在RSA 名声的 Adi Shamir(三位作者之一)发表的论文中找到。

这种攻击本质上是有效的,因为计算机在执行不同的任务时会发出不同的声音。使用此信息,可以在加密或解密过程中恢复有关 RSA 密钥的信息。当使用不同的 RSA 密钥加密相同的明文时,研究人员能够辨别加密过程中使用了哪个密钥。这是密钥识别攻击的一种形式。

有趣的是,研究人员能够使用手机发起攻击。这是令人不安的,因为这种攻击不需要专门的设备来完成。

虽然这种攻击目前严格来说是理论上的,但它仍然很有趣,因为侧信道攻击是过去对 RSA 的许多攻击的原因。

减轻

就像 Debian 公告中提到的那样,这种攻击在 GPG 的较新版本中得到了修复。

对于 oldstable 发行版(squeeze),此问题已在版本 1.4.10-4+squeeze4 中修复。

对于稳定的发行版(wheezy),这个问题已经在版本 1.4.12-7+deb7u3 中得到修复。

对于不稳定的发行版(sid),这个问题已经在版本 1.4.15-2 中修复。

更好的是,使用 GPG 2.x 分支,它已经采用了RSA 致盲,可以防止侧信道攻击。

实际影响为零……目前。该攻击属于一种称为旁道的类型,因为它利用信息泄漏,这里的声音发射取决于处理过的数据,包括私钥。在某些情况下,可能会利用泄漏来进行完整的密钥恢复,但在实践中并不容易实现这些条件。正如作者所说:

为了将攻击应用于 GnuPG,我们找到了一种方法让 GnuPG 自动解密攻击者选择的密文。这个想法是使用遵循 OpenPGP 和 PGP/MIME 协议的加密电子邮件消息。例如,Enigmail(Thunderbird 电子邮件客户端的一个流行插件)使用 GnuPG 自动解密传入的电子邮件(用于通知目的)。攻击者可以通过电子邮件向受害者发送适当制作的消息,等到他们到达目标计算机,然后观察他们解密的声学特征(如上所示),从而关闭自适应攻击循环。

换句话说,攻击需要一个相当具体的背景才能造成真正的破坏,而且它不会是谨慎的。


防止泄漏是通过更改软件来完成的,以便不再发生泄漏,或者更准确地说,不再产生可用信息。在 RSA 的情况下,对于模数n、公共指数e和私人指数d盲法是有效的:

  • 在对输入m使用私钥之前,生成一个随机r
  • 计算m' = m*r e mod n
  • 对m'应用核心求幂,得到t' ( t' = m' d mod n )。
  • 计算t = t'/r mod n这个值t是实际结果:t = m d mod n

为什么盲对 RSA 中的大多数侧通道泄漏有效,这是一个微妙的问题。但是,以一种挥手的方式,假设r值的附加随机性(称为“掩码”)通过阻止攻击者对其建模来隐藏数据:攻击者不再知道什么进入了幂运算。为每个求幂生成一个新的掩码r很重要(在某种程度上,可以有捷径以较低的成本生成掩码序列,但这很棘手,通常不值得努力)。致盲隐含的开销仍然很小,因为公共指数e很小。

致盲不是唯一的对策​​;为避免泄漏,还应注意保持操作序列尽可能固定,而不管数据如何(例如,在经典的平方乘幂算法中,不要有条件地相乘;相反,总是相乘,但有条件地保留结果或丢弃它)。