Skip to main content

Qu'est-ce qu'une fonction de hachage cryptographique?

Complément : Fonctions de hachage (Mai 2025)

Complément : Fonctions de hachage (Mai 2025)
Anonim

Une fonction de hachage cryptographique est un algorithme qui peut être exécuté sur des données telles qu'un fichier individuel ou un mot de passe pour produire une valeur appelée somme de contrôle.

L'utilisation principale d'une fonction de hachage cryptographique est de vérifier l'authenticité d'une donnée. Deux fichiers ne peuvent être considérés comme identiques que si les sommes de contrôle générées à partir de chaque fichier, utilisant la même fonction de hachage cryptographique, sont identiques.

Certaines fonctions de hachage cryptographiques couramment utilisées incluent MD5 et SHA-1, bien que de nombreuses autres existent également.

Les fonctions de hachage cryptographiques sont souvent appelées "fonctions de hachage", mais ce n'est pas techniquement correct. Une fonction de hachage est un terme générique qui englobe les fonctions de hachage cryptographiques ainsi que d'autres types d'algorithmes tels que les contrôles de redondance cycliques.

Fonctions de hachage cryptographique: un cas d'utilisation

Disons que vous téléchargez la dernière version du navigateur Firefox. Pour une raison quelconque, vous deviez le télécharger depuis un site autre que Mozilla. Comme il n'est pas hébergé sur un site que vous avez appris à faire confiance, vous souhaitez vous assurer que le fichier d'installation que vous venez de télécharger est exactement le même que celui proposé par Mozilla.

À l'aide d'une calculatrice de somme de contrôle, vous calculez une somme de contrôle à l'aide d'une fonction de hachage cryptographique particulière, telle que SHA-2, puis vous la comparez à celle publiée sur le site de Mozilla. S'ils sont égaux, vous pouvez être raisonnablement sûr que le téléchargement que vous avez est bien celui que Mozilla vous avait destiné.

Les fonctions de hachage cryptographique peuvent-elles être inversées?

Les fonctions de hachage cryptographique sont conçues pour empêcher la possibilité d'inverser les sommes de contrôle qu'elles créent en retournant aux textes d'origine. Cependant, même s'il est pratiquement impossible d'inverser, il n'est pas garanti à 100% de protéger les données.

Les pirates peuvent utiliser un tableau arc-en-ciel pour comprendre le texte brut d'une somme de contrôle.

Les tables Rainbow sont des dictionnaires qui répertorient des milliers, des millions, voire des milliards de sommes de contrôle à côté de leur valeur en texte brut correspondante.

Bien que cela n’inverse pas techniquement l’algorithme de hachage cryptographique, c’est peut-être mieux, étant donné que c’est si simple à faire. En réalité, aucun tableau arc-en-ciel ne pouvant répertorier toutes les sommes de contrôle possibles, elles ne sont généralement utiles que pour des phrases simples telles que des mots de passe faibles.

Voici une version simplifiée d'un tableau arc-en-ciel pour montrer comment fonctionnerait avec la fonction de hachage cryptographique SHA-1:

Texte en clairSomme de contrôle SHA-1
123458cb2237d0679ca88db6464eac60da96345513964
mot de passe1e38ad214943daad1d64c102faec29de4afe9da3d
J'aime mon chiena25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny4007d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Un pirate informatique doit savoir quel algorithme de hachage cryptographique a été utilisé pour générer les sommes de contrôle permettant de déterminer les valeurs.

Pour une protection accrue, certains sites Web qui stockent des mots de passe d'utilisateurs effectuent des fonctions supplémentaires sur l'algorithme de hachage cryptographique après la génération de la valeur mais avant son stockage. Ce processus produit une nouvelle valeur que seul le serveur Web comprend et qui ne correspond pas à la somme de contrôle d'origine.

Par exemple, une fois qu'un mot de passe est entré et que la somme de contrôle est générée, elle peut être divisée en plusieurs parties et réorganisée avant d'être stockée dans la base de données de mots de passe, ou certains caractères peuvent être échangés avec d'autres. Lors de la tentative d'authentification à la prochaine connexion de l'utilisateur, le serveur Web annule cette fonction supplémentaire et la somme de contrôle d'origine est générée à nouveau pour vérifier que le mot de passe d'un utilisateur est valide.

Prendre ces mesures limite l'utilité d'un hack où toutes les sommes de contrôle sont volées. L'idée est d'exécuter une fonction inconnue. Par conséquent, si le pirate informatique connaît l'algorithme de hachage cryptographique mais pas celui personnalisé, il est inutile de connaître les sommes de contrôle du mot de passe.

Mots de passe et fonctions de hachage cryptographique

Une base de données enregistre les mots de passe des utilisateurs de la même manière qu'une table arc-en-ciel. Lorsque votre mot de passe est entré, la somme de contrôle est générée et comparée à celle enregistrée avec votre nom d'utilisateur. Vous êtes alors autorisé à accéder si les deux sont identiques.

Étant donné qu’une fonction de hachage cryptographique produit une somme de contrôle non réversible, est-il prudent de rendre votre mot de passe aussi simple que possible? 12345, au lieu de 12@34$5, tout simplement parce que les sommes de contrôle elles-mêmes ne peuvent pas être comprises? Non, et voici pourquoi.

Ces deux mots de passe sont impossibles à déchiffrer en examinant simplement les sommes de contrôle:

MD5 pour 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 pour 12 @ 34 5 $: a4d3cc004f487b18b2ccd4853053818b

À première vue, vous penserez peut-être qu'il est acceptable d'utiliser l'un ou l'autre de ces mots de passe. Cela est vrai si un attaquant essayait de déterminer votre mot de passe en devinant la somme de contrôle MD5, ce que personne ne fait, mais pas si une attaque par force brute ou par dictionnaire est utilisée, ce qui est une tactique courante.

Une attaque par force brute se produit lorsque plusieurs attaques aléatoires sont prises pour deviner un mot de passe. Dans ce cas, il serait facile de deviner 12345, mais assez difficile à comprendre aléatoirement l’autre. Une attaque par dictionnaire est similaire en ce sens que l’attaquant peut essayer chaque mot, nombre ou expression d’une liste de mots de passe communs (et pas tellement communs), et12345 est l'un de ces mots de passe courants.

Même si les fonctions de hachage cryptographique produisent des sommes de contrôle difficiles à deviner, vous devez néanmoins utiliser un mot de passe complexe pour tous vos comptes d'utilisateurs en ligne et locaux.

Plus d'informations sur les fonctions de hachage cryptographique

Il peut sembler que les fonctions de hachage cryptographique sont liées au cryptage, mais les deux fonctionnent de manière différente.

Le cryptage est un processus à double sens où quelque chose est crypté pour devenir illisible, puis décrypté pour être utilisé normalement à nouveau. Vous pouvez chiffrer les fichiers que vous avez stockés de manière à empêcher toute personne y accédant ou utiliser le chiffrement de transfert de fichier pour chiffrer les fichiers déplacés sur un réseau, comme ceux que vous téléchargez ou téléchargez en ligne.

Les fonctions de hachage cryptographique fonctionnent différemment en ce sens que les sommes de contrôle ne sont pas censées être inversées avec un mot de passe de déshachage spécial. Les fonctions de hachage cryptographique ont pour seul objectif de comparer deux éléments de données, tels que le téléchargement de fichiers, le stockage de mots de passe et l'extraction de données d'une base de données.

Il est possible qu'une fonction de hachage cryptographique produise la même somme de contrôle pour différentes données. Lorsque cela se produit, cela s'appelle une collision, ce qui est un énorme problème étant donné que le but d'une fonction de hachage cryptographique est de créer des sommes de contrôle uniques pour chaque donnée qui y est entrée.

Des collisions peuvent se produire car chaque fonction de hachage cryptographique produit une valeur de longueur fixe quelles que soient les données d'entrée. Par exemple, la fonction de hachage cryptographique MD5 génère 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 et e10adc3949ba59abbe56e057f20f883e pour trois blocs de données totalement différents.

La première somme de contrôle est de 12345. La seconde a été générée à partir de plus de 700 lettres et chiffres et la troisième à partir de 123456.

Les trois entrées ont des longueurs différentes, mais les résultats ne comptent toujours que 32 caractères depuis la somme de contrôle MD5.

Il n'y a pas de limite au nombre de sommes de contrôle pouvant être créées car chaque modification minime de l'entrée est supposée produire une somme de contrôle complètement différente. Comme il existe une limite au nombre de sommes de contrôle qu'une fonction de hachage cryptographique peut produire, il est toujours possible que vous rencontriez une collision.

C'est pourquoi d'autres fonctions de hachage cryptographique ont été créées. Alors que MD5 génère une valeur de 32 caractères, SHA-1 génère 40 caractères et SHA-2 (512) en génère 128. Plus le nombre de caractères de la somme de contrôle est élevé, moins le risque de collision est probable.