An Efficient Oblivious Database for the Public Cloud

Hardware enclaves such as Intel SGX are a promising technology to increase the security of databases outsourced to the cloud. These enclaves provide an execution environment isolated from the hypervisor/OS, and encryption of data in memory. However, for applications that use large amounts of memory---including most realistic databases---enclaves do not protect against access pattern leaks, where an attacker observes which locations in memory are accessed. The naive way to address this issue, using Oblivious RAM (ORAM) primitives, adds prohibitive overhead. In this paper, we propose ObliDB, a database that co-designs both its data structures (e.g., oblivious B+ trees) and physical operators to accelerate oblivious relational queries, giving up to 329 speedup over naive ORAM. On analytics workloads, ObliDB ranges from competitive to 19 faster than previous oblivious systems designed only for analytics, such as Opaque, and comes within 2.6 of Spark SQL. Moreover, ObliDB also supports point queries, insertions, and deletions with latencies of 3--10ms, which is 7--22 faster than previously published oblivious data structures, and makes ObliDB suitable for transactional workloads too. To our knowledge, ObliDB is the first general-purpose oblivious database to approach practical performance.
View on arXiv