Re: [Proposal] Table-level Transparent Data Encryption (TDE) and Key Management Service (KMS)

Bruce Momjian <bruce@momjian.us>

From: Bruce Momjian <bruce@momjian.us>
To: Tomas Vondra <tomas.vondra@2ndquadrant.com>
Cc: Joe Conway <mail@joeconway.com>, Antonin Houska <ah@cybertec.at>, Stephen Frost <sfrost@snowman.net>, Masahiko Sawada <sawada.mshk@gmail.com>, Robert Haas <robertmhaas@gmail.com>, Haribabu Kommi <kommi.haribabu@gmail.com>, "Moon, Insung" <Moon_Insung_i3@lab.ntt.co.jp>, Ibrar Ahmed <ibrar.ahmad@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2019-07-15T22:05:37Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Revamp the WAL record format.

On Mon, Jul 15, 2019 at 10:44:34PM +0200, Tomas Vondra wrote:
> On Mon, Jul 15, 2019 at 03:55:38PM -0400, Bruce Momjian wrote:
> > The crazy seems more sane now --- "encrypt the page with CRC contents as
> > zero" (which we probably already do to compute the CRC), then compute
> > the CRC, and modify the page CRC.
> > 
> 
> Huh? So you want to
> 
> 1) set CRC to 0
> 2) encrypt the page
> 3) compute CRC
> 4) set CRC to value computed in (3)
> 5) encrypt the page again
> 
> That seems pretty awful from performance POV, and it does not really
> solve much as we'd still need to decrypt the page while verifying the
> checksums (because the CRC is in the page header, which is encrypted).

No, I was thinking we would overwrite whatever the encrypted output was
in the spot that has the CRC with the computed CRC.  Yeah, sounds even
crazier now that I said it --- never mind.

-- 
  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 +