Aller au contenu
uencoder

Pepper

Un pepper est un secret côté serveur ajouté lors du hachage de mots de passe (contrairement au sel, il est partagé globalement et gardé secret), augmentant la difficulté des attaques hors ligne.

Objectif

Ajouter un secret du serveur par-dessus le sel, pour qu'une fuite de la base de données seule ne suffise pas à craquer les mots de passe hors ligne.

Mécanisme

H(password || salt || pepper). Le pepper est partagé globalement mais secret (stocké en config/HSM, pas dans la base). En cas de fuite de la base, des attaquants sans le pepper ne peuvent pas hacher hors ligne. Le sel reste unique par utilisateur. Si le pepper fuit, la protection se dégrade au sel seul.

Cas d’usage

  • Hachage de mots de passe renforcé
  • Protection supplémentaire après une fuite de base de données
  • Stockage du pepper dans un HSM
  • Exigences de conformité

Exemples

  • entrée
    H(pass + salt + pepper)
    Output
    The pepper is required for verification

    Pepper kept secret

Erreurs courantes

Storing the pepper in the database (the same one as the hashes)
Keep the pepper in config/HSM, separate from the database

Termes associés

Outils associés

References