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

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
Thread:
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

https://www.postgresql.org/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

In response to

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Julien Rouhaud 2023-11-04 09:31:22 Re: Stratégie de mot de passe des roles postgresql
Previous Message Maxime DERCHE 2023-11-03 13:19:51 Re: Stratégie de mot de passe des roles postgresql