题目: Regaining Lost Cycles with HotCalls: A Fast Interface for SGX Secure Enclaves
作者: Ofir Weisse, Valeria Bertacco, Todd M. Austin
单位: University of Michigan
出版: ISCA 2017
解决问题:
- SGX被广泛用于信息加密的同时,性能问题却没有解决。
- 本工作对SGX的性能进行了详细的量化分析(comprehensive quantitative study),发现一般的系统调用从150个周期上升到了8200-17000周期之多。
- 分析对象是memcached、openVPN、lighttpd等,性能最高恶化可达79%。
- 本工作针对SGX设计了一套全新的microbenchmarks,专门分析enclave entry-calls、out-calls以及encrypted memory I/O accesses。
- 为此提出了新的API框架,使用同步自旋锁机制,达到效果比原接口快13-27倍之多。
- 实验证明了吞吐量上升 2.6-3.7x,延迟减少 62-74%。
贡献点:
- 设计了一整套针对已有工作的microbenchmark方案,一大部分工作量在寻找实际的性能瓶颈上。强调性能需求和安全一样迫切。
- 设计了一套全新的接口HotCalls,用于Enclave间通信以及Enclave(Trusted)和Untrusted Code的交互。13-27X加速(比Intel的SGX SDK上升一个量级)。
- 对三个热门应用( openVPN、memcached 和 lighttpd)进行实验评估,效果显著。
不足:
- 攻击者可借助对自旋锁(自旋锁属于不可信的SDK的部分)的数据结构破坏,实现DoS攻击,甚至是多个Enclave线程对同一内存的竞争访问,实现更严重的攻击。
- 使用SGX的加密内存时,数据库应用的空间局部性原理依旧没有被很好地满足,可优化空间还是很大(吞吐量只有原生的六成)。本文建议结合MICRO 2016的PoisonIvy: Safe speculation for secure memory工作进行进一步优化。
- 个人认为的不足:由于本工作要求在使用HotCalls API的应用程序中添加额外的线程,因此必须对源代码进行修改。而对于一个稳定的工业级软件的任何改动都可能引起新的缺陷和漏洞出现。对于这个问题,本文只是把潜在的风险提了一下,并没有进行论述。
个人体会:
- 摘要和介绍部分有重复。根据学术写作指导。Repeating is OK。
- 标题起得很有特色:把遗失的周期找回来。