Re: [Proposal] Table-level Transparent Data Encryption (TDE) and KeyManagement Service (KMS) - Mailing list pgsql-hackers
From | Masahiko Sawada |
---|---|
Subject | Re: [Proposal] Table-level Transparent Data Encryption (TDE) and KeyManagement Service (KMS) |
Date | |
Msg-id | CAD21AoAbYrRb4GgXRHE6DMth+Cb0MqA9GtPSDK5x801PJ0cssQ@mail.gmail.com Whole thread Raw |
In response to | Re: [Proposal] Table-level Transparent Data Encryption (TDE) and KeyManagement Service (KMS) (shawn wang <shawn.wang.pg@gmail.com>) |
Responses |
Re: [Proposal] Table-level Transparent Data Encryption (TDE) and KeyManagement Service (KMS)
|
List | pgsql-hackers |
On Tue, Jun 18, 2019 at 5:07 PM shawn wang <shawn.wang.pg@gmail.com> wrote: > > Masahiko Sawada <sawada.mshk@gmail.com> 于2019年6月17日周一 下午8:30写道: >> >> On Fri, Jun 14, 2019 at 7:41 AM Tomas Vondra >> <tomas.vondra@2ndquadrant.com> wrote: >> > I personally find the idea of encrypting tablespaces rather strange. >> > Tablespaces are meant to define hysical location for objects, but this >> > would also use them to "mark" objects as encrypted or not. That just >> > seems misguided and would make the life harder for many users. >> > >> > For example, what if I don't have any tablespaces (except for the >> > default one), but I want to encrypt only some objects? Suddenly I have >> > to create a tablespace, which will however cause various difficulties >> > down the road (during pg_basebackup, etc.). >> >> I guess that we can have an encrypted tabelspace by default (e.g. >> pg_default_enc). Or we encrypt per tables while having encryption keys >> per tablespaces. > > > Hi Sawada-san, > I do agree with it. >> >> >> On Mon, Jun 17, 2019 at 6:54 AM Tomas Vondra >> <tomas.vondra@2ndquadrant.com> wrote: >> > >> > On Sun, Jun 16, 2019 at 02:10:23PM -0400, Stephen Frost wrote: >> > >Greetings, >> > > >> > >* Joe Conway (mail@joeconway.com) wrote: >> > >> On 6/16/19 9:45 AM, Bruce Momjian wrote: >> > >> > On Sun, Jun 16, 2019 at 07:07:20AM -0400, Joe Conway wrote: >> > >> >> In any case it doesn't address my first point, which is limiting the >> > >> >> volume encrypted with the same key. Another valid reason is you might >> > >> >> have data at varying sensitivity levels and prefer different keys be >> > >> >> used for each level. >> > >> > >> > >> > That seems quite complex. >> > >> >> > >> How? It is no more complex than encrypting at the tablespace level >> > >> already gives you - in that case you get this property for free if you >> > >> care to use it. >> > > >> > >Perhaps not surprising, but I'm definitely in agreement with Joe >> > >regarding having multiple keys when possible and (reasonably) >> > >straight-forward to do so. I also don't buy off on the OpenSSL >> > >argument; their more severe issues certainly haven't been due to key >> > >management issues such as what we're discussing here, so I don't think >> > >the argument applies. >> > > >> > >> > I'm not sure what exactly is the "OpenSSL argument" you're disagreeing >> > with? IMHO Bruce is quite right that the risk of vulnerabilities grows >> > with the complexity of the system (both due to implementation bugs and >> > general design weaknesses). I don't think it's tied to the key >> > management specifically, except that it's one of the parts that may >> > contribute to the complexity. >> > >> > (It's often claimed that key management is one of the weakest points of >> > current crypto systems - we have safe (a)symmetric algorithms, but safe >> > handling of keys is an issue. I don't have data / papers supporting this >> > claim, I kinda believe it.) >> > >> > Now, I'm not opposed to eventually implementing something more >> > elaborate, but I also think just encrypting the whole cluster (not >> > necessarily with a single key, but with one master key) would be enough >> > for vast majority of users. Plus it's less error prone and easier to >> > operate (backups, replicas, crash recovery, ...). >> > >> > But there's about 0% chance we'll get that in v1, of course, so we need >> > s "minimum viable product" to build on anyway. >> > >> >> I agree that we need minimum viable product first. But I'm not sure >> it's true that the implementing the cluster-wide TDE first could be >> the first step of per-tablespace/table TDE. > > > Yes, we could complete the per-tablespace/table TDE in version 13. > And we could do cluster-wide TDE in the next version. > But I remember you said there are so many keys to manage in the table-level. I think even if we provide the per table encryption we can have encryption keys per tablepaces. That is, all tables on the same tablespace encryption use the same encryption keys but user can control encrypted objects per tables. > Will we add the table-level TDE in the first version? I hope so but It's under discussion now. > And I have two questions. > 1. Will we add hooks to support replacing the encryption algorithms? > 2. Will we add some encryption algorithm or use some in some libraries? Currently the WIP patch uses openssl and supports only AES-256 and I don't have a plan to have such extensibility for now. But it might be a good idea in the future. I think it would be not hard to support symmetric encryption altgorithms supported by openssl but would you like to support other encryption algorithms? Regards, -- Masahiko Sawada NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center
pgsql-hackers by date: