Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Verificar una firma bien

4 tareas · 25 min · Principiante

La sala anterior resolvió con qué clave se firma y con cuál se cifra. Pero firmar bien no sirve de nada si el que verifica lo hace mal, y ahí es donde se cuelan los fallos de verdad. Una firma «válida» solo dice que la clave que la generó cuadra con la pública que te dieron para comprobarla; no dice que esa clave sea de quien crees. En CifraLab varios servicios verifican firmas, y la comprobación tiene agujeros: aceptan la clave que venga pegada al mensaje, firman con claves demasiado débiles, o dejan que el propio mensaje diga con qué algoritmo verificarse. Tu trabajo es decir cuándo una firma válida no prueba nada.

0 de 4 · 0%

Objetivo de la sala

La sala anterior resolvió con qué clave se firma y con cuál se cifra. Pero firmar bien no sirve de nada si el que verifica lo hace mal, y ahí es donde se cuelan los fallos de verdad. Una firma «válida» solo dice que la clave que la generó cuadra con la pública que te dieron para comprobarla; no dice que esa clave sea de quien crees. En CifraLab varios servicios verifican firmas, y la comprobación tiene agujeros: aceptan la clave que venga pegada al mensaje, firman con claves demasiado débiles, o dejan que el propio mensaje diga con qué algoritmo verificarse. Tu trabajo es decir cuándo una firma válida no prueba nada.

Un servicio de CifraLab recibe un mensaje firmado junto con la clave pública para verificarlo, y acepta el mensaje si la firma cuadra con esa clave. El agujero es enorme: un atacante genera su propio par de claves, firma el mensaje que quiera con su privada, y adjunta su pública. La firma «es válida» —cuadra con la clave que vino pegada— pero no prueba nada sobre el origen, porque el que verifica confió en la clave que le dio el propio mensaje. Verificar una firma solo tiene sentido contra una clave en la que ya confías por otra vía: una clave fijada de antemano, o un certificado que una autoridad de confianza vincula a esa identidad. El arreglo es verificar contra la clave esperada, no contra la que llega adjunta.

El fallo es cerrar el círculo con el atacante dentro: el mensaje trae su propia clave de verificación, así que cualquiera «firma válido».

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 verifica la firma de un mensaje con la clave pública que viene pegada a ese mismo mensaje. ¿Cuál es el fallo?

Ver pista de ayuda

Si el mensaje trae su propia clave de verificación, cualquiera firma «válido». La clave tiene que venir de una fuente de confianza.

Otro servicio firma con una clave RSA de 1024 bits que lleva años en uso. El tamaño de clave no es un detalle: las claves que se consideraban suficientes hace una década hoy están al alcance, y una firma hecha con una clave débil se puede llegar a falsificar sin tener la privada. Lo mismo pasa con algoritmos de firma que ya se dieron por superados. El criterio es usar tamaños y algoritmos vigentes —RSA de al menos 2048 bits, o curvas elípticas modernas— y tratar el material de firma como algo que caduca: se revisa y se renueva, no se deja «porque siempre funcionó». El arreglo es migrar a una clave de tamaño y algoritmo actuales y retirar la vieja.

El fallo no está en el acto de firmar: está en firmar con una llave que el tiempo ya volvió forzable.

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 firma con una clave RSA de 1024 bits usada desde hace años. ¿Cuál es el arreglo?

Ver pista de ayuda

Las claves suficientes de hace una década hoy están al alcance. El tamaño y el algoritmo de firma caducan y se renuevan.

Un tercer servicio lee del propio mensaje qué algoritmo usar para verificar la firma, y acepta lo que el mensaje declare —incluido un valor que significa «sin firma»—. Eso deja al atacante elegir el camino más débil: declara un algoritmo roto, o directamente «ninguno», y la comprobación pasa sin firma real. Quien verifica no puede delegar en el mensaje la decisión de cómo comprobarse: el algoritmo de verificación se fija en el servicio, de antemano, y una firma que llega con otro algoritmo o sin él se rechaza. El arreglo es fijar el algoritmo esperado en el verificador y no aceptar que el mensaje lo cambie.

Es el mismo patrón del módulo anterior disfrazado: el que verifica confía en un dato que controla el atacante, esta vez el algoritmo en vez de la clave.

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 verifica la firma con el algoritmo que el propio mensaje declara, y acepta incluso «sin firma». ¿Cuál es el arreglo?

Ver pista de ayuda

Si el mensaje elige cómo se verifica, el atacante elige el camino más débil. El algoritmo lo fija el verificador.

Viste tres formas de que una firma «válida» no pruebe nada: confiar en la clave adjunta, firmar con una clave débil y dejar que el mensaje elija el algoritmo. Abre el laboratorio, recorre esas tres verificaciones 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 las tres verificaciones de firma. 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 verificación.

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