最近在USENIX安全2021上发表的一篇题为“
魔戒(S):对CPU片上环网的侧通道攻击是实用的。由RiccardoPaccagnellaLichenroChristopherW.Fletcher著
他们能够使用之前被利用的英特尔CPU的环互连功能。他们声称能提取RSA和EdDSA密钥和键盘中风时间。
奖金部分:
发布于 2021-03-08 17:47:37
多核CPU上的资源共享具有成本低、效率高等优点。然而,这是我们多年来看到的攻击点。在高速缓存攻击中,通过缓存操作提取受害者的数据。
针对各种缓存攻击的对策是禁用同步多线程(SMT),显而易见的是在上下文切换期间对缓存进行清理。通过划分最后一级缓存(LLC) (例如Intel CAT)和禁用不同安全域的共享内存,可以防止交叉核心缓存攻击。
即使采用了相应的对策,所提出的攻击也是有效的。此攻击利用环互连上的争用,该连接是支持不同CPU单元之间通信的组件。
这次攻击中最困难的部分是获得关于戒指的信息,因为它没有被很好的记录下来。
L1和L2缓存被称为私有缓存,因为它们对核心是私有的,因此不可能进行交叉解释。由于Nehalem(Nehalem),L3缓存(LLC)被划分为等大小的片,每个核只有一个片。
在英特尔体系结构中,L1、L2和LLC是包容性的,这意味着如果有L1和L2上的数据,那么它也包含在L3中。

上图中的环形总线说明了它的大部分结构.它用于进程内通信,当L1中出现缓存丢失时,L2中的数据必须在环形总线上传输才能到达LLC。
现在跳过低级别的详细信息,攻击者的进程可以通过传输1并使用0空闲来创建争用。通过测量延迟,它们可以从不安全的朴素平方和乘RSA实现中提取密钥。与功率攻击一样,第二个峰值指示位1。这同样适用于EdDSA。

这个新频道的第二面是击键。攻击泄露了击键的时间,这可以用于重建键入的单词,或者更糟的是密码。如本文所述;

对于密码代码,使用安全实现,特别是恒定时间编程原则。侧通道安全实现不会受到缓存环攻击的当前状态的影响。然而,要做到这一点并不容易,因为Intel CPU在私有缓存和环互连之间执行硬件存储消除(请参阅硬件存储消除)。
对于击键,硬件可以设计基于空间分区和静态调度仲裁策略.此外,可以设计一种基于软件的解决方案,用于定期发送密码.
它在多核CPU上打开了一个新的侧通道。我原以为聪明的头脑会在很多方面改善这次攻击。请注意,尽管如此,如果您的代码不容易受到缓存攻击,而且它们是定时攻击的,那么我还没有看到有漏洞。
目前没有。然而,击键可能是一个大问题。
https://crypto.stackexchange.com/questions/88724
复制相似问题