Menu Fermer

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.
On peut aussi l’utiliser pour vérifier la somme de contrôle (checksum) d’une données pour vérifier l’intégrité.

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
Les fonctions de hachage Le hachage ou les hashs : md5, sha1, sha256

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 certificats et hash

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

les empreinte de fichiers et hash

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

Stocker les mots de passe par un hash

Les hashs sont aussi utilisés pour stocker les mots de passe.
La plupart des systèmes les utilisent.

Par exemple les comptes des sites internet sont stockés dans les bases de données de cette manière.
Un piratage peut donc permettre de les récupérer.
D’où les attaques et piratages massifs des sites internet.

Les navigateurs WEB les stockent aussi de cette manière.
Ils proposent aussi un mécanisme pour les récupérer.
Ainsi, il est très facile de voler les mots de passe stockés dans les navigateurs internet : Les vols de mot de passe sur les navigateurs WEB

Enfin les systèmes d’exploitation comme Windows ou Linux stocke les mots de passe avec un hash.
Il est relativement simple de les récupérer.
Par exemple ci-dessous, on extrait le NTLM Hash des utilisateurs Windows.

Sur Linux, on le trouve dans /etc/shadow

A partir de là, on peut effectuer des attaques sur le hash.
Ainsi, on peut chiffrer les fichiers PDF et ZIP, RAR ou 7z afin de protéger le contenu.
Cela n’empêche pas les attaques par bruteforce afin de récupérer le mot de passe.

Cracker et attaquer un hash et une empreinte

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, Microsoft & 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

Ci-dessous OPCrack utilise les tables arc-en-ciel pour cracker des hashs et ainsi récupérer les mots de passe d’utilisateur Windows.

Par exemple le programme hashcat permet aussi de cracker des hashs.
On en parle dans l’article suivant :


Un MD5 ne tient que quelques minutes.

Enfin il existe aussi John The Ripper pour cracker et casser les hashs des mots de passe.

Calculer le hash et empreinte d’un fichier

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.

Pour calculer le hash d’un fichier, suivez cet article compet : 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

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 :

[email protected]:/tmp/mal# echo -n "vive malekal.com" |md5sum 8d0b13a3584782cc802343dde0305cff
[email protected]:/tmp/mal# echo -n "vive malekal.com" |sha1sum 6fde9b7e35de1a6bd4bcb34953057abdddf334f6 -
Calculer le hash d'un fichier sur Linux