Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

scrypt y Argon2, memoria, tiempo y paralelismo

5 tareas · 40 min · Principiante

scrypt y Argon2 añaden a la lentitud un segundo coste, la memoria, y esa es la razón de que se prefieran: obligan a quien prueba candidatos a gastar memoria además de tiempo. Pero tienen tres parámetros que se tocan a la vez y es fácil dejar uno corto o elegir la variante equivocada. En Bocachico Logística hay cinco servicios con estas funciones. Vas a leer sus parámetros contra las combinaciones equivalentes de la guía de OWASP y a medir qué cuesta en memoria un servidor.

0 de 5 · 0%

Objetivo de la sala

scrypt y Argon2 añaden a la lentitud un segundo coste, la memoria, y esa es la razón de que se prefieran: obligan a quien prueba candidatos a gastar memoria además de tiempo. Pero tienen tres parámetros que se tocan a la vez y es fácil dejar uno corto o elegir la variante equivocada. En Bocachico Logística hay cinco servicios con estas funciones. Vas a leer sus parámetros contra las combinaciones equivalentes de la guía de OWASP y a medir qué cuesta en memoria un servidor.

Argon2 se configura con la memoria m, en kibibytes, las pasadas t y el paralelismo p. scrypt, con el coste N, que es una potencia de dos y fija la memoria, el tamaño de bloque r y el paralelismo p. En ninguna de las dos se sube un parámetro sin pensar en los otros: la guía de OWASP da varias combinaciones que protegen más o menos igual, de modo que menos memoria se compensa con más pasadas o más paralelismo. Es útil cuando el servidor no tiene memoria para la combinación con más margen. Lo que no vale es bajar la memoria y dejar lo demás igual.

Abre SELECT * FROM referencia_oficial y SELECT * FROM config_memoria. El portal de clientes usa Argon2id con 4096 KiB, una pasada y paralelismo 1.

Responde para continuar

portal-clientes usa Argon2id con m=4096, t=1, p=1. ¿Cómo se registra?

Ver pista de ayuda

Compara la memoria con la más baja de las combinaciones de la tabla, y mira cuántas pasadas pide esa combinación.

Argon2 existe en tres variantes. Para guardar contraseñas se recomienda Argon2id, que combina las dos ideas de las otras: resistencia a ataques con hardware especializado y a canales laterales. La guía de OWASP lo dice expresamente: las dos primeras combinaciones de la tabla no deben usarse con Argon2i. Una configuración con los números correctos y la variante equivocada tiene la apariencia de estar bien, y por eso se escapa en las revisiones rápidas. Hay que leer el nombre de la función completo, no solo sus números.

Mira la columna de función de config_memoria.

Responde para continuar

¿Qué servicio usa una variante de Argon2 distinta de Argon2id? Escribe su nombre tal cual.

Ver pista de ayuda

Compara el nombre de la función de los tres servicios con Argon2.

En scrypt las combinaciones equivalentes de la guía suben el paralelismo a medida que baja N: con una memoria pequeña se pide más paralelismo. Un servicio con N pequeño y p igual a 1 conserva la memoria baja y pierde la compensación, de manera que queda por debajo de la combinación que le correspondía. No es un fallo de la función ni de su coste mínimo; es una combinación que no está en la tabla.

Busca entre los servicios con scrypt el que no coincide con ninguna combinación de la referencia.

Responde para continuar

¿Qué servicio con scrypt queda por debajo de las combinaciones equivalentes? Escribe su nombre tal cual.

Ver pista de ayuda

Hay dos servicios con scrypt; compara cada uno con la fila de la referencia que tenga su mismo N.

La memoria es lo que hace fuertes a estas funciones y también lo que las hace caras de operar. Cada verificación en curso reserva su memoria mientras dura, y un pico de inicios de sesión multiplica esa reserva. Un auditor lo calcula antes de pedir más parámetros: cuántas verificaciones caben a la vez en la memoria que el servidor dedica al hash. Si el número es bajo, un pico legítimo o una oleada de intentos puede dejar sin servicio el propio inicio de sesión, y entonces el arreglo incluye limitar la concurrencia o dimensionar el servidor.

Lee SELECT * FROM servidor y toma la memoria por hash de api-pedidos en config_memoria.

Responde para continuar

¿Cuántas verificaciones de api-pedidos caben a la vez en la memoria disponible? Escribe solo el número entero, sin redondear hacia arriba.

Ver pista de ayuda

Divide la memoria disponible entre la memoria de cada verificación y quédate con la parte entera.

Una función que solo gasta tiempo se puede acelerar con muchos núcleos baratos: tarjetas gráficas o circuitos a medida hacen millones de operaciones a la vez. Una función que además exige memoria por cada intento limita cuántos se pueden hacer en paralelo, porque la memoria rápida es cara y escasa en esos dispositivos. Por eso scrypt y Argon2 se llaman funciones intensivas en memoria, y por eso la guía de OWASP pone Argon2id como primera opción para sistemas nuevos.

Responde para continuar

¿Qué ventaja da exigir memoria en una función de contraseñas?

Ver pista de ayuda

Piensa en lo que limita el número de intentos simultáneos cuando se usan muchos núcleos baratos.

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

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