ObliDB: Oblivious Query Processing for Secure Databases Saba - - PowerPoint PPT Presentation

oblidb oblivious query processing for secure databases
SMART_READER_LITE
LIVE PREVIEW

ObliDB: Oblivious Query Processing for Secure Databases Saba - - PowerPoint PPT Presentation

ObliDB: Oblivious Query Processing for Secure Databases Saba Eskandarian Matei Zaharia Stanford University Stanford University Private Data in the Cloud Compromised cloud can: Read data Read queries Alter data Hardware Enclaves A trusted


slide-1
SLIDE 1

ObliDB: Oblivious Query Processing for Secure Databases

Saba Eskandarian Matei Zaharia

Stanford University

Stanford University

slide-2
SLIDE 2

Private Data in the Cloud

Compromised cloud can: Read data Read queries Alter data

slide-3
SLIDE 3

Hardware Enclaves

A trusted component in untrusted hardware

  • Isolation through protected memory
  • Authenticity through attestation

Currently available through Azure and IBM cloud, among others

Untrusted System Enclave

  • Data
  • Secrets

Client

Attestation/Communication

Secure Channel

Malicious OS with physical access to device still can’t see inside enclave

slide-4
SLIDE 4

Enclaves in the Cloud

Enclave

Enclave memory is limited, but data is big!

slide-5
SLIDE 5

Enclaves in the Cloud

Enclave

slide-6
SLIDE 6

Enclaves in the Cloud

Enclave

Malicious attacker can observe access patterns to encrypted data!

slide-7
SLIDE 7

Enclaves in the Cloud

Enclave

Malicious attacker can observe access patterns to encrypted data!

slide-8
SLIDE 8

Enclaves in the Cloud

Enclave

Malicious attacker can observe access patterns to encrypted data!

slide-9
SLIDE 9

Enclaves in the Cloud

Enclave

Malicious attacker can observe access patterns to encrypted data!

“A persistent passive attacker can extract even more information by

  • bserving an application’s access

patterns … In our case study applications, this reveals users’ medical conditions, genomes, and contents of shopping carts”

slide-10
SLIDE 10

Naive SELECT is not oblivious!

* * * * * Input Table Output Table

slide-11
SLIDE 11

Naive SELECT is not oblivious!

* * * * * Input Table Output Table

slide-12
SLIDE 12

Naive SELECT is not oblivious!

* * * * * Input Table Output Table *

slide-13
SLIDE 13

Naive SELECT is not oblivious!

* * * * * Input Table Output Table *

slide-14
SLIDE 14

Naive SELECT is not oblivious!

* * * * * Input Table Output Table *

slide-15
SLIDE 15

Naive SELECT is not oblivious!

* * * * * Input Table Output Table * *

slide-16
SLIDE 16

Naive SELECT is not oblivious!

* * * * * Input Table Output Table * * * * *

slide-17
SLIDE 17

Naive SELECT is not oblivious!

* * * * * Input Table Output Table * * * * *

Watching when we write to the output table reveals exactly which rows of the input table we select!

slide-18
SLIDE 18

Toward Obliviousness

Prior work solves pieces of the obliviousness problem very well

slide-19
SLIDE 19

Toward Obliviousness

Prior work solves pieces of the obliviousness problem very well Opaque provides obliviousness for analytic queries that scan entire tables, but no support for indexes

slide-20
SLIDE 20

Toward Obliviousness

Prior work solves pieces of the obliviousness problem very well Opaque provides obliviousness for analytic queries that scan entire tables, but no support for indexes Oblix provides an oblivious index, but using an oblivious index to process a query obliviously is still non-trivial

slide-21
SLIDE 21

Toward Obliviousness

Prior work solves pieces of the obliviousness problem very well Opaque provides obliviousness for analytic queries that scan entire tables, but no support for indexes Oblix provides an oblivious index, but using an oblivious index to process a query obliviously is still non-trivial This work: ObliDB, first system to provide obliviousness for general database read workloads over multiple access methods

slide-22
SLIDE 22
  • Tables stored encrypted in unprotected memory, enclave only holds metadata
  • Two oblivious storage methods: flat tables and oblivious indexes
  • Supports most SQL operations
  • Various algorithms for each operation - can pick best option at runtime

ObliDB Overview

Enclave

Table 1 Indexed Table 2 Flat Table 3 Both

Untrusted RAM or Disk

Metadata Oblivious Operators Optimizer Integrity Checks Protected Memory

Server Client ... Secure Channel

slide-23
SLIDE 23

Security Guarantees

ObliDB protects data and query parameters against an attacker with full control of the OS and VMM

  • Detects any malicious attempt to tamper with data
  • Leaks only query selectivity, table sizes (including intermediate tables), and

query plan

  • Optional padding mode available to hide table sizes and query selectivity
  • Assumption: limited oblivious memory pool
slide-24
SLIDE 24

Oblivious Operators

  • Selection

○ Small ○ Large ○ Continuous ○ Hash

  • Grouping and Aggregation
  • Joins

○ Oblivious hash join ○ Oblivious sort-merge join (from Opaque) ○ Zero oblivious memory sort-merge join

slide-25
SLIDE 25

Oblivious Operators

  • Selection

○ Small ○ Large ○ Continuous ○ Hash

  • Grouping and Aggregation
  • Joins

○ Oblivious hash join ○ Oblivious sort-merge join (from Opaque) ○ Zero oblivious memory sort-merge join

Oblivious optimizer chooses best algorithm for each query at runtime

slide-26
SLIDE 26

Oblivious Operators

  • Selection

○ Small ○ Large ○ Continuous ○ Hash

  • Grouping and Aggregation
  • Joins

○ Oblivious hash join ○ Oblivious sort-merge join (from Opaque) ○ Zero oblivious memory sort-merge join

Oblivious optimizer chooses best algorithm for each query at runtime

slide-27
SLIDE 27

Oblivious SELECT

“Large” SELECT Algorithm: use when almost the whole table is selected

* * * * * * * * Input Table Output Table * * * * * * * * Copy Extra Extra

slide-28
SLIDE 28

Oblivious SELECT

* * * * * * * * Input Table Output Table * X * * * * * X * * Copy Delete Dummy write

“Large” SELECT Algorithm: use when almost the whole table is selected

slide-29
SLIDE 29

Oblivious SELECT

“Continuous” SELECT algorithm: use when a continuous range of rows is selected

* * * * * Input Table Output Table * * * Dummy write Real write

slide-30
SLIDE 30

Oblivious SELECT

“Continuous” SELECT algorithm: use when a continuous range of rows is selected

* * * * * Input Table Output Table * * * * * Dummy write Real write

slide-31
SLIDE 31

ObliDB

Performance highlights:

  • 1.1-19x faster than Opaque (on Big Data Benchmark queries)
  • Within 2.6x of Spark SQL (on Big Data Benchmark queries)

See paper for system details, more oblivious operators, and full evaluation Paper: http://www.vldb.org/pvldb/vol13/p169-eskandarian.pdf Source Code: https://github.com/SabaEskandarian/ObliDB Questions/Contact: saba@cs.stanford.edu