From: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Subject: use of the term "verifier" with SCRAM
Date: Wed, 14 Aug 2019 07:59:16 +0200
Message-ID: <be397b06-6e4b-ba71-c7fb-54cae84a7e18@2ndquadrant.com> (raw)
I'm confused by how the code uses the term "verifier" in relation to SCRAM.
ISTM that the code uses the term as meaning whatever is or would be
stored in pg_auth.rolpassword.
I don't see this usage supported in the RFCs. In RFC 5802,
verifier = "v=" base64
;; base-64 encoded ServerSignature.
where
ServerSignature := HMAC(ServerKey, AuthMessage)
ServerKey := HMAC(SaltedPassword, "Server Key")
AuthMessage := client-first-message-bare + "," +
server-first-message + "," +
client-final-message-without-proof
whereas what is stored in rolpassword is
SCRAM-SHA-256$<iterations>:<salt>$<storedkey>:<serverkey>
where
StoredKey := H(ClientKey)
ClientKey := HMAC(SaltedPassword, "Client Key")
So while these are all related, I don't think it's accurate to call what
is in rolpassword a SCRAM "verifier".
RFC 5803 is titled "Lightweight Directory Access Protocol (LDAP) Schema
for Storing Salted Challenge Response Authentication Mechanism (SCRAM)
Secrets". Following that, I think calling the contents of rolpassword a
"secret" or a "stored secret" would be better.
--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-hackers@postgresql.org
Cc: peter.eisentraut@2ndquadrant.com
Subject: Re: use of the term "verifier" with SCRAM
In-Reply-To: <be397b06-6e4b-ba71-c7fb-54cae84a7e18@2ndquadrant.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox