Passer au contenu principal

Qu’est-ce que le hachage des mots de passe ?

|W. Perry Wortman

Il y a quelques années, des géants de la technologie comme Facebook et Google ont fait la une des journaux en avouant qu’ils stockaient des mots de passe en texte clair. Cela signifie que toute personne ayant accès à leurs bases de données peut facilement voir ces mots de passe en texte clair, un véritable danger pour les données sensibles.

De nombreuses entreprises utilisent le hachage de mots de passe pour stocker les mots de passe en toute sécurité, ce qui permet de répondre à ces préoccupations et de renforcer la sécurité. Dans cet article de blog, nous expliquerons en quoi consiste le hachage des mots de passe, comment les développeurs procèdent au hachage des mots de passe, les algorithmes qu’ils utilisent et les limites du processus.

Voulez-vous en savoir plus sur l’utilisation du gestionnaire de mots de passe Dashlane pour particulier ou pour entreprise ?

Découvrez nos forfaits pour gestionnaires de mots de passe pour particulier ou commencez avec un essai gratuit pour les entreprises.

Qu’est-ce que le hachage des mots de passe ?

Le hachage des mots de passe consiste à convertir les mots de passe en une chaîne alphanumérique à l’aide d’algorithmes spécialisés. 

Votre nom d’utilisateur et votre mot de passe subissent souvent un hachage lorsque vous créez un nouveau compte sur un site Web ou une application. Au lieu de stocker le mot de passe sous forme de texte clair, un algorithme mathématique transforme votre mot de passe en un code unique.

Représentation graphique du hachage des mots de passe. À gauche, le mot de passe de l'utilisateur est affiché. Au milieu, la fonction de hachage Argon2 est affichée. À droite, le mot de passe de l'utilisateur a été transformé en un code unique.

Quelle est la différence entre le hachage et le chiffrement ?

À première vue, le hachage et le chiffrement des mots de passe peuvent sembler similaires. Dans les deux cas, les informations sont transformées en des codes complexes afin de les protéger des pirates informatiques. Il existe toutefois des différences fondamentales entre les deux.

Le chiffrement est semblable à une voie à double sens

Le chiffrement des mots de passe crée une chaîne alphanumérique aléatoire, mais il y a un hic. Le chiffrement est une fonction bidirectionnelle qui permet le déchiffrement, c’est-à-dire le décodage des valeurs chiffrées sous leur forme initiale en texte clair.

Le chiffrement est réversible, ce qui signifie que la clé de chiffrement peut déchiffrer les mots de passe pour les retransformer en texte clair. Ainsi, si des pirates informatiques s’introduisent dans votre base de données ou si un employé malveillant disposant d’un accès privilégié obtient les clés, vos mots de passe chiffrés deviennent vulnérables. 

Le hachage, par contre, est irréversible.

Il s’agit d’une fonction à sens unique. En d’autres termes, il est impossible de faire de l’ingénierie inverse et de retrouver le mot de passe original à partir de sa forme hachée. 

Le hachage est irréversible et garantit que même si quelqu’un accède aux mots de passe hachés, il ne sera pas en mesure de les déchiffrer pour retrouver les mots de passe originaux.

Protection des données vs. vérification de l’intégration des données

Le chiffrement joue un rôle crucial dans la protection des données. Il convertit les données dans un format illisible à l’aide d’une clé de chiffrement, garantissant que seules les personnes autorisées disposant de la clé correspondante peuvent déchiffrer les données et y accéder. 

Le hachage est principalement utilisé pour vérifier l’intégrité des données. Le mot de passe haché agit comme une empreinte numérique unique pour les données, ce qui permet de vérifier l’intégrité des données. Toute modification ou altération peut être détectée en comparant la valeur de hachage des données reçues avec la valeur de hachage générée au départ.

Comment fonctionne le hachage des mots de passe ?

Lorsqu’un utilisateur définit un mot de passe, une application de hachage de mots de passe utilise un algorithme de hachage pour générer une chaîne de caractères unique et la stocke ensuite dans la base de données. La taille de cette chaîne est mesurée en « bits » (abréviation de chiffres binaires), la plus petite unité de données qu’un ordinateur puisse traiter et stocker. 

Lorsque l’utilisateur tente de se connecter, l’application applique le même algorithme de hachage au mot de passe saisi et compare la chaîne obtenue à la valeur stockée dans la base de données pour authentifier l’utilisateur.

Voici un exemple pour vous présenter les détails du processus. 

Si vous choisissez « hAsh! nGisC00L » comme mot de passe et que vous le soumettez à un algorithme de hachage MD5, il produira le hachage « 5d640ca634edfaa17813cab1492208f2 », qui ne ressemble en rien au mot de passe original.

La moindre modification du mot de passe entraînera également une modification complète du mot de passe haché. Par exemple, si vous remplacez « ! » par « i » et que vous soumettez à nouveau le mot de passe modifié à l’application de hachage, vous obtiendrez une valeur complètement différente de la précédente, « 1c70088b4b9c650d49fd3ee04349dfb9 » en l’occurrence. 

Saler un mot de passe ou un hachage : qu’est-ce que cela signifie ?

Les cybercriminels font de plus en plus preuve de créativité et disposent d’outils avancés. Le hachage ne suffit donc pas pour assurer la sécurité de vos mots de passe. Vous pouvez « saler » vos mots de passe avant de les hacher pour une protection renforcée.

Bien que cela puisse ressembler à une recette de pommes de terre rissolées, « saler un hachage » en cryptographie signifie ajouter une chaîne de caractères aléatoire et unique au mot de passe d’origine avant qu’il ne soit haché. Ces chaînes supplémentaires ajoutées au mot de passe original, appelées sel, permettent d’améliorer la complexité du mot de passe sans nuire à la commodité d’utilisation.

Représentation graphique du salage d'un mot de passe À gauche, le mot de passe de l'utilisateur s'affiche comme « Dash », puis comme « Dashx6Rf2 » après l'ajout du sel. Ensuite, l'algorithme de hachage transforme le mot de passe salé en un code unique.

Le salage ne se contente pas d’améliorer la complexité des hachages de mots de passe, il résout également le problème de la duplication des mots de passe. L’utilisation de sels uniques pour chaque mot de passe garantit que même si deux utilisateurs ont des mots de passe identiques, leurs versions hachées seront différentes, car les sels sont uniques. Grâce à cette pratique, il est plus difficile pour les pirates de déchiffrer plusieurs mots de passe simultanément. 

Algorithmes de hachage courants

Comme indiqué précédemment, le hachage des mots de passe se fait à l’aide d’algorithmes mathématiques. Les algorithmes de hachage les plus courants sont les suivants :

Argon2

Argon2 est une fonction de hachage avancée et sécurisée utilisée en cryptographie et pour le hachage de mots de passe. Il est conçu pour résister à diverses attaques et offre une protection efficace pour le stockage sécurisé des mots de passe. En tirant à la fois parti de sa mémoire et de sa puissance de traitement, Argon2 complique considérablement la tâche aux pirates qui tentent de déchiffrer des mots de passe hachés. Depuis sa victoire au Password Hashing Competition (concours de hachage des mots de passe) en juillet 2015, Argon2 s’est imposé comme un algorithme de premier plan dans le chiffrement des mots de passe, offrant une sécurité robuste pour les données stockées.

​​MD5

Conçue par Ronald Rivest en 1991, la méthode Message-digest 5, ou MD5, est l’un des premiers algorithmes de hachage qui produit une valeur de hachage de 128 bits à partir d’une chaîne de caractères, quelle qu’en soit la longueur.  

Bien que cet algorithme ait constitué une sécurité de pointe à l’époque, il est aujourd’hui considéré comme peu sûr pour le hachage de mots de passe en raison de sa vulnérabilité aux attaques par collision (lorsque les pirates ciblent des entrées qui produisent des valeurs de hachage identiques). Les pirates ont désormais accès à des machines dotées d’une grande vitesse de calcul, ce qui leur permet de générer et de tester rapidement de nombreuses entrées potentielles et de deviner la bonne valeur de hachage identique.        

SHA (1 et 2)

SHA est l’acronyme de Secure Hashing Algorithm ; SHA-1 et SHA-2 sont des versions différentes du même algorithme. Ils se distinguent principalement par leur construction et la longueur du hachage qui en résulte. SHA-1 produit une valeur de hachage de 160 bits et n’est plus recommandé pour le stockage sécurisé des mots de passe, car il est sujet à des attaques par collision.

SHA-2, quant à lui, est une famille d’algorithmes de hachage, comprenant SHA-256 et SHA-512, qui produisent des valeurs de hachage de 256 bits et 512 bits, respectivement. SHA-2 est plus sécurisé que SHA-1 et même très utilisé à des fins cryptographiques autres que le hachage des mots de passe. Par exemple, le Bitcoin utilise l’algorithme de hachage SHA-256

Scrypt

Scrypt est un algorithme spécial qui crée des mots de passe hachés à forte intensité de mémoire, ce qui le rend plus résistant aux attaques par force brute. Il a été spécialement conçu pour atténuer les risques posés par les avancées matérielles en matière de piratage de mots de passe. 

Il faut une quantité importante de mémoire pour déchiffrer des hachages à forte intensité de mémoire. De ce fait, il est plus difficile pour les pirates d’effectuer des tâches simultanément sur plusieurs processeurs, ce qui augmente le coût et le temps nécessaires pour déchiffrer des mots de passe. C’est pourquoi il est souvent utilisé pour le hachage de mots de passe dans les cas qui nécessitent une sécurité plus avancée.

Whirlpool

Conçu en 2000, Whirlpool est une fonction de hachage cryptographique qui produit une valeur de hachage de 512 bits. Il utilise une structure interne complexe avec plusieurs séries d’opérations de mélange, ce qui le rend très gourmand en calculs et adapté aux applications nécessitant des niveaux de sécurité élevés. De plus, comme Whirlpool offre une taille de hachage plus importante que les autres algorithmes, il fournit un espace de sortie plus grand, qui réduit la probabilité de collisions.

RIPEMD

RIPEMD (RACE Integrity Primitives Evaluation Message Digest) est une famille d’algorithmes de hachage conçus pour offrir une sécurité et une résistance accrues contre des attaques potentielles. Il produit des valeurs de hachage de différentes longueurs de bits, RIPEMD-160 générant une valeur de hachage de 160 bits. De plus, il utilise une fonction de compression qui prend une entrée de n’importe quelle longueur aléatoire et produit un hachage de taille fixe, ce qui renforce la sécurité de l’algorithme. 

Limites du hachage des mots de passe

Malgré la robustesse de la protection qu’il offre, le hachage des mots de passe est un processus qui nécessite beaucoup de mémoire. Et il n’est pas tout à fait impossible de déchiffrer des mots de passe hachés.

Le hachage de mots de passe présente en effet quelques inconvénients, notamment :

La dégradation des bases de données

Le hachage des mots de passe peut avoir un effet négatif sur les performances des opérations de bases de données. En effet, le processus de hachage peut être très gourmand en ressources informatiques, ce qui peut ralentir les performances globales des bases de données, en particulier lorsqu’il y a de nombreux mots de passe à hacher et à vérifier. Si des techniques d’optimisation et des considérations matérielles appropriées ne sont pas mises en œuvre, cet impact peut dégrader les bases de données. 

Les algorithmes de hachage rapide peuvent être piratés

Les algorithmes de hachage rapide, tels que MD5 ou SHA-1, peuvent être vulnérables aux attaques par dictionnaire et aux tables arc-en-ciel.

  • Les attaques par dictionnaire : dans une attaque par dictionnaire, le pirate utilise une liste précalculée de mots de passe hachés (mots de passe couramment utilisés ou mots du dictionnaire) et les compare aux mots de passe hachés de la base de données pour trouver des correspondances.
  • Les attaques par table arc-en-ciel : les tables arc-en-ciel sont des tables de recherche précalculées contenant de nombreux mots de passe possibles et leurs valeurs de hachage correspondantes. Les pirates utilisent ces tables pour déchiffrer rapidement les mots de passe en comparant les valeurs de hachage des mots de passe volés ou chiffrés avec les entrées de la table. Les tables arc-en-ciel aident les pirates à retrouver les mots de passe originaux en texte clair sans passer par les calculs habituels qui prennent beaucoup de temps. En utilisant les tables arc-en-ciel, les pirates peuvent accélérer le processus de récupération des mots de passe et contourner les mesures de sécurité standard.

Les collisions de hachage

Les collisions de hachage se produisent lorsque deux entrées différentes produisent le même résultat de hachage. Les collisions de hachage sont certes rares, mais elles constituent un risque pour la sécurité, car un pirate pourrait délibérément créer un mot de passe différent qui génère le même hachage que le mot de passe original, ce qui lui permettrait d’obtenir un accès non autorisé.

Les algorithmes de hachage modernes, tels que SHA-2 ou Argon2, sont conçus pour avoir une probabilité de collision nettement plus faible, ce qui en fait des choix plus sûrs pour le hachage des mots de passe. 

Dashlane utilise la norme de chiffrement la plus robuste 

Une représentation des applications Dashlane sur tous les types d'appareils (un smartphone, un ordinateur de bureau, un ordinateur portable et une tablette).

Dashlane utilise Argon2, un algorithme très robuste, pour générer une clé AES (Advanced Encryption Standard) de 256 bits, reconnue comme la norme de chiffrement la plus robuste au monde. Cette clé, dérivée de votre mot de passe Maître, chiffre et déchiffre vos données personnelles localement sur votre appareil avant qu’elles ne soient envoyées vers et depuis nos serveurs. Cela signifie que votre clé de chiffrement n’est jamais envoyée sur Internet, ce qui garantit que dans le cas improbable d’une interception des données, le chiffrement protège vos informations contre le déchiffrement par des parties non autorisées.

Argon2 n’est pas l’unique pièce du puzzle. Découvrez les multiples couches de protection des données que Dashlane utilise pour vous assurer une sécurité de premier plan.


Références

  1. Authgear, « Password Hashing and Salting Explained », novembre 2022.
  2. PCMag, « Facebook Stored Up to 600M User Passwords in Plain Text », mars 2019.
  3. Wired, « Google Has Stored Some Passwords in Plaintext Since 2005 », mai 2019.
  4. Dashlane, « Qu’est-ce que le chiffrement ? » mars 2019.
  5. Wikipedia, « Argon2. »
  6. Password Hashing, « Password Hashing Competition », avril 2019.
  7. Wikipedia, « MD5. »
  8. Wikipedia, « Secure Hash Algorithms. »
  9. Bit2me Academy, « How does SHA-256 work? » juillet 2018.
  10. Wikipedia, « scrypt. »
  11. Wikipedia, « Whirlpool (hash function). »
  12. Wikipedia, « RIPEMD. »
  13. Simplilearn, « Message-Digest Algorithm 5 : Overview and How Does it Work? », février 2023.
  14. Auth0, « Adding Salt to Hashing: A Better Way to Store Passwords », février 2021.
  15. Okta, « Hashing Algorithm Overview: Types, Methodologies & Usage », février 2023.
  16. Dashlane, « La sécurité avant tout : comment Dashlane protège vos données », janvier 2023.
  17. Dashlane, “What Is a Good Password? 5 Tips for Increasing Password Strength,” novembre 2022.
  18. Dashlane, « Dashlane’s Password Generator » [Le générateur de mots de passe de Dashlane].
  19. Dashlane, « La sécurité avant tout : comment Dashlane protège vos données », janvier 2023.
  20. CSO, « What is a dictionary attack? And how you can easily stop them », août 2020.
  21. Beyond Identity, « Rainbow Table Attack. »

Inscrivez-vous pour connaître toute l'actualité de Dashlane