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

Reply via email to