0Pricing
Ethical Hacking Academy · Leçon

Hachage

MD5, SHA, bcrypt

Hachage est une leçon Ethical Hacking Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Ethical Hacking Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Ethical Hacking Academy comprend 4 leçons au total.

Qu’est-ce qu’un hachage ?

Une fonction de hachage prend une entrée de taille quelconque et produit une sortie de taille fixe appelée empreinte. La même entrée produit toujours la même empreinte.

Point essentiel, le hachage est une opération à sens unique. Il est mathématiquement impossible d’inverser une empreinte pour retrouver l’entrée d’origine. C’est ce qui distingue les hachages à la fois de l’encodage et du chiffrement.

Propriétés d’un bon hachage

Une fonction de hachage cryptographique doit être :

  • Déterministe : la même entrée donne la même sortie ;
  • Rapide à calculer (pour le hachage général), mais idéalement lente pour le hachage des mots de passe ;
  • Résistante aux préimages : à partir d’une empreinte, il est impossible de retrouver l’entrée ;
  • Résistante aux collisions : il doit être difficile de trouver deux entrées ayant la même empreinte ;
  • Présenter un effet avalanche : la modification d’un bit inverse environ la moitié des bits de sortie.

MD5

MD5 produit une empreinte de 128 bits (32 caractères hexadécimaux). Il est rapide et a longtemps été courant, mais il est cassé sur le plan cryptographique : des attaques pratiques par collision existent.

N’utilisez jamais MD5 pour la sécurité. Vous le rencontrerez encore pour les sommes de contrôle de fichiers et dans les systèmes anciens, ce qui en fait une cible fréquente lors des évaluations.

echo -n 'password' | md5sum
# 5f4dcc3b5aa765d61d8327deb882cf99

La famille SHA

La famille SHA (Secure Hash Algorithm) est plus robuste :

  • SHA-1 : 160 bits. Désormais considéré comme cassé (attaque par collision « SHADOW HAMMER » / SHAttered). À éviter.
  • SHA-2 : comprend SHA-256 et SHA-512. Largement utilisé et actuellement sûr.
  • SHA-3 : conception plus récente fondée sur Keccak, une solution différente de SHA-2.
echo -n 'password' | sha256sum
# 5e884898da28047151d0e56f8dc629...

Le hachage n’est pas du chiffrement

Le chiffrement est réversible avec une clé. Le hachage, lui, ne l’est absolument pas. C’est précisément pourquoi le hachage est utilisé pour stocker les mots de passe : le serveur n’a jamais besoin de connaître l’original.

Lorsque vous vous connectez, le serveur hache ce que vous avez saisi et le compare au hachage enregistré. S’ils correspondent, vous êtes authentifié. Le mot de passe en clair n’est jamais stocké.

Le problème : les tables arc-en-ciel

Comme le hachage est déterministe, l'empreinte de 'mot de passe' est la même pour chaque utilisateur. Les attaquants précalculent d'immenses tables de correspondance entre empreintes et textes en clair, appelées tables arc-en-ciel.

Si deux utilisateurs partagent le même mot de passe, leurs empreintes stockées sont identiques, ce qui révèle ce fait. Les hachages rapides non salés comme MD5 ou SHA-256 ne conviennent pas, à eux seuls, au stockage des mots de passe.

Le salage

Un sel est une valeur aléatoire unique ajoutée à chaque mot de passe avant le hachage. Cela signifie :

  • Des mots de passe identiques produisent des empreintes différentes.
  • Les tables arc-en-ciel précalculées deviennent inutiles.

Le sel est stocké avec l'empreinte ; il n'est pas secret. Son rôle est de rendre chaque empreinte unique, obligeant les attaquants à casser chacune individuellement.

stored = salt + hash(salt + password)
# salt is random and unique per user

bcrypt : conçu pour les mots de passe

bcrypt est conçu spécifiquement pour le stockage des mots de passe. Il est volontairement lent et inclut un facteur de coût configurable (facteur de travail) qui le rend plus lent à mesure que le matériel s'améliore.

Une empreinte bcrypt intègre l'algorithme, le coût et le sel dans une seule chaîne. La lenteur est intentionnelle : elle limite la vitesse à laquelle les attaquants peuvent effectuer des suppositions.

$2b$12$R9h/cIPz0gi.URNNX3kh2OPST9/PgBkqquzi.Ss7KIUgO2t0jWMUW
# $2b$ = bcrypt, 12 = cost factor, then salt + hash

Autres hachages lents

Outre bcrypt, les options modernes de hachage des mots de passe comprennent :

  • scrypt : exigeant en mémoire, il résiste aux attaques par GPU et ASIC.
  • Argon2 : vainqueur de la compétition de hachage des mots de passe, réglable en fonction du temps et de la mémoire. Le choix moderne recommandé.
  • PBKDF2 : applique un hachage rapide pendant plusieurs milliers d'itérations ; acceptable, mais plus faible que les précédents.

HMAC et intégrité

Les hachages servent également à garantir l'intégrité, et pas seulement à stocker les mots de passe. Un HMAC (code d'authentification de message fondé sur un hachage) combine un hachage avec une clé secrète pour vérifier à la fois l'intégrité et l'authenticité d'un message.

Les sommes de contrôle des fichiers (souvent SHA-256) permettent de vérifier qu'un téléchargement n'a pas été altéré. En tant que pirate informatique, des sommes de contrôle incohérentes peuvent révéler des fichiers modifiés ou malveillants.

Les empreintes dans le monde réel

En tant que pirate informatique, vous rencontrez constamment des empreintes :

  • /etc/shadow sur Linux stocke des empreintes de mots de passe salées, avec des préfixes tels que $6$ (SHA-512) ou $2b$ (bcrypt).
  • Windows stocke les empreintes NTLM dans la base de données SAM.
  • Les applications web stockent les mots de passe hachés dans leurs tables d'utilisateurs.

Reconnaître le préfixe vous indique immédiatement l'algorithme et votre stratégie de cassage.

$6$rounds=5000$salt$hash   # SHA-512 crypt
$2b$12$saltandhash...      # bcrypt

Vérification rapide

Choisissez l'option la plus sûre pour stocker les mots de passe des utilisateurs.

Récapitulatif

Vous comprenez maintenant le hachage :

  • Le hachage est une transformation à sens unique, de taille fixe et déterministe, différente de l'encodage et du chiffrement.
  • MD5 et SHA-1 sont compromis ; utilisez SHA-256 pour garantir l'intégrité générale.
  • Pour les mots de passe, utilisez des algorithmes lents et salés : bcrypt, scrypt ou Argon2.
  • Les sels neutralisent les tables arc-en-ciel ; HMAC ajoute une garantie d'intégrité fondée sur une clé.

Vous allez ensuite explorer le chiffrement symétrique et asymétrique avec AES et RSA.

Questions Fréquemment Posées

La leçon « Hachage » est-elle gratuite ?

Oui — le texte complet de « Hachage » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Ethical Hacking Academy, passe à CoddyKit PRO. Le cours Ethical Hacking Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Hachage » ?

MD5, SHA, bcrypt Tu pratiques Ethical Hacking Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Ethical Hacking Academy ?

Aucune expérience préalable n'est requise. Ethical Hacking Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Hachage » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Ethical Hacking Academy ?

Oui. Chaque leçon Ethical Hacking Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Encodage ou chiffrement
  2. Hachage
  3. Symétrique et asymétrique
  4. Craquer des hachages
← Retour à Ethical Hacking Academy