Les mots de passe, véritables piliers de la sécurité des comptes depuis six décennies, sont antérieurs à Unix d’une dizaine d’années. Cet article explore comment gérer efficacement vos mots de passe sous Linux, que ce soit via la ligne de commande ou l’environnement de bureau GNOME.
Comment concevoir un mot de passe robuste
L’apparition des mots de passe est intrinsèquement liée à la nécessité de protéger les données. L’émergence des systèmes informatiques multi-utilisateurs à temps partagé a mis en évidence l’impératif de séparer et de sécuriser les informations personnelles, une problématique que le mot de passe a su résoudre.
Les mots de passe demeurent la méthode d’authentification la plus répandue pour accéder à nos comptes. Bien que l’authentification à deux facteurs ou multifactorielle renforce cette protection, et que l’authentification biométrique offre une alternative, le bon vieux mot de passe reste incontournable. Il est donc essentiel de savoir comment les créer et les utiliser de manière optimale, en évitant certaines pratiques obsolètes.
Voici quelques règles fondamentales concernant les mots de passe :
- Privilégiez les phrases de passe aux mots de passe : Une combinaison de trois ou quatre mots sans lien logique, séparés par des signes de ponctuation, des symboles ou des chiffres, offre une sécurité accrue par rapport à une suite de caractères aléatoires ou à un mot de passe avec des voyelles substituées par des chiffres.
- Ne réutilisez jamais vos mots de passe : Évitez de les utiliser sur le même système ou sur plusieurs systèmes différents.
- Protégez la confidentialité de vos mots de passe : Les mots de passe sont strictement personnels et ne doivent jamais être divulgués.
- Ne basez pas vos mots de passe sur des informations personnelles : Évitez d’utiliser les noms de membres de votre famille, de vos équipes sportives, de vos groupes préférés ou toute autre information qui pourrait être facilement devinée à partir de vos profils sur les réseaux sociaux.
- N’utilisez pas de schémas de mots de passe : Abstenez-vous de créer des mots de passe basés sur des schémas de clavier ou des combinaisons de touches courantes, comme « qwerty » ou « 1q2w3e ».
Les politiques d’expiration des mots de passe ne sont plus considérées comme une pratique idéale. Si vous utilisez des phrases de passe fortes et sécurisées, vous n’aurez besoin de les modifier que si vous suspectez une compromission. Les changements de mots de passe réguliers peuvent inciter à de mauvaises pratiques, de nombreuses personnes se contentant d’ajouter une date ou un chiffre à un mot de passe de base.
Le National Institute of Standards and Technology (NIST) a publié de nombreux documents sur les mots de passe et l’authentification des utilisateurs. Ces recommandations sont disponibles publiquement dans la Publication spéciale 800-63-3 : Directives d’authentification numérique.
Le fichier passwd
Traditionnellement, les systèmes d’exploitation de type Unix stockaient les mots de passe, ainsi que diverses informations relatives aux comptes utilisateurs, dans le fichier « /etc/passwd ». De nos jours, bien que ce fichier contienne toujours les informations de compte, les mots de passe chiffrés sont conservés dans le fichier « /etc/shadow », dont l’accès est restreint, contrairement au fichier « /etc/passwd » qui est accessible à tous.
Pour consulter le fichier « /etc/passwd », saisissez la commande suivante :
less /etc/passwd
Le contenu du fichier s’affichera alors. Examinons les détails du compte « Mary » par exemple.
Chaque ligne représente un compte unique (ou un programme qui possède un compte « utilisateur »). Les sept champs suivants, séparés par deux points, sont présents :
- Nom d’utilisateur : Le nom de connexion du compte.
- Mot de passe : Un « x » indique que le mot de passe est conservé dans le fichier /etc/shadow.
- ID utilisateur : L’identifiant utilisateur associé au compte.
- ID de groupe : L’identifiant de groupe lié au compte.
- GECOS : Il s’agit de l’abréviation de General Electric Comprehensive Operating System Supervisor. De nos jours, le champ GECOS contient un ensemble d’informations sur le compte, délimitées par des virgules, telles que le nom complet, le numéro de bureau ou les numéros de téléphone du bureau et du domicile.
- Répertoire de base : Le chemin d’accès au répertoire de base du compte.
- Shell : Le programme lancé lors de la connexion de l’utilisateur à l’ordinateur.
Les champs vides sont représentés par deux points.
Il est intéressant de noter que la commande « finger » extrait ses informations du champ GECOS.
finger mary
Le fichier shadow
Pour consulter le fichier « /etc/shadow », vous devrez utiliser la commande « sudo »:
sudo less /etc/shadow
Le contenu du fichier s’affichera. Il devrait y avoir une entrée correspondante dans le fichier « /etc/shadow » pour chaque entrée du fichier « /etc/passwd ».
Chaque ligne représente un compte unique, avec neuf champs séparés par deux points :
- Nom d’utilisateur : Le nom de connexion du compte.
- Mot de passe chiffré : Le mot de passe du compte sous forme chiffrée.
- Dernière modification : La date à laquelle le mot de passe a été modifié pour la dernière fois.
- Minimum de jours : Le nombre minimal de jours entre deux changements de mot de passe. L’utilisateur doit respecter ce délai avant de pouvoir modifier son mot de passe. Une valeur zéro permet des modifications aussi fréquentes que souhaité.
- Maximum de jours : Le nombre maximal de jours entre deux changements de mot de passe. En général, ce champ contient une valeur très élevée. Dans l’exemple de « marie », la valeur est de 99 999 jours, soit plus de 27 ans.
- Jours d’alerte : Le nombre de jours avant l’expiration du mot de passe où un message de rappel sera affiché.
- Délai de grâce : Le nombre de jours (période de grâce) après l’expiration du mot de passe pendant lesquels le système attend avant de désactiver le compte.
- Date d’expiration du compte : La date à laquelle le propriétaire du compte ne pourra plus se connecter. Si ce champ est vide, le compte n’expire jamais.
- Champ de réserve : Un champ vide pour une éventuelle utilisation future.
Les champs vides sont représentés par deux points.
Afficher la date de « Dernière modification »
L’Époque Unix a débuté le 1er janvier 1970. La valeur du champ « Dernière modification », par exemple 18 209, représente le nombre de jours écoulés depuis le 1er janvier 1970, date à laquelle le mot de passe du compte « mary » a été modifié.
Pour afficher la valeur de « Dernière modification » sous forme de date, utilisez cette commande :
date -d "1970-01-01 18209 days"
La date affichée correspond à minuit le jour de la dernière modification du mot de passe. Dans cet exemple, il s’agit du 9 novembre 2019.
La commande passwd
La commande « passwd » est utilisée pour modifier votre mot de passe et, si vous disposez des privilèges « sudo », pour changer ceux des autres utilisateurs.
Pour modifier votre propre mot de passe, utilisez la commande « passwd » sans paramètre :
passwd
Vous devrez saisir votre mot de passe actuel, puis votre nouveau mot de passe à deux reprises.
Modifier le mot de passe d’un autre utilisateur
Pour modifier le mot de passe d’un autre compte, vous devez utiliser la commande « sudo » et indiquer le nom du compte :
sudo passwd mary
Vous devrez saisir votre mot de passe pour confirmer que vous disposez des privilèges de superutilisateur. Ensuite, saisissez le nouveau mot de passe du compte, puis confirmez-le en le saisissant à nouveau.
Forcer un changement de mot de passe
Pour obliger un utilisateur à changer son mot de passe lors de sa prochaine connexion, utilisez l’option « -e » (expire) :
sudo passwd -e mary
Un message vous informera que la date d’expiration du mot de passe a été modifiée.
Lors de la prochaine connexion, la propriétaire du compte « mary » devra changer son mot de passe :
Verrouiller un compte
Pour verrouiller un compte, utilisez la commande « passwd » avec l’option « -l » (lock) :
sudo passwd -l mary
Un message vous informera que la date d’expiration du mot de passe a été modifiée.
Le propriétaire du compte ne pourra plus se connecter à l’ordinateur avec son mot de passe. Pour déverrouiller le compte, utilisez l’option « -u » (unlock) :
sudo passwd -u mary
Là encore, vous serez informé que les données d’expiration du mot de passe ont été modifiées :
Une fois encore, le propriétaire du compte ne pourra plus se connecter à l’ordinateur avec son mot de passe, mais il pourra toujours se connecter via une méthode d’authentification ne nécessitant pas le mot de passe, comme les clés SSH.
Si vous souhaitez réellement empêcher l’accès à l’ordinateur à un utilisateur, vous devez faire expirer son compte.
La commande chage
Il n’y a pas de « n » dans « chage », qui signifie « change age ». Vous pouvez utiliser la commande « chage » pour définir une date d’expiration pour un compte.
Examinons les paramètres actuels du compte « mary », en utilisant l’option « -l » (liste) :
sudo chage -l mary
La date d’expiration du compte est définie sur « jamais ».
Pour modifier la date d’expiration, utilisez l’option « -E » (expiration). Si vous la définissez sur zéro, elle sera interprétée comme « zéro jour depuis l’époque Unix », c’est-à-dire le 1er janvier 1970.
Saisissez la commande suivante :
sudo chage -E0 mary
Vérifiez à nouveau la date d’expiration du compte :
sudo chage -l mary
La date d’expiration étant dépassée, ce compte est désormais véritablement verrouillé, quelle que soit la méthode d’authentification que le propriétaire pourrait utiliser.
Pour réactiver le compte, utilisez la même commande avec « -1 » comme paramètre numérique :
sudo chage -E -1 mary
Saisissez la commande suivante pour vérifier :
sudo chage -l mary
La date d’expiration du compte est de nouveau définie sur « jamais ».
Modifier le mot de passe d’un compte via GNOME
Ubuntu et de nombreuses autres distributions Linux utilisent GNOME comme environnement de bureau par défaut. Vous pouvez utiliser la fenêtre « Paramètres » pour changer le mot de passe d’un compte.
Pour ce faire, cliquez sur l’icône Paramètres dans le menu système.
Dans la fenêtre Paramètres, cliquez sur « Détails » dans le volet de gauche, puis sur « Utilisateurs ».
Cliquez sur le compte dont vous voulez modifier le mot de passe. Dans notre exemple, nous sélectionnerons « Mary Quinn ». Cliquez sur le compte, puis sur « Déverrouiller ».
Vous serez invité à saisir votre mot de passe. Une fois l’authentification effectuée, les détails de « Mary » deviendront modifiables. Cliquez sur le champ « Mot de passe ».
Dans la fenêtre « Modifier le mot de passe », sélectionnez le bouton radio « Définir un mot de passe maintenant ».
Saisissez le nouveau mot de passe dans les champs « Nouveau mot de passe » et « Vérifier le nouveau mot de passe ».
Si les mots de passe saisis correspondent, le bouton « Modifier » deviendra vert ; cliquez dessus pour enregistrer le nouveau mot de passe.
Dans d’autres environnements de bureau, les outils de gestion de compte seront similaires à ceux de GNOME.
Sécurité et vigilance
Depuis 60 ans, le mot de passe constitue un élément fondamental de la sécurité des comptes en ligne et il est peu probable qu’il disparaisse de sitôt.
Il est donc primordial de les gérer avec discernement. En comprenant le fonctionnement des mots de passe sous Linux et en adoptant les meilleures pratiques, vous assurerez la sécurité de votre système.