40
Obladi: Oblivious Serializable Transactions in the Cloud NATACHA CROOKS MATTHEW BURKE ETHAN CECCHETTI SITAR HAREL RACHIT AGARWAL LORENZO ALVISI 1

Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Obladi: Oblivious Serializable Transactions in the Cloud

NATACHA CROOKS

MAT THEW BURKE

ETHAN CECCHET TI

S ITAR HAREL

RACHIT AGARWAL

LORENZO ALVIS I

1

Page 2: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

This talk

Obladi

a cloud-based transactional key-value storethat supports ACID transactions

but hides from the cloud what, when, and how data is accessed

2

Page 3: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Why Obladi – Cloud Privacy Concerns

Applications are moving to the cloud

Applications store sensitive information

Cloud storage means sharing data with an untrusted party

Cloud services can be the target of hacking, subpoena

3

Page 4: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Protecting sensitive informationElectronic Health Record (EHR) systems

◦ store/manage patient data

◦ underpin large hospitalsMedical Record 1

Medical Record 2

Molly:

Desmond:

4

Page 5: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Protecting sensitive information

Use encryption to hide contents of the data

Still leaking information about whatdata is being accessed

Still leaking information about whendata is being accessed

15/03/18 3.15PM21/03/18 2.15PM

5

Medical Record 1

Medical Record 2

Molly:

Desmond:

Page 6: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Guaranteeing obliviousness

Hiding access patterns(obliviousness)

what data is being accessed

when data is being accessed

how data is being accessed

6

Page 7: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

How to maintain functionality?Large body of work on analytical queries

but no way to run ACID transactions obliviously

This talk:

How to obliviously and efficiently implement serializable ACID transactions on top of untrusted cloud storage

7

Page 8: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Security GuaranteesThe adversary should learn no information about

1. the data accessed by ongoing transactions

2. the type of operations in ongoing transactions

3. the size of ongoing transactions

4. the outcome of ongoing transactions

Begin

Read(x)

Read(y)

Commit

Begin

Write(a)

Write(b)

Abort

Write(c)

8

Page 9: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Threat Model

Trusted ProxyClients

Clients

Trusted communication

Untrusted Cloud Storage

Untrusted Communication

Doctors communicating over hospital LAN Cloud storage (Dynamo,S3, etc.) accessed over WAN

Obladi adopts the trusted proxy model

9

Page 10: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Failure Model

But that cloud storage is reliable

10

Unreliable Proxy

Clients

ClientsReliable Cloud

Storage

Obladi assumes clients and proxy can fail

Page 11: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Obladi’s security in a nutshell

Workload IndependenceObladi ensures that the request pattern sent to the untrusted

cloud is independent of ongoing transactions

11

Page 12: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

The paradox of transactions

Transactions makeimproving efficiency

easier

Transactions make guaranteeing obliviousness

harder

ACID must hold at commit time

only

Isolation and durabilityadd structure

to read/write operations

12

Page 13: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Oblivious RAM [Goldreich1996]

Obladi builds on Oblivious RAM (ORAM)

ORAM hides access patterns for read and write operations by making requests to untrusted storage

independent of workload

13

Page 14: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

R W RR

R W R

ORAM from 1000 feet

Read (x)

Write(y)

Generate physical read/write requests from logical operations

Send requests to (encrypted) dummy data to hide what is being requested

R

14

Page 15: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Challenges of Transactional ORAMORAM guarantees workload independence for read/write operations.

How can we preserve workload independence but also

1) Guarantee Isolation and Atomicity?

2) Guarantee Consistency and Durability?

3) Guarantee good performance?

No concurrency control

Write-back ordering for security vs for durability

Limited Concurrency

15

Page 16: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Delayed VisibilityObladi centers its design around the notion of

delayed visibility

On the one hand, ACID guarantees apply only when transactions commit

On the other, commit operations can be delayed

16

Page 17: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

The secret sauce: epochs

B

R (x)

C

B

W(a)

R(b)

C

W(b)

R(x)

Epoch 1

Epoch 2

B

Obladi uses delayed visibility to partition transaction into fixed-sized epochs

Delays commit notifications until the epoch ends

R(y)

B

R(a)

C

W(b)

17

Page 18: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

The secret sauce: epochs

ACID guarantees only hold for committed transactions

Enforce durability and consistency at epoch boundaries only

ConsistencyDurability

18

B

R (x)

C

B

W(a)

R(b)

C

W(b)

R(x)

Epoch 1

Epoch 2

B

R(y)

B

R(a)

C

W(b)

Page 19: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

The secret sauce: epochs

Within an epoch, Obladi executes transactions at the trusted proxy, buffering writes until

epoch ends

Proxy

Version Cache

a

bb

19

Epoch 1

B

R (x)

C

B

W(a)

R(b)

C

W(b)

Epoch 1

R(y)

B

R(a)

C

W(b)

Page 20: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Proxy

The secret sauce: epochs

