Hash Salting
El salting de hash añade una sal aleatoria a la entrada del hash para que entradas idénticas produzcan hashes distintos, frustrando las tablas arcoíris y la detección de colisiones.
Propósito
Hacer únicas las salidas de hash, previniendo ataques de precomputación y la comparación de entradas idénticas.
Mecanismo
Se genera una sal aleatoria, se calcula H(entrada || sal) y se almacena (sal, hash). Al verificar, se re-hashea con la sal almacenada y se compara. La sal no necesita ser secreta, pero sí única. Se usa en hashing de contraseñas, HMAC (aunque HMAC ya incorpora una clave) y escenarios similares.
Casos de uso
- Almacenamiento seguro de contraseñas
- Desduplicación en generación de tokens
- Desduplicación de huellas de datos
- Prevención de ataques de precomputación
Ejemplos
- entrada
pass1 + saltA → hashA; pass1 + saltB → hashBOutputSame password, different hashesUnique salt
Errores comunes
- Salt too short (<16 bytes)
- Use at least 16 random bytes
Términos relacionados
Salt
Una sal es un valor aleatorio que se añade durante el hash de contraseñas para que contraseñas idénticas produzcan hashes distintos, anulando las tablas arcoíris y la detección de contraseñas repetidas. GLOSARIO
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. GLOSARIO
Rainbow Table
Una tabla arcoíris es una tabla precalculada que mejora el método de Martin Hellman para invertir funciones hash, intercambiando espacio por tiempo para romper hashes de contraseñas. GLOSARIO
PBKDF2
PBKDF2 (Password-Based Key Derivation Function 2) es el KDF estandarizado en PKCS#5 que deriva claves de contraseñas mediante HMAC iterado, muy usado para hash de contraseñas y derivación de claves. GLOSARIO
Herramientas relacionadas
Derivación de claves PBKDF2
Derive a key from a password using PBKDF2 (RFC 2898) with Web Crypto API. Gratis, privado y 100% del lado del cliente. HERRAMIENTA
Derivación de claves scrypt
Derive a key from a password using scrypt (memory-hard KDF). Gratis, privado y 100% del lado del cliente. HERRAMIENTA
Generador de hash bcrypt
Hash passwords with bcrypt or verify bcrypt hashes. Gratis, privado y 100% del lado del cliente. HERRAMIENTA