RE: Stratégie de mot de passe des roles postgresql

Lists: pgsql-fr-generale
From: Alain Benard <alain(dot)benard(at)inrae(dot)fr>
To: "pgsql-fr-generale(at)lists(dot)postgresql(dot)org" <pgsql-fr-generale(at)lists(dot)postgresql(dot)org>
Subject: Stratégie de mot de passe des roles postgresql
Date: 2023-11-02 16:52:03
Message-ID: 2bf0db6ba5904e80b879d0b0c0348876@inrae.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

Bonjour,
Je cherche à imposer certaines règles pour les mots de passe des rôles postgresql et les contacts et recherches effectuées jusqu'ici ne semble orienter que vers le module passwordcheck, capable seulement de checker des mots de passe en clair (donc TLS obligatoire) selon un algo qui semble figé dans le code.

1. Y-a-t-il d'autres alternatives que ce module (en dehors d'utiliser d'autres systèmes d'authentification que postgres comme ldap ...)

2. Existe-t-il un fichier de configuration ou une localisation quelconque (paramètre postgres ...) de cette extension paswordcheck où l'on puisse facilement modifier par exemple la longueur minimale des mots de passe accepté (en dehors des sources du projet bien sûr). Dans ce cas nom /localisation + syntaxe ou exemple serait bienvenus. J'imaginais pouvoir définir facilement (sans recompilation ...) :

a. La longueur minimale

b. Le nombre de majuscules minimal

c. Le nombre de minuscules minimal

d. Le nombre de caractères spéciaux minimal

e. Le nombre de chiffres minimal
Avec juste ces éléments on peut déjà définir quelque chose de sympa.
Pour info : En natif il y a vérification que le mot de passe fait minimum 8 caractères avec des lettres et des non lettres ce qui est déjà mieux que rien mais un peu léger. Ca vérifie aussi que le mot de passe ne contient pas le login ou bien qu'il n'est pas = au login (y compris s'il est fourni en crypté comme md5)
Merci par avance de vos conseils / informations.
Alain.
[INRA]<http://www.inra.fr/>


From: Cédric Villemain <cedric(dot)villemain+pgsql(at)abcsql(dot)com>
To: Alain Benard <alain(dot)benard(at)inrae(dot)fr>, "pgsql-fr-generale(at)lists(dot)postgresql(dot)org" <pgsql-fr-generale(at)lists(dot)postgresql(dot)org>
Subject: Re: Stratégie de mot de passe des roles postgresql
Date: 2023-11-03 10:08:52
Message-ID: d0d9b938-db36-4b7b-bb6a-dc1593bf5819@abcsql.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

Bonjour,

je vous recommande la lecture du document de la CNIL:
https://www.cnil.fr/fr/mots-de-passe-une-nouvelle-recommandation-pour-maitriser-sa-securite

/docs/current/passwordcheck.html

«....You can adapt this module to your needs by changing the source
code. For example, you can use CrackLib to check passwords  ....»

Bonne journée,
Cédric

Le 02/11/2023 à 17:52, Alain Benard a écrit :
>
> Bonjour,
>
> Je cherche à imposer certaines règles pour les mots de passe des rôles
> postgresql et les contacts et recherches effectuées jusqu’ici ne
> semble orienter que vers le module passwordcheck, capable seulement de
> checker des mots de passe en clair (donc TLS obligatoire) selon un
> algo qui semble figé dans le code.
>
> 1.Y-a-t-il d’autres alternatives que ce module (en dehors d’utiliser
> d’autres systèmes d’authentification que postgres  comme ldap …)
>
> 2.Existe-t-il un fichier de configuration ou une localisation
> quelconque (paramètre postgres …) de cette extension paswordcheck où
> l’on puisse facilement modifier par exemple la longueur minimale des
> mots de passe accepté (en dehors des sources du projet bien sûr). Dans
> ce cas nom /localisation + syntaxe ou exemple serait bienvenus.
> J’imaginais pouvoir définir facilement (sans recompilation …) :
>
> a.La longueur minimale
>
> b.Le nombre de majuscules minimal
>
> c.Le nombre de minuscules minimal
>
> d.Le nombre de caractères spéciaux minimal
>
> e.Le nombre de chiffres minimal
>
> Avec juste ces éléments on peut déjà définir quelque chose de sympa.
>
> Pour info : En natif il y a vérification que le mot de passe fait
> minimum 8 caractères avec des lettres et des non lettres ce qui est
> déjà mieux que rien mais un peu léger. Ca vérifie aussi que le mot de
> passe ne contient pas le login ou bien qu’il n’est pas = au login (y
> compris s’il est fourni en crypté comme md5)
>
> Merci par avance de vos conseils / informations.
>
> Alain.
>
> INRA <http://www.inra.fr/>
>

--
---
Cédric Villemain +33 (0)6 20 30 22 52
https://Data-Bene.io
PostgreSQL Expertise, Support, Training, R&D


From: Maxime DERCHE <md(at)mdisc(dot)fr>
To: pgsql-fr-generale(at)lists(dot)postgresql(dot)org
Subject: Re: Stratégie de mot de passe des roles postgresql
Date: 2023-11-03 13:19:51
Message-ID: c8208d82-1f64-83ce-0bc6-aaac4510df65@mdisc.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

Bonjour,

Le 02/11/2023 à 17:52, Alain Benard a écrit :
> Bonjour,
>
> Je cherche à imposer certaines règles pour les mots de passe des rôles postgresql et
> les contacts et recherches effectuées jusqu’ici ne semble orienter que vers le module
> passwordcheck, capable seulement de checker des mots de passe en clair (donc TLS
> obligatoire) selon un algo qui semble figé dans le code.
>
> 1.Y-a-t-il d’autres alternatives que ce module (en dehors d’utiliser d’autres
> systèmes d’authentification que postgres  comme ldap …)
>
> 2.Existe-t-il un fichier de configuration ou une localisation quelconque (paramètre
> postgres …) de cette extension paswordcheck où l’on puisse facilement modifier par
> exemple la longueur minimale des mots de passe accepté (en dehors des sources du
> projet bien sûr). Dans ce cas nom /localisation + syntaxe ou exemple serait
> bienvenus. J’imaginais pouvoir définir facilement (sans recompilation …) :
>
> a.La longueur minimale
>
> b.Le nombre de majuscules minimal
>
> c.Le nombre de minuscules minimal
>
> d.Le nombre de caractères spéciaux minimal
>
> e.Le nombre de chiffres minimal

En fait de nos jours le paradigme n'est plus de forcer la diversité des jeux de
caractères mais plutôt :
* augmenter drastiquement la longueur ;
* générer automatiquement à la volée ;
* stocker dans un gestionnaire de secrets.

=> Donc le paradigme s'énonce simplement : utiliser un gestionnaire de secret.

Cela vient du fait que forcer la diversité a un effet pervers important sur les mots
de passe "courts" : cela réduit l'entropie et donc l'espace des mots de passe
possibles pour une longueur donnée.

Un gestionnaire de secret permet de générer des mots de passe de par exemple 128
caractères (ou plus) et il s'en souvient à la place de l'humain, donc le débat sur le
nombre de majuscules devient un débat obsolète (avec ce type de longueur on écrase le
sujet).

Pas testé et je n'ai pas d'action chez Hashicorp mais un collègue m'a tout récemment
parlé d'une fonction de Vault permettant de mettre à jour automatiquement des mots de
passe de base de données, et notre bien-aimé PostgreSQL ferait partie des systèmes
supportés :
<https://developer.hashicorp.com/vault/docs/secrets/databases/postgresql>.

Bien cordialement,
--
Maxime DERCHE
Maxime DERCHE Information System Consulting France | NVMQVAM SOLVS
Mobile Telephone: +33 6 74 90 88 84
Web Site : https://www.mdisc.fr/
OpenPGP Key ID: 0x814E02A25697FD13
OpenPGP Key Fingerprint: 8B7B 60C9 1095 A198 C883 5205 814E 02A2 5697 FD13


From: Alain Benard <alain(dot)benard(at)inrae(dot)fr>
To: Cédric Villemain <cedric(dot)villemain+pgsql(at)abcsql(dot)com>, "pgsql-fr-generale(at)lists(dot)postgresql(dot)org" <pgsql-fr-generale(at)lists(dot)postgresql(dot)org>
Subject: RE: Stratégie de mot de passe des roles postgresql
Date: 2023-11-03 13:51:58
Message-ID: 33cae0d7f6894e66b8e0cfc0772edd0e@inrae.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

Bonjour Cédric,
Merci de la réponse mais ce n’est pas ma question : j’ai écrit explicitement« en dehors des sources du projet bien sûr ».
On trouve de nombreux endroits sur le web où il serait question des sources de passwordcheck :
PostgreSQL Source Code: contrib/passwordcheck/passwordcheck.c File Reference<https://doxygen.postgresql.org/passwordcheck_8c.html> me semble être probablement celui qui est utilisé par postgres.

En continuant de fouiner et en allant voir ici
https://docs.yugabyte.com/preview/explore/ysql-language-features/pg-extensions/extension-passwordcheck/#customize-passwordcheck
ou là passwordcheck/passwordcheck.c at master · Luckyness/passwordcheck (github.com)<https://github.com/Luckyness/passwordcheck/blob/master/passwordcheck.c>
ou encore là pg_plugins/passwordcheck_extra/passwordcheck_extra.c at main · michaelpq/pg_plugins (github.com)<https://github.com/michaelpq/pg_plugins/blob/main/passwordcheck_extra/passwordcheck_extra.c>

on a l’impression que certains ont utilisé ou donnent la possibilité d’utiliser des paramètres postgres (ceux qu’on positionne avec SET et qu’on lit avec show notamment) pour pouvoir personnaliser la stratégie de mot de passe.
A l’image de ma demande un petit nombre de paramètres permettrait de réaliser quasiment n’importe quelle stratégie :

1. La longueur minimale

2. Le nombre de majuscules minimal

3. Le nombre de minuscules minimal

4. Le nombre de caractères spéciaux minimal

5. Le nombre de chiffres minimal
Ça parait tellement évident de ne pas coder ce genre de valeur en dur que j’en viens à me dire que c’est juste parce que je n’ai pas trouvé comment faire pour personnaliser mais au final je commence à me rendre compte que ce module a été accepté par la communauté en l’état. Vraiment dommage d’autant qu’à ce stade il ne semble pas y avoir d’alternative ce qui signifie qu’il faut recompiler pour modifier ne serait que la taille minimale des mots de passe (sauf si on accepte 8) ;(((

Merci quand même.

De : Cédric Villemain <cedric(dot)villemain+pgsql(at)abcsql(dot)com>
Envoyé : vendredi 3 novembre 2023 11:09
À : Alain Benard <alain(dot)benard(at)inrae(dot)fr>; pgsql-fr-generale(at)lists(dot)postgresql(dot)org
Objet : Re: Stratégie de mot de passe des roles postgresql

Bonjour,

je vous recommande la lecture du document de la CNIL:
https://www.cnil.fr/fr/mots-de-passe-une-nouvelle-recommandation-pour-maitriser-sa-securite

/docs/current/passwordcheck.html

«....You can adapt this module to your needs by changing the source code. For example, you can use CrackLib to check passwords ....»

Bonne journée,
Cédric

Le 02/11/2023 à 17:52, Alain Benard a écrit :
Bonjour,
Je cherche à imposer certaines règles pour les mots de passe des rôles postgresql et les contacts et recherches effectuées jusqu’ici ne semble orienter que vers le module passwordcheck, capable seulement de checker des mots de passe en clair (donc TLS obligatoire) selon un algo qui semble figé dans le code.

1. Y-a-t-il d’autres alternatives que ce module (en dehors d’utiliser d’autres systèmes d’authentification que postgres comme ldap …)

2. Existe-t-il un fichier de configuration ou une localisation quelconque (paramètre postgres …) de cette extension paswordcheck où l’on puisse facilement modifier par exemple la longueur minimale des mots de passe accepté (en dehors des sources du projet bien sûr). Dans ce cas nom /localisation + syntaxe ou exemple serait bienvenus. J’imaginais pouvoir définir facilement (sans recompilation …) :

1. La longueur minimale

2. Le nombre de majuscules minimal

3. Le nombre de minuscules minimal

4. Le nombre de caractères spéciaux minimal

5. Le nombre de chiffres minimal
Avec juste ces éléments on peut déjà définir quelque chose de sympa.
Pour info : En natif il y a vérification que le mot de passe fait minimum 8 caractères avec des lettres et des non lettres ce qui est déjà mieux que rien mais un peu léger. Ca vérifie aussi que le mot de passe ne contient pas le login ou bien qu’il n’est pas = au login (y compris s’il est fourni en crypté comme md5)
Merci par avance de vos conseils / informations.
Alain.
[INRA]

--

---

Cédric Villemain +33 (0)6 20 30 22 52

https://Data-Bene.io

PostgreSQL Expertise, Support, Training, R&D


From: Julien Rouhaud <rjuju123(at)gmail(dot)com>
To: Alain Benard <alain(dot)benard(at)inrae(dot)fr>
Cc: "pgsql-fr-generale(at)lists(dot)postgresql(dot)org" <pgsql-fr-generale(at)lists(dot)postgresql(dot)org>
Subject: Re: Stratégie de mot de passe des roles postgresql
Date: 2023-11-04 09:31:22
Message-ID: PostgreSQL : Re : Stratégie 사설 토토 Mot 사설 토토 Passe 사설 토토s 역할 pos
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

Bonjour,

On Thu, Nov 02, 2023 at 04:52:03PM +0000, Alain Benard wrote:
> Bonjour,
> Je cherche à imposer certaines règles pour les mots de passe des rôles
> postgresql et les contacts et recherches effectuées jusqu'ici ne semble
> orienter que vers le module passwordcheck, capable seulement de checker des
> mots de passe en clair (donc TLS obligatoire) selon un algo qui semble figé
> dans le code.
>
> 1. Y-a-t-il d'autres alternatives que ce module (en dehors d'utiliser
> d'autres systèmes d'authentification que postgres comme ldap ...)
>
> 2. Existe-t-il un fichier de configuration ou une localisation
> quelconque (paramètre postgres ...) de cette extension paswordcheck où l'on
> puisse facilement modifier par exemple la longueur minimale des mots de passe
> accepté (en dehors des sources du projet bien sûr). Dans ce cas nom
> /localisation + syntaxe ou exemple serait bienvenus. J'imaginais pouvoir
> définir facilement (sans recompilation ...) :
>
> a. La longueur minimale
>
> b. Le nombre de majuscules minimal
>
> c. Le nombre de minuscules minimal
>
> d. Le nombre de caractères spéciaux minimal
>
> e. Le nombre de chiffres minimal
> Avec juste ces éléments on peut déjà définir quelque chose de sympa. Pour
> info : En natif il y a vérification que le mot de passe fait minimum 8
> caractères avec des lettres et des non lettres ce qui est déjà mieux que rien
> mais un peu léger. Ca vérifie aussi que le mot de passe ne contient pas le
> login ou bien qu'il n'est pas = au login (y compris s'il est fourni en crypté
> comme md5) Merci par avance de vos conseils / informations.

Vous pouvez utiliser l'extension credcheck qui fait tout cela :
https://github.com/MigOpsRepos/credcheck