Contenus
L’utilisation d’un mot de passe complexe est l’une des première barrière de sécurité pour empêcher un accès non autorisé sur votre ordinateur ou votre serveur.
Malheureusement, si l’on laisse le choix à l’utilisateur, celui-ci sera tenté de choisir un mot de passe simple.
Cet article a pour but de forcer l’utilisateur à choisir un mot de passe complexe en refusant les mots de passe jugés trop simple.
Qu’appelle-t-on un mot de passe complexe ?
Par mot de passe complexe, on entend un password « fort », c’est à dire difficile à retrouver.
Pour que l’on considère le mot de passe comme « strong » celui-ci doit:
- être suffisamment long, un minimum de 8 caractères
- contenir au moins une majuscule
- avoir au moins une minuscule
- contenir au moins un chiffre
- avoir au moins un caractère spécial
Ce sont les critères les plus couramment rencontrés à l’heure actuelle sur Internet lors du choix du mot de passe.
Pourquoi un mot de passe complexe
Sachez qu’aujourd’hui retrouver un mot de passe simple (seulement avec des minuscules ou des chiffres) ne prend que quelques millisecondes…
Comment forcer un mot de passe complexe
Par défaut, Linux Mint ne vous force pas à choisir un mot de passe « fort ».
Pour ce faire, nous allons installer/activer un module (pwquality) de PAM (Pluggable Authentication Modules). Pour faire court, PAM est le mécanisme qui se charge de l’authentification sur votre système Linux.
Si vous désirez plus d’information, je vous revois vers Wikipedia.
Installation du module libpam-pwquality
$ sudo apt-get install libpam-pwquality
Configuration du module
Commençons par créer une sauvegarde du fichier de configuration
$ sudo cp /etc/pam.d/common-password /etc/pam.d/common-password-backup
Nous pouvons maintenant modifier le fichier avec notre éditeur de texte préféré:
$ sudo vim /etc/pam.d/common-password
Nous allons modifier la ligne:
Password requisite pam_pwquality.so retry=3
Afin d’y faire apparaître nos critères de mot de passe complexe:
password requisite pam_pwquality.so retry=3 minlen=9 difok=4 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 reject_username enforce_for_root
Dans cet exemple, on force:
- la longueur à 8 caractères (minlen=9)
- un minimum de 1 minuscule (lcredit=–1)
- l’utilisation de minimum de 1 majuscule (ucredit=–1)
- un minium de 1 chiffre (dcredit=–1)
- l’utilisation de minimum 1 caractère spécial (ocredit=–1)
- le mot de passe ne peut contenir le user (reject_username)
- cette règle est valable pour le compte « root » (enforce_for_root)
- que maximum 4 caractères peuvent être semblable au dernier mot de passe (difok=4)
Pour les critères lcredit, ucredit, dcredit, ocredit la valeur est bien négative « –1″, on veut au moins 1 caractère, il peut y en avoir plus.
Une valeur positive « 1 » ou « +1 » signifie maximum 1 (il peut donc ne pas y en avoir).
Je vous invite à lire la documentation pour plus d’information sur les différents réglages.
On peut, par exemple, rassembler tous les paramètres « xcredit » en un seul « minclass » si l’on utilise la même valeur pour tous (comme dans l’exemple plus haut), ce qui devient:
password requisite pam_pwquality.so retry=3 minlen=9 difok=4 minclass=1 reject_username enforce_for_root
Ou encore ajouter une liste de mot de passe que l’on refuse, refuser les répétition « aaaa », « bbb », … bref plein de possibilités.
Une fois votre configuration terminée, il ne vous reste plus qu’à redémarrer pour que cette nouvelle configuration soit prise en compte.
Comment vérifier
Cette stratégie ne sera appliquée qu’aux nouveaux mots de passe.
Le plus simple est de créer un nouvel utilisateur, par exemple « testuser »
$ sudo useradd testuser
et de tenter de lui assigner un mot de passe:
$ sudo passwd testuser
Si le mot de passe ne correspond pas à vos critères celui-ci sera refusé, par exemple si j’essaie d’assigner le mot de passe « abcd »
On voit que le mot de passe est refusé, le message ne donne qu’une erreur, même si plusieurs critères ne sont pas respectés.
Si j’ajoute le chiffre par exemple « abc1 », je vais recevoir un message qu’il n’y a pas de majuscule..
Et ainsi de suite jusque quand mon mot de passe couvrira tous les critères définis plus haut.
A la fin du test, on peut évidemment supprimer cet utilisateur
$ sudo userdel testuser
Pour aller plus loin
Il ne suffit pas d’avoir un mot de passe complexe, idéalement il faudrait aussi le changer régulièrement, dans un prochain article je décrirai la procédure pour forcer l’expiration des mots de passe.