cryptdb protecting confidentiality with encrypted query
play

CRYPTDB:PROTECTING CONFIDENTIALITY WITH ENCRYPTED QUERY PROCESSING - PowerPoint PPT Presentation

RALUCA ADA POPA, CATHERINE M. S. REDFIELD, NICKOLAI ZELDOVICH, AND HARI BALAKRISHNAN MIT CSAIL CRYPTDB:PROTECTING CONFIDENTIALITY WITH ENCRYPTED QUERY PROCESSING Why


  1. Adjustable Query-based Encryption

  2. Adjustable Query-based Encryption

  3. Adjustable Query-based Encryption ▸ The proxy strips off the onion layers to allow different operations

  4. Adjustable Query-based Encryption ▸ The proxy strips off the onion layers to allow different operations ▸ The proxy never decrypts the data past the least-secure encryption onion layer

  5. EXAMPLE (FROM THE AUTHORS’ SLIDES):

  6. EXAMPLE (FROM THE AUTHORS’ SLIDES): emp: rank name salary ‘CEO’ ‘worker’

  7. EXAMPLE (FROM THE AUTHORS’ SLIDES): emp: rank name salary ‘CEO’ ‘worker’ table 1: … col1-OnionEq col1-OnionOrder col1-OnionSearch col2-OnionEq … RND RND SEARCH RND … RND RND SEARCH RND

  8. EXAMPLE (FROM THE AUTHORS’ SLIDES): emp: rank name salary ‘CEO’ ‘worker’ table 1: … RND col1-OnionEq col1-OnionOrder col1-OnionSearch col2-OnionEq DET … JOIN RND RND SEARCH RND … ‘CEO’ RND RND SEARCH RND Onion Equality

  9. EXAMPLE (FROM THE AUTHORS’ SLIDES): emp: rank name salary ‘CEO’ ‘worker’ table 1: … RND col1-OnionEq col1-OnionOrder col1-OnionSearch col2-OnionEq DET … JOIN RND RND SEARCH RND … ‘CEO’ RND RND SEARCH RND Onion Equality ▸ SELECT * FROM emp WHERE rank = ‘CEO’;

  10. EXAMPLE (CONT’D) table 1 … RND col1-OnionEq col1-OnionOrder col1-OnionSearch col2-OnionEq DET … JOIN RND RND SEARCH RND … ‘CEO’ RND RND RND SEARCH Onion Equality

  11. EXAMPLE (CONT’D) table 1 … RND col1-OnionEq col1-OnionOrder col1-OnionSearch col2-OnionEq DET … JOIN RND RND SEARCH RND … ‘CEO’ RND RND RND SEARCH Onion Equality SELECT * FROM emp WHERE rank = ‘CEO’;

  12. EXAMPLE (CONT’D) table 1 … RND col1-OnionEq col1-OnionOrder col1-OnionSearch col2-OnionEq DET … JOIN RND RND SEARCH RND … ‘CEO’ RND RND RND SEARCH Onion Equality SELECT * FROM emp WHERE rank = ‘CEO’;

  13. EXAMPLE (CONT’D) table 1 … RND col1-OnionEq col1-OnionOrder col1-OnionSearch col2-OnionEq DET … JOIN RND RND SEARCH RND … ‘CEO’ RND RND RND SEARCH Onion Equality SELECT * FROM emp WHERE rank = ‘CEO’; UPDATE table1 SET col1-OnionEq = Decrypt_RND(key, col1-OnionEq);

  14. EXAMPLE (CONT’D) table 1 … RND col1-OnionEq col1-OnionOrder col1-OnionSearch col2-OnionEq DET … JOIN RND RND SEARCH RND … ‘CEO’ RND RND RND SEARCH Onion Equality SELECT * FROM emp WHERE rank = ‘CEO’; UPDATE table1 SET col1-OnionEq = Decrypt_RND(key, col1-OnionEq); SELECT * FROM table1 WHERE col1-OnionEq = xda5c0407;

  15. EXAMPLE (CONT’D) table 1 … col1-OnionEq col1-OnionOrder col1-OnionSearch col2-OnionEq DET … JOIN RND RND SEARCH RND … ‘CEO’ RND RND RND SEARCH Onion Equality SELECT * FROM emp WHERE rank = ‘CEO’; UPDATE table1 SET col1-OnionEq = Decrypt_RND(key, col1-OnionEq); SELECT * FROM table1 WHERE col1-OnionEq = xda5c0407;

  16. EXAMPLE (CONT’D) table 1 … col1-OnionEq col1-OnionOrder col1-OnionSearch col2-OnionEq DET … JOIN RND RND SEARCH RND … ‘CEO’ RND RND RND SEARCH Onion Equality SELECT * FROM emp WHERE rank = ‘CEO’; UPDATE table1 SET col1-OnionEq = Decrypt_RND(key, col1-OnionEq); SELECT * FROM table1 WHERE col1-OnionEq = xda5c0407;

  17. EXAMPLE (CONT’D) table 1 … col1-OnionEq col1-OnionOrder col1-OnionSearch col2-OnionEq … JOIN RND RND SEARCH RND … ‘CEO’ RND RND RND SEARCH Onion Equality SELECT * FROM emp WHERE rank = ‘CEO’; UPDATE table1 SET col1-OnionEq = Decrypt_RND(key, col1-OnionEq); SELECT * FROM table1 WHERE col1-OnionEq = xda5c0407;

  18. EXAMPLE (CONT’D) table 1 … col1-OnionEq col1-OnionOrder col1-OnionSearch col2-OnionEq DET … JOIN RND RND SEARCH RND … ‘CEO’ RND RND RND SEARCH Onion Equality SELECT * FROM emp WHERE rank = ‘CEO’; UPDATE table1 SET col1-OnionEq = Decrypt_RND(key, col1-OnionEq); SELECT * FROM table1 WHERE col1-OnionEq = xda5c0407;

  19. EXAMPLE (CONT’D) table 1 … col1-OnionEq col1-OnionOrder col1-OnionSearch col2-OnionEq DET … JOIN RND SEARCH RND … ‘CEO’ RND RND RND SEARCH Onion Equality SELECT * FROM emp WHERE rank = ‘CEO’; UPDATE table1 SET col1-OnionEq = Decrypt_RND(key, col1-OnionEq); SELECT * FROM table1 WHERE col1-OnionEq = xda5c0407;

  20. EXAMPLE (CONT’D) table 1 … col1-OnionEq col1-OnionOrder col1-OnionSearch col2-OnionEq DET … JOIN RND SEARCH RND … ‘CEO’ RND RND SEARCH Onion Equality SELECT * FROM emp WHERE rank = ‘CEO’; UPDATE table1 SET col1-OnionEq = Decrypt_RND(key, col1-OnionEq); SELECT * FROM table1 WHERE col1-OnionEq = xda5c0407;

  21. EXAMPLE (CONT’D) table 1 … col1-OnionEq col1-OnionOrder col1-OnionSearch col2-OnionEq DET … JOIN RND SEARCH RND DET … ‘CEO’ RND RND SEARCH Onion Equality SELECT * FROM emp WHERE rank = ‘CEO’; UPDATE table1 SET col1-OnionEq = Decrypt_RND(key, col1-OnionEq); SELECT * FROM table1 WHERE col1-OnionEq = xda5c0407;

  22. EXAMPLE (CONT’D) table 1 … col1-OnionEq col1-OnionOrder col1-OnionSearch col2-OnionEq DET … JOIN RND SEARCH RND DET … ‘CEO’ DET RND RND SEARCH Onion Equality SELECT * FROM emp WHERE rank = ‘CEO’; UPDATE table1 SET col1-OnionEq = Decrypt_RND(key, col1-OnionEq); SELECT * FROM table1 WHERE col1-OnionEq = xda5c0407;

  23. System design SQL Interface Server Unmodified DBMS transformed query CryptDB query SQL UDFs CryptDB Proxy Application ( user-defined results encrypted results functions)

  24. System design SQL Interface Server Unmodified DBMS transformed query CryptDB query SQL UDFs CryptDB Proxy Application ( user-defined results encrypted results functions)

  25. System design SQL Interface Server Unmodified DBMS transformed query CryptDB query SQL UDFs CryptDB Proxy Application ( user-defined results encrypted results functions) ▸ So far the first threat is solved.

  26. System design SQL Interface Server Unmodified DBMS transformed query CryptDB query SQL UDFs CryptDB Proxy Application ( user-defined results encrypted results functions) ▸ So far the first threat is solved. ▸ What if the proxy and application are also untrusted?

  27. System design SQL Interface Server Unmodified DBMS transformed query CryptDB query SQL UDFs CryptDB Proxy Application ( user-defined results encrypted results functions) ▸ So far the first threat is solved. ▸ What if the proxy and application are also untrusted?

  28. Application protection User 1 DB Server SQL Application Proxy User 2 User 3

  29. Application protection User 1 DB Server SQL Application Proxy User 2 User 3

  30. Application protection User 1 DB Server SQL Application Proxy User 2 User 3

  31. Application protection User 1 DB Server SQL Application Proxy User 2 User 3

  32. Application protection User 1 DB Server SQL Application Proxy User 2 User 3

  33. Application protection User 1 DB Server SQL Application Proxy User 2 User 3 ▸ Protect data of logged-out users.

  34. Application protection User 1 DB Server SQL Application Proxy User 2 User 3 ▸ Protect data of logged-out users. ▸ Leaking data of active users is unavoidable.

  35. Data sharing

  36. Data sharing ➢ Access control is easy if proxy has all the keys

  37. Data sharing User 1 data Proxy ➢ Access control is easy if proxy has all the keys User 2

  38. Data sharing User 1 data Proxy ➢ Access control is easy if proxy has all the keys User 2 ➢ But we want to protect the data of logged out users

  39. Data sharing User 1 data Proxy ➢ Access control is easy if proxy has all the keys User 2 User 1 data ➢ But we want to protect the data of logged out Proxy users User 2

  40. Policy Annotations 
 —— Define Privileges and Access Controls

  41. Policy Annotations 
 —— Define Privileges and Access Controls Principal : entities such as users, groups, or messages

  42. Policy Annotations 
 —— Define Privileges and Access Controls Principal : entities such as users, groups, or messages • Internal: Delegation

  43. Policy Annotations 
 —— Define Privileges and Access Controls Principal : entities such as users, groups, or messages • Internal: Delegation Privileges are restricted by the delegation rules in DB table

  44. Policy Annotations 
 —— Define Privileges and Access Controls Principal : entities such as users, groups, or messages • Internal: Delegation Privileges are restricted by the delegation rules in DB table • External: End user who logs in with password

  45. Policy Annotations 
 —— Define Privileges and Access Controls Principal : entities such as users, groups, or messages • Internal: Delegation Privileges are restricted by the delegation rules in DB table • External: End user who logs in with password Privileges are obtained through proxy after providing password.

  46. ▸ Annotation: developer specified ▸ ENC_FOR: which column has secret and what principals have access to those secret. ▸ SPEAKS_FOR: if A delegates B, then A has access to all keys B has access to

  47. Key Chaining 
 ——handling the access control keys

  48. Key Chaining 
 ——handling the access control keys Four special tables in DB for access control

  49. Key Chaining 
 ——handling the access control keys Four special tables in DB for access control Access_keys table • Common symmetric key for principals that are all active

  50. Key Chaining 
 ——handling the access control keys Four special tables in DB for access control Access_keys table • Common symmetric key for principals that are all active Public_keys table • Asymmetric key for inactive principals

  51. Key Chaining 
 ——handling the access control keys Four special tables in DB for access control Access_keys table • Common symmetric key for principals that are all active Public_keys table • Asymmetric key for inactive principals External_keys table • Random key generated by principal password indicating its privilege

  52. Key Chaining 
 ——handling the access control keys Four special tables in DB for access control Access_keys table • Common symmetric key for principals that are all active Public_keys table • Asymmetric key for inactive principals External_keys table • Random key generated by principal password indicating its privilege Cryptdb_active table • Indicating whether principal is active, remove its key if not

  53. Key Chaining 
 ——handling the access control keys Four special tables in DB for access control Access_keys table • Common symmetric key for principals that are all active Public_keys table • Asymmetric key for inactive principals External_keys table • Random key generated by principal password indicating its privilege Cryptdb_active table • Indicating whether principal is active, remove its key if not

  54. Key Chaining 
 ——handling the access control keys Four special tables in DB for access control Access_keys table • Common symmetric key for principals that are all active Internal Principal Public_keys table • Asymmetric key for inactive principals External_keys table • Random key generated by principal password indicating its privilege Cryptdb_active table • Indicating whether principal is active, remove its key if not

  55. Key Chaining 
 ——handling the access control keys Four special tables in DB for access control Access_keys table • Common symmetric key for principals that are all active Internal Principal Public_keys table • Asymmetric key for inactive principals External_keys table • Random key generated by principal password indicating its privilege Cryptdb_active table • Indicating whether principal is active, remove its key if not

  56. Key Chaining 
 ——handling the access control keys Four special tables in DB for access control Access_keys table • Common symmetric key for principals that are all active Internal Principal Public_keys table • Asymmetric key for inactive principals External_keys table External Principal • Random key generated by principal password indicating its privilege Cryptdb_active table • Indicating whether principal is active, remove its key if not

  57. • Internal Principal

  58. • Internal Principal 1. Symmetric key Says A speaks for B and B is active, then B’s symmetric key is encrypted using A’s symmetric key 2. Asymmetric key Says A send a message to B, but B is offline. So CryptDB looks up the table for B’s public key, which can only be decrypted by its private key.

  59. • Internal Principal 1. Symmetric key Says A speaks for B and B is active, then B’s symmetric key is encrypted using A’s symmetric key 2. Asymmetric key Says A send a message to B, but B is offline. So CryptDB looks up the table for B’s public key, which can only be decrypted by its private key. • External Principal 1. Random key When logged in, external principals are assigned a random key. When logged out, the related keys to that principals are removed.

  60. Chaining Behavior ▸ A speaks for B: B’s key is encrypted by A’s key and stored in a DB table ▸ B speaks for C: C’s key is encrypted by B’s key and stored in a DB table

  61. Chaining Behavior ▸ A speaks for B: B’s key is encrypted by A’s key and stored in a DB table ▸ B speaks for C: C’s key is encrypted by B’s key and stored in a DB table When A wants to get C’s key and retrieve its principal(sensitive message)

  62. Chaining Behavior ▸ A speaks for B: B’s key is encrypted by A’s key and stored in a DB table ▸ B speaks for C: C’s key is encrypted by B’s key and stored in a DB table When A wants to get C’s key and retrieve its principal(sensitive message)

  63. EXPERIMENTAL EVALUATION

  64. EXPERIMENTAL EVALUATION ▸ Application Changes

  65. EXPERIMENTAL EVALUATION ▸ Application Changes ▸ Functional Evaluation

  66. EXPERIMENTAL EVALUATION ▸ Application Changes ▸ Functional Evaluation ▸ Security Evaluation

  67. EXPERIMENTAL EVALUATION ▸ Application Changes ▸ Functional Evaluation ▸ Security Evaluation ▸ Performance Evaluation

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend