🏢Architecture
Last updated
Last updated
Enclaive's solution utilizes a libOS-based approach to provision applications within its containers. The libOS is built upon the gramine project, an actively maintained project by Intel, which itself is a fork of the graphene research project originating from Stoney Brook University in 2011. Graphene, in turn, incorporates Intel's SGX SDK, providing drivers, Quoting Enclave (QE), and Provision Certificate Enclave (PCE), along with the Data Center Attestation Primitive (DCAP) framework and system libraries implementing RA-TLS, which bridges the gap and integrates Remote Attestation into the establishment of the standard secure channel protocol TLS.
The execution of the libOS takes place within a pico-process, which encompasses an unmodified application binary and its supporting libraries, running on a dedicated libOS instance. This libOS is designed to abstract host kernel functionality through a generic Application Binary Interface (ABI). This ABI facilitates the implementation of various fundamental abstractions, such as virtual memory, threads, synchronization, byte streams (similar to pipes), a file system, and networking, which can be easily supported on different host operating systems. While Linux serves as the reference host kernel, other platforms can be supported by implementing the corresponding Platform Adaptation Layer (PAL). From a technical perspective, the libOS consists of modified libraries for the Executable and Linkable Format (ELF) linker and (dynamic) loader, libc, and libthread, enabling the issuance of system calls as functions to its own Linux library. The Linux library, in turn, implements these system calls using a variant of the unikernel Drawbridge ABI, provided by the PAL, and relies on calls to the underlying kernel.
The architecture diagram above illustrates the structure of a Confidential Container and outlines enclaive's framework for enclaving an application. Several key components play vital roles:
With these enhancements, client workloads can now benefit from transparent data storage encryption using provisioned certificates, which can be configured in a file as before. In essence, while the vault and containers continue to operate as they did previously, they can now leverage the advantages provided by SGX.