Algoritmos MD5 en desarrollo web

0

Estoy almacenando las contraseñas de mi sitio web de la universidad en nuestro propio servidor. Estoy almacenando las contraseñas usando el encriptador MD5. Pero la duda que tengo es que ya que el descifrador está allí, también puedo descifrar las contraseñas y usarlas. Entonces, ¿cómo se aseguran estas contraseñas conmigo?

    
pregunta Baradwaj Aryasomayajula 03.12.2013 - 13:39
fuente

1 respuesta

3

MD5 no es un algoritmo de cifrado. Es un algoritmo hash. El algoritmo hash es unidireccional. No hay descifrador.

Los hash se utilizan para generar una huella digital de una cadena de texto. La ingeniería inversa de la entrada del hash debería ser imposible. Cuando la función hash es criptográficamente segura, no debería haber una manera más eficiente que probar todas las entradas posibles hasta que encuentre una que coincidentemente tenga el mismo hash.

¿Cómo se aplica esto en un sistema de contraseña?

Cuando el usuario le dice su contraseña durante el registro, no la guarda. Usted genera el hash de la contraseña, guarda el hash en la base de datos y olvida que alguna vez vio la contraseña de cleartext. Cuando un usuario intenta iniciar sesión, le dan una contraseña. Usted genera el hash de esa contraseña, y cuando coincide con el hash en su base de datos, los deja entrar.

Pero tenga en cuenta que MD5 ya no es una buena opción para el cifrado de contraseñas.

  1. MD5 es un algoritmo rápido. A primera vista, esto parece una ventaja porque hace que la autenticación sea más rápida. Pero también hace que sea mucho más fácil para cualquiera que tenga acceso al hash probar las contraseñas hasta que encuentren una que coincida.
  2. La seguridad de MD5 está en disputa . Se descubrieron muchos defectos en el algoritmo que hacen posible la ingeniería inversa de la entrada de un hash MD5 en algunos escenarios.

Por estas razones, debes usar otro algoritmo cuando sea posible. Una buena opción para el cifrado de contraseñas es bcrypt , porque fue diseñado especialmente para este propósito. Cuando una implementación no está disponible para su marco de desarrollo, SHA-2 puede considerarse una alternativa donde las implementaciones son más fáciles pasar por. No es considerablemente más lento que el MD5, lo que hace que sea más fácil de descifrar con suficiente potencia de cómputo, pero no tiene vulnerabilidades críticas conocidas como el MD5. Para sistemas de baja seguridad sigue siendo adecuado.

    
respondido por el Philipp 03.12.2013 - 14:43
fuente

Lea otras preguntas en las etiquetas