面向 SGX 中宿主应用与飞地高效建立相互不信任机制
密码学与安全
2020-10-26 v1 操作系统
摘要
自问世以来,SGX 已被用于许多应用,例如安全数据处理。然而,先前的系统通常假设一个可信飞地,并忽略由不可信飞地引发的安全问题。例如,一个脆弱(甚至恶意)的第三方飞地可被利用来攻击宿主应用及系统其余部分。在本文中,我们提出一种高效机制以限制不可信飞地的行为。不可信飞地的威胁源于飞地-宿主的不对称性。它们可被滥用以访问宿主应用的任意内存区域、在离开飞地后跳转到任意代码位置,以及伪造栈寄存器以操纵已保存的上下文。我们的方案打破了此类不对称性,并在宿主应用与飞地之间建立相互不信任。它利用 Intel MPK 实现高效内存隔离,并利用 x86 单步调试机制捕获飞地退出的事件,随后对跳转目标和栈指针执行完整性检查。我们解决了两个实际挑战并实现了原型系统。基于多个微基准测试和代表性真实应用的评估显示了我们系统的高效性,性能开销低于 4%。
引用
@article{arxiv.2010.12400,
title = {Towards Efficiently Establishing Mutual Distrust Between Host Application and Enclave for SGX},
author = {Yuan Chen and Jiaqi Li and Guorui Xu and Yajin Zhou and Zhi Wang and Cong Wang and Kui Ren},
journal= {arXiv preprint arXiv:2010.12400},
year = {2020}
}