Re: SCRAM authentication, take three

Heikki Linnakangas <hlinnaka@iki.fi>

From: Heikki Linnakangas <hlinnaka@iki.fi>
To: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, Noah Misch <noah@leadboat.com>
Cc: Michael Paquier <michael.paquier@gmail.com>, Aleksander Alekseev <a.alekseev@postgrespro.ru>, Alvaro Herrera <alvherre@2ndquadrant.com>, pgsql-hackers <pgsql-hackers@postgresql.org>, magnus@hagander.net, robertmhaas@gmail.com
Date: 2017-04-11T05:10:23Z
Lists: pgsql-hackers
On 04/11/2017 04:52 AM, Peter Eisentraut wrote:
> On 4/10/17 04:27, Heikki Linnakangas wrote:
>> One thing to consider is that we just made the decision that "md5"
>> actually means "md5 or scram-sha-256". Extrapolating from that, I think
>> we'll want "scram-sha-256" to mean "scram-sha-256 or scram-sha-256-plus"
>> (i.e. the channel-bonding variant) in the future. And if we get support
>> for scram-sha-512, "scram-sha-256" would presumably allow that too.
>
> But how would you choose between scram-sha-256-plus and scram-sha-512?

Good question. We would need to decide the order of preference for those.

That question won't arise in practice. Firstly, if the server can do 
scram-sha-256-plus, it presumably can also do scram-sha-512-plus. Unless 
there's a change in the way the channel binding works, such that the 
scram-sha-512-plus variant needs a newer version of OpenSSL or 
something. Secondly, the user's pg_authid row will contain a 
SCRAM-SHA-256 or SCRAM-SHA-512 verifier, not both, so that will dictate 
which one to use.

- Heikki



Commits

  1. Rename "scram" to "scram-sha-256" in pg_hba.conf and password_encryption.

  2. Support SCRAM-SHA-256 authentication (RFC 5802 and 7677).