CrackLib-2.9.11

Introduction à CrackLib

Le paquet CrackLib contient une bibliothèque utilisée pour imposer des mots de passe forts en comparant les mots de passe sélectionnés par l'utilisateur avec des mots dans des listes choisies.

This package is known to build and work properly using an LFS 12.1 platform.

Informations sur le paquet

Téléchargements supplémentaires

Liste de mots recommandée pour les pays anglophones :

Il y a des listes de mots supplémentaires disponibles au téléchargement, par exemple sur https://wiki.skullsecurity.org/index.php/Passwords. CrackLib peut utiliser autant de listes de mots que vous souhaitez installer.

[Important]

Important

Les utilisateurs ont tendance à baser leur mot de passe sur des mots ordinaires de leur langue et les pirates le savent. CrackLib vise à filtrer de tels mots de passe dès la source en utilisant un dictionnaire créé à partir de listes de mots. Pour cela, la/les liste(s) de mots à utiliser avec CrackLib doit/doivent être exhaustive(s) et contenir les mots et les combinaisons de touche qui ont des chances d'être choisies par les utilisateurs du système comme mots de passe (devinables).

La liste de mots par défaut dont on recommande plus haut le téléchargement joue en général ce rôle dans les pays anglophones. Dans d'autres situations, il peut être nécessaire de télécharger (ou de créer), des listes de mots supplémentaires.

Remarquez que les listes de mots adaptées à la vérification orthographique ne sont pas utilisables comme listes de mots pour CrackLib dans des pays ayant des alphabets à base non latine à cause des « combinaisons de touche basées sur le mot » qui produisent de mauvais mots de passe.

Installation de CrackLib

Installez CrackLib en exécutant les commandes suivantes :

autoreconf -fiv &&

PYTHON=python3               \
./configure --prefix=/usr    \
            --disable-static \
            --with-default-dict=/usr/lib/cracklib/pw_dict &&
make

Maintenant, en tant qu'utilisateur root :

make install

Lancez les commandes suivantes en tant qu'utilisateur root pour installer la liste de mots recommandée et créer le dictionnaire CrackLib. D'autres listes de mots (au format texte, un mot par ligne) peuvent être utilisées, simplement en les installant dans /usr/share/dict et en les ajoutant à la commande create-cracklib-dict.

install -v -m644 -D    ../cracklib-words-2.9.11.xz \
                         /usr/share/dict/cracklib-words.xz    &&

unxz -v                  /usr/share/dict/cracklib-words.xz    &&
ln -v -sf cracklib-words /usr/share/dict/words                &&
echo $(hostname) >>      /usr/share/dict/cracklib-extra-words &&
install -v -m755 -d      /usr/lib/cracklib                    &&

create-cracklib-dict     /usr/share/dict/cracklib-words \
                         /usr/share/dict/cracklib-extra-words

Si vous le désirez, vérifiez le bon fonctionnement de la bibliothèque en tant qu'utilisateur non privilégié en exécutant la commande suivante :

make test
[Important]

Important

Si vous installez CrackLib après avoir terminé votre système LFS, et si vous avez installé le paquet Shadow, vous devez réinstaller Shadow-4.14.5 si vous souhaitez fournir le support des mots de passe forts sur votre système. Si maintenant vous allez installer le paquet Linux-PAM-1.6.0, vous pouvez ignorer cette remarque vu que Shadow sera réinstallé après l'installation de Linux-PAM.

Explication des commandes

autoreconf -fiv : le script configure embarqué avec ce paquet est trop vieux pour trouver la bonne chaine de version de Python 3.10 et supérieur. Cette commande le régénère avec une version plus récente des autotools, ce qui corrige le problème.

PYTHON=python3 : cela force l'installation des liaisons python pour Python 3, même si Python 2 est installé.

--with-default-dict=/usr/lib/cracklib/pw_dict : Ce paramètre oblige l'installation du dictionnaire CrackLib à se faire dans l'arborescence /lib.

--disable-static : Ce paramètre empêche l'installation des versions statiques des bibliothèques.

install -v -m644 -D ... : Cette commande crée le répertoire /usr/share/dict (s'il n'existe pas déjà) et y installe la liste de mots compressée.

ln -v -s cracklib-words /usr/share/dict/words : La liste de mots est liée à /usr/share/dict/words vu qu'historiquement, words est la liste de mots principale dans le répertoire /usr/share/dict. Supprimez cette commande si vous avez déjà installé un fichier /usr/share/dict/words sur votre système.

echo $(hostname) >>...  : La valeur de hostname est envoyée dans un fichier nommé cracklib-extra-words. Ce fichier supplémentaire vise à être une liste locale spécifique incluant des mots de passe faciles à deviner tels que les noms de la société ou du département, les noms d'utilisateurs, les noms de produit, les noms d'ordinateur, les noms de domaine, etc.

create-cracklib-dict ... : Cette commande crée le dictionnaire CrackLib à partir des listes de mots. Modifiez la commande pour ajouter une liste de mots supplémentaire que vous avez installée.

Contenu

Programmes installés: cracklib-check, cracklib-format, cracklib-packer, cracklib-unpacker, cracklib-update et create-cracklib-dict
Bibliothèques installées: libcrack.so et _cracklibmodule.so (module Python)
Répertoires installés: /usr/lib/cracklib, /usr/share/dict et /usr/share/cracklib

Descriptions courtes

cracklib-check

est utilisé pour déterminer si un mot de passe est fort

cracklib-format

est utilisé pour formater des fichiers textes (minuscules pour tous les mots, suppression des caractères de contrôle et tri des listes)

cracklib-packer

crée une base de données avec les mots lus depuis l'entrée standard

cracklib-unpacker

affiche sur la sortie standard la base de données spécifiées

create-cracklib-dict

est utilisé pour créer le dictionnaire CrackLib à partir des listes de mots données

libcrack.so

fournit une méthode de parcours rapide du dictionnaire pour l'application des mots de passe forts