Re: [Proposal] Table-level Transparent Data Encryption (TDE) and KeyManagement Service (KMS) - Mailing list pgsql-hackers
From | Bruce Momjian |
---|---|
Subject | Re: [Proposal] Table-level Transparent Data Encryption (TDE) and KeyManagement Service (KMS) |
Date | |
Msg-id | 20190708161604.t55v2g36usjax4zu@momjian.us Whole thread Raw |
In response to | Re: [Proposal] Table-level Transparent Data Encryption (TDE) and KeyManagement Service (KMS) (Stephen Frost <sfrost@snowman.net>) |
Responses |
Re: [Proposal] Table-level Transparent Data Encryption (TDE) and KeyManagement Service (KMS)
Re: [Proposal] Table-level Transparent Data Encryption (TDE) and KeyManagement Service (KMS) |
List | pgsql-hackers |
On Mon, Jul 8, 2019 at 11:47:33AM -0400, Stephen Frost wrote: > Greetings, > > * Bruce Momjian (bruce@momjian.us) wrote: > > On Mon, Jul 8, 2019 at 11:18:01AM -0400, Joe Conway wrote: > > > On 7/8/19 10:19 AM, Bruce Momjian wrote: > > > > When people are asking for multiple keys (not just for key rotation), > > > > they are asking to have multiple keys that can be supplied by users only > > > > when they need to access the data. Yes, the keys are always in the > > > > datbase, but the feature request is that they are only unlocked when the > > > > user needs to access the data. Obviously, that will not work for > > > > autovacuum when the encryption is at the block level. > > > > > > > If the key is always unlocked, there is questionable security value of > > > > having multiple keys, beyond key rotation. > > > > > > That is not true. Having multiple keys also allows you to reduce the > > > amount of data encrypted with a single key, which is desirable because: > > > > > > 1. It makes cryptanalysis more difficult > > > 2. Puts less data at risk if someone gets "lucky" in doing brute force > > > > What systems use multiple keys like that? I know of no website that > > does that. Your arguments seem hypothetical. What is your goal here? > > Not sure what the reference to 'website' is here, but one doesn't get > certificates for TLS/SSL usage that aren't time-bounded, and when it > comes to the actual on-the-wire encryption that's used, that's a > symmetric key that's generated on-the-fly for every connection. > > Wouldn't the fact that they generate a different key for every > connection be a pretty clear indication that it's a good idea to use > multiple keys and not use the same key over and over..? > > Of course, we can discuss if what websites do with over-the-wire > encryption is sensible to compare to what we want to do in PG for > data-at-rest, but then we shouldn't be talking about what websites do, > it'd make more sense to look at other data-at-rest encryption systems > and consider what they're doing. (I talked to Joe on chat for clarity.) In modern TLS, the certificate is used only for authentication, and Diffie–Hellman is used for key exchange: https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange So, the question is whether you can pass so much data in TLS that using the same key for the entire session is a security issue. TLS originally had key renegotiation, but that was removed in TLS 1.3: https://www.cloudinsidr.com/content/known-attack-vectors-against-tls-implementation-vulnerabilities/ To mitigate these types of attacks, TLS 1.3 disallows renegotiation. Of course, a database is going to process even more data so if the amount of data encrypted is a problem, we might have a problem too in using a single key. This is not related to whether we use one key for the entire cluster or multiple keys per tablespace --- the problem is the same. I guess we could create 1024 keys and use the bottom bits of the block number to decide what key to use. However, that still only pushes the goalposts farther. Anyway, I will to research the reasonable data size that can be secured with a single key via AES. I will look at how PGP encrypts large files too. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + As you are, so once was I. As I am, so you will be. + + Ancient Roman grave inscription +
pgsql-hackers by date: