Le hachage ou les hashs : md5, sha1, sha256

En cryptographie, les fonctions de hashs (en français on peut parler de hachage) permettent à partir d’une entrée, de calculer une empreinte unique.
Les fonctions de hashs ont diverses applications, notamment la possibilité de calcuter l’empreinte unique d’un fichier ou de stocker les mots de passe de manière protégé dans une base de données.

Voici quelques présentations de l’utilisation des hashs.

Le hachage ou les hashs : md5, sha1, sha256
Le hachage ou les hashs : md5, sha1, sha256

Comprendre le hachage (hashs)

En cryptographie, le hachage permet donc de calculer une empreinte unique.
Il existe plusieurs algorithmes différents qui permettent d’obtenir une empreinte : md5, sha1, sha-256

Pour mieux comprendre, voici un exemple :

  • la fonction de hachage md5 de « vive malekal.com » est : 8d0b13a3584782cc802343dde0305cff
  • en sha1 de « vive malekal.com » est : 6fde9b7e35de1a6bd4bcb34953057abdddf334f6
  • md5 de « vive malekal.com!! » est : 2181513edf5afa8598427d357a192185
  • enfin le md5 de « vive malekal.com!! » est : 01c6c73c7a008936fad6e75772057e73550a7ba4

L’empreinte de hachage est donc différente selon l’entrée utilisée, enfin cette empreinte est unique.
Ici nous avons utilisé une phrase, mais on peut utiliser un mot ou un fichier comme entrée.

Ce qu’il faut aussi savoir, c’est que le calcul ne peut se faire que dans un seul sens.
Ce calcul est irréversible, c’est à dire que vous pouvez calculer l’empreinte d’une phrase ou d’un fichier mais vous ne pouvez pas retrouver la phrase ou le fichier de départ à partir de l’empreinte.

Pour essayer, vous pouvez utiliser le générateur suivant http://www.sha1-online.com/ qui permet de calculer des empreintes de hachage.

Calculer le hash ou empreinte
Calculer le hash ou empreinte

Le site support plusieurs algorithmes de cryptage différents.

Calculer le hash ou empreinte
Calculer le hash ou empreinte

Les fonctions de hachages ont différents usages que nous allons détailler dans la suite de cet article.

Exemple d’utilisation du hachage

les mots de passe et certificat

Dans l’exemple donnée, l’entrée est une phrase mais il est tout à fait possible de calculer l’empreinte d’un mot de passe (Le calcul de l’empreinte fonctionne avec un seul mot).
Ainsi, les sites WEB peuvent stocker les mots de passe sous la forme d’un hash au lieu du mot de passe directement.
Dans le cas d’une piratage Piratage/Hack massif de comptes en ligne, le pirate récupérera les hashs et éprouvera des difficultés pour retrouver les mots de passe initiaux ; surtout dans le cas de mot de passe fort.

Afin de brouiller encore plus les pistes, il est possible d’ajouter un une chaîne de caractère au mot de passe reçue à l’entrée.
Ainsi donc l’empreinte du mot de passe stocké dans la base de données du site sera : motdepasse+chainedecaractère.
Cette chaîne de caractère est définie dans le code du site.
Le but étant de rendre les attaques par bruteforce sur les hachage, pour retrouver le mot de passe encore plus difficile.
Cela permet aussi de protéger les mots de passe facile.
Ce procédé se nomme salage.

Les fonctions de hachages sont aussi utilisées dans les certificats électroniques qui peuvent par exemple être utilisés les sites HTTPs (sites sécurisés).
Notamment le certificat est signé à l’aide de ces fonctions.
Actuellement, SHA-1 était le plus utilisé, mais suite à des problèmes de sécurité, il est peu à peu abandonné pour SHA-2 (SHA-1 est interdit à partir du 1er janvier 2017).

Pour plus d’informations sur les certificats électroniques, se rendre sur la page : Les certificats et signatures électroniques : A quoi cela sert et comment cela fonctionne

Le hash dans les mots de passe ou certificat
Le hash dans les mots de passe ou certificat

Créer une empreinte hash d’un fichier

