security: implement SCRAM channel binding #74300
Labels
A-authentication
Pertains to authn subsystems
A-sql-pgwire
pgwire protocol issues.
C-enhancement
Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception)
T-server-and-security
DB Server & Security
X-anchored-telemetry
The issue number is anchored by telemetry references.
This is a derivative from #42519.
pg SQL supports an extension to SCRAM-SHA-256 called "channel binding".
What
Channel binding provides an additional layer of security, which makes the SCRAM handshake immune to MITM attacks, even using a malicious intermediate with a valid TLS certificate.
It achieves this by requiring the SCRAM handshake to include a hash of the TLS fingerprint of the server cert, so that the server can verify that the client is seeing its own TLS cert and not the one from the intermediary.
For more details see the pg sources,
backend/libpq/auth-scram.c
.How
p
attribute in the SASL parameters.Caveats
As of this writing, many client SQL drivers other than pg's own
libpq
do not support channel binding yet.Epic CRDB-5349
Jira issue: CRDB-12022
The text was updated successfully, but these errors were encountered: