Simplex:将英特尔内存保护扩展重新用于信息隐藏
密码学与安全
2020-09-15 v1
摘要
随着软件漏洞利用的迅速增加,过去几十年中出现了若干硬件级安全特性(例如 Intel MPX、ARM TrustZone、Intel SGX、Intel CET)。由于安全、性能和/或可用性问题,这些特性一直受到持续批评。其中一个特性是英特尔内存保护扩展(MPX),这是一种指令集架构扩展,凭借硬件加速的边界检查以较低性能代价提供空间内存安全。然而,近期对 MPX 的研究发现,其在性能、准确性和精确度上均不及前沿的基于软件的空间内存安全方案。作为直接后果,编译器和操作系统对 MPX 的支持正在消失,且英特尔已开始制造不含 MPX 的桌面 CPU。尽管如此,鉴于 MPX 的广泛存在,它提供了一种优秀却未充分利用的硬件资源,可被恰当地挽救用于安全目的。本文中,我们提出 Simplex,一个将 MPX 寄存器重新用作通用寄存器的库框架。利用 Simplex,我们展示了如何将敏感信息(如加密密钥)直接存储于硬件的 MPX 寄存器中。我们评估了 Simplex 的性能,发现其开销足够小,除对性能要求极为严苛的代码外均可部署。我们重构了 string.h 缓冲区操作函数,发现几何平均性能开销为 0.9%。我们还修改了 deepsjeng 和 lbm 这两个 SPEC CPU2017 基准测试以使用 Simplex,分别发现 1% 和 0.98% 的性能开销。最后,我们研究了 MPX 上下文在多进程与多线程程序中的行为。
引用
@article{arxiv.2009.06490,
title = {Simplex: Repurposing Intel Memory Protection Extensions for Information Hiding},
author = {Matthew Cole and Aravind Prakash},
journal= {arXiv preprint arXiv:2009.06490},
year = {2020}
}
备注
10 pages, 5 figures