ERIM:利用内存保护密钥(MPK)实现安全高效的进程内隔离
密码学与安全
2019-06-05 v5
摘要
隔离敏感状态和数据可提升许多应用的安全性和鲁棒性。例子包括保护加密密钥免受如OpenSSL的Heartbleed漏洞之类的攻击,或保护语言运行时免受用不安全语言编写的本地库的影响。当跨隔离边界的运行时引用发生相对不频繁时,可使用传统的基于页面的硬件隔离,因为内核或虚拟机监控器介导的域切换成本是可容忍的。然而,某些应用(例如网络服务中加密会话密钥的隔离)需要非常频繁的域切换。在此类应用中,内核或虚拟机监控器介导的域切换开销令人望而却步。本文提出ERIM,一种在x86 CPU上以低开销提供硬件强制隔离的新技术,即使在高速切换率下亦然(ERIM实测开销在每秒100,000次切换时低于1%)。其核心思想是将保护密钥(MPKs,x86近期加入的允许在用户空间进行保护域切换的特性)与二进制检查相结合以防止绕过。我们表明,ERIM可轻松应用于新旧应用,无需编译器改动,可在普通Linux内核上运行,且即使在高速域切换率下也具有低运行时开销。
引用
@article{arxiv.1801.06822,
title = {ERIM: Secure, Efficient In-process Isolation with Memory Protection Keys (MPK)},
author = {Anjo Vahldiek-Oberwagner and Eslam Elnikety and Nuno O. Duarte and Michael Sammler and Peter Druschel and Deepak Garg},
journal= {arXiv preprint arXiv:1801.06822},
year = {2019}
}
备注
USENIX Security Symposium 2019