L’autre utilisation est l’utilisation du hachage pour désigner un fichier unique.
Le nom d’un fichier ne voulant strictement rien dire.
En effet, vous pouvez renommer un fichier à volonté, le contenu reste le même.
Les fonctions de hachages assurent l’identification unique d’un fichier.
Dans le cas des droppers malicieux, dans les bases de données des antivirus, l’identification se fait par les empreintes.

Par exemple VirusTotal indique les empreintes, il est aussi possible de faire une recherche de fichiers sur celle-ci :

Calculer l'empreinte d'un fichier
Calculer l’empreinte d’un fichier

Cela permet aussi lorsque vous téléchargez un fichier volumineux comme un fichier ISO de comparer l’empreinte du fichier téléchargé à celui du serveur.
Ainsi, vous pouvez vérifier que vous avez bien le même fichier et que le votre n’est pas corrompu.
C’est pour cela que la plupart des fichiers ISO et notamment les distributions Linux indiquent les empreintes MD5 des .iso

Mint :

La somme de contrôle d'un fichier ISO Linux
La somme de contrôle d’un fichier ISO Linux

Debian :

La somme de contrôle d'un fichier ISO Linux
La somme de contrôle d’un fichier ISO Linux

Les failles du hachage

Certains algorithmes comme md5 et sha1 ne sont plus considérés comme sûr.

Les fonctions de hachages MD5 inventés en 1991.
En 1996 des possibilités de collision existent avec la fonction de hachage md5, c’est à dire avec deux entrées différentes, on peut obtenir une empreinte identique. En 2004, des chercheurs ont pu découvrir des collisions complètes.
De plus, il est possible de casser facilement une empreinte, c’est à dire retrouver l’entrée à partir d’une empreinte.
Les mots de passe md5 peuvent être crackés à partir d’attaque en arc-en-ciel (rainbow table).

La fonction de hachage SHA-1 est publié en 1995. 2005, des chercheurs ont trouvé des attaques possible contre cet algorithme.
2010, Microsft & Google commence à interdire son utilisation.
SHA-1 est remplacé par SHA-2 (qui donne les fonctions de hachage SHA-224, SHA-256, SHA-384 et SHA-512).
SHA-3  est une nouvelle fonction de hachage cryptographique décrite en août 2015

Calculer un hash

Des utilitaires permettent de calculer un hachage : md5, sha1, sha256

Windows

Sur Windows, vous pouvez calculer l’empreinte d’un fichier en ligne de commandes ou PowerShell.
Bien entendu, il existe aussi des utilitaires gratuits.
L’article suivant donne plusieurs méthodes : Vérifier l’intégrité et empreinte d’un fichier (MD5, SHA1, SHA256…) sous Windows

Voici aussi rapidement d’autres utilitaires pour calculer le hash d’un fichier sur Windows.

Par exemple winmd5Sum de Nullriver Software où il suffit d’indiquer le fichier source et le MD5 est retourné.

Calculer le hash d'un fichier avec winMd5Sum
Calculer le hash d’un fichier avec winMd5Sum

HashMyFiles de NirSoft donne la possibilité de calculer des empreintes md5, sha1 ou sha256
HashMyFiles peut aussi être ajouté en menu contextuel (clic droit sur un fichier ou dossier).
Cet utilitaire peut aussi calculer toutes les empreintes des fichiers contenus dans un dossier.

Calculer le hash d'un fichier avec HashMyFiles
Calculer le hash d’un fichier avec HashMyFiles

Linux

Linux fournit en natif et en ligne de commandes, des outils pour calculer des empreintes de fichiers.
On trouve les utilitaires: md5sum, sha1sum et sha256sum

Calculer le hash d'un fichier sur Linux
Calculer le hash d’un fichier sur Linux

Ces commandes peuvent aussi être utilisées pour calculer des empreintes avec une chaîne de caractère en entrée :

root@Mak-tux:/tmp/mal# echo -n "vive malekal.com" |md5sum 8d0b13a3584782cc802343dde0305cff
root@Mak-tux:/tmp/mal# echo -n "vive malekal.com" |sha1sum 6fde9b7e35de1a6bd4bcb34953057abdddf334f6 -
Calculer le hash d'un fichier sur Linux
Calculer le hash d’un fichier sur Linux
(Visité 6 814 fois, 1 visites ce jour)