17. CryptDB Architecture and Working principal
CryptDB is a relational DBMS that addresses the security concerns produced by untrusted Database administrators and Database server. CryptDB alleviates privacy breaches by two threat models. The first threat model is a curious database administrator (DBA) who tries to eavesdrop the sensitive data like credit card information, health data, social security numbers, financial statements etc. stored in the database. The second threat model is a malicious adversary who compromises DBMS servers and application servers.
In a typical database-backed applications the user queries are forwarded by the application server to the DBMS server which then executes the query over the database and returns the result back to the application server. CryptDB works by intercepting the queries sent by the application server to the DBMS server using a proxy server. The proxy server encrypt these queries and send the encrypted version to the DBMS server. The proxy server store the details about the current encryption layers of all columns in the database, a secret Master key used for encryption and the annotations designed by the application developer. CryptDB also includes User-defined functions (UDF) that help the DBMS server in removing the upper layers of onion for performing computations. The query for removing the upper layers will be designed and send to the DBMS server by the proxy server which then executes it with the help of the UDF.