定时缓存访问以消除共享软件中的侧信道
密码学与安全
2021-12-20 v2
摘要
定时侧信道已被用于提取加密密钥和敏感文档,甚至来自可信飞地(enclave)。在本文中,我们关注由内存层次结构中访问共享代码或数据所产生的缓存侧信道。该漏洞被若干已知攻击所利用,例如用于恢复 RSA 密钥的 evict+reload,以及因推测性访问导致数据泄露的 Spectre 变体。本文的核心洞见是:在受害者将数据载入缓存后,对共享数据的首次访问至关重要。为消除定时侧信道,我们确保一个进程对由另一进程载入的任何缓存行的首次访问均导致未命中。我们通过结合时间戳与一种新颖的硬件设计来实现该目标,以允许对时间戳进行高效的并行比较。该方案在所有缓存层级均有效,并可防御运行于另一核、同核或另一超线程上的攻击进程。我们的设计保留了共享缓存的优势:允许进程利用其整个缓存执行,并保留共享代码与数据的单一副本(数据去重)。我们在 GEM5 模拟器中的实现表明,该系统能够防御 RSA 密钥提取。我们使用 SPECCPU2006 评估性能,观察到因首次访问延迟带来的开销为 2.17%。因安全上下文记账带来的开销约为 0.3%。
引用
@article{arxiv.2009.14732,
title = {Timing Cache Accesses to Eliminate Side Channels in Shared Software},
author = {Divya Ojha and Sandhya Dwarkadas},
journal= {arXiv preprint arXiv:2009.14732},
year = {2021}
}
备注
2021 ACM/IEEE 48th Annual International Symposium on Computer Architecture (ISCA). IEEE, 2021