]> granicus.if.org Git - postgresql/commit
Make SCRAM salts and nonces longer.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Fri, 5 May 2017 07:02:13 +0000 (10:02 +0300)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Fri, 5 May 2017 07:02:13 +0000 (10:02 +0300)
commit0557a5dc2cf845639d384801b6861ebbd35dc7ee
tree8aed489778bfde59eba1976ede4a78a34a2fb2f3
parente6e9c4da3a55450b120ad7e3d0be426255850914
Make SCRAM salts and nonces longer.

The salt is stored base64-encoded. With the old 10 bytes raw length, it was
always padded to 16 bytes after encoding. We might as well use 12 raw bytes
for the salt, and it's still encoded into 16 bytes.

Similarly for the random nonces, use a raw length that's divisible by 3, so
that there's no padding after base64 encoding. Make the nonces longer while
we're at it. 10 bytes was probably enough to prevent replay attacks, but
there's no reason to be skimpy here.

Per suggestion from Álvaro Hernández Tortosa.

Discussion: https://www.postgresql.org/message-id/df8c6e27-4d8e-5281-96e5-131a4e638fc8@8kdata.com
src/include/common/scram-common.h
src/test/regress/expected/password.out
src/test/regress/sql/password.sql