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

Our source code is available below for research purposes only. You can access it using git, as follows:

git clone -b public git://g.csail.mit.edu/cryptdb

You can find notes on how to build CryptDB in doc/BUILD, and several examples of how to run CryptDB in doc/README.

We are actively developing CryptDB. In particular, we are currently transitioning the code to perform more generic query parsing and rewriting, based on the native parser from the MySQL server. 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.