Aller au contenu
uencoder

Salt

Un sel est une valeur aléatoire ajoutée lors du hachage de mots de passe afin que des mots de passe identiques produisent des hachés différents, ce qui neutralise les tables arc-en-ciel et la détection de mots de passe identiques.

Objectif

Rendre le haché de chaque mot de passe utilisateur unique même pour des mots de passe identiques, afin d'empêcher le précalcul et la comparaison en masse.

Mécanisme

On génère un sel aléatoire unique (≥ 16 octets) par mot de passe et l'on hache la concaténation : H(password || sel). Le sel est stocké avec le haché (aucune confidentialité requise) ; lors de la vérification, on re-hache avec le sel stocké puis on compare. Le salage oblige à précalculer les tables arc-en-ciel pour chaque utilisateur, ce qui est infaisable.

Cas d’usage

  • Stockage des hachés de mots de passe
  • Entrée de KDF (PBKDF2/scrypt)
  • Analogie avec l'IV de chiffrement
  • Génération de jetons

Exemples

  • entrée
    password + random salt
    Output
    Unique hash

    Different per user

Erreurs courantes

A global fixed salt (equivalent to no salt)
Generate a unique random salt per password

Termes associés

Outils associés

References