Re: Transparent Data Encryption (TDE) and encrypted files - Mailing list pgsql-hackers
From | Robert Haas |
---|---|
Subject | Re: Transparent Data Encryption (TDE) and encrypted files |
Date | |
Msg-id | CA+Tgmoa9vO0sNDJU8Pdy95tTA_GHXXhakhV-HP_h0J=v-HkQEQ@mail.gmail.com Whole thread Raw |
In response to | Re: Transparent Data Encryption (TDE) and encrypted files (Stephen Frost <sfrost@snowman.net>) |
Responses |
Re: Transparent Data Encryption (TDE) and encrypted files
|
List | pgsql-hackers |
On Thu, Oct 3, 2019 at 1:29 PM Stephen Frost <sfrost@snowman.net> wrote: > I don't think I was arguing specifically about VM/FSM in particular but > rather about things which, for us, are cluster level. Admittedly, some > other database systems put more things into tablespaces or databases > than we do (it'd sure be nice if we did in some cases too, but we > don't...), but they do also have things *outside* of those, such that > you can at least bring the system up, to some extent, even if you can't > access a given tablespace or database. It sounds like you're making this up as you go along. The security ramifications of encrypting a file don't depend on whether that file is database-level or cluster-level, but rather on whether the contents could be useful to an attacker. It doesn't seem like it would require much work at all to construct an argument that a hacker might enjoy having unfettered access to pg_clog even if no other part of the database can be read. My perspective on this feature is, and has always been, that there are two different things somebody might want, both of which we seem to be calling "TDE." One is to encrypt every single data page in the cluster (and possibly things other than data pages, but at least those) with a single encryption key, much as filesystem encryption would do, but internal to the database. Contrary to your assertions, such a solution has useful properties. One is that it will work the same way on any system where PostgreSQL runs, whereas filesystem encryption solutions vary. Another is that it does not require the cooperation of the person who has root in order to set up. A third is that someone with access to the system does not have automatic and unfettered access to the database's data; sure, they can get it with enough work, but it's significantly harder to finish the encryption keys out of the memory space of a running process than to tar up the data directory that the filesystem has already decrypted for you. I would personally not care about any of this based on my own background as somebody who generally had to do set up systems from scratch, starting with buying the hardware, but in enterprise and government environments they can pose significant problems. The other thing people sometimes want is to encrypt some of the data within the database but not all of it. In my view, trying to implement this is not a great idea, because it's vastly more complicated than just encrypting everything with one key. Would I like to have the feature? Sure. Do I expect that we're going to get that feature any time soon? Nope. Even the thing I described in the previous paragraph, as limited as it is, is complicated and could take several release cycles to get into committable shape. Fine-grained encryption is probably an order of magnitude more complicated. The problem of figuring out which keys apply to which objects does not seem to have any reasonably simple solution, assuming you want something that's neither insecure nor a badly-done hack. I am unsure what the thought process is among people, such as yourself, who are arguing that fine-grained encryption is the only way to go. It seems like you're determined to refuse a free Honda Civic on the grounds that it's not a Cadillac. It's not even like accepting the patch for the Honda Civic solution would some how block accepting the Cadillac if that shows up later. It wouldn't. It would just mean that, unless or until that patch shows up, we'd have something rather than nothing. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
pgsql-hackers by date: