A Comparative Analysis of Rust-Based SGX Frameworks : Implications for building SGX applications
- Alternative Title
- Rust 언어 기반 SGX 프레임워크의 비교분석: SGX 응용프로그램 구현을 위한 시사점
- Abstract
- The widespread adoption of Intel Software Guard Extensions (SGX) technology has garnered significant attention, primarily owing to its robust hardware-based data-in-use protection. To alleviate the complexities of SGX application development, an approach involving the incorporation of a Library Operating System (LibOS) within an enclave has gained prominence. This strategy enables SGX utilization without necessitating extensive modifications to legacy code. However, this approach increases the potential attack surface and may be susceptible to memory corruption vulnerabilities. To address this challenge, the trend of leveraging Rust programming language offering memory safety guarantees for implementing system components has prompted the development of Rust-based SGX frameworks. But still, a gap exists in providing guidelines or systematic analyses to aid developers in selecting a suitable Rust-based SGX framework, considering factors like implementation cost and runtime overhead. This study undertakes a comprehensive comparative analysis of three representative SGX frameworks implemented with Rust: Rust SGX SDK, Occlum, and Fortanix EDP. Our analysis encompasses an exploration of their internal implementations, focusing on their impact on both performance and security. Furthermore, quantifying the engineering effort for migrating legacy Rust applications and comparing the supplementary overhead incurred when subjecting these frameworks to CPU and memory-intensive workloads are essential aspects of our analysis. Through this examination, the goal is to offer valuable guidance to developers who are in the process of selecting a Rust-based SGX framework that aligns with their application’s specific purpose and workload characteristics.|견고한 하드웨어를 기반으로 사용 중인 데이터에 대해 보호 기능을 제공하는 Intel SGX (Software Guard Extensions, SGX) 기술이 널리 채택되면서 개발자들의 주목을 받고 있다. 특히, 레거시 코드를 수정하지 않고 라이브러리 운영 체제 (LibOS)를 Enclave 내에 이식하는 방법을 통해 SGX 응용프로그램 개발의 복잡성을 줄일 수 있다. 그러나, LibOS 기반 SGX는 잠재적인 공격 표면을 증가시키며 메모리 손상 취약성에 노출될 수 있다. 이 한계를 극복하고자, 시스템 구성 요소를 안전하게 구현하여 메모리 안전성을 보장하는 Rust 프로그래밍 언어를 활용하는 추세이다. 이에 따라 Rust 기반 SGX 프레임워크를 활용한 응용프로그램 개발 방법론이 대두되었다. 하지만, Rust 기반 SGX 프레임워크를 선택하는 것에 있어 구현 비용 및 런타임 오버헤드와 같은 요소를 고려하는 개발자들을 위한 지침이나 체계적인 분석이 미비하다. 본 연구에서는 Rust로 구현된 세 가지 대표적인 SGX 프레임워크인 Rust SGX SDK, Occlum, Fortanix EDP에 대해 전반적인 성능 비교 분석을 수행한다. 이 분석은 성능 및 보안에 미치는 영향에 중점을 두어, 각 프레임워크의 내부 구현을 분석한다. 더욱이, Rust 프로그래밍 언어로 작성된 응용프로그램을 마이그레이션 하는 데 필요한 개발 비용을 양적으로 평가하며, 프레임워크를 CPU 및 메모리 집약적인 워크로드에 적용했을 때 발생하는 추가적인 오버헤드를 평가한다. 이 분석을 통해 개발자들에게 응용프로그램 및 워크로드 특성에 적합한 Rust 기반 SGX 프레임워크를 선택하도록 하는 지침을 제공하고자 한다.
- Author(s)
- 신희경
- Issued Date
- 2024
- Awarded Date
- 2024-02
- Type
- Dissertation
- URI
- https://repository.sungshin.ac.kr/handle/2025.oak/1274
http://dcollection.sungshin.ac.kr/common/orgView/000000014932
- Alternative Author(s)
- SHIN HEEKYUNG
- Affiliation
- 성신여자대학교 일반대학원
- Department
- 일반대학원 미래융합기술공학과
- Advisor
- 김성민
- Table Of Contents
- Ⅰ. Introduction 1
Ⅱ. Background 5
1. Intel SGX and LibOS-based SGX Framework 5
2. Rust Programming Language 7
Ⅲ. Characteristics Analysis of Frameworks 9
1. Occlum 10
2. Fortanix EDP 11
3 Rust SGX SDK (Incubator Teaclave SGX SDK) 12
Ⅳ. Qualitative Aspects Affecting Application Performance 14
1. Memory Boundary Check 15
2. Enclave Transition (ECALL/OCALL) 15
3. Runtime Overhead (Miscellaneous) 16
4. Memory Safety Guaranteed by Each Framework(Miscellaneous) 17
Ⅴ. Comparison of Framework Performance Using Application Benchmarks 19
1. Performance Overhead 21
2. Enclave Size 23
Ⅵ. Quantifying engineering effort 28
Ⅶ. Related Work 32
Ⅷ. Future Work 35
1. Design Goal and Challenges 38
2. A Proof-of-concept System Design 40
Ⅸ. Conclusion 44
- Degree
- Master
- Publisher
- 성신여자대학교 일반대학원
-
Appears in Collections:
- 미래융합기술공학과 > 학위논문
- 공개 및 라이선스
-
- 파일 목록
-
Items in Repository are protected by copyright, with all rights reserved, unless otherwise indicated.