Al hash, el hash se considera un nivel adicional de seguridad [duplicado]

2

Como en md5 (md5 (md5 (x))) ...

Puedo recordar haberlo encontrado en algún fragmento de código. Si el atacante puede revertir de alguna manera md5 (md5 (md5 (x)) a md5 (md5 (x)) entonces ciertamente puede revertir md5 (md5 (x)) a md5 (x) y x Sin embargo, si se necesita una buena cantidad de tiempo para revertir el primer hash, el hash puede ralentizarlo. No puedo decidirme sobre este tema, de ahí la pregunta

    
pregunta Ulkoma 27.08.2014 - 21:36
fuente

4 respuestas

3

Suponiendo que el hash se está resquebrajando con técnicas de fuerza bruta, el hash del hash significaría que teóricamente necesitarás más tiempo y recursos para romper el hash debido al hecho de que necesitas ejecutar varias iteraciones del algoritmo.

Sin embargo, una vez dicho esto, si es el momento de buscar MD5, ciertamente no es el camino a seguir. Para hacer un hash lo más difícil de descifrar, recomiendo un "algoritmo lento" como PBKDF2 .

Al realizar múltiples iteraciones de PBKDF2, el proceso de descifrar el hash será tan lento (en relación con otros algoritmos) que será prácticamente imposible de descifrar el hash en un tiempo razonable.

Editar: cuando digo varias iteraciones no me refiero a 2 o 10, me refiero a miles o cientos de miles, dependiendo de la cantidad de tiempo aceptable que esté dispuesto a esperar para que se genere o compare un hash legítimo.

    
respondido por el ilikebeets 27.08.2014 - 21:59
fuente
2

Esta implementación en particular es ingenua y no ayuda. Una PC común puede calcular miles de millones de hashes MD5 por segundo, por lo que tener que calcular algunos más simplemente no es relevante.

Sin embargo, el concepto de hashing iterado es válido. Si observa algoritmos profesionales como bcrypt, en realidad repiten su procedimiento de hash interno para hacer que el algoritmo sea más caro. Pero eso solo no es suficiente:

  • Todo el algoritmo debe ser diseñado cuidadosamente por expertos para asegurarse de que sea criptográficamente sólido. Los planes caseros nunca son una buena idea.
  • El número de iteraciones debe ser variable para que el algoritmo se pueda adaptar al nuevo hardware. Lo que podría ser lo suficientemente bueno hoy ciertamente no será lo suficientemente bueno en unos pocos años.
  • Todos los algoritmos hash de contraseña modernos tienen un parámetro adicional para una cadena aleatoria ("sal") que se mezcla en la entrada. El problema de su esquema es que la misma entrada siempre conduce al mismo hash, por lo que un atacante puede reutilizar los resultados calculados en varias cuentas de usuario, puede precalcular los hashes e incluso reconocer contraseñas idénticas. Las sales lo evitan porque obligan al atacante a romper cada hash individualmente.

Esos principios conducen a algoritmos hash modernos como bcrypt, scrypt o PBKDF2.

    
respondido por el Fleche 27.08.2014 - 22:27
fuente
0

Sí, es un nivel adicional de seguridad. Para md5 estándar (aparte del hecho de que se puede romper rápidamente) hay listas masivas de hashes md5 ya agrietados. Sin embargo, si reutiliza el hashing algo un par de veces, será más difícil romper los hashes. Eso se llama "rondas".

Algunos algoritmos tienen una cantidad predeterminada de rondas para ralentizar el cracker. Si tiene una función n redonda, al atacante le toma n veces más tiempo descifrar el hash de lo normal.

Otra forma de aumentar la seguridad sería mediante la implementación de un salt en los hashes.

Finalmente, asegurarse de usar un algoritmo seguro (por ejemplo, Whirlpool) también ayudará a mejorar la seguridad.

    
respondido por el crypto 27.08.2014 - 21:48
fuente
0

Los MD5 son geniales, pero no por seguridad. Sí, en teoría, agregará algún nivel adicional de seguridad, ya sea que sea suficiente o no, depende de su aplicación. Tienes que mirar más allá de la seguridad añadida. ¿Cuánto cuesta hacer hash de hash en lugar de comenzar con un algoritmo muy superior? A pesar de una mayor seguridad teórica, si necesita realizar un hash de un MD5, está utilizando la herramienta incorrecta para el trabajo.

Los MD5 están bien para la mayoría de las aplicaciones de comparación de archivos.

    
respondido por el Randy Abrams 28.08.2014 - 00:10
fuente

Lea otras preguntas en las etiquetas