Comment empêcher les utilisateurs de remplacer leur mot de passe par l'un des derniers mots de passe X?

9

J'ai un système Ubuntu GNOME 15.10 avec GNOME 3.18 que je voudrais configurer pour que les utilisateurs qui l'utilisent ne puissent pas définir un nouveau mot de passe comme l'un des mots de passe X précédents, comment y parvenir?

Lorsque je change mon mot de passe, s'il est trop similaire à mon dernier, mon système ne me permet pas de le changer pour ce mot de passe, il serait bon que la réponse montre également comment l'étendre afin que le nouveau mot de passe ne puisse pas non plus être trop similaire aux mots de passe X enregistrés précédemment.

Remarque: L'historique des derniers mots de passe X ne doit pas être stocké de manière non cryptée non sécurisée, en fait, ils doivent probablement être stockés de la même manière ou d'une manière similaire à la façon dont le mot de passe actuel est stocké (comme un hachage salé).

J'ai utilisé Xpour représenter le nombre de mots de passe (cela peut avoir n'importe quelle valeur) parce que je veux pouvoir changer facilement la quantité de mots de passe stockés qui ne peuvent pas être utilisés, et aussi pour que d'autres puissent facilement prendre la réponse et l'utiliser comme ils souhaite plutôt que d'avoir une réponse qui tourne autour d'une valeur très définie pour X.

Mise à jour des informations:

Comme demandé ici est le contenu de mon /etc/pam.d/common-passwordfichier (à l'exclusion des commentaires en haut) :

# here are the per-package modules (the "Primary" block)
password        [success=1 default=ignore]      pam_unix.so obscure sha512
# here's the fallback if no module succeeds
password        requisite                       pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
password        required                        pam_permit.so
# and here are more per-package modules (the "Additional" block)
password        optional        pam_gnome_keyring.so
# end of pam-auth-update config
guntbert
la source
Notez que a) forcer les utilisateurs à changer leur mot de passe et b) empêcher X anciens mots de passe où X est> 2 peut réduire la sécurité ... "Hmm, il suffit d'ajouter 1 à mon ancien mot de passe ... moi ... "
Tim
@Tim: Il existe déjà des mécanismes intégrés à mon système qui empêchent le mot de passe d'être trop similaire au dernier.
C'est souvent tout aussi mauvais - cela garantit que l'utilisateur l'écrira. Je ne suis pas convaincu non plus que le changement ait des avantages - et il a certainement des inconvénients.
Tim
@Tim: En outre, vous venez de me rappeler quelque chose que j'ai oublié d'inclure, j'ai mis à jour ma question avec elle (bien que notez que bien que ce soit bien, si la réponse ne peut pas montrer comment faire cette chose supplémentaire, je serais bien avec obtenir ce que j'avais demandé à l'origine).
@Tim: J'aurai d'autres politiques en place pour les empêcher de le faire et je les surveillerai de près.

Réponses:

17

Vous pouvez configurer PAM pour cela. Il suffit d'ouvrir /etc/pam.d/common-passwordet d'ajouter use_authtokà la première passwordligne (celle qui appelle le module pam_unix) pour qu'elle ressemble un peu à ceci:

password    [success=1 default=ignore]  pam_unix.so obscure sha512 use_authtok

Ajoutez maintenant cette ligne au-dessus de la ligne précédemment modifiée:

password    required    pam_pwhistory.so  remember=X

Xest le nombre de mots de passe précédents par rapport auxquels vous souhaitez rechercher un mot de passe répétitif.

Ici, les Xmots de passe précédents seront stockés sous forme de hachage à l'emplacement/etc/security/opasswd

Vous devez donc créer le fichier si et seulement s'il n'existe pas et lui attribuer l'autorisation 600 ( -rw-------):

sudo touch /etc/security/opasswd
sudo chmod 600 /etc/security/opasswd
daltonfury42
la source
Bien que faire ce que vous dites semble signifier que si j'essaie de définir un mot de passe que j'ai utilisé auparavant comme l'un de mes derniers mots de passe X dans le gnome-control-center, cela ne fait rien et me force à forcer la fermeture de l'application, il ne le fait pas semble pas très bien fonctionner ... Que fait-il exactement le 14.04? Parce que je m'attendrais à ce qu'il m'indique si le mot de passe n'était pas approprié au lieu de simplement se bloquer lorsque je lui demande de le changer.
@ParanoidPanda Très intéressant. Que recevez-vous lorsque vous essayez de modifier le mot de passe à l'aide de passwd? C'est ce qui m'arrive. Lorsque je change en utilisant, passwdj'obtiens "Le mot de passe a déjà été utilisé. Choisissez un autre." et lorsque j'essaye de changer le mot de passe de l'interface graphique, cela ne me permet pas de changer le mot de passe (le bouton Changer est grisé) et "Mot de passe trop faible" est écrit.
daltonfury42
Il convient de noter que je signale depuis Ubuntu 14.04 exécutant Unity, pas Gnome.
daltonfury42
Je l'ai testé à nouveau, cette fois dans une installation d'Ubuntu GNOME 16.04 Beta 2 avec GNOME 3.20 et j'ai trouvé que cela fonctionne de la même manière que vous l'avez décrit avec la passwdcommande, mais pas dans le gnome-control-center, là, il se bloque juste après qu'il me le permette appuyer sur Change. Bien qu'il s'agisse peut-être d'un bug sur lequel je dois déposer un rapport ...
2
@ParanoidPanda Ce serait à cause de la mauvaise programmation dans gnome-control-center, pas parce que cela ne fonctionne pas. La configuration PAM est certainement la meilleure façon de procéder.
Seth