Re: [PoC] run SQL over ciphertext

From: Mingyu Li <lmy2010lmy(at)gmail(dot)com>
To: giampow(at)gmail(dot)com
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: [PoC] run SQL over ciphertext
Date: 2023-10-11 07:04:55
Message-ID: CACoW8n0nUW5oQXS-mwHazY0ecpRVSGB=COtg52CY+-VSVAGidw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

> the idea is to split users into 'client users' who can see data
unencrypted, and 'server users', who are administrators unable to decrypt
data.

Exactly!

> how are secrets managed? Do you use a sort of vault to keep encryption
keys?

Good question. The client holds the key and uses a proxy for transparent
encryption. The implementation also assumes secure storage of encryption
keys in hardware-protected memory called "enclaves". Only client users and
server enclaves have access to the plaintext. Please take a glance at page
5 of the slide: www.usenix.org/system/files/osdi23_slides_li_mingyu_v2.pdf.
Modern clouds like OVH and Azure now offer hardware enclaves. If enclaves
are not available, a rich client-side proxy can be used, with extra
round-trip costs.

> Is there a master key to encrypt session keys?

There should be.

> what about performances?

TPC-C overhead is <50%. TPC-H overhead ranges from 5-20 times the baseline;
there is room for TPC-H improvement and we are working on it.

> Is it possible to use indexes on encrypted columns?

Yes. The extension allows client users to intentionally reveal the ordering
of encrypted columns for indexing purposes.

--
Best,
Mingyu

Giampaolo Capelli <giampow(at)gmail(dot)com> 于2023年10月10日周二 16:18写道:

> Hello,
> I think this is a very interesting topic, especially for European
> companies where data sovereignty in the cloud has become critical.
>
> If I understand correctly, the idea is to split users into 'client users'
> who can see data unencrypted, and 'server users', who are administrators
> unable to decrypt data.
>
> A few questions:
> - how are secrets managed? Do you use a sort of vault to keep encryption
> keys? Is there a master key to encrypt session keys?
> - what about performances? Is it possible to use indexes on encrypted
> columns?
>
>
> Hi all,
>>
>> We have developed an extension, allowing PostgreSQL to run queries over
>> encrypted data. This functionality is achieved via user-defined functions
>> that extend encrypted data types and support commonly used expression
>> operations. Our tests validated its effectiveness with TPC-C and TPC-H
>> benchmarks. You may find the code here:
>> https://github.com/SJTU-IPADS/HEDB.
>>
>> This PoC is a reimplementation fork while collaborating with a cloud
>> database company; the aim is to enable their DBAs to manage databases
>> without the risk of data leaks, *meeting the requirements of laws such
>> as GDPR.*
>>
>> I am wondering if anyone thinks this is a nice feature. If so, I am
>> curious about the steps to further it mature and potentially have it
>> incorporated as a part of PostgreSQL contrib.
>>
>> Best regards,
>> Mingyu Li
>>
>
>
> --
> best regards
> Giampaolo Capelli
>

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Ashutosh Bapat 2023-10-11 07:22:00 Re: RFC: Logging plan of the running query
Previous Message Peter Eisentraut 2023-10-11 06:56:13 Re: Pre-proposal: unicode normalized text