Venue | Category |
---|---|
FAST'19 | SGX-DB |
SPEICHER: Securing LSM-based Key-Value Stores using Shielded Execution1. SummaryMotivation of this paperSPEICHERImplementation and Evaluation2. Strength (Contributions of the paper)3. Weakness (Limitations of the paper)4. Some Insights (Future work)
Motivation
Persistent KV stores have become a fundamental part of the cloud infrastructure.
SGX provides an appealing approach to build secure systems.
Challenge
Shielded execution are primarily designed for securing "stateless" in-memory computations and data.
how to extend the trust beyond the "secure, but stateless" enclave memory region to the "untrusted and persistent" storage medium, while ensuring that the security properties and preserved in the "stateful setting"
Goal: confidentiality, integrity, and freshness.
Threat model
In addition to the standard SGX threat model, it also considers the security attacks that can be launched using an untrusted storage medium.
The adversary can control the entire system software stack, including the OS or hypervisor, and is able to launch physical attacks
Design challenges
Limited EPC size: the paging incurs high performance overheads.
Untrusted storage medium: need to extend the trust to the untrusted storage medium.
Expensive I/O syscall: incur higher performance overhead. (TLB flushes, security check)
Trusted counter:
System architecture
Controller
Shielded I/O library
Trusted counter
MemTable
devise a mechanism to ensure the confidentiality, integrity, and freshness of the MemTable.
partition the existing MemTable in two parts: key path and value path.
SSTable
maintain the KV pairs persistently
encrypt each block, calculate a hash over each block
these hashes are then grouped together in a block of hashes and appended at the end of the SSTable file (append at the end of the SSTable file.)
all hashes are grouped together in a block of hashes an appended at the end of the SSTable file.
Operation
Put: first encrypts the value of the KV pair and generates a hash over the encrypted data.
Optimizations
timer performance: prevent every request from blocking for the trusted counter increment.
SPDK performance: add a cache within the enclave.
OpenSSL AES-128-GCM: en-/decryption, HMAC
Evaluation
Performance of the Direct I/O library
Impact of the EPC paging on MemTable
Throughput and latency measurements
Performance of the Trusted counter
I/O amplification
perform the I/O operations without existing the secure enclave.
overcome the limitation of the native SGX counters.
modified standard C library (SCONE libc)
relies on actively polling the device instead of interrupts
can verify the data integrity by checking the root node hash and each hash down to the leak storing the KV. slow lookup: the key has to be decrypted on each traversal.