Re: Password identifiers, protocol aging and SCRAM protocol
Michael Paquier <michael.paquier@gmail.com>
From: Michael Paquier <michael.paquier@gmail.com>
To: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Cc: Heikki Linnakangas <hlinnaka@iki.fi>, Robert Haas <robertmhaas@gmail.com>, Julian Markwort <julian.markwort@uni-muenster.de>,
Magnus Hagander <magnus@hagander.net>, Stephen Frost <sfrost@snowman.net>, David Steele <david@pgmasters.net>, PostgreSQL mailing lists <pgsql-hackers@postgresql.org>,
Valery Popov <v.popov@postgrespro.ru>
Date: 2016-07-04T03:54:37Z
Lists: pgsql-hackers
On Mon, Jul 4, 2016 at 6:34 AM, Peter Eisentraut <peter.eisentraut@2ndquadrant.com> wrote: > On 7/2/16 3:54 PM, Heikki Linnakangas wrote: >> >> In related news, RFC 7677 that describes a new SCRAM-SHA-256 >> authentication mechanism, was published in November 2015. It's identical >> to SCRAM-SHA-1, which is what this patch set implements, except that >> SHA-1 has been replaced with SHA-256. Perhaps we should forget about >> SCRAM-SHA-1 and jump straight to SCRAM-SHA-256. > > I think a global change from SHA-1 to SHA-256 is in the air already, so if > we're going to release something brand new in 2017 or so, it should be > SHA-256. > > I suspect this would be a relatively simple change, so I wouldn't mind > seeing a SHA-1-based variant in CF1 to get things rolling. I'd just move this thing to SHA256, we are likely going to use that at the end. As I am coming back into that, I would as well suggest do the following, that the current set of patches is clearly missing: - Put the HMAC infrastructure stuff of pgcrypto into src/common/. It is a bit a shame to not reuse what is currently available, then I would suggest to reuse that with HMAC_SCRAM_SHAXXX as label. - Move *all* the SHA-related things of pgcrypto to src/common, including SHA1, SHA224 and SHA256. px_memset is a simple wrapper on top of memset, we should clean up that first. Any other things to consider that I am forgetting? -- Michael
Commits
-
Support SCRAM-SHA-256 authentication (RFC 5802 and 7677).
- 818fd4a67d61 10.0 landed
-
Refactor SHA2 functions and move them to src/common/.
- 273c458a2b3a 10.0 landed
-
Replace isMD5() with a more future-proof way to check if pw is encrypted.
- dbd69118c05d 10.0 landed
-
Remove bogus notice that older clients might not work with MD5 passwords.
- 7e3ae5455948 9.2.20 landed
- 470af1f41c8b 9.3.16 landed
- ada2cdb61015 9.4.11 landed
- 65a7f190b253 9.5.6 landed
- 7546c135dc30 9.6.2 landed
- 31c54096a18f 10.0 landed
-
Refactor the code for verifying user's password.
- e7f051b8f9a6 10.0 landed
-
Replace PostmasterRandom() with a stronger source, second attempt.
- fe0a0b5993df 10.0 landed
-
Remove support for (insecure) crypt authentication.
- 53a5026b5cb3 8.4.0 cited