From: | Heikki Linnakangas <hlinnaka(at)iki(dot)fi> |
---|---|
To: | Michael Paquier <michael(at)paquier(dot)xyz>, Postgres hackers <pgsql-hackers(at)postgresql(dot)org> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, Magnus Hagander <magnus(at)hagander(dot)net>, Stephen Frost <sfrost(at)snowman(dot)net>, Bruce Momjian <bruce(at)momjian(dot)us> |
Subject: | Re: SCRAM with channel binding downgrade attack |
Date: | 2018-05-28 09:00:33 |
Message-ID: | 030284cc-d1d6-ce88-b677-a814f61c1880@iki.fi |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-www |
On 28/05/18 04:23, Michael Paquier wrote:
> On Sat, May 26, 2018 at 11:42:38PM +0900, Michael Paquier wrote:
>> On Sat, May 26, 2018 at 09:08:50AM -0400, Bruce Momjian wrote:
>>> On Sat, May 26, 2018 at 08:32:20AM +0900, Michael Paquier wrote:
>>>>
>>>> OK, I can live with that as well. So we'll go in the direction of two
>>>> parameters then:
>>>> - scram_channel_binding, which can use "prefer" (default), "require" or
>>>> "disable".
>>>> - scram_channel_binding_name, developer option to choose the type of
>>>> channel binding, with "tls-unique" (default) and "tls-server-end-point".
>>>> We could also remove the prefix "scram_". Ideas of names are welcome.
>>>
>>> scram_channel_binding_method?
>>
>> Or scram_channel_binding_type. The first sentence of RFC 5929 uses this
>> term.
>
> I just went with scram_channel_binding_mode (require, disable and
> prefer) and scram_channel_binding_type as parameter names, in the shape
> of the attached patch.
Thanks! Getting better.
There's one pretty fatal bug in this patch: If you use
"scram_channel_binding=require", we only fail the connection after going
through the motions of authenticating with whatever authentication the
server asked for. That's bad, because it means that the client will
merrily respond to a AUTH_REQ_PASSWORD request from the server, by
sending the password in cleartext.
That's not a new problem, but it makes the MITM protection fairly
pointless, if a fake server can acquire the user's password by simply
asking for it. The client will report a failed connection, but with the
user's password, Mallory won't need to act as a MITM anymore.
- Heikki
From | Date | Subject | |
---|---|---|---|
Next Message | Magnus Hagander | 2018-05-28 09:16:08 | Re: Is a modern build system acceptable for older platforms |
Previous Message | Michael Paquier | 2018-05-28 08:57:47 | Re: pg_replication_slot_advance to return NULL instead of 0/0 if slot not advanced |
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2018-05-28 09:20:02 | Re: SCRAM with channel binding downgrade attack |
Previous Message | Michael Paquier | 2018-05-28 01:23:28 | Re: SCRAM with channel binding downgrade attack |