Privacy as a Service
Raymond Cheng
Privacy as a Service Raymond Cheng Build practical cloud services - - PowerPoint PPT Presentation
Privacy as a Service Raymond Cheng Build practical cloud services that protect user privacy from powerful threats 2 3 Powerful Threats to User Privacy Organized Crime Nation-State Actors 4 Powerful Threats to User Privacy Gather
Raymond Cheng
2
3
4
Nation-State Actors Organized Crime
5
Nation-State Actors Organized Crime
6
7
8
9
We have a moral responsibility to build technology to protect human rights and freedoms
10
Clients Network Cloud
11
Clients Malicious Network Censorship, surveillance, misdirection Cloud
12
Malicious Clients Hackers Cloud Malicious Network Censorship, surveillance, misdirection
13
Malicious Cloud Data requests, surveillance, control Malicious Clients Hackers Malicious Network Censorship, surveillance, misdirection
14
Malicious Cloud Malicious Clients Malicious Network
What security model can protect users from powerful threats?
15
Malicious Cloud Malicious Clients Malicious Network
TLS Encrypted at rest
16
Malicious Clients
from external intrusion Malicious Network
17
Malicious Cloud
Talek - private publish-subscribe Malicious Clients
from external intrusion Malicious Network
18
Malicious Cloud
Talek - private publish-subscribe
(Cheng, Scott, Parno, Zhang, Krishnamurthy, Anderson, 2016)
Malicious Clients
from external intrusion
(Cheng, Scott, Ellenbogen, Howell, Roesner, Krishnamurthy, Anderson, 2016)
Malicious Network
Deployed to thousands over the world
(Cheng, Scott, Dixon, Krishnamurthy, Anderson, 2016)
Students: Irene Zhang Paul Ellenbogen Elizabeth Wei Bonnie Pan
19
Tom Anderson Arvind Krishnamurthy Franzi Roesner Will Scott Jon Howell Lucas Dixon Bryan Parno Nick Martindell Tariq Yusuf Caylan Lee Nicholas Shahan
20
Malicious Cloud
Talek - private publish-subscribe Malicious Clients
from external intrusion Malicious Network
21
Censored Country
22
Proxy Censored Country
23
Proxy Problem with Centralized Proxies
proxy needs to trust users
Censored Country
24
25
Censored Country
26
Censored Country
27
28
29
Malicious Cloud
Talek - private publish-subscribe Malicious Clients
from external intrusion Malicious Network
30
Trust the cloud provider Want to prevent external attacks
31
Trusted Computing Base Client User A User B User C User D User E User F User G ... Hacker
32
Global Application Logic + Access Control + Authentication Sockets Global Application Logic + Access Control + Authentication Sockets Global Application Logic + Access Control + Authentication Sockets Trusted Computing Base Client User A User B User C User D User E User F User G
Load Balancer Hacker
33
Global Database Memcache Global Application Logic + Access Control + Authentication Sockets Global Application Logic + Access Control + Authentication Sockets Global Application Logic + Access Control + Authentication Sockets Trusted Computing Base Client User A User B User C User D User E User F User G
Load Balancer Hacker
34
Global Database Memcache Global Application Logic + Access Control + Authentication Sockets Global Application Logic + Access Control + Authentication Sockets Global Application Logic + Access Control + Authentication Sockets Trusted Computing Base Client User A User B User C User D User E User F User G
Load Balancer Hacker
35
36
Radiatus API Radiatus API Radiatus API Trusted Computing Base Client User A User B User C User D User E User F User G
User Router + Auth Sandboxed application logic B C D E F G H I A Hacker
37
Database Memcache Radiatus API Radiatus API Radiatus API Trusted Computing Base Client User A User B User C User D User E User F User G
User Router + Auth Sandboxed application logic Guard Guard B C D E F G H I A Hacker
38
Database Memcache Radiatus API Radiatus API Radiatus API Trusted Computing Base Client User A User B User C User D User E User F User G
User Router + Auth Guard Guard B C D E F G H I A Sandboxed application logic Hacker
Benefits:
Trade-offs:
39
https://github.com/freedomjs/radiatus
40
Malicious Cloud
Talek - private publish-subscribe Malicious Clients
from external intrusion Malicious Network
Cloud Global Application Logic Global Storage
41
Client User Input Render View
Cloud Global Application Logic Global Storage
42
Client User Input Render View
Cloud
43
Client Per-user application logic Per-user storage User Input Render View
Cloud Send data between users Backup/sync storage Analytics
44
Client Per-user application logic Per-user storage User Input Render View
Cloud Send data between users Backup/sync storage Analytics
45
Client Per-user application logic Per-user storage User Input Render View
Service Application Library
Sees random noise Sends requests Receives responses
Cloud Send data between users Backup/sync storage Analytics
46
Client Per-user application logic Per-user storage User Input Render View
Service Application Library
Sees random noise Sends requests Receives responses
47
48
Chat 1:message 2:message 3:message Newsfeed 1: image 2: tweet 3: video Calendar 1: new event 2: delete event 3: update Game 1: playerA move 2: playerB move 3: playerA move IoT 1: config lights 2: security video 3: set temp
49
Chat 1:message 2:message 3:message Newsfeed 1: image 2: tweet 3: video Calendar 1: new event 2: delete event 3: update Game 1: playerA move 2: playerB move 3: playerA move IoT 1: config lights 2: security video 3: set temp
50
Journalist Source Collaborator Activist Activists
51
Thread 1:message 2:message 3:message Country X Country Y Alice Source Bob Journalist
52
Country X Country Y Alice Source Bob Journalist Thread 1:message 2:message 3:message
53
Thread 1:message 2:message 3:message Country X Country Y Alice Source Bob Journalist Relay
54
Thread 1:message 2:message 3:message Country X Country Y Alice Source Bob Journalist Relay
55
Private publish-subscribe (pub/sub) system for sharing data through untrusted clouds
and private notifications
performance than closest related work
56
Any two access sequences from a client look indistinguishable to the adversary
57
Randomness Randomness Randomness Randomness Randomness Randomness Randomness Randomness Randomness Randomness Randomness Randomness Any two access sequences from a client look indistinguishable to the adversary
58
Security Goal: Indistinguishability Any two access sequences from a client look indistinguishable to the adversary Systems Goals:
59
Country X Country Y Country Z Country W
60
Country X Country Y Country Z Country W
At least 1 non-colluding
61
Mutually distrusting users Anytrust: At least 1 non-colluding Trusted groups
62
Client Read bucket 2 q’=[0,0,1,0,0]
B4 B3 B2 B1 B0 B4 B3 B2 B1 B0 B4 B3 B2 B1 B0
(Chor,1998)
63
Client Read bucket 2 q’=[0,0,1,0,0]
B4 B3 B2 B1 B0 B4 B3 B2 B1 B0 B4 B3 B2 B1 B0
q0=[1,1,1,0,1] q1=[1,0,1,0,0] Random Random
64
Client Read bucket 2 q’=[0,0,1,0,0]
B4 B3 B2 B1 B0 B4 B3 B2 B1 B0 B4 B3 B2 B1 B0
q0=[1,1,1,0,1] q1=[1,0,1,0,0] q2=[0,1,1,0,1] =q’⊕q0⊕q1
65
Client
B4 B3 B2 B1 B0 B4 B3 B2 B1 B0 B4 B3 B2 B1 B0
q0=[1,1,1,0,1] q1=[1,0,1,0,0] q2=[0,1,1,0,1] =q’⊕q0⊕q1 B0⊕B1⊕B2⊕B4 B0⊕B2 B1⊕B2⊕B4
66
Client B0⊕B1⊕B2⊕B4⊕B0⊕B2⊕B1⊕B2⊕B4 = B2
B4 B3 B2 B1 B0 B4 B3 B2 B1 B0 B4 B3 B2 B1 B0
q0=[1,1,1,0,1] q1=[1,0,1,0,0] q2=[0,1,1,0,1] =q’⊕q0⊕q1 B0⊕B1⊕B2⊕B4 B0⊕B2 B1⊕B2⊕B4
67
68
PIR PIR PIR PIR PIR PIR PIR PIR PIR PIR PIR PIR PIR PIR PIR PIR PIR PIR PIR PIR PIR
69
publish() write queue subscribe() read queue Client Write Read libtalek Application
70
publish() write queue subscribe() read queue Client Write Read libtalek Application
71
n
72
publish() write queue subscribe() read queue Client Write Read libtalek Application
n n
n
73
publish() write queue subscribe() read queue Client Write Read libtalek Application
n n
Bound the cost of a PIR by configuring the size of the database
74
Write(bucket, encryptedMsg) 1. Remove oldest message 2. Insert message at specified bucket
75
Write(bucket, encryptedMsg) 1. Remove oldest message 2. Insert message at specified bucket
Write encrypted messages to random buckets
76
3 4 2 1
Topic Handle: { topicId: uint128, encKey: byte[] seed: uint128 }
PRF(seed, seqNo) mod n
Write(bucket, encryptedMsg) Log Trail:
77
3 4 2 1
Topic Handle: { topicId: uint128, encKey: byte[] seed: uint128 }
PRF(seed, seqNo) mod n
Write(bucket, encryptedMsg) Log Trail:
Publishers and subscribers use secret topic handles to coordinate
78
{ topicId: uint128, encKey: byte[], seed: uint128 }
Write bucket payload Dummy PRF(idleSeed, i | 1) mod b Enc(idleKey, PRF(idle, i | 2)) Legitimate PRF(seed, seqNo) mod b Enc(encKey, message)
79
3 4 2 1
Write(bucket, encryptedMsg)
80
Write(bucket1,bucket2,encryptedMsg)
81
Write(bucket1,bucket2,encryptedMsg) Eviction
82
4 3 4 1 2 2 1 3
Topic Handle: { topicId: uint128, encKey: byte[] seed1: uint128 seed2: uint128 }
PRF(seed1, seqNo) mod n
Write(bucket1,bucket2,encryptedMsg) Log Trail:
PRF(seed2, seqNo) mod n
83
3 4 2 1 5 4 3 2 5 1
{ topicId: uint128, encKey: byte[] seed1: uint128, seed2: uint128 }
PRF(seed1, seqNo) mod b PRF(seed2, seqNo) mod b
84
3 4 2 1 5 4 3 2 5 1
{ topicId: uint128, encKey: byte[] seed1: uint128, seed2: uint128 }
PRF(seed1, seqNo) mod b PRF(seed2, seqNo) mod b
Blocked cuckoo hashing handles writes conflicts with high density
85
publish() write queue subscribe() read queue Client Writes globally
Read requests encrypted libtalek Application Leader Follower Follower
86
publish() write queue subscribe() read queue Client Writes globally
Read requests encrypted libtalek Application Leader Follower Follower
Timestamp ordering achieves sequential consistency
87
{ topicId: uint128, seed1: uint128, seed2: uint128, encKey: byte[] }
Write bucket1 bucket2 payload Dummy PRF(idle, i | 1) mod b PRF(idle, i | 2) mod b Enc(idle, PRF(idle, i | 3)) Legitimate PRF(seed1, seqNo) mod b PRF(seed2, seqNo) mod b Enc(encKey, message)
88
{ topicId: uint128, seed1: uint128, seed2: uint128, encKey: byte[] }
Read server0 server1 server2 Dummy Enc(serverKey0, pirVector) Enc(serverKey1, pirVector) Enc(serverKey2, pirVector) Legitimate Enc(serverKey0, pirVector) Enc(serverKey1, pirVector) Enc(serverKey2, pirVector)
89
publish() write queue subscribe() read queue Client libtalek Application Leader Follower Follower Topic 1 Topic 2 Topic 3
90
publish() write queue subscribe() read queue Client libtalek Application Leader Follower Follower Topic 1 Topic 2 Topic 3
GetUpdates() returns
Global Interest Vector: Privately which messages readable on the server
91
publish() write queue subscribe() read queue Client libtalek Application Leader Follower Follower Topic 1 Topic 2 Topic 3 Write Read GetUpdates
92
publish() write queue subscribe() read queue Write every 5 sec Read every 5 sec libtalek Messaging AWS EC2 Thousands of Clients
93
94
Pung (OSDI 2016):
PIR
95
Riposte (Oakland 2015):
model
writes by “PIR in reverse”
96
97
https://github.com/privacylab/talek
Scale out architectures
98
Scale out architectures
99
Oblivious Cloud Services Storage Pub/Sub Machine Learning Analytics Search
Scale out architectures
100
Oblivious Cloud Services Storage Pub/Sub Machine Learning Analytics Search
Application Integration
101
Oblivious Cloud Services Storage Pub/Sub Machine Learning Analytics Search
Application Integration
102
103
[1] Cheng, R., Scott, W., Parno, B., Zhang, I., Krishnamurthy, A., Anderson, T. Talek: a Private Publish-Subscribe Protocol. [2] Cheng, R., Scott, W., Ellenbogen, P., Howell, J., Roesner, F., Krishnamurthy, A., and Anderson, T. Radiatus: a Shared-Nothing Server-Side Web Architecture. ACM Symposium on Cloud Computing (SOCC). 2016 [3] Zhang, I., Lebeck, N., Fonseca, P., Holt, B., Cheng, R., Norberg, A., Krishnamurthy, A., Levy, H. Diamond: Automating Data Management and Storage for Wide-area, Reactive Applications. 11th USENIX Symposium on Operating Systems Design and Implementation (OSDI). 2016. [4] Bhoraskar, R., Langenegger, D., He, P., Cheng, R., Scott, W., and Ernst, M. User scripting on Android using BladeDroid. The 5th ACM SIGOPS Asia-Pacific Workshop on Systems (APSYS). 2014. [5] Cheng, R., Scott, W., Krishnamurthy, A., and Anderson, T. FreeDOM: a New Baseline for the Web. The 11th ACM Workshop on Hot Topics in Networks (HotNets XI). 2012. [6] Cheng, R., Hong, Ji., Kyrola, A., Miao, Y., Weng, X., Wu, M., Yang, F., Zhou, L., Zhao, F., and Chen, E. Kineograph: Taking the Pulse
2012. [7] Scott, W., Cheng, R., Li, J., Krishnamurthy, A., and Anderson, T. Blocking Resistant Network Services using Unblock. UW Technical Report UW-CSE-14- 06-01. 2014. [8] Cheng, R., Schueppert, M., Becker, H., and Thakur, M. SolocoRank: Social Signals for Local Search Quality. UW Technical Report UW-CSE-13-11-05. 2013. [9] Scott, W., Cheng, R., Krishnamurthy, A., and Anderson, T. freedom.js: an Architecture for Serverless Web Applications UW Technical Report. UW-CSE-13-05- 03. 2013. [10] B. Chor, E. Kushilevitz, O. Goldreich, and M. Sudan. Private Information Retrieval. Journal of the ACM (JACM), 45(6):965–981, 1998
104
System Security Goal Threat Model Technique Application Talek indistinguishability ≥1 IT-PIR pub/sub Pynchon Gate k-anonymity ≥1 mixnet/IT-PIR email Riffle k-anonymity ≥1 mixnet/IT-PIR file-sharing Riposte k-anonymity ≥1 IT-PIR broadcast Dissent k-anonymity ≥1 DC-nets broadcast Vuvuzela differential privacy ≥1 mixnet 1-1 messaging DP5 indistinguishability ≥1 IT-PIR chat presence Popcorn indistinguishability ≥1 C-PIR/IT-PIR video streaming Pung indistinguishability C-PIR key-value store ORAM indistinguishability ORAM storage
Weaker Security Goal Application Specific Prohibitively Expensive