Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

De una contraseña a una clave de cifrado

4 tareas · 20 min · Principiante

Hasta aquí la clave de cifrado aparecía ya hecha, guardada en un gestor. Pero a veces la clave tiene que salir de una contraseña que escribe una persona: un archivo que se cifra con una frase, un respaldo protegido por una clave de usuario. Convertir una contraseña en una clave de cifrado tiene su propio arte, y hacerlo a lo bruto —usar la contraseña tal cual como clave— rompe el cifrado por la entrada, no por el algoritmo. Ojo con no confundir esto con guardar contraseñas: allí nunca recuperas el original; aquí derivas una clave para descifrar un dato. En CifraLab tres servicios derivan claves de contraseñas, y solo uno lo hace bien.

0 de 4 · 0%

Objetivo de la sala

Hasta aquí la clave de cifrado aparecía ya hecha, guardada en un gestor. Pero a veces la clave tiene que salir de una contraseña que escribe una persona: un archivo que se cifra con una frase, un respaldo protegido por una clave de usuario. Convertir una contraseña en una clave de cifrado tiene su propio arte, y hacerlo a lo bruto —usar la contraseña tal cual como clave— rompe el cifrado por la entrada, no por el algoritmo. Ojo con no confundir esto con guardar contraseñas: allí nunca recuperas el original; aquí derivas una clave para descifrar un dato. En CifraLab tres servicios derivan claves de contraseñas, y solo uno lo hace bien.

Un servicio de CifraLab cifra un respaldo usando directamente los caracteres de la contraseña como clave AES, rellenando con ceros hasta llegar al tamaño. Una contraseña no tiene la forma de una clave: es corta, predecible, y su conjunto de valores posibles es diminuto comparado con el de una clave aleatoria. Usarla tal cual como clave convierte el cifrado en algo que se rompe probando contraseñas, no claves. Lo correcto es pasar la contraseña por una función de derivación de clave —un KDF como PBKDF2, scrypt o Argon2— que produce una clave del tamaño justo a partir de la contraseña. El arreglo es derivar la clave con un KDF, nunca usar la contraseña como clave.

El fallo es de entrada, no de algoritmo: AES recibe como clave algo que se adivina probando frases.

Esta tarea se hace en el laboratorio

Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.

Preparando el escritorio…

Responde para continuar

Un servicio usa los caracteres de la contraseña directamente como clave AES. ¿Cuál es el arreglo?

Ver pista de ayuda

Una contraseña no tiene la forma de una clave. Se pasa por una función de derivación que produce la clave a partir de ella.

Otro servicio sí usa un KDF, pero sin sal y con muy pocas iteraciones. Las dos cosas lo dejan casi inútil. Sin sal, la misma contraseña produce siempre la misma clave, así que se pueden precomputar tablas de contraseñas a claves y atacar muchos respaldos a la vez. Con pocas iteraciones, derivar es rápido, y lo que encarece probar millones de contraseñas es justo que derivar sea lento. Un KDF se usa con una sal aleatoria por cada derivación —guardada junto al dato cifrado, no es secreta— y con un coste alto, calibrado para que derivar tarde una fracción de segundo. El arreglo es añadir sal por derivación y subir las iteraciones o el coste.

El KDF correcto, sin sal y a toda velocidad, es como la función de contraseña del módulo 2 mal calibrada: bien elegido, mal usado.

Esta tarea se hace en el laboratorio

Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.

Preparando el escritorio…

Responde para continuar

Un servicio deriva la clave con un KDF sin sal y con pocas iteraciones. ¿Cuál es el arreglo?

Ver pista de ayuda

Sin sal se precomputan tablas; con pocas vueltas, derivar es rápido y la fuerza bruta barata. Sal por derivación y coste alto.

El servicio que lo hace bien va un paso más allá: de un mismo secreto maestro necesita varias claves —una para cifrar, otra para autenticar— y no reutiliza la misma para las dos. Reutilizar una clave para dos propósitos junta sus riesgos y abre interacciones raras entre operaciones. Lo correcto es derivar claves separadas del secreto maestro con una función de derivación pensada para eso (por ejemplo HKDF), dando a cada una una etiqueta de propósito distinta. Así, de un solo secreto bien guardado salen todas las claves que hagan falta, cada una para su trabajo, sin compartir material entre funciones.

Derivar en vez de reutilizar es el mismo criterio del módulo 4 —un par de claves por propósito— aplicado al mundo simétrico.

Esta tarea se hace en el laboratorio

Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.

Preparando el escritorio…

Responde para continuar

Un servicio necesita una clave para cifrar y otra para autenticar a partir de un mismo secreto. ¿Qué hace?

Ver pista de ayuda

Una clave por propósito. De un secreto maestro se derivan claves separadas, cada una con su etiqueta, sin reutilizar material.

Viste la contraseña usada como clave, el KDF sin sal y con pocas vueltas, y la derivación correcta de claves separadas por propósito. Abre el laboratorio, recorre los tres servicios y lee el código que la auditoría anotó al cerrar la sala.

Esta tarea se hace en el laboratorio

Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.

Preparando el escritorio…

Responde para continuar

Abre el laboratorio y revisa los usos de derivación de clave. En las notas de auditoría de la sala queda anotado un código. Escríbelo tal cual.

Formato esperado: CIF-____

Ver pista de ayuda

El código está en el archivo de notas de la auditoría del escenario, no en la configuración de cada servicio.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Preparando el escritorio…

16:24
Terminal (user@whoami)
user@whoami:~$
Tab Autocompletar ↑/↓ Historial
bash 5.2.21
Whoami-Labs OS v3.0.1 LTS · build bcc89e

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad