Qu'est-ce que le hachage cryptographique ? [un guide du débutant]
Publié: 2019-08-07Table des matières
Qu'est-ce qu'un hachage cryptographique ?
Le hachage cryptographique expliqué
Propriétés de la fonction de hachage cryptographique
Algorithmes de hachage courants
Hachage dans les crypto-monnaies
Fonctions de hachage dans le stockage de mot de passe
Conclure
Il y a de fortes chances qu'à l'époque, vous et vos amis inventiez un code pour vous transmettre des messages que personne d'autre ne pouvait comprendre. Au moins, vous connaissiez des gens comme ça.
Certains gars comme ça ont pris ce match au sérieux et en ont fait une carrière.
D'autres sont devenus des magiciens – les soi-disant mentalistes. À l'aide de codes, ils utilisent leurs « pouvoirs mentaux » pour deviner des cartes, des chiffres, etc.
Ce simple jeu d'enfant est devenu ce que l'on appelle le cryptage, le hachage et toutes les autres fonctions, qui produisent un code apparemment illisible à partir d'une entrée donnée.
Aujourd'hui, nous allons plonger dans le monde magique du codage pour voir ce qu'est un hachage cryptographique , son fonctionnement interne et ses applications.
Alors, sans plus tarder, passons à l'action.
Qu'est-ce qu'un hachage cryptographique ?
La fonction de hachage cryptographique est un type de fonction de hachage utilisé à des fins de sécurité . Il a plusieurs propriétés qui le distinguent du non cryptographique. Décomposons-le étape par étape.
Qu'est-ce qu'un hachage ?
Le hachage est la méthode utilisée pour compresser les données.
Pourtant, ce n'est pas la compression typique que tout le monde connaît, comme un fichier .zip ou .rar.
Le hachage crée un code pour les données à l'aide d'un algorithme de hachage . Le code représente une chaîne de caractères, qui agissent comme une « empreinte digitale » de ce fichier.
Nous savons tous que les empreintes digitales sont petites, mais elles contiennent une énorme quantité de données. Vous savez, des choses comme nos noms, visages, adresses et autres informations sensibles. Le hachage est similaire : il prend une donnée de taille arbitraire et la transforme en une séquence de caractères relativement petite.
Quelle que soit la taille de l'entrée, vous obtenez toujours une sortie de longueur fixe lors du hachage.
Exemples de fonctions de hachage
Voici donc un exemple de la façon dont cela se produit. Pour cette démonstration, nous utiliserons l' algorithme de hachage sécurisé 256 bits , connu sous le nom de SHA-256. C'est l'un des algorithmes de hachage les plus courants , et il s'avère qu'il est également utilisé par Bitcoin .
Un message | Hachage du message |
salut | 3639EFCD08ABB273B1619E82E78C29A7DF02C1051B1820E99FC395DCAA3326B8 |
Bienvenue à TechJury | B7FFC27E0A6F559E1F63A927B6132A42124CC790F9EFD0FCFF4C3B653AA0DF4B |
(Le contenu de cet article entier) | 9247D0E6C7A2A45976DCC3D2393A52658B6DDFC846d8AF5743400EA12FB9DE74 |
Vous voyez, bien que les messages soient de longueurs différentes, ils obtiennent tous un hachage de 64 caractères. Ceci est également connu sous le nom de valeur de hachage ou de condensé .
Vous obtiendrez le même résultat de longueur fixe si vous hachez un livre ou même le contenu d'une bibliothèque entière. Vous pouvez également le faire avec d'autres types de données - vidéos, images, etc.
Ce qui est génial avec les hachages , c'est que vous obtiendrez une valeur de hachage entièrement différente même si vous apportez le plus petit des changements . C'est ce qu'on appelle l' effet d'avalanche .
Donc, si votre petite amie/petit ami supprime toutes les photos que vous avez de votre ex, par exemple, le hachage du dossier changera. De cette façon, vous saurez que quelque chose ne va pas sans vérifier chaque image.
Voyons un autre exemple de l' utilité pratique d' une fonction de hachage . Pour l'exemple suivant, j'ai haché notre « Qu'est-ce qu'un VPN ? " article, et il ressemble à ceci:
Ensuite, j'ai supprimé un mot de l'article et je l'ai à nouveau haché. Voici le résultat :
La suppression d'un seul mot a complètement changé les valeurs de hachage . Ceci est particulièrement utile si vous souhaitez vérifier si des modifications ont été apportées à un fichier.
C'est encore plus utile lorsque vous traitez de grandes quantités d'informations. Par exemple, une blockchain de crypto-monnaie stockant quotidiennement des milliers de transactions.
Maintenant, approfondissons et voyons ce que signifie réellement le hachage cryptographique .
Le hachage cryptographique expliqué
Lorsque vous avez besoin de sécurité et de confidentialité, le hachage cryptographique entre en jeu. L'inconvénient du hachage cryptographique est qu'il est généralement plus lent que les autres types de hachage . Si vous avez besoin de hacher rapidement et que vous n'avez pas besoin d'une sécurité de haut niveau, le hachage non cryptographique est préférable. Par exemple, si vous créez un index de certaines données non sensibles.
La principale différence entre le hachage non cryptographique et cryptographique est que ce dernier est extrêmement difficile à casser. Remarquez que ce n'est pas impossible. Pourtant, le hachage cryptographique rend le craquage d'un hachage presque impossible.
Pour qu'une fonction de hachage soit un hachage cryptographique, elle doit avoir plusieurs propriétés.
Propriétés de la fonction de hachage cryptographique
Si vous souhaitez utiliser le hachage à des fins cryptographiques, la fonction de hachage doit répondre à plusieurs exigences pour être considérée comme sécurisée.
Propriété #1 – Vitesse
Si vous aimez les mots fantaisistes, les fonctions de hachage cryptographique doivent être efficaces en termes de calcul. Cela signifie que la fonction de hachage devrait être capable de produire un hachage en une fraction de seconde .
La source
Propriété #2 – l'effet d'avalanche
L'effet d'avalanche signifie que même un changement mineur dans le message entraînera un changement majeur dans la valeur de hachage .
Un message | Hachage du message |
Bienvenue à TechJury | B7FFC27E0A6F559E1F63A927B6132A42124CC790F9EFD0FCFF4C3B653AA0DF4B |
Bienvenue sur Techjury | 66251AE6324F670BF988465E49B9CEAA2F8C4E72E1D61336D3794301116C092B |
L'utilisation d'un « j » minuscule dans le deuxième message modifie entièrement le code de hachage .
Ceci est un exemple de fonction de hachage simple , mais vous voyez l'idée. C'est très pratique et peut rapidement montrer si des données ont été modifiées.
Propriété #3 - la fonction de hachage cryptographique doit être déterministe
Cela signifie que peu importe combien de fois vous utilisez une fonction de hachage pour la même entrée , vous obtiendrez toujours la même sortie . C'est évident car si vous obteniez des hachages aléatoires pour le même message, l'ensemble du processus n'aurait aucun sens.
Propriété #4 - Résistance de pré-image (fonction à sens unique)
Cela signifie qu'il est vraiment difficile d'accéder à l'entrée via la sortie.
En termes simples, vous ne pouvez pas inverser la fonction de hachage cryptographique pour accéder aux données. Pourtant, cela ne signifie pas qu'il est impossible de voir le message.
Voici l'affaire.
Il existe deux méthodes pour trouver le message haché.
- Pour comparer le hachage à une liste de hachages existante, comme celle-ci : Dehash.me. Habituellement, les cybercriminels ont leurs propres bases de données de messages traduits (déhachés).
- Pour exécuter une attaque par force brute.
Pour casser un hachage avec force brute, vous devez choisir un message, le hacher et le comparer au hachage que vous avez. Dans le meilleur des cas, vous l'obtenez dès le premier essai. Pourtant, les chances que cela se produise sont extrêmement faibles.
Dans le pire des cas, vous le trouvez dès votre dernier essai. Cela signifie que vous devez hacher tous les messages possibles et les comparer à celui que vous avez. Le nombre est différent, selon l' algorithme de hachage .
Par exemple, utilisons SHA-256. Dans ce cas, il faudrait trouver 2 256 -1 valeurs de hachage en premier. Sûr de dire que cela ne peut pas être fait en plusieurs vies et en rester là.
Maintenant.
La propriété de résistance de pré-image du hachage cryptographique joue un rôle important dans le débat sur le hachage contre le cryptage .
Voir – vous pouvez déchiffrer un message chiffré, mais vous ne pouvez pas faire la même chose pour un hachage cryptographique .
Vous pouvez considérer le hasch comme un smoothie. Vous ne pouvez pas extraire le message d'un hasch de la même manière que vous ne pouvez pas extraire la banane et le lait d'un smoothie.
Le cryptage, en revanche, s'apparente davantage à un coffre-fort. Il protège vos objets de valeur, mais il y a toujours une clé qui l'ouvre.
Propriété #5 - Résistance aux collisions
Cela signifie que deux messages différents ne devraient pas pouvoir produire la même valeur de hachage . D'un point de vue mathématique, c'est de toute façon impossible.
Vous savez déjà que les valeurs de hachage ont une longueur fixe. Cela signifie qu'il existe des combinaisons de sortie limitées . Les entrées, par contre, sont un nombre infini . Donc, en théorie, il y a une chance que deux messages différents puissent produire les mêmes hachages .
Pourtant, la fonction de hachage en cryptographie rend les chances d'une collision de hachage pratiquement négligeables.
Voir.
Toutes ces propriétés garantissent la sécurité et la convivialité d'un hachage cryptographique . Il est donc temps de découvrir les différentes fonctions de hachage cryptographique.
Algorithmes de hachage courants
Il existe différentes classes (familles) d'algorithmes de hachage. La principale différence entre eux est la valeur de hachage que chacun produit et ses propriétés de sécurité.
Voici les plus couramment utilisés :
Algorithme de résumé de message (MD)
MD5 était la fonction de hachage de choix pour de nombreuses entreprises, mais a été interrompue en 2004. Un algorithme de hachage est considéré comme brisé lorsqu'il y a eu une collision réussie ou une attaque de pré-image contre lui. Pourtant, de nombreux sites Web continuent d'utiliser la fonction de hachage MD5 pour la vérification des fichiers.
Par exemple, lorsque vous téléchargez un fichier, vous pouvez comparer son hachage à celui du site pour vous assurer que personne ne l'a falsifié.
La famille MD se compose de MD2, MD3, MD4, MD5 (tous ceux-ci sont cassés) et MD6 (qui n'est pas si populaire.)
Voici l' exemple de fonction de hachage de MD5.
Un message | hachage MD5 |
jury technique | FECE553512085FF6B5E213C8EFF9F30D |
MD5 produit une valeur de hachage de 128 bits avec une longueur de 32 caractères.
En raison de ses failles, l'algorithme Message Digest n'est plus considéré comme une fonction de hachage cryptographique .
Algorithme de hachage sécurisé (SHA)
La plus grande famille de fonctions de hachage cryptographique se compose de quatre classes :
- SHA-0
- SHA-1
- SHA-2
- SHA-3
SHA-0 avait de nombreux défauts et n'a pas été largement utilisé. SHA-1 a essayé de les réparer, mais s'est cassé en 2005.
SHA-2 et ses sous-classes sont couramment utilisés aujourd'hui jusqu'à ce que SHA-3 se révèle être une fonction encore plus sécurisée.
La famille SHA-2 se compose de quatre membres – SHA-224, SHA-256, SHA-384 et SHA-512, qui diffèrent par le nombre de bits de leurs valeurs de hachage . Jusqu'à présent, il n'y a pas eu d'attaque réussie contre l' algorithme de hachage cryptographique SHA-2 .
Voici quelques exemples de fonctions de hachage utilisant la classe SHA-2.
Un message | jury technique |
SHA-256 | FF3E4985DAFF59392EAE60DEC66EC823CAF9575B81903729053A999B9B2C708E |
SHA-384 | 77653BC173A561E3378373F64E447FB3AEDC691F387BB599656E6AB63B9C5D34 523C298C59C94802A478F8C3F36E9CDF |
SHA-512 | C975F1074E969FAEA76C15084881F7694DE4D542F9E4DF934AFA52470952A362 25F7ED63D023AB05746DDAFDFED96D57A7AF5344EB91589A09952D102DD3AB04 |
RACE Integrity Primitives Evaluation Message Digest (RIPEMD)
Initialement, RIPEMD a été créé pour un projet de l'Union européenne appelé RIPE. Il existe cinq fonctions de hachage dans la famille RIPEMD.
- RIPEMD
- RIPEMD-128
- RIPEMD-160
- RIPEMD-256
- RIPEMD-320
En 2004, il y a eu une collision dans la fonction de hachage RIPEMD originale . C'est pourquoi il n'est plus utilisé. Actuellement, RIPEMD-160 est le plus courant. Voici à quoi cela ressemble :
Un message | Condensé RIPEMD-160 |
jury technique | ca25dc64fb00c8becb21eddf50805fbc106eed00 |
Tourbillon
Ce nom de fonction de hachage cryptographique n'a rien à voir avec le fabricant des appareils électroménagers. La galaxie Whirlpool a inspiré le nom de l'algorithme.
Ce qui est intéressant à propos de l' algorithme de hachage Whirlpool , c'est que l'un de ses créateurs est Vincent Rijmen, le co-créateur d' AES, Advanced Encryption Standard .
Whirlpool est une fonction de hachage de 512 bits et son condensé représente une chaîne de 128 caractères.
Ceci est un exemple de la fonction de hachage cryptographique .
Un message | Hash de bain tourbillon |
jury technique | 2E9A775FA4450549FCB6F6CDC4761865715D46FF8003E93CC614EF7C9E3D42A93 D5A663B4E48674C5155417D686D81ABDBC12FB32A1B650C5E44F24E80156E7D |
Ce sont les algorithmes de hachage les plus courants aujourd'hui.
Alors, maintenant que vous connaissez les bases du hachage, voyons ses applications dans la vie réelle.
Hachage dans les crypto-monnaies
Nous avons déjà expliqué ce qu'est Bitcoin et comment fonctionne la blockchain , nous allons donc passer directement au hachage.
La fonction de hachage cryptographique est essentielle aux crypto-monnaies car elle garantit l'une des caractéristiques les plus importantes de la blockchain - l' immutabilité .
Étant donné que les blockchains de crypto-monnaie traitent un grand nombre de transactions, elles utilisent le hachage. Il s'agit d'une approche beaucoup plus pratique et sécurisée que de conserver chaque enregistrement de chaque transaction dans le grand livre.
Dans le cas de Bitcoin, les mineurs exécutent une série de fonctions SHA-256 pour créer le hachage d'un bloc. Puis ce dernier reçoit un horodatage. Une fois que les nœuds ont atteint un consensus, le bloc est ajouté à la blockchain. Non seulement le bloc a son propre hachage , mais il contient également le hachage du précédent , les enchaînant ainsi tous ensemble.
En raison de l'effet d'avalanche, aucune tentative de manipulation d'un bloc n'est possible. Si quelqu'un essaie de modifier une transaction dans un bloc, il doit également modifier toutes les transactions consécutives. Une telle opération nécessiterait tellement de puissance de calcul et de temps, que c'est pratiquement impossible .
Cela fait du hachage une caractéristique cruciale de la sécurité de la blockchain.
Maintenant.
Différentes crypto-monnaies utilisent différents algorithmes de hachage dans leur blockchain.
Bitcoin, par exemple, utilise SHA-256 pour sa preuve de travail. Pourtant, Bitcoin utilise deux algorithmes de hachage pour générer une adresse publique (clé) – SHA-256 et RIPEMD-160. Cela a été fait par Satoshi Nakamoto pour offrir une meilleure protection des clés publiques et réduire les risques de collision.
Ethereum, quant à lui, utilise l' algorithme de hachage Keccak-256 , qui est le fondement de SHA-3.
Au moment de la rédaction de cet article, il n'y a eu aucune attaque réussie contre aucun de ces algorithmes.
Même si vous n'êtes pas sur le marché des crypto-monnaies, vous utilisez toujours des fonctions de hachage tous les jours.
Comment ça ?
Fonctions de hachage dans le stockage de mot de passe
Il existe quatre principales techniques utilisées par les entreprises pour stocker nos mots de passe : en texte brut, avec cryptage et avec une fonction de hachage . La dernière méthode est une combinaison de deux ou plusieurs de ces techniques.
Voyons quelles sont les différences.
Stockage des mots de passe en texte brut – un grand non-non
Le stockage des mots de passe en texte brut est, eh bien… exactement ce que cela ressemble.
Comme ça:
Nom d'utilisateur : John Smith
Mot de passe : johnsmith93
La base de données de l'entreprise contient les mêmes informations – utilisateur : John Smith, pass : johnsmith93.
Cela devrait être évité si les entreprises accordent de l'importance à la vie privée de leurs clients. (J'espère que quelqu'un de Facebook lira ceci.)
L'inconvénient de cette méthode est évident : si les cybercriminels infiltrent la base de données de l'entreprise, ils peuvent voir tous les noms d'utilisateur et mots de passe.
Stockage des mots de passe à l'aide du cryptage
Le cryptage est un meilleur moyen de sécuriser les mots de passe. Il transforme votre mot de passe en une séquence illisible de chiffres et de lettres.
Voilà comment cela fonctionne:
Nom d'utilisateur : John Smith
Mot de passe : johnsmith93
Lorsque l'entreprise utilise le cryptage pour protéger votre mot de passe, l'entrée de la base de données ressemble à ceci :
Nom d'utilisateur : John Smith
Mot de passe : I8Zdy1QBthsk2ie1HHsl+66bf20fDDcdCtXURqa07iQ=
Si un cybercriminel obtient ce mot de passe, il est inutile : il ne peut pas l'utiliser pour pénétrer dans le compte. Pourtant, il peut, théoriquement, être décrypté.
Si un acteur malveillant obtient votre mot de passe crypté, il peut le décrypter à l'aide de divers outils. Néanmoins, cela prend plus de temps et nécessite des compétences informatiques supérieures à la simple obtention d'un mot de passe en texte brut.
Heureusement, il existe des algorithmes de cryptage suffisamment puissants pour constituer une méthode sûre de protection des mots de passe.
Stockage des mots de passe via un algorithme de hachage
Le hachage et le cryptage sont souvent confondus avec la même chose et utilisés de manière interchangeable. Pourtant, il y a une différence cruciale entre eux.
La fonction de hachage, comme le cryptage, transforme également votre mot de passe en une séquence illisible de chiffres et de lettres. La différence cruciale est que cela ne fonctionne que dans un sens . Contrairement au déchiffrement, vous ne pouvez pas inverser le processus de hachage.Cela étant dit, si un cybercriminel obtient le hachage de votre mot de passe, il ne peut généralement rien faire avec.
De nombreuses fonctions de hachage sont disponibles, mais utilisons SHA-256 pour notre exemple.
Nom d'utilisateur : John Smith
Mot de passe (haché) : e7c95991f28e529b4d3b37611e5f3b6a6a43600ce148af0c42d3d38c06365af5
Maintenant.
Bien que le hachage ne puisse pas être inversé dans son texte d'origine, il existe de grandes listes de messages et leurs hachages. Malheureusement, les acteurs malveillants peuvent toujours pirater votre mot de passe s'ils obtiennent sa valeur de hachage. Heureusement, si vous utilisez un mot de passe fort, les chances que cela se produise sont incroyablement faibles. Nous utiliserons un exemple différent dans ce cas.
Exemples de fonctions de hachage dans le stockage de mots de passe
Disons que votre mot de passe est 123456. (N'utilisez jamais celui-ci, créez plutôt un mot de passe fort .)
Voici son hachage si on utilise l' algorithme de hachage SHA-256 :
8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
Malheureusement, ce hachage se configure dans une liste de messages hachés.
Le problème est encore plus important car de nombreuses personnes utilisent le même mot de passe. Ainsi, si une base de données est piratée et que les cybercriminels trouvent le hachage d'un mot de passe, ils peuvent l'utiliser pour chaque utilisateur qui utilise le même mot de passe. Sans oublier que de nombreuses personnes utilisent le même mot de passe pour différents comptes, ce qui les fera sortir de la poêle à frire et dans le feu.
Pourtant, vous pouvez faire plusieurs choses pour éviter que cela ne se produise.
Tout d'abord, utilisez un mot de passe fort et créez des mots de passe différents pour différents comptes.
L'autre chose que vous pouvez faire est d'ajouter du « sel » au hasch. Un hachage salé ajoute une valeur supplémentaire à votre mot de passe et produit un hachage de mot de passe différent pour chaque entrée.
Par exemple, chaque utilisateur qui utilise le mot de passe 123456 et « sels » obtiendra un hachage différent.
Chaque exemple est un hachage salé de 123456.
$2y$10$pIxpMnhlQmt1t.EUYK1G/eHkb7Roo/XhPybKyFZSAqk/50BW10a8.
$2y$10$sCLqOpeA4R.St/8IaUWF9.m01MM4YbY.qTwbCY3.K5z.cd5lwxL6W
Alors, quelle est la meilleure façon pour une entreprise de protéger votre mot de passe ?
C'est une combinaison de toutes les techniques mentionnées ci-dessus, comme le fait Dropbox, par exemple.
Source : Dropbox
C'est ainsi que vous gérez le hachage tous les jours, sans même vous en rendre compte.
Conclure
Pour résumer, le hachage présente de nombreux avantages.
Vous pouvez hacher n'importe quel type de données, que ce soit pour l'indexation ou pour vérifier les modifications. Cela rend le hachage utile pour les contrats, les téléchargements, le stockage des mots de passe, etc.
Les crypto-monnaies évoluent également. Pas seulement ceux que nous avons maintenant, mais de nouveaux joueurs s'échauffent pour s'amuser. Même Facebook publiera Libra , nous sommes donc obligés d'utiliser encore plus le hachage.
Peut-être que Facebook ouvrira la voie à d'autres grandes entreprises pour libérer leurs propres crypto-monnaies – et pourquoi pas de nouveaux mécanismes de hachage ? Seul le temps nous le dira.
À la prochaine!
FAQ
Vous pouvez considérer la valeur de hachage comme l'empreinte de toute information – un fichier, un dossier, un bloc de transactions, etc. Une fois que vous appliquez une fonction de hachage à n'importe quelle donnée, cette dernière reçoit une valeur de hachage.
Il se compose d'une chaîne de caractères de longueur fixe, comme celle-ci :
Informations | Valeur de hachage |
Bonjour | D44426ACA8AE0A69CDBC4021C64FA5AD68CA32FE |
La cryptographie est la méthode qui protège les données à l'aide de codes (comme le hachage et le cryptage.)
Les développeurs appliquent la cryptographie chaque fois qu'ils ont besoin d'une sécurité et d'une confidentialité accrues. Il transforme le texte brut (ou d'autres données) en une chaîne illisible de caractères aléatoires. Cela garantit la sécurité des informations contre les regards indiscrets.
La fonction de hachage est l'opération qui transforme des données de taille aléatoire en une chaîne de caractères de longueur fixe correspondante, également appelée valeur de hachage .
Il existe deux classes de fonctions de hachage : la fonction de hachage non cryptographique et la fonction de hachage cryptographique . Ce dernier est utilisé dans les crypto-monnaies et le stockage des mots de passe et offre une sécurité améliorée.