CryptDB

Online applications are vulnerable to theft of sensitive information because adversaries can exploit software bugs to gain access to private data, and because curious or malicious administrators may capture and leak data. CryptDB is a system that provides practical and provable confidentiality in the face of these attacks for applications backed by SQL databases. It works by executing SQL queries over encrypted data using a collection of efficient SQL-aware encryption schemes. CryptDB can also chain encryption keys to user passwords, so that a data item can be decrypted only by using the password of one of the users with access to that data. As a result, a database administrator never gets access to decrypted data, and even if all servers are compromised, an adversary cannot decrypt the data of any user who is not logged in. An analysis of a trace of 126 million SQL queries from a production MySQL server shows that CryptDB can support operations over encrypted data for 99.5% of the 128,840 columns seen in the trace. Our evaluation shows that CryptDB has low overhead, reducing throughput by 14.5% for phpBB, a web forum application, and by 26% for queries from TPC-C, compared to unmodified MySQL. Chaining encryption keys to user passwords requires 11-13 unique schema annotations to secure more than 20 sensitive fields and 2-7 lines of source code changes for three multi-user web applications.



People Publications Software Impact Press

People

Publications

Software

Our source code is available. You can access it using git, as follows:
git clone -b public git://g.csail.mit.edu/cryptdb

To install, read doc/README.

We will announce any significant changes to CryptDB on the cryptdb-announce mailing list.

If you are interested in using CryptDB's source code in any way, we encourage you to subscribe to the cryptdb-users mailing list, below, to receive announcements about CryptDB, report problems, or to ask questions about CryptDB.

Mailing lists

Please subscribe to the cryptdb-announce mailing list to receive announcements about updates to CryptDB.

To subscribe, fill out the following form. You will be sent email requesting confirmation, to prevent others from gratuitously subscribing you.

Email address:

Please use the cryptdb-users mailing list to ask questions about CryptDB, get help, and offer any suggestions. To see the collection of prior postings to the list, visit the archive.

Email address:

To post a message to the mailing list, send email to cryptdb-users@csail.mit.edu.

Impact

A few companies have already started using CryptDB:


Encrypted BigQuery
Google recently deployed a system for performing SQL-like queries over an encrypted database following (and giving credit to) the CryptDB design. Their service uses the encryption building blocks from CryptDB (RND, DET, HOM, and SEARCH), rewrites queries and annotates the schema as in CryptDB. Here is Google's source code release of the Encrypted BigQuery client; Google will make an official announcement soon.


Lincoln Laboratory
Lincoln Labs added the CryptDB design on top of their D4M Accumulo no-SQL engine (using the RND, DET, OPE and HOM building blocks).
sql.mit.edu

sql.mit.edu is a SQL server at MIT hosting many MIT-ran applications. Volunteering users of Wordpress switched to running Wordpress through CryptDB, using our source code.

Other companies using CryptDB's design
SAP AG and a new startup are applying CryptDB's design to their setting.

Press