Qu'est-ce que le sel dans un hachage de mot de passe Linux et pourquoi est-ce important ?

Dernière mise à jour: 04/12/2025
Auteur: Isaac
  • Le sel est une chaîne de caractères aléatoire ajoutée au mot de passe avant le hachage afin d'obtenir des hachages uniques pour chaque utilisateur.
  • Linux Il stocke le hachage, le sel et l'algorithme dans /etc/shadow, renforçant ainsi la sécurité contre les attaques par dictionnaire et les tables arc-en-ciel.
  • Les bonnes pratiques exigent des sels longs, aléatoires et uniques, ainsi que des algorithmes de hachage robustes et bases de données bien protégé.
  • Le salage des mots de passe devrait être intégré à des politiques de sécurité plus larges comprenant des mots de passe forts, l'authentification multifacteur et des gestionnaires de mots de passe.

sel dans le hachage du mot de passe sous Linux

Si vous travaillez avec des systèmes GNU/Linux ou si vous vous souciez simplement de la sécurité de vos comptes, vous avez probablement déjà entendu parler de sel dans le hachage du mot de passeC'est un de ces concepts dont on parle beaucoup, mais qui n'est souvent compris qu'à moitié : cela paraît technique, mais en réalité, cela fait la différence entre un système facile à pirater et un système beaucoup plus résistant aux attaques.

En bref, le sel est un élément clé pour rendre les hachages de mots de passe imprévisiblesSon fonctionnement repose sur l'ajout de données aléatoires avant l'application de l'algorithme de hachage. Ainsi, même si deux utilisateurs ont le même mot de passe, le résultat stocké dans la base de données sera différent. L'implémentation spécifique sous Linux, son lien avec le fichier `/etc/shadow`, les outils tels que `mkpasswd` et les bonnes pratiques de sécurité modernes constituent un sujet à part entière que nous explorerons en détail.

Qu'est-ce que le sel exactement dans un hachage de mot de passe ?

définition du sel dans le hachage de mot de passe

En cryptographie, un de sel (le sel) est un chaîne de caractères aléatoire Ce hachage est ajouté au mot de passe de l'utilisateur avant l'application de la fonction de hachage. L'objectif est d'obtenir un hachage unique, même si le mot de passe en clair est identique pour plusieurs utilisateurs.

Lorsqu'un utilisateur crée ou modifie son mot de passe, le système génère un sel aléatoireIl le combine avec le mot de passe (avant, après ou dans un format spécifique selon le schéma) et applique un algorithme de hachage à cette combinaison, tel que SHA-256 o SHA-512Le mot de passe n'est pas stocké dans la base de données, mais plutôt dans la hachage de (mot de passe + sel)et, dans la plupart des systèmes, le sel lui-même est également stocké avec le hachage.

Cette technique rend bon nombre des techniques d'attaque basées sur des hachages précalculésÀ l'instar des tables arc-en-ciel, ce système complique considérablement les attaques par dictionnaire et par force brute à grande échelle. Un attaquant ne peut plus exploiter le fait que plusieurs utilisateurs partagent un même mot de passe, car chaque mot de passe aura un hachage différent.

Il est important de comprendre que le sel n'est pas un secret en soi : Ce n'est ni un mot de passe ni une clé privéeSa fonction est d'introduire de l'aléatoire et de l'unicité dans le processus de hachage. La sécurité dépend toujours de son utilisation. mots de passe forts y algorithmes de hachage appropriés, de préférence spécifiquement conçus pour les mots de passe (tels que bcrypt, scrypt, Argon2), bien que de nombreux systèmes Linux classiques utilisent des variantes de SHA-256 ou SHA-512.

Comment fonctionne le salage des mots de passe étape par étape

Comment fonctionne le salage des mots de passe

Le processus de salage peut être résumé en une série d'étapes relativement simples, mais avec un impact énorme sur la sécurité:

  Comment détecter les processus malveillants avec Process Explorer et VirusTotal

Tout d'abord, lorsqu'un utilisateur s'inscrit ou modifie son mot de passe, le système génère un sel unique et aléatoire pour cette authentification. Ce sel est généralement d'une longueur suffisante (par exemple, 16 octets ou plus) et est obtenu à partir d'un générateur de nombres aléatoires cryptographiquement sécurisé.

Ensuite, le mot de passe choisi par l'utilisateur est combiné avec ce sel pour former un chaîne intermédiaireCette combinaison peut être aussi simple que la concaténation du sel et du mot de passe, ou prendre une forme plus complexe définie par le schéma de hachage. L'important est que chaque utilisateur obtienne une combinaison différente.

Ensuite, un algorithme de hachage unidirectionnelLe résultat est une chaîne de caractères apparemment aléatoire, le hachage, de longueur fixe, qui sera stockée dans la base de données avec le sel. Dans les systèmes modernes, on recherche des algorithmes capables de produire ce hachage. sorties longues et complexesCela augmente l'espace de recherche et rend les attaques par force brute plus coûteuses.

Enfin, lorsque l'utilisateur se connecte, le système récupère à nouveau le mot de passe saisi. sel associé À partir de la base de données, le système répète exactement le même processus de combinaison et de hachage, puis compare le résultat avec le hachage stocké. S'ils correspondent, il sait que le mot de passe est correct sans avoir besoin de connaître le texte en clair.

Ce mécanisme garantit que même en cas de fuite de la base de données, l'attaquant ne verra que ce qu'il voit. des hachis individuels avec leurs propres selsAu lieu d'un ensemble de hachages comparables, stopper une attaque n'est pas magique, mais cela devient nettement plus coûteux en termes de calcul.

Avantages de l'utilisation du sel dans les hachages de mots de passe

Avantages de l'utilisation du sel dans les mots de passe

La principale raison d'utiliser le salage est que renforce la sécurité des mots de passe stockés contre une grande variété d'attaques. Mais il convient de détailler les avantages spécifiques.

Premièrement, le salage fournit résistance aux attaques de dictionnairesSans sel, un attaquant peut préparer une longue liste de mots de passe courants et leurs hachages, puis les comparer à la base de données volée. Avec un sel unique par utilisateur, ces hachages précalculés deviennent inutiles, car chaque combinaison mot de passe + sel génère une valeur différente.

Deuxièmement, l'utilisation du sel diminue l'efficacité de tables arc-en-cielIl s'agit simplement de bases de données précalculées de hachages pour les mots de passe courants, destinées à accélérer leur récupération. Or, comme le résultat dépend du sel utilisé, ces tables, conçues pour des hachages non salés, deviennent inutiles, ou du moins extrêmement inefficaces.

Un autre avantage évident est qu'il améliore le confidentialité en cas de fuiteMême si un intrus accède à la table des utilisateurs, à leur hachage et à leur sel, il ne pourra pas identifier rapidement les utilisateurs partageant le même mot de passe ni lancer facilement des attaques massives. Chaque compte requiert une attention particulière, ce qui est généralement impraticable à grande échelle.

  Alerte à la nouvelle arnaque WhatsApp : Bizum et les appels vidéo pour voler des comptes et de l'argent

De plus, le salage ajoute de la complexité à la attaques par force bruteAu lieu de pouvoir tester un mot de passe candidat sur tous les hachages simultanément, l'attaquant est contraint de considérer le sel de chaque utilisateur, ce qui multiplie la charge de travail totale. Si cela s'accompagne d'un algorithme de hachage lent et paramétrable (comme bcrypt ou Argon2), le coût de l'attaque augmente encore davantage.

Enfin, le salage est une technique qui s'adapte bien à l'évolution technologique. Même si le matériel informatique s'améliore et que de nouvelles attaques apparaissent, la combinaison d'un haschisch robuste et d'un sel unique Il maintient un niveau de difficulté élevé et évolutif : vous pouvez augmenter la longueur du sel, renforcer l’algorithme, augmenter le coût de calcul, etc.

Comment Linux implémente le salage des mots de passe (/etc/shadow)

Dans les systèmes Linux et autres variantes *NIX, les mots de passe des utilisateurs ne sont pas stockés dans /etc/passwd, mais dans le fichier / etc / shadowCe fichier, accessible uniquement au superutilisateur, stocke les hachages des mots de passe ainsi que des informations supplémentaires, et c'est là que l'utilisation du sel et de l'algorithme de hachage est clairement visible.

Les lignes du fichier /etc/shadow ont une structure similaire à :

utilisateur:$id$sal$hash:champs_supplémentaires…

Le symbole $ Séparez les différentes parties. La première partie après le nom d'utilisateur indique le type d'algorithme utilisé. Par exemple, 1 XNUMX $ représente généralement MD5, 5 XNUMX $ SHA-256 et 6 XNUMX $ SHA-512 est l'algorithme le plus courant dans les distributions modernes car il offre une sécurité supérieure aux anciens systèmes basés sur DES ou MD5.

Après l'apparition de l'identifiant de l'algorithme salet ensuite le hachage résultantTout ceci se déroule dans le même champ. Lors de la validation d'un mot de passe, le système lit l'identifiant (le sel), applique l'algorithme correspondant au mot de passe saisi et compare le hachage calculé avec celui enregistré.

Si vous souhaitez vérifier rapidement quels utilisateurs ont des mots de passe chiffrés et quel algorithme est utilisé, vous pouvez utiliser une commande comme grep '\$' /etc/shadowDans ce contexte, le symbole dollar ($) sert à repérer les lignes contenant des dièses au format moderne. Il doit être précédé d'une barre oblique inverse car, dans les expressions régulières, il signifie « fin de ligne ».

Les comptes sans mot de passe ou les comptes verrouillés affichent généralement une valeur de ce type dans ce champ. ! o * Au lieu d'un hachage avec des dollars, indiquant qu'il ne peut pas être authentifié à l'aide d'un mot de passe standard, cette structure met en évidence un point essentiel : Linux intègre le salage dans son format de stockage mots de passe nativement.

Différence entre le hachage et le salage des mots de passe

Il est important de bien distinguer deux concepts qui sont parfois confondus : Hachage y salageLe hachage de mot de passe est le processus qui transforme un mot de passe en une valeur illisible grâce à un algorithme à sens unique. Le serveur n'a jamais besoin de connaître le mot de passe original ; il lui suffit de vérifier que l'utilisateur connaît le mot de passe correct, car le hachage obtenu est identique.

  Qu'est-ce que WINUX : Linux avec une âme libre et l'apparence de Windows

Le problème est que si deux mots de passe sont identiques, le Le haschisch non salé sera également identique.Cela permet à un attaquant de comparer et de regrouper les utilisateurs par mot de passe ou d'utiliser des tables précalculées. De plus, si l'algorithme de hachage est rapide et conçu pour garantir l'intégrité des données (comme le simple SHA-256), il devient plus vulnérable aux attaques par force brute massives.

Le salage intervient précisément pour remédier à cette faiblesse : il s'agit de ajouter des données aléatoires au mot de passe avant le hachage. Par conséquent, même si deux utilisateurs choisissent « casa » comme mot de passe, les hachages dans la base de données seront complètement différents, car l'un aura, par exemple, « casa+7Ko# » et l'autre « casa8p?M » comme chaîne de pré-hachage.

Ainsi, le hachage et le salage ne sont pas concurrents, mais complémentaires. Le hachage assure le propriété d'unidirectionnalité et la facilité de vérification ; le sel fournit unicité et résilience face aux attaques massivesUne solution de stockage sécurisé des mots de passe combine les deux techniques, idéalement en utilisant un algorithme conçu à cet effet, avec un coût configurable.

Utilisation du sel sous Linux avec mkpasswd

Dans les environnements GNU/Linux et autres systèmes UnixUn moyen très pratique d'expérimenter le salage est l'outil mkpasswdCette commande sert à générer mots de passe chiffrés de manière sécurisée, et est couramment intégré aux processus de création d'utilisateurs, aux scripts d'administration, etc.

La syntaxe de base de mkpasswd vous permet de spécifier le mot de passe à chiffrer et une série d'options telles que le type d'algorithme (par exemple, des, md5, sha-256, sha-512) à l'aide de l'option -mDans les systèmes modernes, la solution la plus judicieuse est d'opter pour SHA-512 à minima, ou par des systèmes encore plus robustes si la distribution le permet.

L'option particulièrement intéressante dans le contexte du salage est -SPermettre ajouter du sel au mot de passe avant de le chiffrer. S'il n'est pas spécifié manuellement, mkpasswd peut générer un sel aléatoire dans chaque exécutionde sorte que, même en utilisant le même mot de passe de connexion, le hachage résultant est différent à chaque fois.

Cela se vérifie aisément : si vous chiffrez « password123 » plusieurs fois avec mkpasswd, en utilisant SHA-512 et un sel aléatoire, vous obtiendrez des hachages complètement différents. En revanche, si vous utilisez la même valeur de sel avec l’option -S, le hachage sera toujours identique, car la combinaison mot de passe + sel reste la même.

Grâce à cet outil, c'est très facile Préparez des mots de passe chiffrés avec du sel. Le sel est utilisé pour chiffrer les mots de passe. pour ajouter des éléments aux fichiers de configuration, gérer les utilisateurs manuellement ou tester le comportement de salage sans avoir à programmer quoi que ce soit.

Qu’est-ce que l’hygiène numérique ?
Article connexe:
Hygiène numérique : sécurité, bien-être et ordre dans votre vie en ligne