420-5D3 : Hachage

12 septembre 2023

La source de ce document est ici


Hashing

Le hachage, ou hashing en anglais, est une méthode de chiffrement qui transforme les enregistrements et les caractères de toute longueur en hachages fixes et compacts. Le hachage offre plus de sécurité que le chiffrement, car les valeurs de hachage ne peuvent pas être reconverties en valeurs d’origine sans clé. Le hachage est particulièrement important en ce qui concerne la gestion et la sécurité des bases de données, les données utilisateur, la gestion des mots de passe ainsi que l’authentification des accès.

Sommaire  

  1. Qu’est-ce que le hachage ? 
  2. Comment fonctionne le hachage ? 
  3. Domaines d’application du hachage 
  4. Quels sont les avantages du hachage ? 
  5. Hachage et chaîne de blocs 
  6. À quel point le hachage est-il sûr ? 

1 – Qu’est-ce que le hachage ? 

Le hachage est un outil de chiffrement important pour transformer les données. Une fonction spéciale de hachage est utilisée, généralement sous la forme d’un algorithme. La tâche centrale du hachage peut être devinée à partir de la définition française du mot « hacher » : les enregistrements tels que les mots de passe, les données de l’entreprise et de l’utilisateur ou autres données sont décomposés et transformés en une nouvelle forme abrégée appelée valeur de hachage. Dans chaque méthode de hachage, les valeurs de hachage sont toujours de la même longueur et représentent les enregistrements d’origine. Comme les tables de hachage, les valeurs de hachage dans les bases de données peuvent être stockées sous forme compacte de manière sécurisée et économe en ressources.

L’avantage du hachage : les valeurs de hachage ne peuvent pas être reconverties au format d’origine sans clé. Même si elles tombent entre de mauvaises mains, les cybercriminels ne peuvent rien en faire. Il existe souvent une confusion entre le hachage et le chiffrement. Cependant, comme les valeurs de hachage ne sont pas chiffrées, mais transformées en une chaîne entièrement nouvelle, elles ne peuvent pas être déchiffrées. Pour y parvenir, la personne aurait besoin de la clé appropriée, de l’algorithme utilisé et des données d’origine associées aux valeurs de hachage.


2 – Comment fonctionne le hachage ? 

Le processus de hachage est composé de trois éléments :

Le hachage repose sur cinq caractéristiques qui en garantissent la sécurité et la fiabilité :

Exemple de procédure de hachage utilisant des mots de passe
Un algorithme de hachage divise les enregistrements originaux de différentes longueurs en chaînes fixes, les valeurs de hachage. 

3 – Domaines d’application du hachage 

Les avantages et le mode de fonctionnement du hachage sont particulièrement évidents à la lumière de divers cas d’utilisation et domaines d’application. Les applications typiques sont les suivantes :

3.1 – Gestion des bases de données 

Le hachage a l’avantage de pouvoir stocker de grandes quantités de données de façon plus compacte et plus efficace sous forme de tables de hachage. Pour ce faire, les chaînes sont combinées en tant que valeurs de hachage sous une position d’adresse dans la base de données en tant que table de hachage. Cela permet d’économiser de la mémoire, d’augmenter la sécurité des bases de données et d’accélérer la recherche d’entrées spécifiques dans la table de hachage. Les hachages et les tables de hachages rationalisent l’organisation et la gestion des infrastructures d’index ainsi que de données.

Illustration : les bases de données des clients contiennent généralement des informations importantes telles que les noms, les coordonnées ou les adresses des clients. Si vous souhaitez rechercher des informations spécifiques dans une base de données, une recherche régulière prendra beaucoup de temps. La base de données entière doit être analysée pour identifier les valeurs recherchées. Cependant, le hachage peut créer des blocs de données avec une position d’adresse spécifique dans la base de données. Par conséquent, l’ordinateur passe immédiatement à l’emplacement où une valeur de hachage associée dans une table de hachage peut être adressée.

3.2 – Signatures numériques et sommes de contrôle 

Le hachage joue également un rôle important en tant que méthode d’authentification. Par exemple, il est utilisé pour générer des signatures numériques, appelées empreintes digitales numériques. Cela permet de confirmer l’intégrité de la communication entre l’expéditeur et le destinataire. Il est également possible d’associer des mots de passe à une valeur de hachage lors de la création d’un nouveau compte utilisateur. Lors de la création de nouveaux comptes utilisateur, une fonction de hachage génère une valeur de hachage pour le mot de passe sélectionné. Chaque fois que vous vous connectez, le mot de passe que vous entrez est comparé avec la valeur de hachage stockée. La récupération du mot de passe génère également une nouvelle valeur de hachage pour le nouveau mot de passe.

Illustration : les signatures numériques peuvent être utilisées pour vérifier si les messages, les téléchargements ou les sites Web sont sécurisés. Pour ce faire, les expéditeurs génèrent des valeurs de hachage à partir de messages ou fournissent une valeur de hachage lors du téléchargement d’un programme. Les destinataires génèrent à leur tour une valeur de hachage en utilisant la même fonction de hachage. Cette valeur correspond à la valeur de hachage fournie, généralement chiffrée. Le meilleur exemple est le chiffrement SSL/TLS sur le Web. Le serveur Web envoie un certificat de serveur au navigateur. Le hachage génère une clé de session à partir de laquelle le serveur peut recevoir, déchiffrer et ensuite accuser réception. Après l’authentification, le trafic HTTPS est autorisé. Le SFTP fonctionne de la même manière.

3.3 – Mots de passe et autres données sensibles 

Le hachage offre une sécurité considérablement plus élevée pour le stockage des données sensibles, telles que les mots de passe ou les données de connexion et d’utilisateurs. Celles-ci ne sont pas stockés dans la base de données sous leur forme originale ou sous forme « simplement » chiffrée. Au lieu de cela, les ensembles de données sont décomposés en valeurs de hachage qui sont inutilisables, même en cas de vol de données, sans moyens ou clés appropriés. En effet, lorsque vous entrez un mot de passe, la valeur de hachage calculée pour le mot de passe est comparée à la valeur de hachage stockée. La mise en cache utilise parfois le hachage pour rendre illisibles les données stockées temporairement, telles que les sites Web visités ou les données de connexion et de paiement pour les personnes non autorisées.

Illustration : le hachage peut également être utilisé pour sécuriser le stockage d’une vaste gamme de contenus tels que des fichiers texte ou audio et vidéo. De cette façon, les structures binaires des fichiers sont transférées dans des hachages compacts, qui peuvent être utilisés pour référencer le bloc de données associé. Étant donné que les valeurs de hachage sont liées à la position de la base de données, les données que vous recherchez peuvent non seulement être trouvées plus rapidement, mais elles ne peuvent pas être lues sans la clé appropriée et ne peuvent pas être transférés dans leur forme d’origine.


4 – Quels sont les avantages du hachage ? 

Aperçu des avantages du hachage :


5 – Hachage et chaîne de blocs 

Les fonctions de hachage constituent une partie centrale de la chaîne de blocs. Pour l’authentification de transactions avec des cryptomonnaies comme le Bitcoin, des hachages sont générés pendant le minage. Par exemple, le Bitcoin fonctionne avec l’algorithme de hachage SHA-256, qui convertit les chaînes de n’importe quelle longueur en une chaîne fixe, c’est-à-dire des hachages de 64 caractères. Ceux-ci authentifient légitimement et documentent les transactions cryptos officielles, les déposent dans la chaîne de blocs et assurent ainsi un niveau de sécurité élevé.

Dans la chaîne de blocs, le hachage remplit trois fonctions principales :


6 – À quel point le hachage est-il sûr ? 

En principe, les experts en protection de données recommandent d’utiliser le hachage pour stocker les bases de données et les données sensibles de la manière la plus sécurisée possible. Le hachage est préférable au chiffrement traditionnel, car les valeurs de hachage n’indiquent pas les enregistrements d’origine et ne peuvent pas être « déchiffrées », même en cas d’attaques par force brute. Un nombre très élevé de tentatives est nécessaire avant de trouver une correspondance.

Cependant, il existe certaines personnes malveillantes qui font correspondre des listes de hachages volées avec des Rainbow Tables, également appelées tables arc-en-ciel. Il s’agit de listes avec des valeurs de hachage volées et des données d’accès qui leur sont attribuées. Si une valeur de hachage de la base de données correspond à une valeur de hachage des tables arc-en-ciel et au mot de passe associé, une vulnérabilité de sécurité existe. Pour cette raison, des changements de mot de passe réguliers, des mises à jour fréquentes et des algorithmes de hachage nouveaux ou actualisés sont également recommandés pour le hachage. Par exemple, l’IETF (Internet Engineering Taskforce) a recommandé les algorithmes de hachage suivants en 2021 :

Une autre façon de rendre le hachage encore plus sécuritaire est d’utiliser une procédure de chiffrement comme Salting et Pepper. Lors du « Salting », chaque mot de passe transmis dans des valeurs de hachage reçoit une chaîne supplémentaire générée de façon aléatoire. Le « Salting » d’une longueur recommandée de 16 caractères rend les attaques par force brute presque impossibles et offre ainsi une sécurité encore plus fiable. Si un code à 32 caractères nommé « Pepper » est ajouté pour tous les mots de passe, les hachages volés avec « Salting » sont presque impossibles à déchiffrer.


MD5

Générateur MD5

Rainbow table MD5

Le hash MD5 de la chaine ‘password‘ est 5F4DCC3B5AA765D61D8327DEB882CF99


SHA-256

Référence

L’acronyme SHA-256 fait référence à la fonction de hachage qui a été choisie pour le fonctionnement de nombreuses crypto-monnaies, car elle offre un haut niveau de sécurité, ce qui la rend parfaite pour la tâche de protéger et de codifier en toute sécurité leurs informations. .

EIl existe de nombreux systèmes pour encoder des informations et l’un d’eux est l’algorithme SHA-256. Ceci est un algorithme de hachage ce qui est utilisé par Bitcoin pour garantir l’intégrité des informations stockées dans un bloque, entre autres choses.

Comme presque toutes les avancées en trucs crypto, les gouvernements du monde ont joué un rôle fondamental en raison des guerres. L’algorithme SHA ou algorithme de hachage sécurisé (Secure Hash Algorithm), est l’une de ces avancées. Cet algorithme cryptographique a été développé par le Agence de sécurité nationale des États-Unis (NSA) et l’ Institut national des normes et de la technologie (NIST). Son objectif est de générer des hachages ou des codes uniques basés sur un standard permettant de sécuriser des documents ou des données informatiques contre tout agent extérieur souhaitant les modifier. Cet algorithme était et reste une grande avancée sur la manière de garantir la confidentialité du contenu dans le traitement de l’information.

En 1993, le premier protocole SHA a vu le jour, également appelé familièrement SHA-0. Deux ans plus tard, une variante améliorée plus forte, le SHA-1. Quelques années plus tard, il a été lancé SHA-2, qui a quatre variantes selon le nombre de bits, comme SHA-224, SHA-256, SHA-384 y SHA-512.

Fonctionnalités de l’algorithme SHA-256

Parmi les différentes manières de créer des hachages, l’algorithme utilisé par SHA-256 est l’un des plus utilisés en raison de son équilibre entre la sécurité et le coût de calcul de la génération, car il s’agit d’un algorithme très efficace pour la résistance élevée aux collisions dont il dispose.

Une autre des particularités de SHA-256 est que la longueur du hachage résultant est toujours la même, quelle que soit la durée du contenu que vous utilisez pour générer le hachage : que ce soit une lettre ou tous les mots de tout le livre Harry Potter, la Le résultat est toujours une chaîne de 64 lettres et chiffres (encodage 256 bits, 32 octets).

Voulez-vous commencer à profiter du monde des crypto-monnaies? Il est alors temps d’ouvrir votre compte utilisateur sur Bit2Me. C’est très simple à faire et, en plus, en suivant ce lien vous obtiendrez 5€ totalement gratuits en votre premier achat en Bit2Me

Comment fonctionne SHA-256 ?

Le but du hachage SHA-256 (et de toute fonction de hachage) est de générer un résumé. Pour comprendre tout cela de manière simple et plus détaillée, ne manquez pas le chapitre dédié à l’explication des fonctions hacher.

Dans Bitcoin, SHA-256 est utilisé pour processus d’extraction (création de bitcoins), mais aussi en train de générer adresses bitcoin. Il en est ainsi en raison du haut niveau de sécurité qu’il offre.

Dans le réseau blockchain, tous les nœuds ils auraient une copie du hachage de 64 caractères qui représente les informations qui représentent, par exemple, un bloc entier. Une fois que ces informations sont validées par le réseau (ou ce qui est identique, elles ont déjà été enregistrées dans la chaîne), toute manipulation de ces informations essayant de modifier n’importe quel caractère du hachage validé serait immédiatement détectée et rejetée.

Pour augmenter les informations techniques sur cette fonction de hachage cryptographique, nous vous recommandons de télécharger et de lire le papier en espagnol « Cryptographie : fonction SHA-256 » de Javier Dominguez Gómez, Ingénieur logiciel espagnol et hacktiviste en Free Software Foundation y Electronic Frontier Foundation.


Générateur SHA-256

Rainbow table SHA-256

Le hash SHA-256 de la chaine ‘password‘ est

5E884898DA28047151D0E56F8DC6292773603D0D6AABBDD62A11EF721D1542D8


Fonction de hachage

Voici un exemple d’utilisation d’une fonction de hachage en php:

<?php
  echo 'Exécution du code php suivant, echo hash("sha256", "apple");, donne:<br/><br/>';
  echo hash("sha256", "apple");
?>

Pour tester ce code, suivre le lien suivant

Documentation de la fonction php.hash()


Hash et sel

Référence