Le module passwordcheck vérifie les mots de passe des utilisateurs quand ils sont configurés avec CREATE ROLE(7) ou ALTER ROLE(7). 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, Authentification du client) 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é.