security - online - hash wikipedia
¿Qué método hash usas(MD5, SHA1, otro?) (6)
Esta página de Wikipedia tiene una extensa lista de métodos hashing
Como puede ver, tanto MD5 como Sha1 se han roto (en Criptografía, "roto" significa que hay un ataque menos complejo que el ataque de fuerza bruta. En otras palabras, si necesita 1 millón de años para encontrar una colisión en lugar de mil millones de años usando la fuerza bruta, el algoritmo se considera roto, incluso si es probable que aún sea seguro usarlo)
¿Qué usas como algoritmo hash?
SHA1 está roto, pero todavía se necesitan miles de millones de años para calcular una colisión.
Otros hash aún no se han roto, pero debemos tener en cuenta que los investigadores centran sus esfuerzos en el algoritmo convencional (es decir, MD5 y SHA1), por lo que los hashes continuos también pueden no ser seguros.
Depende de lo que estoy usando el hash para ... ¿Seguridad? ¿Detección de cambio de archivo? Encuentra archivos duplicados?
Supongo que por la forma en que se hizo la pregunta, la primera es la razón por la que está usando hashes. En ese caso, recomendaría no utilizar un método "roto".
Si los usos no de seguridad son el caso (es decir, encontrar archivos duplicados), MD5 funciona bien y es más rápido.
En estos días, la mayoría de las personas todavía usan SHA1 o incluso MD5, roto o no. Debido a que el estado actual del arte en hashing es que tenemos algunas funciones que sabemos que tienen vulnerabilidades teóricas pero no interrupciones realmente prácticas, y algunas funciones no probadas de las que sabemos muy poco.
Si está utilizando una función hash para el almacenamiento de contraseñas, las vulnerabilidades teóricas probablemente no le importen. En primer lugar, porque la naturaleza de las vulnerabilidades en realidad no ayuda a revertir las contraseñas. En segundo lugar, porque si te preocupa tanto la seguridad, probablemente no estarías usando contraseñas.
Donde va a importar más es si está usando firma digital, SSL, IPSEC, etc., que todos dependen de las funciones hash, y si necesita la función hash para permanecer seguro por un largo tiempo. Sin embargo, aquí no tiene más remedio que esperar y ver qué función (s) hash se convierten en el nuevo estándar comprobado, y / o usar más de una función hash si puede.
Incluso entonces, esto está muy abajo en la lista de amenazas en el panorama general. ¡Es mucho más probable que los problemas de seguridad en su sistema estén en su propio código, o en las amenazas de las personas, que alguien que ataque su función hash!
Aún así, si diseña un nuevo sistema, el consejo de diseñarlo para que pueda reemplazar cualquiera de sus algoritmos de cifrado en cualquier momento sigue siendo valioso. Idealmente a través de configuración / complemento, y no una recompilación.
Según entiendo, la parte rota de MD5 es que alguien con el texto original ahora puede construir fácilmente un segundo texto que tiene el mismo resumen MD5.
Todavía no es posible que alguien que solo tiene el resumen MD5 de ese texto original construya un segundo texto que coincida con él.
Si la seguridad es su preocupación, es mejor evitar funciones hash "rotas". Lo que dijiste puede ser cierto para algunas funciones hash que acaban de romper los investigadores, pero un ataque del mundo real puede emerger pronto mediante el uso de nuevas ideas obtenidas a través del trabajo de investigación.
Por ejemplo, las colisiones de MD5 ahora se pueden encontrar muy rápidamente (creo que la wikipedia mencionó un método que puede hacerlo en minutos, pero corrígeme si estoy equivocado).
No desea volver a calcular toda su hash / firma para toneladas de cosas que ya ha calculado en caso de que eso ocurra.
Yo uso el hash Whirlpool . Sin embargo ... no debe confiar en hashing para proteger las contraseñas. Si está almacenando una contraseña en una base de datos, siempre use una sal decente (lo que ayuda a evitar ataques y colisiones en la mesa arcoiris).
Y siga otras pautas de seguridad apropiadas para su plataforma :)
Hay otros como SHA-256 o RIPEMD-160 o incluso uno de los candidatos SHA-3 (consulte la lista aquí para que los elija. Tenga en cuenta que estos no han sido tan probados y analizados como MD4 / 5 y SHA- 1. Esto también tiene un costo en términos de rendimiento, por supuesto.
Una respuesta a su pregunta sería usar dos de ellos, ojalá lo suficientemente diferentes como para que romper uno no rompa el otro. Las probabilidades de que ambas estén lo suficientemente rotas como para falsificar dos sumas de comprobación es bastante abismal en mi humilde opinión.