Mots de passe : md5 ou scram-sha-256 ?

Que l'outil soit basique ou avancé, pour pouvoir travailler avec PostgreSQL, il faut déjà se connecter !
Répondre
Phil
Administrateur du site
Messages : 290
Enregistré le : mar. 1 sept. 2015 00:38
Localisation : France
Contact :

Mots de passe : md5 ou scram-sha-256 ?

Message par Phil »

Merci à un utilisateur pour sa question :

"OK pour le cryptage des connexions avec hostssl indiqué ici viewtopic.php?f=22&t=161 mais je vois aussi que vous avez dans votre fichier scram-sha-256 et pas md5, pouvez-vous expliquer ?"

Réponse :

C'est aussi un élément de sécurité mais ce n'est pas lié au chiffrement de la connexion. Avec PostgreSQL, les mots de passe peuvent être hachés avec md5 ou scram-sha-256.
scram-sha-256 est disponible avec PostgreSQL 10 et versions supérieures et c'est une méthode plus sécurisée que md5.
Pour que vos mots de passe utilisent scram-sha-256, configurer de cette manière juste après la création du cluster et avant toute affectation de mot de passe :

Code : Tout sélectionner

psql 

select version();
                                                             version
----------------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 11.3 (Debian 11.3-1.pgdg90+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit


alter system set password_encryption= 'scram-sha-256';
ALTER SYSTEM
Dans un export des métadonnées, vous verrez alors ceci pour tous vos comptes, exemple pour postgres :

Code : Tout sélectionner

CREATE ROLE postgres;
ALTER ROLE postgres WITH SUPERUSER INHERIT CREATEROLE CREATEDB LOGIN REPLICATION BYPASSRLS PASSWORD 'SCRAM-SHA-256...';
Au lieu de :

Code : Tout sélectionner

CREATE ROLE postgres;
ALTER ROLE postgres WITH SUPERUSER INHERIT CREATEROLE CREATEDB LOGIN REPLICATION BYPASSRLS PASSWORD 'md5...';
Cdlt. Phil - pgphil.ovh
Phil
Administrateur du site
Messages : 290
Enregistré le : mar. 1 sept. 2015 00:38
Localisation : France
Contact :

Re: Mots de passe : md5 ou scram-sha-256 ?

Message par Phil »

Merci à un utilisateur pour sa question :

"Votre exemple ne marche pas, j'obtiens une erreur
ERREUR: ALTER SYSTEM ne peut pas être exécuté dans un bloc de transaction"


Réponse :

Vous avez passé le "select version()" et l'autocommit est probablement désactivé au niveau de votre client psql. Valider la transaction avant de passer l'alter system afin qu'il soit dans son propre bloc de transaction :

Code : Tout sélectionner

select version();
                                                             version
----------------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 11.3 (Debian 11.3-1.pgdg90+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit
(1 ligne)

alter system set password_encryption= 'scram-sha-256';
ERREUR:  ALTER SYSTEM ne peut pas être exécuté dans un bloc de transaction

commit;
COMMIT

alter system set password_encryption= 'scram-sha-256';
ALTER SYSTEM
Cdlt. Phil - pgphil.ovh
Phil
Administrateur du site
Messages : 290
Enregistré le : mar. 1 sept. 2015 00:38
Localisation : France
Contact :

Re: Mots de passe : md5 ou scram-sha-256 ?

Message par Phil »

Merci à Julien pour sa question :

"Je ne parviens pas à connecter mon applicatif Java à la base PostgreSQL dans cette configuration. Quels sont les prérequis côté serveur d'appli ?"

Réponse :

Deux conditions pour bénéficier du hachage scram-sha--256 des mots de passe :
- il faut que l'applicatif soit en Java 8 ou version supérieure
- il faut que le driver JDBC soit suffisamment récent. Au 29/05/2019, utiliser PostgreSQL JDBC 4.2 Driver, 42.2.5.

Avec un applicatif en Java 7 ou version inférieure, il faut continuer à utiliser md5 pour le hachage des mots de passe.
Cdlt. Phil - pgphil.ovh
Répondre