An Oblivious General-Purpose SQL Database for the Cloud

We present ObliDB, a secure SQL database for the public cloud that supports both transactional and analytics workloads and protects against access pattern leakage. With databases being a critical component in many applications, there is significant interest in outsourcing them securely. Hardware enclaves offer a strong practical foundation towards this goal by providing encryption and secure execution, but they still suffer from access pattern leaks that can reveal a great deal of information. The naive way to address this issue--using generic Oblivious RAM (ORAM) primitives beneath a database--adds prohibitive overhead. Instead, ObliDB co-designs both its data structures (e.g., oblivious B+ trees) and query operators to accelerate SQL processing, giving up to 329x speedup over naive ORAM. On analytics workloads, ObliDB ranges from competitive to 19x faster than systems designed only for analytics, such as Opaque, and comes within 2.6x of Spark SQL. Moreover, ObliDB also supports point queries, insertions, and deletions with latencies of 1-10ms, making it usable for transactional workloads too. To our knowledge, ObliDB is the first oblivious database that supports both transactional and analytic workloads.
View on arXiv