350 likes | 482 Views
SVA. Cryptographic secure computation. e.g., Enforce properties on a malicious OS. Binary translation and emulation. Data-centric security. e.g., Enable complex distributed systems, with resilience to hostile OS’s. Formal methods. Secure browser appliance. transformation.
E N D
SVA Cryptographic secure computation e.g., Enforce properties on a malicious OS Binary translation andemulation Data-centric security e.g., Enable complex distributed systems, with resilience to hostile OS’s Formal methods Secure browser appliance transformation Hardware support for isolation Secure servers e.g., Prevent dataexfiltration Dealing with malicious hardware web-based architectures HARDWARE SYstem architectures
Platform for Private Data MohitTiwari, UC Berkeley with KrsteAsanović, Dawn Song, PetrosManiatis, Prashanth Mohan, ChristoforosPapamanthou, Elaine Shi, Emil Stefanov, Nguyen Tran
The Age of Big Data Plentiful, and Private
Privacybreaches Vulnerable software (Un) Intentional Misuse Insider Attacks
Ideal: Privacy Preserving Cloud Developer End User privacy policy privacy evidence App API Cloud provider
Challenge #1 Untrusted applications own users’ data. Developer End User API Cloud provider
Challenge #2 Novice Users
PPD: Platform for Private Data Developer End User privacy policy privacy evidence App API • App private data vault sealed container PPD Cloud provider
Outline of this talk • PPD: Platform for Private Data • PPD Architecture • PPD Prototype and Evaluation
PPD Insights • Co-design UI and System software • User decisions are intuitive (“share doc with Bob”) • System manages untrusted apps and private data • Developer API • Per-user functionality v. Cross-user Optimizations • Privacy: Data owners’ access control policy • Apps ‘see’ data only in sealed containers
PPD Applications user initiated sharing
PPD Architecture: Users End-User Trusted User Interface Protected Channel ACLs Hardware with TPM PPD Cloud Provider Untrusted Storage
PPD Architecture: Applications Developer End-User Trusted User Interface App Application Container • Cleartext • data PPD Cloud Provider Hardware with TPM PPD Controller and ACL Manager • Untrusted Application Untrusted Storage
PPD Architecture: Storage Developers End-Users App App Trusted User Interface PPD Storage Proxy • Dedup, Caching, Replication,… Storage Container Integrity check PPD Cloud Provider Hardware with TPM PPD Controller and ACL Manager • Untrusted Application Untrusted Storage
PPD Timeline #1: User attests Client User Client Cloud Server Alice TPM.send(hw id) Trusted PPD Server Attest(code) Response (result) Separation kernel onclient checked sitekey sitekey Client attested
PPD Timeline #2: User launches App User Client Cloud Server Launch trusted UI Alice Authentication App Container PPD UI, Control Launch application Trusted PPD Kernel PPD UI, Control App Container App communication Trusted Kernel
User and Developer Interface • User creates data • personal by default and decides who to share it with • PPD Systemprovides trusted UI to user • User conveys change of ACLs to PPD • Developers can request • Application Containers: per-user, per-data-capsule • Storage Containers: per-application, per-system
Outline of this talk • PPD: Platform for Private Data • PPD Architecture • PPD Prototype and Evaluation
PPD Building Blocks • Data capsules • Capsule inferred based on user actions • E.g. “tax documents”, “thanksgiving album” • System assigns ACL as private by default • Protected Containers • Linux containers (LXC), Copy-on-write FS (UnionFS). • Stops all explicit communication, except channels. • Hardware side channels, timing leaks out of scope
PPD Building Blocks • Protected Channels • iptables firewall rules for LXC containers • Encryption, integrity-checking (TLS/SSL for network) • Trusted Channel from User to PPDto change ACLs • Storage Proxies • Key-value proxy: put, get, and setACL interface • File-system proxy: fuse-based layer on key-val proxy
PPD Building Blocks • PPD Controller • manages containers and channels • dynamically creates containers based on user or application requests • assigns iptable rules for all containers • Remote Attestation • Intel TXT, TPM v1.2 • attest correct PPD code on untrusted machines
PPD Applications • Friendshare: online storage with de-duplication (like Dropbox) • Git: repository version control server • Etherpad: online, collaborative editing (like Google Docs)
PPD Prototype End Users ACL changes TLS Proxy TLS Proxy ACL Store Controller ApplicationLayer LXCContainers FriendShare EtherPad DeDup StorageLayer K/V Proxy FS Proxy TPMChip (Remote Attestation) Storage IPTables Linux Kernel Secure Block Device
Writing & Porting Apps for PPD • Scripts to install and configure apps in containers • Application v. Storage containers • Friendshare • Application: Scan directories, chunk files, change ACL • Storage: De-duplication • Git, Etherpad • Application: entire functionality
PPD Application Performance • Minimal effect on Friendsharethroughput Big Requests: 10KB images Small Requests: 10 filenames
PPD Application Performance • Minimal effect onFriendsharelatency
Current and Future Work • Applications • medical applications, business data analytics • Client-side PPD on Android • light-weight containers and channels on Nexus S • Application initiated sharing • differential privacy
Related Approaches • PPD v. DIFC • PPD does not do fine-grained sharing • Constrained containers: simple, yet most benefits of fine-grained information flow tracking. • Developer API: reduce run-time exceptions • PPD v. Capabilities • Can be used to implement containers and channels • Re-write legacy applications • PPD v. Android Security • Static, Coarse-grained permissions • User does not own data
Summary • PPD: New Data-Centric Cloud Platform • user controlled sharing • rich, mostly legacy applications • PPD Architecture • untrusted application and storage components • PPD Prototype and Evaluation • small performance and porting cost
Conclusion Developer End User privacy policy privacy evidence App API PPD Cloud provider