Skip to main content
QUICK REVIEW

[论文解读] DynSGX: A Privacy Preserving Toolset for Dynamically Loading Functions into Intel(R) SGX Enclaves

Rodolfo Silva, Pedro Barbosa|arXiv (Cornell University)|Oct 31, 2017
Security and Verification in Computing参考文献 12被引用 4
一句话总结

DynSGX 是一种保护隐私的工具集,支持在 Intel SGX 信封中动态加载和卸载函数,克服了静态链接和代码可见性限制。它通过将动态加载的代码存储在信封堆中实现这一目标,与传统 SGX 相比性能开销极小,尽管递归函数由于缓存争用导致显著变慢。

ABSTRACT

Intel(R) Software Guard eXtensions (SGX) is a hardware-based technology for ensuring security of sensitive data from disclosure or modification that enables user-level applications to allocate protected areas of memory called enclaves. Such memory areas are cryptographically protected even from code running with higher privilege levels. This memory protection can be used to develop secure and dependable applications, but the technology has some limitations: ($i$) the code of an enclave is visible at load time, ($ii$) libraries used by the code must be statically linked, and ($iii$) the protected memory size is limited, demanding page swapping to be done when this limit is exceeded. We present DynSGX, a privacy preserving tool that enables users and developers to dynamically load and unload code to be executed inside SGX enclaves. Such a technology makes possible that developers use public cloud infrastructures to run applications based on sensitive code and data. Moreover, we present a series of experiments that assess how applications dynamically loaded by DynSGX perform in comparison to statically linked applications that disregard privacy of the enclave code at load time.

研究动机与目标

  • 解决 Intel SGX 在加载时静态代码链接和代码可见性的局限性。
  • 使开发人员能够在信封创建后动态加载和卸载函数,改善内存管理。
  • 通过防止通过静态二进制文件披露代码,保护信封代码的隐私。
  • 评估在保持安全性和隐私性的前提下,动态加载在 SGX 中的性能开销。
  • 为在不受信任的云环境中部署敏感应用程序提供实用解决方案。

提出的方法

  • DynSGX 修改 Intel SGX PSW,以允许将代码动态加载到信封堆中。
  • 它使用自定义加载器,将动态加载的函数映射到信封的受保护内存空间。
  • 该工具集支持函数的运行时加载和卸载,实现按需代码执行。
  • 它利用 Intel SGX 的远程认证功能,确保代码完整性和真实性。
  • 实现使用了修改版的 Intel SGX SDK,以支持基于堆的代码执行。
  • 它与现有 SGX 编程模型集成,同时保持硬件强制的隔离性。

实验结果

研究问题

  • RQ1是否可以在不损害代码隐私的前提下,实现将函数动态加载到 SGX 信封中?
  • RQ2与静态链接相比,动态加载函数的性能开销如何?
  • RQ3DynSGX 如何处理递归工作负载中的内存管理和缓存争用问题?
  • RQ4该工具集能否在不受信任的云环境中支持安全的按需代码部署?
  • RQ5在动态信封函数加载中,隐私、性能和可扩展性之间的权衡是什么?

主要发现

  • DynSGX 与静态链接相比,实现了极低性能开销的信封中函数的动态加载和卸载。
  • 对于迭代算法,DynSGX 的性能开销适中,执行时间比纯 SGX 增加 10-15%。
  • 递归函数(如 recursive_fibonacci)由于指令和数据缓存争用,当代码位于堆中时表现出显著的性能下降。
  • 该工具集通过防止对信封二进制文件的静态分析,保护了代码隐私,因为函数代码是在运行时加载的。
  • 远程认证功能保持正常,确保加载的代码真实且未经修改。
  • SGX2 虙虽支持动态内存管理,但未解决代码隐私问题,因此 DynSGX 对隐私敏感工作负载具有互补价值。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。