CMSC 818J: Privacy enhancing technologies Lecture 2
Logistics Piazza? Short presentations sign-up
Users Devices/ Client-side software Network Application Cloud platform (provides computation and storage) [Recap] Privacy: End-to-End Solution
This Week Software architectures that offer data protection from the ground up For cloud services On client devices A more in-depth overview for the rest of the semester Today: the vision, the glue, and the challenges Rest of semester: components
[Recap] Cloud computing Cloud computing – storage and computation move into the cloud
[Recap] Paradigm Shift TodayFuture
Storage provider Computation provider Applications User Cloud Model 7
Trust Model Applications can be buggy, compromised, or malicious Cloud platform may be buggy, compromised or malicious including computation and storage provider Cloud operators can be nosey or malicious
How can we secure our data in the cloud?
Why is the problem hard? Solution 1: Encrypt data stored in cloud How does the cloud compute over your data? Fully homomorphic encryption? Data mining over multiple users’ data? Spam detection, advertising Economics Tension between privacy and utility
Usability, functionality, performance User Application provider Platform provider Easy app development, $$ Stake holders
Storage provider Computation provider Applications User Cloud Model 12
User Key Challenges How can we protect our data against compromised applications? How can we protect our data against a compromised computation provider? How can we protect our data against a compromised storage provider? 13
Roadmap Step 1: Assume cloud platform is trusted, how can we secure against untrusted applications? Application confinement Information flow control/access control Cloud platform is root of trust Step 2: How to secure against an untrusted cloud platform? Trusted computing and code attestation Secure software systems Secure storage
Roadmap Step 1: Assume cloud platform is trusted, how can we secure against untrusted applications? Application confinement Information flow control/access control Cloud platform is root of trust Step 2: How to secure against an untrusted cloud platform? Trusted computing and code attestation Secure software systems Secure storage
Untrusted Applications: The Threats Tax filing app Trusted computation/storage provider Untrusted 3 rd -party application User
Untrusted Applications: The Threats Tax filing app Trusted computation/storage provider Untrusted 3 rd -party application User
Application confinement Tax filing app Trusted computation/storage provider User
Application confinement Tax filing app Trusted computation/storage provider User
Medical advisory app Medical advisory app Trusted computation/storage provider User Share data with my doctor Access and information flow control
Google docs Google docs Trusted computation/storage provider User Share data with my friend
Access and information flow control Application Trusted computation/storage provider Finance User Photos Work Medical Readers: [Alice][Alice, Bob][Alice, Charles] [Alice, David]
Pros, cons, and challenges
Scalability, scalability, scalability! Usability Economics Applicability What about data mining applications? What about applications and services that call each other (e.g., google maps API) Pros, cons, and challenges
Two Types of Applications Bob’s financial documents Bob …. David Charlie Bob Alice Recommendations Traffic advice Type 2: Data intelligence 25 Type 1: Silo-based applications
Alice …… Bob Location Database I want information about Batman’s whereabouts Mean, std Classification Clustering Threats for statistical releases Data mining
Is releasing aggregate statistics safe? Amazon People who bought also bought
Platform for Private Data (PPD) Defense: differential privacy, data sanitization … Charlie Bob Alice Recommendations Traffic advice Sealed container
Roadmap Step 1: Assume cloud platform is trusted, how can we secure against untrusted applications? Application confinement Information flow control/access control Cloud platform is root of trust Step 2: How to secure against an untrusted cloud platform? Trusted computing and code attestation Secure software systems Secure storage
How can you trust a remote system? Trusted Platform Module (TPM)
Code attestation Verifier What code are you running? Here’s a digest of my code. Trusted Platform Module (TPM)
Bootstrapping Trust Through Trusted Hardware Trusted Platform Module (TPM) Cloud Server Monitor, enforce! Untrusted components Privacy policy 32 Privacy evidence
Securing storage Confidentiality Encryption Integrity checking Authenticated data structures Hiding access patterns Oblivious storage
Support for untrusted storage backend modules Integrity check File system, DB Key/value store
Sealed container Privacy evidence TPM Putting it All Together: Platform for Private Data 35 Privacy policy Monitor Enforce Usable API App developer User
Apps Privacy evidence Data sanitization … Secure data capsules Information flow control Isolation Audit engine
BStore BStore authors’ slides
BStore discussions: pros, cons, challenges?
Pros: Users can choose storage provider Centralizes access control Centralizes storage security Lowers bar of entry for small vendors? Cons, challenges: Does not support cross-user sharing Does not defend against untrusted apps Should users trust apps to delegate access rights? Incremental deployment? BStore discussions: pros, cons, challenges?