Le module passwordcheck
vérifie les mots de passe des
utilisateurs quand ils sont configurés avec CREATE ROLE
ou ALTER ROLE. Si un mot de passe est considéré trop
faible, il sera rejeté et la commande se terminera avec une erreur.
Pour activer ce module, ajoutez '$libdir/passwordcheck'
dans le paramètre shared_preload_libraries du fichier
postgresql.conf
, puis redémarrez le serveur.
Vous pouvez adapter ce module à vos besoins en modifiant son code source.
Par exemple, vous pouvez utiliser CrackLib pour
vérifier les mots de passe -- ceci requiert seulement la suppression
des commentaires sur deux lignes du Makefile
et la
reconstruction du module. (Nous ne pouvons pas inclure
CrackLib par défaut pour des raisons de licence.)
Sans CrackLib, le module impose quelques règles
simples sur la force du mot de passe, que vous pouvez modifier ou étendre
au besoin.
Pour empêcher l'envoi en clair des mots de passe sur le réseau, leur écriture dans les journaux applicatifs ou leur récupération par un administrateur de bases de données, PostgreSQL permet à l'utilisateur de fournir des mots de passe déjà chiffrés. Beaucoup de programmes clients utilisent cette fonctionnalité et chiffrent le mot de passe avant de l'envoyer au serveur.
Ceci limite l'utilité du module passwordcheck
car,
dans ce cas, il peut seulement tenter de deviner le mot de passe. Pour cette
raison, passwordcheck
n'est pas recommandé si vos
besoins en sécurité sont importants. Il est plus intéressant d'utiliser une
méthode d'authentification externe comme GSSAPI (voir Chapitre 20) plutôt que de se fier aux mots de passe
internes.
Une alternative est de modifier passwordcheck
pour
rejeter les mots de passe pré-chiffrés, mais forcer ainsi les utilisateurs à
entrer leurs mots de passe en clair porte son propre lot de problèmes de
sécurité.