From: Justin Pryzby <pryzby@telsasoft.com>
To: Bruce Momjian <bruce@momjian.us>
Cc: Daniil Zakhlystov <usernamedt@yandex-team.ru>
Cc: pgsql-hackers@lists.postgresql.org
Subject: Re: libpq compression (part 2)
Date: Fri, 7 Jan 2022 13:21:10 -0600
Message-ID: <20220107192110.GG14051@telsasoft.com> (raw)
In-Reply-To: <YdiKaL/AhNV9OtvK@momjian.us>
References: <ABAA09C6-BB95-47A5-890D-90353533F9AC@yandex-team.ru>
<20220101172504.GW24477@telsasoft.com>
<YdiKaL/AhNV9OtvK@momjian.us>
On Fri, Jan 07, 2022 at 01:46:00PM -0500, Bruce Momjian wrote:
> On Sat, Jan 1, 2022 at 11:25:05AM -0600, Justin Pryzby wrote:
> > Thanks for working on this. The patch looks to be in good shape - I hope more
> > people will help to review and test it. I took the liberty of creating a new
> > CF entry. http://cfbot.cputube.org/daniil-zakhlystov.html
> >
> > +zpq_should_compress(ZpqStream * zpq, char msg_type, uint32 msg_len)
> > +{
> > + return zpq_choose_compressor(zpq, msg_type, msg_len) == -1;
> >
> > I think this is backwards , and should say != -1 ?
> >
> > As written, the server GUC libpq_compression defaults to "on", and the client
> > doesn't request compression. I think the server GUC should default to off.
> > I failed to convince Kontantin about this last year. The reason is that 1)
> > it's a new feature; 2) with security implications. An admin should need to
> > "opt in" to this. I still wonder if this should be controlled by a new "TYPE"
> > in pg_hba (rather than a GUC); that would make it exclusive of SSL.
>
> I assume this compression happens before it is encrypted for TLS
> transport. Second, compression was removed from TLS because there were
> too many ways for HTTP to weaken encryption. I assume the Postgres wire
> protocol doesn't have similar exploit possibilities.
It's discussed in last year's thread. The thinking is that there tends to be
*fewer* exploitable opportunities between application->DB than between
browser->app.
But it's still a known concern, and should default to off - as I said.
That's also why I wondered if compression should be controlled by pg_hba,
rather than a GUC. To require/allow an DBA to opt-in to it for specific hosts.
Or to make it exclusive of ssl. We could choose to not suppose that case at
all, or (depending on the implement) refuse that combination of layers.
--
Justin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-hackers@postgresql.org
Cc: pryzby@telsasoft.com, bruce@momjian.us, usernamedt@yandex-team.ru, pgsql-hackers@lists.postgresql.org
Subject: Re: libpq compression (part 2)
In-Reply-To: <20220107192110.GG14051@telsasoft.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox