On Wed, Jun 13, 2018 at 09:20:58AM -0400, Joe Conway wrote: > On 06/11/2018 05:22 AM, Masahiko Sawada wrote: > > As per discussion at PGCon unconference, I think that firstly we need > > to discuss what threats we want to defend database data against. > > Exactly. While certainly there is demand for encryption for the sake of > "checking a box", different designs will defend against different > threats, and we should be clear on which ones we are trying to protect > against for any particular design.
Yep. This slide covers the various encryption levels and the threats they protect against: http://momjian.us/main/writings/crypto_hw_use.pdf#page=97 I do not have page-level encryption listed since that is not currently possible with Postgres. > > Also, if I understand correctly, at unconference session there also > > were two suggestions about the design other than the suggestion by > > Alexander: implementing TDE at column level using POLICY, and > > implementing TDE at table-space level. The former was suggested by Joe > > but I'm not sure the detail of that suggestion. I'd love to hear the > > deal of that suggestion. > > The idea has not been extensively fleshed out yet, but the thought was > that we create column level POLICY, which would transparently apply some > kind of transform on input and/or output. The transforms would > presumably be expressions, which in turn could use functions (extension > or builtin) to do their work. That would allow encryption/decryption, > DLP (data loss prevention) schemes (masking, redacting), etc. to be > applied based on the policies. This is currently possible with stock Postgres as you can see from this and the following slides: http://momjian.us/main/writings/crypto_hw_use.pdf#page=77 > This, in and of itself, would not address key management. There is > probably a separate need for some kind of built in key management -- > perhaps a flexible way to integrate with external systems such as Vault > for example, or maybe something self contained, or perhaps both. Or > maybe key management is really tied into the separately discussed effort > to create SQL VARIABLEs somehow. I cover key management in this slide, and following: http://momjian.us/main/writings/crypto_hw_use.pdf#page=53 -- Bruce Momjian <br...@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 +