Usando un hash MD5 como contraseña

Pregunta:

Suponga que Alice está usando una solicitud de contraseña que solo acepta hasta 32 caracteres para cualquier contraseña en particular.

La memorización de cadenas largas de caracteres aleatorios no es uno de los puntos fuertes de Alice, por lo que opta por una frase de contraseña memorable que consiste en una permutación de 7 de las 2000 palabras en inglés más comunes . Desafortunadamente, esta frase de contraseña excede la longitud máxima de contraseña permitida por la solicitud (es decir, la frase de contraseña tiene fácilmente más de 32 caracteres ).

Este es un problema común al que se enfrenta el usuario promedio, que a menudo debe ingresar contraseñas para sitios o servidores con límites máximos de longitud de contraseña. Lo que me pregunto es si esta solución es relativamente segura:

  1. Alice usa el hash de su contraseña: passphrase --> MD5(passphrase) --> new_passhash
    • Los resúmenes MD5 tienen una longitud de 128 bits o 32 dígitos hexadecimales .
  2. Alice toma new_passhash , que tiene una longitud de 32 caracteres , y la usa como su nueva contraseña .

En la superficie, parece como si su contraseña de hecho estuviera reforzada . Suponiendo que un atacante está realizando un ataque de fuerza bruta:

Permutations for passphrase = 2000^7    (set of 2000 words, 7 choices)
Permutations for MD5 string = 16^32     (set of 16 alphanum characters, 32 choosen)

(2000^7) is strictly less than (16^32)

Sin embargo, si el atacante sabe que la frase de contraseña está codificada con MD5 , ¿el hecho de que MD5 sea susceptible a ataques de colisión haría que new_passhash menos seguro que la frase de contraseña original?

Respuesta:

La fuerza de la contraseña se mide típicamente en bits de entropía , o en términos sencillos, la cantidad de "verdadera aleatoriedad" en el sistema. Esto se mide por el proceso de cómo se genera la contraseña en lugar de por el número de bits en la salida. Es una simple extensión del principio de Kerckhoffs : suponga que su atacante conoce su proceso y que la única información que desconoce es la clave secreta.

Tiene razón en que el número de permutaciones de la frase de contraseña es $ 2000 ^ 7 $. Esto equivale aproximadamente a $ 2 ^ {77} $, por lo que una contraseña generada con este enfoque tiene alrededor de 77 bits de entropía, que es una muy buena seguridad de contraseña. Sin embargo, pasar la salida a través de una función de resumen como MD5 en realidad no aumenta el número de posibles permutaciones. MD5 tiene $ 2 ^ {128} $ salidas posibles, pero en realidad solo estamos usando $ 2 ^ {77} $ de ellas. Dicho de otra manera, asumiendo que un atacante conoce nuestro proceso, no tiene que adivinar todas las posibles salidas MD5; solo tienen que probar las que correspondan a un hash de 7 de las 2000 palabras más comunes en inglés. Y eso es comparativamente mucho más fácil de hacer.

En la práctica, sin embargo, 77 bits de entropía siguen siendo bastante buenos para una contraseña. MD5 no agrega ninguna fuerza en sí misma, pero tampoco necesariamente elimina ninguna. Como una "codificación" (asumiendo que está usando una representación hexadecimal de 32 caracteres) para rellenar siete palabras aleatorias en un campo restringido a 32 caracteres (y con frecuencia a solo valores alfanuméricos), me parece práctico.

Una ligera mejora sería utilizar la codificación Base32 para la salida binaria MD5 en lugar de la hexadecimal. Esto reduciría la longitud de la salida a 26 caracteres (al permitir también letras mayúsculas) y podría permitirle usar este esquema para campos de contraseña limitados a menos de 32 caracteres.

Editar: Otros han expresado su preocupación por las debilidades en MD5. Si bien también comparto un disgusto general por MD5, creo que este uso es perfectamente aceptable. No está siendo utilizado por su resistencia preimagen aquí, porque el atacante no tiene ninguna necesidad de determinar las siete palabras originales que se utilizaron; tener el hachís en sí es suficiente. Dado que tanto las palabras elegidas como el hash MD5 en sí se consideran secretos, no creo que haya motivos de preocupación.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım