🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar Sesiónbcrypt, el coste y el límite de 72 bytes
5 tareas · 38 min · Principiante
bcrypt es la función de contraseñas más desplegada y la que más veces se ve mal configurada por dos motivos concretos: el coste se deja en un valor que ya quedó corto, y se olvida que solo lee los primeros 72 bytes de la contraseña. En Bocachico Logística hay tres servicios que usan bcrypt con ajustes distintos. Vas a leer su configuración, una tabla de tiempos y dos pruebas autorizadas sobre cuentas de prueba, y a decidir qué falla en cada uno.
Objetivo de la sala
bcrypt es la función de contraseñas más desplegada y la que más veces se ve mal configurada por dos motivos concretos: el coste se deja en un valor que ya quedó corto, y se olvida que solo lee los primeros 72 bytes de la contraseña. En Bocachico Logística hay tres servicios que usan bcrypt con ajustes distintos. Vas a leer su configuración, una tabla de tiempos y dos pruebas autorizadas sobre cuentas de prueba, y a decidir qué falla en cada uno.En bcrypt el parámetro de coste no es el número de vueltas, es el exponente: el trabajo es dos elevado al coste. Subir el coste en una unidad duplica el esfuerzo de cada verificación, tanto el del servidor como el de quien pruebe candidatos por fuerza bruta. Por eso un coste bajo es tan dañino: la diferencia entre dos valores no es lineal. La guía de OWASP pide que el coste sea el mayor que el servidor de verificación soporte con comodidad, con un mínimo de 10, y que se revise con los años.
Consulta SELECT * FROM tiempos y observa cómo crece el tiempo de una verificación al subir el coste.
Responde para continuar
En la tabla de tiempos, el coste 13 tarda el doble que el 12. ¿Qué lo explica?
Ver pista de ayuda
Mira cuánto tarda cada coste: de uno al siguiente el tiempo se multiplica por dos, no se suma.
Como el coste es un exponente, comparar dos servicios exige calcular: la diferencia entre costes es el exponente de la razón de trabajo. Un servicio con un coste tres unidades menor que otro hace ocho veces menos trabajo por contraseña, no tres. Esa es la cifra que va en un informe cuando se dice «este servicio está por debajo».
Lee SELECT * FROM config_bcrypt y compara el servicio con el coste más alto con el que tiene el coste más bajo.
Responde para continuar
¿Cuántas veces más trabajo exige el coste del servicio con el coste más alto frente al del más bajo? Escribe solo el número.
Ver pista de ayuda
La razón de trabajo es dos elevado a la diferencia entre los dos costes.
Con la referencia de OWASP delante, un coste inferior a 10 es un hallazgo directo, y más si el servicio se creó hace poco. Pero el informe no dice solo «coste bajo»: dice qué servicio, qué valor tiene, qué referencia incumple y qué se propone. La tabla de tiempos ayuda a proponer: sube el coste mientras la verificación siga siendo asumible para el inicio de sesión.
Identifica en la configuración el servicio que no llega al mínimo.
Responde para continuar
¿Qué servicio tiene el coste de bcrypt por debajo del mínimo recomendado? Escribe su nombre tal cual.
Ver pista de ayuda
Compara la columna de coste de los tres servicios con el mínimo de la teoría.
bcrypt solo procesa los primeros 72 bytes de la contraseña; lo que venga después se ignora en silencio. Con una frase de paso larga, el usuario cree que protege toda la frase y en realidad solo cuenta el principio. Se detecta con una prueba autorizada sobre una cuenta de prueba: se cambia un único byte en una posición concreta y se mira si la entrada sigue funcionando. Si sigue funcionando, ese byte no cuenta. La configuración de app-conductores deja escribir hasta 200 bytes sin ningún tratamiento previo, y eso es lo que la prueba comprueba.
Lee SELECT * FROM pruebas_truncado: una de las dos cuentas siguió entrando después del cambio.
Responde para continuar
¿En qué posición de byte se cambió la contraseña de la cuenta de prueba que siguió entrando? Escribe solo el número.
Ver pista de ayuda
Mira la columna que indica si sigue entrando y toma la posición modificada de esa fila.
Hay dos arreglos válidos. El primero, limitar la longitud de la contraseña a lo que bcrypt procesa y avisar al usuario. El segundo, hacer un prehash: reducir la contraseña con una función de hash y codificar el resultado en base64 antes de pasarlo a bcrypt, para que el valor sea de longitud fija y no contenga bytes nulos que corten la lectura. OWASP recomienda además que, si se hace prehash, se combine con una pimienta mediante HMAC. Lo que no es un arreglo es subir el coste o ampliar el formulario: el límite es de la función.
Mira la columna de prehash de config_bcrypt y contrasta cada servicio con lo que de verdad hace.
Responde para continuar
Según la configuración, ¿qué afirmación sobre el límite de 72 bytes es cierta?
Ver pista de ayuda
Un servicio limita la longitud por debajo de 72; otro hace prehash. Pregúntate cuál de los tres no deja bytes sin leer.
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
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.