Director and Senior Staff Engineer in Confidential Computing, Ant Financial
Shoumeng Yan is a director and senior staff engineer of Ant Financial. He leads the confidential computiong direction of the company, focusing on building confidential computing frameworks and hw/sw infrastructure for critical financial business. Before joining Ant Financial, he had worked at Intel since 2006 after he got his PH.D in computer science from Northwestern Polytechnical University. His interests span areas like runtime, OS, virtualization, compiler, language, and all other system software. He has published papers at top conferences like ASPLOS, PLDI, FSE, HotPar, HotMobile etc. He holds about 20 U.S patents.
议题：Occlum: Secure and Efficient Multitasking Inside a Single Enclave of Intel SGX
Intel Software Guard Extensions (SGX) enables user-level code to create private memory regions called enclaves, whose code and data are protected by the CPU from software and hardware attacks outside the enclaves. Recent work introduces library operating systems (LibOSes) to SGX so that legacy applications can run inside enclaves with few or even no mod- ifications. As virtually any non-trivial application demands multiple processes, it is essential for LibOSes to support mul- titasking. However, none of the existing SGX LibOSes support multitasking both securely and efficiently. This topic presents Occlum, a system that enables secure and efficient multitasking on SGX. We implement the LibOS processes as SFI-Isolated Processes (SIPs). SFI is a software instrumentation technique for sandboxing untrusted modules (called domains). We design a novel SFI scheme named MPX- based, Multi-DomainSFI (MMDSFI) and leverage MMDSFI to enforce the isolation of SIPs. We also design an indepen-dent verifier to ensure the security guarantees of MMDSFI. With SIPs safely sharing the single address space of an en- clave, the LibOS can implement multitasking efficiently. The Occlum LibOS outperforms the state-of-the-art SGX LibOS on multitasking-heavy workloads by up to 6, 600× on micro-benchmarks and up to 500× on application benchmarks.