Saltar al contenido
uencoder

Pepper

Un pepper es un secreto del lado servidor añadido durante el hash de contraseñas (a diferencia de una sal, se comparte globalmente y se mantiene en secreto), elevando la dificultad de los ataques offline.

Propósito

Añadir un secreto del servidor además de la sal, de modo que una fuga de la base de datos por sí sola no permita descifrar contraseñas offline.

Mecanismo

H(password || salt || pepper). El pepper se comparte globalmente pero es secreto (guardado en config/HSM, no en la base de datos). Ante una fuga de la base, atacantes sin el pepper no pueden hashear offline. La sal sigue siendo única por usuario. Si el pepper se filtra, la protección degrada a solo sal.

Casos de uso

  • Hash de contraseñas reforzado
  • Protección extra tras una fuga de base de datos
  • Almacenamiento del pepper en un HSM
  • Requisitos de cumplimiento

Ejemplos

  • entrada
    H(pass + salt + pepper)
    Output
    The pepper is required for verification

    Pepper kept secret

Errores comunes

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

Términos relacionados

Herramientas relacionadas

References