1. Reduces number of requests sent to ORAMOnly write the last version of every key

2. Implement multi-versioned concurrency control algorithm on top of single-versioned

ORAMBetter support for read-only transactions

a

bb

Version Cache

20

Delayed visibility improves performanceB

R (x)

C

B

W(a)

R(b)

C

W(b)

Epoch 1

R(y)

B

R(a)

C

W(b)

Page 21: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

The secret sauce: epochs

Delayed visibility should not increase contention

Should allow transactions in the same epoch to see each other’s effects

Obladi chooses a concurrency control that optimistically exposes uncommitted writes to

ongoing transactions

21

B

R (x)

C

B

W(a)

R(b)

C

W(b)

Epoch 1

R(y)

B

R(a)

W(b)

Page 22: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

The secret sauce: epochs

The fixed structure of epochs helps guarantee workload independence.

ORAM observes the same sequence of reads followed by the buffered writes Writes

R (x)

Epoch 1

R(y) PAD PAD

R(b) R(a)

22

Page 23: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

How to guarantee good performance?

Data Handler

Oram Executor

Untrusted Cloud Storage

Send batches of requests to ORAM

But ORAM constructions are largely sequential

23

R (x) R(b) R(a)

PAD W(a) W(b)

Proxy

Page 24: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Parallelising ORAM

How can we parallelise ORAM?

For correctness: parallelization should be linearizableFor security: parallelization should be workload independent

24

Data Handler

Oram Executor

Untrusted Cloud StorageR (x) R(b) R(a)

PAD W(a) W(b)

Proxy

Page 25: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Parallelising ORAM

R(b)

Recall: breakdown logical operations into physical read/writes to cloud storage

25

R R W W W R

Page 26: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Guaranteeing linearizability

To ensure linearizabilityExecute operations that do not have data dependencies in parallel

Data-dependent operations must be executed sequentially

26

R(b) R R W W W R

Page 27: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Dependencies violate independence

Wait for data dependencies to be satisfied introduces timing channelsOnly exist between real objects, not dummies

Delaying reads for real objects causes delay, dummy objects don’t

27

R(b) R R W W W R

Page 28: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Introduces side-channel

Must wait for all potential data dependenciesCan exist between any pairs of reads and writes

Never secure to execute reads and writes in parallel

28

R(b) R R W W W R

Page 29: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Delayed visibility to the rescue

Delayed visibility allows ORAM to be consistent at epoch boundaries onlyWrites can be safely delayed to epoch end

29

R(b) R R W W W R

Page 30: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Delayed visibility to the rescue

Separate ORAM execution into a read phase and a write phase

Read Phase: reads all necessary blocksWrite Phase: writes all necessary blocks

30

R

R R W W

R W

WR R

R(b)

Page 31: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Delayed visibility to the rescue

Executing each phase in turn obscures data dependenciesStill allows high concurrency

31

R

R R W W

R W

WR R

R(b)

Page 32: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

How to guarantee durability?Must ensure recovery to a consistent state

No partially executed transactions are included

Traditionally achieved through redo/undo loggingFor consistency: pretend partial transactions never happened

For security: cannot “undo” what the adversary observed

May lead to access sequences that violate workload independence

32

Page 33: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

More details in the paper

Durability and recovery logic details

Additional optimisations for performance

Discussion of our chosen ORAM construction: RingORAM [Ren15]

Formal proof of security

33

Page 34: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Evaluation

c5.4xlarge AWS instances. 10 ms latency between proxy and storage34

TPC-C

(10 Warehouses)

SmallBank

(1 million records)

FreeHealth

(7000 patients, 10 hospitals)

ApplicationsObladi

(Our system)

NoPriv Baseline

(Shares concurrency logic with Obladi)

MySQL 5.7 InnoDB Baseline

(Server co-located with clients )

Baselines

Page 35: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Performance Results: The Good

Obladi is slow, but not too slow

Between 5x and 9x lower throughput for contention-

bottlenecked TPC-C and FreeHealth

12x lower throughput for resource-bottlenecked SmallBank

35

5x

12x

9x

Page 36: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Performance Results: The Bad

Batching significantly increases latency

Up to 70x on TPC-C

Better on other applications because of smaller write batches

36

70x

20x 17x

Page 37: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Performance Results: The Ugly

Performance is sensitive to good tuning of epoch size

If too low, transactions cannot finishIf too high, idle time

37

Page 38: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Performance Results: The Ugly

Performance is sensitive to good tuning of epoch size

If too low, transactions cannot finishIf too high, idle time

May reveal type of application!

38

Page 39: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Conclusion

Obladi, a cloud-based transactional key-value store that obliviously supports ACID transactions using

delayed visibility

Any questions?

40

Page 40: Obladi: Oblivious Serializable Transactions in the Cloud · Obladi’ssecurity in a nutshell Workload Independence. Obladi ensures that the request pattern sent to the untrusted cloud

Backup

41