diff options
author | Nathan Bossart <nathan@postgresql.org> | 2024-12-02 13:30:07 -0600 |
---|---|---|
committer | Nathan Bossart <nathan@postgresql.org> | 2024-12-02 13:30:07 -0600 |
commit | db6a4a985bc09d260d5c29848e3c97f080646a53 (patch) | |
tree | 5d57a50559a2a1ae40896a2007a9025a12339f22 /src/backend/utils/misc/guc_tables.c | |
parent | 97173536ed4b1c29dce0dc4119db136e142f60a2 (diff) | |
download | postgresql-db6a4a985bc09d260d5c29848e3c97f080646a53.tar.gz postgresql-db6a4a985bc09d260d5c29848e3c97f080646a53.zip |
Deprecate MD5 passwords.
MD5 has been considered to be unsuitable for use as a cryptographic
hash algorithm for some time. Furthermore, MD5 password hashes in
PostgreSQL are vulnerable to pass-the-hash attacks, i.e., knowing
the username and hashed password is sufficient to authenticate.
The SCRAM-SHA-256 method added in v10 is not subject to these
problems and is considered to be superior to MD5.
This commit marks MD5 password support in PostgreSQL as deprecated
and to be removed in a future release. The documentation now
contains several deprecation notices, and CREATE ROLE and ALTER
ROLE now emit deprecation warnings when setting MD5 passwords. The
warnings can be disabled by setting the md5_password_warnings
parameter to "off".
Reviewed-by: Greg Sabino Mullane, Jim Nasby
Discussion: https://postgr.es/m/ZwbfpJJol7lDWajL%40nathan
Diffstat (limited to 'src/backend/utils/misc/guc_tables.c')
-rw-r--r-- | src/backend/utils/misc/guc_tables.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/backend/utils/misc/guc_tables.c b/src/backend/utils/misc/guc_tables.c index 9845abd6932..8cf1afbad20 100644 --- a/src/backend/utils/misc/guc_tables.c +++ b/src/backend/utils/misc/guc_tables.c @@ -2086,6 +2086,15 @@ struct config_bool ConfigureNamesBool[] = NULL, NULL, NULL }, + { + {"md5_password_warnings", PGC_USERSET, CONN_AUTH_AUTH, + gettext_noop("Enables deprecation warnings for MD5 passwords."), + }, + &md5_password_warnings, + true, + NULL, NULL, NULL + }, + /* End-of-list marker */ { {NULL, 0, 0, NULL, NULL}, NULL, false, NULL, NULL, NULL |