This article is more than 1 year old
Profs prep promising privacy-protecting proxy program... Yes, it is possible to build client-server code that safeguards personal info
Software framework teases shortcut to GDPR compliance
Computer science boffins from Harvard and MIT have developed a software framework for building web services that respect privacy, provided app developers don't mind a minor performance hit.
In a paper scheduled to be presented on Thursday at the USENIX Networked Systems Design and Implementation conference, co-authors Frank Wang (MIT), Ronny Ko and James Mickens (Harvard) describe a system called Riverbed – not to be confused with an identically named IT company – that consists of a proxy service to oversee the handling of data locally and on remote servers.
"To web developers, Riverbed provides a practical IFC [information flow control] system which allows developers to easily 'bolt on' stronger security policies for complex applications written in standard managed languages," they explain in the paper.
"To end users, Riverbed provides a straightforward mechanism to verify that server-side code is running within a privacy-preserving environment."
Riverbed involves a proxy on the client device that acts as an intermediary between the local app and its remote server. When a user generates an HTTP request, it verifies that the remote server is running the Riverbed IFC runtime and attaches user-defined or user-selected data policy rules like "do not save my data to persistent storage" or "my data may only be sent over the network to x.com."
In the cloud, Riverbed's reverse proxy modifies the runtime of managed languages like Python, .NET, or the JVM to "taint" incoming HTTP data so that it can be tracked and controlled.
"If the application tries to externalize data via the disk or the network, the externalization is only allowed if it is permitted by user policies," the paper explains. "The Riverbed runtime terminates an application process which attempts a disallowed externalization."
The reverse-proxy defines a "universe" – an isolated instance of a web service – for specific data policies. Users runnings apps that share the same policies can share the same space and data if allowed.
In an email to The Register, Wang, a doctoral graduate of MIT's Department of Electrical Engineering and Computer Science and the Computer Science and Artificial Intelligence Laboratory (CSAIL), said app makers would be the ones to install Riverbed and might be motivated to do so by Europe's General Data Protection Regulation (GDPR).
Unearthed emails could be smoking gun in epic GDPR battleREAD MORE
"With the backlash against Facebook and its loose privacy-enforcing abilities, app developers can use Riverbed as a differentiator or feature to say they have stronger privacy," said Wang. "Riverbed allows for strong definition and enforcement mechanisms of policies like GDPR at the systems level."
The researchers describe the performance overhead as modest, with worst-case slowdowns of 10 per cent. To benchmark this, they ported three Python apps to Riverbed: MiniTwit, a Flask-based Twitter clone; Ionic Backup, a Dropbox clone; and Thrifty P2P, which implements a peer-to-peer distributed hash table.
The Riverbed security model relies on server-side TPM hardware so the cloud runtime can assure the client it's legit (remote attestation). But it assumes that data center operators can be trusted not to manipulate server RAM to peer at protected data; it also assumes that the client can be trusted, with the exception of web page data – that's what gets tagged for policy enforcement.
The researchers rejected Intel's SGX hardware enclave due to its memory size limits and the burden of repeated context switches for applications with a lot of I/O operations.
Wang said there are currently no plans to release the code. "It’s just a research prototype, so very early proof of concept," he said. "If we were to release it, we would probably change the name." ®