论文标题
硬件软件合同以进行安全猜测
Hardware-Software Contracts for Secure Speculation
论文作者
论文摘要
自从发现幽灵以来,已经提出了许多用于安全猜测的硬件机制。从直觉上讲,更具防御性的机制效率较低,但可以安全执行更大的程序,而更具允许的机制可能会提供更多的性能,但需要更具防御性的编程。不幸的是,没有硬件软件合同可以将这种直觉变成有原则的共同设计的基础。在本文中,我们提出了一个指定此类合同的框架,并证明了其表现力和灵活性。在硬件方面,我们使用该框架提供了由代表性的机制提供的安全保证的首次形式化和比较,以进行安全投机。在软件方面,我们使用该框架来表征程序属性,以保证在传统上孤立调查的两种情况下安全共同设计的程序属性:(1)确保良性程序在计算机密数据时不会泄漏信息,并且(2)确保潜在的恶意程序无法在其指定的沙箱之外阅读。最后,我们展示了如何根据现有工具进行软件验证来检查与两种方案的属性,并使用它们来验证我们在可执行代码上的发现。
Since the discovery of Spectre, a large number of hardware mechanisms for secure speculation has been proposed. Intuitively, more defensive mechanisms are less efficient but can securely execute a larger class of programs, while more permissive mechanisms may offer more performance but require more defensive programming. Unfortunately, there are no hardware-software contracts that would turn this intuition into a basis for principled co-design. In this paper, we put forward a framework for specifying such contracts, and we demonstrate its expressiveness and flexibility. On the hardware side, we use the framework to provide the first formalization and comparison of the security guarantees provided by a representative class of mechanisms for secure speculation. On the software side, we use the framework to characterize program properties that guarantee secure co-design in two scenarios traditionally investigated in isolation: (1) ensuring that a benign program does not leak information while computing on confidential data, and (2) ensuring that a potentially malicious program cannot read outside of its designated sandbox. Finally, we show how the properties corresponding to both scenarios can be checked based on existing tools for software verification, and we use them to validate our findings on executable code.