4.3. Sécurité des mots de passe

Les mots de passe constituent la méthode principale utilisée par Red Hat Enterprise Linux pour vérifier l'identité d'un utilisateur. Dans de telles circonstances, la sécurité des mots de passe a une très grande importance dans le cadre de la protection de l'utilisateur, du poste de travail et du réseau.

Pour des raisons de sécurité, le programme d'installation configure le système de manière à ce que l'algorithme Message-Digest Algorithm (MD5) et les mots de passe masqués soient utilisés. Il est fortement recommandé de ne pas modifier ces paramètres.

Si vous désélectionnez les mots de passe MD5 lors de l'installation, l'ancien format Data Encryption Standard (DES) sera alors utilisé. Ce format limite les mots de passe à des entités composées de huit caractères alphanumériques (excluant les signes de ponctuation et tout autre caractère spécial) et fournit un faible niveau de cryptage de 56-bit.

Si vous désélectionnez les mots de passe masqués durant l'installation, tous les mots de passe seront stockés en tant que hachage à sens unique dans le fichier /etc/passwd qui est lisible par tout un chacun. Dans de telles circonstances, le système est vulnérable aux tentatives de craquage de mots de passe hors ligne. Si un agresseur peut s'approprier l'accès à un ordinateur en tant qu'un utilisateur régulier, il peut copier le fichier /etc/passwd sur son propre ordinateur et ensuite exécuter tout programme de craquage de mots de passe sur ce dernier. Si le fichier contient un mot de passe non-sécurisé, ce n'est qu'une question de temps avant que le craqueur de mots de passe ne le découvre.

Les mots de passe masqués éliminent ce type d'attaque en stockant les hachages de mots de passe dans le fichier /etc/shadow qui n'est lisible que par le super-utilisateur.

Dans de telles circonstances, l'agresseur est obligé de craquer le mot de passe à distance en se connectant à un service réseau sur l'ordinateur, tel que SSH ou FTP. Ce type d'agression force brute est plus lent et laisse des traces évidentes puisque des centaines de tentatives de connexions infructueuses sont enregistrées dans les fichiers système. Bien sûr, si le craqueur lance une attaque au milieu de la nuit et que vous disposez de mots de passe faiblement protégés, ce dernier pourra réussir dans sa tentative avant même le lever du jour et modifier les fichiers journaux pour effacer ses traces.

Au-delà des problèmes de format et de stockage, il existe le problème du contenu. La mesure la plus importante qu'un utilisateur puisse prendre pour protéger son compte contre le craquage de mots de passe consiste à créer un mot de passe vraiment hermétique.

4.3.1. Création d'un mot de passe hermétique

Lors de la création d'un mot de passe sécurisé, il est recommandé de suivre les instructions suivantes :

N'utilisez pas les stratégies suivantes :

  • N'utilisez pas uniquement des mots et des nombres — Vous ne devriez pas utiliser uniquement des nombres et des mots dans un mot de passe.

    Évitez par exemple les choix suivants :

    • 8675309

    • juan

    • hackme

  • N'utilisez pas de mots reconnaissables — Évitez d'utiliser des mots comme des noms propres, des mots du dictionnaire ou même des termes tirés de programmes télévisés ou de romans, même s'ils sont terminés par des nombres.

    Évitez par exemple les choix suivants :

    • john1

    • DS-9

    • mentat123

  • N'utilisez pas de mots d'une langue étrangère — Les programmes de craquage de mots de passe effectuent souvent leur comparaison par rapport à des listes de mots qui incluent les dictionnaires de nombreuses langues étrangères. Ainsi, l'utilisation de langues étrangères comme stratégie pour des mots de passe sécurisés n'est pas vraiment efficace.

    Évitez par exemple les choix suivants :

    • cheguevara

    • bienvenido1

    • 1dumbKopf

  • N'utilisez pas la terminologie des pirates — Si vous pensez que vous faites partie de l'élite parce que vous utilisez la terminologie des pirates — également appelée langage 1337 (LEET) — dans votre mot de passe, reconsidérez la chose ! En effet, de nombreuses listes de mots incluent le langage LEET.

    Évitez par exemple les choix suivants :

    • H4X0R

    • 1337

  • N'utilisez pas d'informations personnelles — Évitez l'utilisation de toute information personnelle. Si des agresseurs connaissent votre identité, il leur sera facile de deviner votre mot de passe. Ci-dessous figure une liste de types d'informations à éviter lors de la création d'un mot de passe :

    Évitez par exemple les choix suivants :

    • Votre nom

    • Le nom d'animaux domestiques

    • Les noms de certains membres de votre famille

    • Toute date de naissance

    • Votre numéro de téléphone ou code postal

  • N'inversez pas les lettres de mots reconnaissables — Les vérificateurs de mots de passe performants inversent toujours les lettres de mots courants ; ainsi, cette stratégie appliquée à un mauvais choix de mot de passe ne le rend pas plus sûr.

    Évitez par exemple les choix suivants :

    • R0X4H

    • nauj

    • 9-DS

  • Ne gardez pas de trace de votre mot de passe — Ne conservez jamais votre mot de passe sur papier. Il est beaucoup plus sûr de le mémoriser.

  • N'utilisez pas le même mot de passe pour tous les ordinateurs — Il est important d'attribuer des mots de passe différents à tous vos ordinateurs. De cette façon, si un système est compromis, l'ensemble de vos ordinateurs ne sera pas immédiatement en danger.

