TL;DR
Twine is a secure runtime for WebAssembly that leverages Intel SGX to execute unmodified applications with strong security guarantees and acceptable performance overheads, demonstrated with a trusted SQLite database.
Contribution
Twine introduces a novel WebAssembly trusted runtime using Intel SGX, enabling secure, sandboxed execution of unmodified applications without language-specific APIs.
Findings
SQLite can run inside SGX via WebAssembly with minimal overhead
Performance can be improved by modifying underlying libraries
Twine is open-source and reproducible
Abstract
WebAssembly is an increasingly popular lightweight binary instruction format, which can be efficiently embedded and sandboxed. Languages like C, C++, Rust, Go, and many others can be compiled into WebAssembly. This paper describes Twine, a WebAssembly trusted runtime designed to execute unmodified, language-independent applications. We leverage Intel SGX to build the runtime environment without dealing with language-specific, complex APIs. While SGX hardware provides secure execution within the processor, Twine provides a secure, sandboxed software runtime nested within an SGX enclave, featuring a WebAssembly system interface (WASI) for compatibility with unmodified WebAssembly applications. We evaluate Twine with a large set of general-purpose benchmarks and real-world applications. In particular, we used Twine to implement a secure, trusted version of SQLite, a well-known full-fledged…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
