Venue | Category |
---|---|
arxiv | Storage SGX |
Securing the Storage Data Path with SGX Enclaves1. SummaryMotivation of this paperMethod NameImplementation and Evaluation2. Strength (Contributions of the paper)3. Weakness (Limitations of the paper)4. Some Insights (Future work)
This paper intends to explore the use of SGX enclaves as a mean to improve the security of handling keys and data in storage systems.
such as block storage systems, file systems or object storage.
how much development work is required in order to get acceptable performance?
ECALLs (defined in an "edl" file) has a performance impact due to the CPU's context switches. the limitation of the EPC size, and when operating with memory that exceeds the EPC size there is a need for paging of EPC pages to regular memory. (additional latency, encryption of this data before it lands in regular memory)
ensure that all persistent data is always encrypted, so that loss of hardware (e.g., malicious user, hardware failure), does not compromise the data.
sensitive data keys are vulnerable to either privileged users or to memory sniffing techniques.
perform all encryption and decryption in SGX
Enclaves are allowed to access the general memory, and so data buffers (both encrypted and cleartext) can reside outside of the enclaves memory.
call ECALL, gets pointers to two buffers in the general (non-encrypted) memory.
via one of the prevalent standards such asa HTTPS, SSL, TLS.
ECALL, in, user_check in: copy the data to enclave. user_check: without copying it into the enclave's memory.
trusted: sgxsdk, sgxssl untrusted: openssl
result: openssl > sgxssl > sgxsdk
Multiple processes Multiple threads with a single enclave Multiple threads with separate enclaves
choosing buffer sizes, library configuration
only a saml part of the application needs to reside in an enclave. data transformations, local test on data, and cryptographic functions on data blocks.
require frequent small random access operations require a very large amount of data to be in encrypted memory simultaneously
MEE is only invoked on a special designated area of the memory called the Enclave Page Cache (EPC). (128MB: 96MB after reducing space used for managing the enclaves).