Suivez les recommandations suivantes :

  • Assurez-vous que votre mot de passe a une longueur d'au moins huit caractères — Plus le mot de passe est long, mieux c'est. Si vous utilisez des mots de passe MD5, ils devraient avoir une longueur d'au moins 15 caractères. Avec des mots de passe DES, utilisez la longueur maximale — huit caractères.

  • Mélangez les lettres minuscules et majuscules — Red Hat Enterprise Linux étant sensible à la casse, il est recommandé de mélanger minuscules et majuscules afin de rendre le mot de passe le plus hermétique possible.

  • Mélangez lettres et chiffres — En incorporant des chiffres dans les mots de passe, en particulier lorsqu'ils se trouvent à l'intérieur du mot (pas simplement au début ou à la fin) il est possible de rendre le mot de passe plus hermétique.

  • Incluez des caractères autres que les caractères alphanumériques — Des caractères spéciaux comme &, $ et > permettent de rendre le mot de passe beaucoup plus hermétique (ce qui n'est pas possible avec des mots de passe DES).

  • Choisissez un mot de passe dont vous vous souviendrez — Le meilleur des mots de passe n'est pas vraiment utile si vous ne pouvez pas vous en rappeler. Essayez donc d'utiliser des acronymes ou autres moyens mnémotechniques pour vous aider à mémoriser vos mots de passe.

Avec toutes ces règles, la création d'un mot de passe remplissant tous les critères d'un bon mot de passe tout en évitant ceux d'un mauvais mot de passe semble une tâche très difficile. Heureusement, en suivant certaines étapes très simples, il est possible de créer un mot de passe facilement mémorisable et sûr.

4.3.1.1. Méthodologie pour la création d'un mot de passe sûr

Il existe de nombreuses méthodes pour créer des mots de passes sûrs. L'une des méthodes les plus populaires consiste à utiliser des acronymes. Par exemple :

  • Pensez à une citation connue et inoubliable, comme :

    « rien ne sert de courir, il faut partir à point. »

  • Ensuite, transformez-la en acronyme (incluant la ponctuation).

    rnsdc,ifpàp.

  • Ajoutez un certain degré de complexité en substituant les lettres de l'acronyme par des chiffres et symboles. Par exemple, substituez la lettre p par 7 et la lettre n par le symbole arobase (@), comme suit :

    r@sdc,if7à7.

  • Ajoutez encore plus de complexité en mettant en majuscule au moins une lettre, comme par exemple la lettre C.

    r@sdC,if7à7.

  • Finalement, n'utilisez jamais l'exemple de mot de passe ci-dessus sur aucun de vos systèmes.

Il est certes impératif de créer des mots de passe, mais une bonne gestion de ces derniers est également importante, particulièrement dans le cas d'administrateurs système au sein de grandes sociétés. La partie suivante examine de façon détaillée de bonnes stratégies pour créer et gérer des mots de passe utilisateurs au sein d'une société.

4.3.2. Création de mots de passe utilisateurs au sein d'une société

Si une société compte un grand nombre d'utilisateurs, les administrateurs système ont à leur disposition deux options simples pour forcer l'utilisation de bons mots de passe. Ils peuvent soit créer des mots de passe pour les utilisateurs, soit laisser les utilisateurs créer leur propre mot de passe, tout en vérifiant que ces derniers sont bien de qualité acceptable.

La création de mots de passe pour les utilisateurs permet certes de s'assurer que les mots de passe sont bien choisis, mais cette tâche devient de plus en plus difficile au fur et à mesure que la société grandit. Cette stratégie augmente également le risque que les utilisateurs écrivent leur mot de passe.

Pour ces raisons, la plupart des administrateurs système préfèrent que les utilisateurs créent leur propre mot de passe, mais les vérifient activement afin de s'assurer qu'ils sont acceptables et, dans certains cas, forcent les utilisateurs à changer leurs mots de passes périodiquement grâce à l'attribution d'une durée de vie aux mots de passe.

4.3.2.1. Utilisation forcée de mots de passe hermétiques

Afin de protéger le réseau contre toute intrusion, il est recommandé aux administrateurs système de vérifier que les mots de passe utilisés au sein d'une société sont bien hermétiques. Lorsque le système demande aux utilisateurs de créer ou de changer leurs mots de passe, ils peuvent utiliser l'application en ligne de commande passwd, qui prend en charge les Modules d'authentification enfichables (PAM) et vérifiera si le mot de passe est facile à craquer ou s'il est trop court au moyen du module PAM pam_cracklib.so. Étant donné que PAM est personnalisable, il est possible d'ajouter d'autres vérificateurs d'intégrité des mots de passe en utilisant par exemple pam_passwdqc (disponible à partir du site http://www.openwall.com/passwdqc/) ou en écrivant votre propre module. Pour obtenir une liste des modules PAM disponibles, rendez-vous à l'adresse suivante : http://www.kernel.org/pub/linux/libs/pam/modules.html. Pour davantage d'informations sur PAM, reportez-vous au chapitre intitulé Modules d'authentification enfichables (PAM) du Guide de référence de Red Hat Enterprise Linux.

Toutefois, il est important de noter ici que la vérification effectuée sur les mots de passe lors de leur création ne permet pas de découvrir les mauvais mots de passe de manière aussi efficace qu'en exécutant un programme de craquage de mots de passe pour les mots de passe utilisés au sein d'une société.

De nombreux programmes de craquage de mots de passe peuvent être utilisés sous Red Hat Enterprise Linux, bien qu'aucun ne soit vendu avec le système d'exploitation lui-même. Ci-dessous figure une liste de certains des programmes de craquage de mots de passe les plus populaires :

NoteRemarque
 

Aucun de ces outils n'est fourni avec Red Hat Enterprise Linux. Ils ne sont donc d'aucune manière pris en charge par Red Hat, Inc..

  • John The Ripper — Un programme de craquage de mots de passe rapide et flexible. Il permet l'utilisation de multiples listes de mots et a la possibilité de craquer des mots de passe par force brute (brute-force cracking). Ce dernier est disponible en ligne à l'adresse suivante : http://www.openwall.com/john/.

  • Crack — Outre le fait qu'il est probablement le logiciel de craquage de mots de passe le plus connu, Crack est également très rapide, bien que d'utilisation moins simple que John The Ripper. Il est disponible en ligne à l'adresse suivante : http://www.crypticide.com/users/alecm/.

  • Slurpie — Le programme Slurpie est semblable à John The Ripper et Crack, à la différence près qu'il est conçu pour une exécution simultanée sur de multiples ordinateurs, créant ainsi une attaque de craquage de mots de passe distribuée. Il est également disponible avec d'autres outils d'évaluation de sécurité en relation avec des agressions distribuées qui se trouvent en ligne à l'adresse suivante : http://www.ussrback.com/distributed.htm.

AvertissementAvertissement
 

Demandez toujours une autorisation par écrit avant d'essayer de craquer des mots de passe au sein d'une société.

4.3.2.2. Expiration des mots de passe

L'attribution d'une durée de vie aux mots de passe est une autre technique utilisée par les administrateurs système pour se protéger contre l'utilisation de mauvais mots de passe au sein d'une société. En attribuant une période de validité aux mots de passe, une certaine durée (généralement 90 jours) est définie et une fois cette période écoulée, l'utilisateur est invité à créer un nouveau mot de passe. La théorie justifiant cette procédure repose sur le fait que si un utilisateur doit changer son mot de passe périodiquement, un mot de passe craqué par un agresseur ne peut servir que pour une durée limitée. Le revers de la médaille est que les utilisateurs auront plus tendance à écrire leurs mots de passe.

Sous Red Hat Enterprise Linux, il existe deux programmes principaux permettant de spécifier une durée de vie aux mots de passe : la commande chage ou l'application graphique Gestionnaire d'utilisateurs (system-config-users).

L'option -M de la commande chage détermine la durée maximale en jours pendant laquelle le mot de passe est valide. Ainsi, si vous souhaitez par exemple que le mot de passe d'un utilisateur expire dans 90 jours, saisissez la commande suivante :

chage -M 90 <username>

Dans la commande ci-dessus, remplacez <username> par le nom de l'utilisateur. Si vous ne souhaitez pas donner une durée d'expiration au mot de passe, utilisez la valeur traditionnelle 99999 après l'option -M (cette valeur correspond à une durée légèrement supérieure à 273 années).

Vous pouvez également utiliser l'application graphique Gestionnaire d'utilisateurs pour définir des politiques d'expiration de mots de passe. Pour y accéder, cliquez sur Menu principal (sur le panneau) => Paramètres de système => Utilisateurs et groupes ou saisissez la commande system-config-users à une invite du shell (par exemple, dans un terminal XTerm ou GNOME). Cliquez sur l'onglet Utilisateurs, sélectionnez l'utilisateur parmi la liste des utilisateurs et cliquez sur Propriétés (ou choisissez Fichier => Propriétés dans le menu déroulant).

Sélectionnez ensuite l'onglet Informations sur le mot de passe et insérez le nombre de jours devant précéder l'expiration du mot de passe, comme le montre la Figure 4-1.

Figure 4-1. Fenêtre de l'onglet Informations sur le mot de passe

Pour davantage d'informations sur la configuration d'utilisateurs et de groupes (y compris des instructions sur la manière de forcer des mots de passe initiaux), reportez-vous au chapitre intitulé Configuration d'utilisateurs et de groupes du Guide d'administration système de Red Hat Enterprise Linux. Pour obtenir un aperçu de la gestion d'utilisateurs et de ressources, reportez-vous au chapitre intitulé Gestion des comptes utilisateur et de l'accès aux ressources du manuel Introduction à l'administration système de Red Hat Enterprise Linux.