Oblivious Coopetitive Analytics Using Hardware Enclaves
Ankur Dave, Chester Leung, Raluca Ada Popa, Joseph E. Gonzalez, Ion Stoica (UC Berkeley) EuroSys 2020 April 28, 2020
Oblivious Coopetitive Analytics Using Hardware Enclaves Ankur Dave , - - PowerPoint PPT Presentation
Oblivious Coopetitive Analytics Using Hardware Enclaves Ankur Dave , Chester Leung, Raluca Ada Popa, Joseph E. Gonzalez, Ion Stoica (UC Berkeley) EuroSys 2020 April 28, 2020 The need for coopetitive analytics Analytics can extract value
Ankur Dave, Chester Leung, Raluca Ada Popa, Joseph E. Gonzalez, Ion Stoica (UC Berkeley) EuroSys 2020 April 28, 2020
“How much subprime debt have all banks issued?”
SELECT SUM(loan_amount) FROM customer c JOIN loan l ON c.ssn = l.ssn WHERE credit_score < 630;
240 bytes sent from party 2 to party 3 if (c.credit_score < 630) { result[c.ssn] += c.loan_amount }
Untrusted OS
Enclave Secret data Trusted code Enclave Enclave Remote attestation
ID Credit score Loan amount 1 720 $2,500 2 600 $500 2 600 $250 3 600 $500 Total loans $1,250
SELECT SUM(loan_amount) FROM customer c JOIN loan l ON c.ssn = l.ssn WHERE credit_score < 630;
Memory access
ID Credit score Loan amount 1 720 $2,500 2 600 $500 2 600 $250 3 600 $500 Total loans $1,250
SELECT SUM(loan_amount) FROM customer c JOIN loan l ON c.ssn = l.ssn WHERE credit_score < 630;
Memory access Dummy access
OCQ Planner Jointly Approved Queries Secure Federated Plan Party n Party 2 Party 1 Shared Result Federated Execution Oblivious operators
Authenticated
parties’ own data Parties must agree
and input data in advance Replicated across parties Each party must have at least one hardware enclave
→ Approach: Mixed-sensitivity algorithms
→ Approach: Schema-aware padding
→ Federated- and security-aware planner
Demographics Region Customer
Customer
c_ssn c_name
Loan
l_id l_ssn c_zip c_credit_score
Region
r_zip r_population l_amount
Demographics
d_id d_zip d_income
Foreign key relationships
102 103 104 105 106 107
Join inSut size
0.0 0.5 1.0 1.5 2.0 2.5 3.0
6SeeduS
SELECT c_zip, AVG(l_amount / d_income) FROM customer JOIN loan ON c_ssn = l_ssn JOIN region ON c_zip = r_zip JOIN demographics ON r_zip = d_zip GROUP BY c_zip
Customer
c_ssn c_name
Loan
l_id l_ssn c_zip c_credit_score
Region
r_zip r_population l_amount
Demographics
d_id d_zip d_income
Foreign key relationships
SELECT SUM(loan_amount) FROM customer c JOIN loan l ON c.ssn = l.ssn WHERE credit_score < 630;
Loan Customer Fed Filter Broadcast to Fed Fed-Obl Mixed-Sensitivity Broadcast Join Fed-Obl Agg Collect to Single Site Single-Site-Obl Agg
Fed: Partitioned across all parties’ enclaves Fed-Obl: Partitioned across enclaves +
Both input tables Sensitive Data movement Data movement Single-Site-Obl: At querier’s enclaves + oblivious algorithms
2SDque 2C4 60C4L DJRLQ 101 102 103 104 105 106
5uQQLQJ tLme (s)
270 27 100000 230 39 200000 74 74 3000 56 16 27000
CRmRrbLdLty AsSLrLQ cRuQt DJRLQ 41 DJRLQ 45
CRPRrbLdLty AsSLrLQ cRuQt DJRLQ 41 DJRLQ 45 100 101 102 103
5uQQLQJ tLPe (s)
270 230 74 56 12 7.1 6.4 3.2 27 39 74 16 270 42 190 190 3.0 5.0
2utsRurced 2SDque 3ODLQtext federDted 2C4 2C4 w/SDddLQJ 2utsRurced 6SDrk 64/