¿El MD5 es adecuado para el inicio de sesión único?

1

Estamos utilizando una aplicación que ofrece un único signo a sus sistemas que luego se incrusta como un iframe (es decir, la URL está visible en la fuente de la página)

La seguridad de SSO proviene del uso de MD5 para hacer hash de varios componentes juntos y el hash resultante se usa en la URL.

Por ejemplo, hay una clave de servidor que se mezcla con la dirección de correo electrónico del usuario y la fecha actual, por lo que, asumiendo que la clave del servidor es ABCDEF, la fecha es 20161007125600 y el correo electrónico es [email protected]

Cuando se produce un hash, se crea un hash de 973897b9cdc4381ae4202a162d28052d y la URL del iframe es algo así como:

https://server.com?hash=973897b9cdc4381ae4202a162d28052d

Suponiendo puedo descifrar el hash y termino con:

[email protected]

Como todas las cadenas utilizan exactamente el mismo diseño, puedo dividir esto fácilmente en la dirección de correo electrónico, la fecha y la clave. Al hacerlo, ahora puedo crear un hash de [email protected] y pasar el MD5 de eso a la URL e iniciar sesión como [email protected]

¿Esto es "seguro"? ¿Estoy sobre analizando esto? Son una empresa bastante grande y consolidada, por lo que supongo que lo han probado ampliamente, pero soy tan reacio al MD5 que me ha hecho sentir un hormigueo y quiero saber si es algo de lo que deba preocuparme.

    
pregunta bhttoan 07.10.2016 - 13:59
fuente

2 respuestas

2

No estás analizando demasiado. Lo que están haciendo no es seguro. La razón no solo tiene que ver con el hecho de que están utilizando MD5. Es más bien que los llamados "hashes codificados" (que es básicamente lo que usted describe) no se consideran seguros. El método alternativo es HMAC. Consulte la descripción de en wikipedia . El defecto al que me refiero anteriormente se describe en el párrafo "Principios de diseño".

    
respondido por el kaidentity 07.10.2016 - 14:04
fuente
1

Función de derivación de claves

Recomendaría eliminar el campo de correo electrónico y usar una función de derivación de clave PBKDF2 para generar su hash con unos pocos miles de rondas con un algoritmo de hashing seguro como SHA-256 o SHA-512.

Vector de inicialización aleatoria

Use un IV aleatorio (16 bytes o más) generado por un generador de números aleatorios seguro de criptografía (como / dev / urandom) y envíe el IV junto con los demás datos.

Función hash segura

MD5 tiene 32 caracteres de longitud, 16 bytes de longitud. SHA2-256 tiene 64 caracteres de longitud, 32 bytes, SHA-512 tiene 128 caracteres de longitud, 64 bytes. Por lo tanto, otra razón para pasar a SHA-256 o SHA-512 es que el hash en sí es más difícil de fuerza bruta.

    
respondido por el swordsecurity 07.10.2016 - 14:23
fuente

Lea otras preguntas en las etiquetas