Re: Handling better supported channel binding types for SSL implementations - Mailing list pgsql-hackers

From Daniel Gustafsson
Subject Re: Handling better supported channel binding types for SSL implementations
Date
Msg-id 685884DF-8702-4C81-BA29-E2B125EB668D@yesql.se
Whole thread Raw
In response to Re: Handling better supported channel binding types for SSLimplementations  (Michael Paquier <michael.paquier@gmail.com>)
List pgsql-hackers
> On 23 Jan 2018, at 03:24, Michael Paquier <michael.paquier@gmail.com> wrote:
>
> On Mon, Jan 22, 2018 at 04:52:11PM +0100, Daniel Gustafsson wrote:
>> Not really, but IIUC a bug in this code could lead to channel binding
>> not being used for a connection even if the user wanted it (and may
>> miss that ixt didn’t happen due to not looking at logs etc)?
>
> Possible, if an implementation decides to send a NIL list as return
> result of this API when it should not.
>
>> Considering the limited set of values (currently) it should be quite
>> simple to check for offending entries, if there is indeed a risk of
>> “silently” not using channel binding.
>
> I think I understand the point you are coming at, but a problem is that
> the channel binding type the client wants to use is known by the server
> in SCRAM authentication only after reading the client-first message,
> which happens of course after the client decided to choose if channel
> binding is used or not. Now the server needs to emit first a list of
> supported SASL mechanisms which are consistent with what the SSL
> implementation can do when the mechanism is negotiated. Another, third
> approach that I can think of is to have this additional API in betls
> emit a list of mechanisms, but I am not sure that this is worth the
> complication as at the end what you want to know is if at least one
> channel binding type is supported or not.

Thanks for the explanation, I agree that the proposed approach makes the most
sense.

> We could as well live with the existing set of betls APIs, just that the
> implementation of secure transport for MacOS will need a hack in auth.c
> to stop the -PLUS mechanisms to be sent. Putting this load into each
> be-secure-*.c file is cleaner in my opinion.

I completely agree, let’s avoid such hacks.

cheers ./daniel

pgsql-hackers by date:

Previous
From: Marco Nenciarini
Date:
Subject: Re: [PATCH] Logical decoding of TRUNCATE
Next
From: Tom Lane
Date:
Subject: Re: pg_upgrade tests failing on current master