Volver al glosario

Función de derivación de claves (KDF)

2 min de lectura

En criptografía, una función de derivación de claves (KDF) convierte una contraseña o un secreto compartido en una clave criptográfica, y para el almacenamiento de contraseñas es lenta y dura en memoria a propósito, para que adivinar salga caro. Es el control que de verdad resiste el crackeo, y la ficha que corrige el consejo equivocado sobre las funciones hash y el consejo anticuado sobre la sal, porque los dos apuntan aquí.

29 de julio de 2026
Compartir:

Cómo funciona

Una función de derivación de claves toma una entrada de poca entropía, normalmente una contraseña, más una sal, y produce una clave o un verificador mediante un proceso costoso a propósito. Ese coste es todo el diseño. Una función hash de propósito general es rápida, lo cual es una virtud para la integridad y un desastre para las contraseñas; una KDF de contraseñas como Argon2id, scrypt, bcrypt o PBKDF2 está ajustada para que calcularla una vez sea trivial para el servidor y calcularla miles de millones de veces salga caro para un atacante. Las mejores opciones son duras en memoria: obligan a cada intento a consumir una cantidad fija de memoria, lo que derrota al hardware paralelo barato que el atacante usaría si no. Los parámetros de coste son configurables y están pensados para subirse conforme mejora el hardware.

Qué sale mal

El fallo es usar un hash rápido donde corresponde una KDF, lo que convierte una base de datos robada en un ejercicio rápido de fuerza bruta. En los sistemas que auditamos, el «SHA-256 con sal» y el MD5 pelado siguen siendo habituales para contraseñas almacenadas, y los dos caen deprisa por mucha sal que lleven. Se repiten además dos fallos más sutiles: parámetros de coste puestos una vez y nunca subidos, con lo que una KDF elegida hace años ya no impone un coste real al hardware actual, y PBKDF2 con un número de iteraciones muy por debajo de lo que hoy corresponde. La gracia de una KDF es encarecer cada intento, y una KDF configurada demasiado barata solo protege las contraseñas de nombre.

Dónde aparece esto en una auditoría

Allí donde aparecen contraseñas o derivación de clave a partir de contraseña, registramos qué función se usa y con qué parámetros de coste, y si esos parámetros se han subido desde que se construyó el sistema. Un hash rápido de propósito general es un hallazgo por sí solo; una KDF de verdad con el coste demasiado bajo también lo es. El mismo razonamiento aparece del lado ofensivo en el kerberoasting, donde la contraseña floja de una cuenta cae ante el crackeo fuera de línea precisamente porque no hay ningún coste duro en memoria por medio. Recomendamos una función dura en memoria como Argon2id con parámetros dimensionados para el hardware actual.

¿Quieres ver cómo trabajamos en Asperis Security?

Agenda 30 minutos con uno de nuestros especialistas. Revisamos tu stack y te decimos qué conviene probar primero.