Paper 2018/251

VeritasDB: High Throughput Key-Value Store with Integrity

Rohit Sinha and Mihai Christodorescu

Abstract

While businesses shift their databases to the cloud, they continue to depend on them to operate correctly. Alarmingly, cloud services constantly face threats from exploits in the privileged computing layers (e.g. OS, Hypervisor) and attacks from rogue datacenter administrators, which tamper with the database's storage and cause it to produce incorrect results. Although integrity verification of outsourced storage and file systems is a well-studied problem, prior techniques impose prohibitive overheads (up to 30x in throughput) and place additional responsibility on clients. We present VeritasDB, a key-value store that guarantees data integrity to the client in the presence of exploits or implementation bugs in the database server. VeritasDB is implemented as a network proxy that mediates communication between the unmodified client(s) and the unmodified database server, which can be any off-the-shelf database engine (e.g., Redis, RocksDB, Apache Cassandra). The proxy transforms each client request before forwarding it to the server and checks the correctness of the server's response before forwarding it to the client. To ensure the proxy is trusted, we use the protections of modern trusted hardware platforms, such as Intel SGX, to host the proxy's code and trusted state, thus completely eliminating trust on the cloud provider. To maintain high performance in VeritasDB while scaling to large databases, we design an authenticated Merkle B+-tree that leverages features of SGX (modest amount of protected RAM, direct access to large unprotected RAM, and CPU parallelism) to implement several novel optimizations based on caching, concurrency, and compression. On standard YCSB and Visa transaction workloads, we observe an average overhead of 2.8x in throughput and 2.5x in latency, compared to the (insecure) system with no integrity checks --- using CPU parallelism, we bring the throughput overhead down to 1.05x.

Note: Minor extensions and rewriting of text

Metadata
Available format(s)
PDF
Category
Applications
Publication info
Preprint. MINOR revision.
Contact author(s)
rsinha @ berkeley edu
History
2018-09-04: last of 2 revisions
2018-03-07: received
See all versions
Short URL
https://ia.cr/2018/251
License
Creative Commons Attribution
CC BY

BibTeX

@misc{cryptoeprint:2018/251,
      author = {Rohit Sinha and Mihai Christodorescu},
      title = {{VeritasDB}: High Throughput Key-Value Store with Integrity},
      howpublished = {Cryptology {ePrint} Archive, Paper 2018/251},
      year = {2018},
      url = {https://eprint.iacr.org/2018/251}
}
Note: In order to protect the privacy of readers, eprint.iacr.org does not use cookies or embedded third party content.