EActors: fast and flexible trusted computing using SGX
Résumé
Novel trusted execution support, as offered by Intel's Software Guard eXtensions (SGX), embeds seamlessly into user space applications by establishing regions of encrypted memory, called enclaves. Enclaves comprise code and data that is exe- cuted under special protection of the CPU and can only be accessed via an enclave defined interface. To facilitate the usability of this new system abstraction, Intel offers a soft- ware development kit (SGX SDK). While the SDK eases the use of SGX, it misses appropriate programming support for inter-enclave interaction, and demands to hardcode the exact use of trusted execution into applications, which restricts flexibility. This paper proposes EActors, an actor framework that is tailored to SGX and offers a more seamless, flexible and efficient use of trusted execution - especially for applica- tions demanding multiple enclaves. EActors disentangles the interaction with enclaves and, among them, from costly exe- cution mode transitions. It features lightweight fine-grained parallelism based on the concept of actors, thereby avoid- ing costly SGX SDK provided synchronisation constructs. Finally, EActors offers a high degree of freedom to execute actors, either untrusted or trusted, depending on security requirements and performance demands. We implemented two use cases on top of EActors: (i) a secure instant messag- ing service, and (ii) a secure multi-party computation service. Both illustrate the ability of EActors to seamlessly and ef- fectively build secure applications. Furthermore, our perfor- mance evaluation results show that securing the messaging service with EActors improves performance compared to the vanilla versions of JabberD2 and ejabberd by up to 40×