MS-SQL Password Storage

12

¿Cuál sería su recomendación para reemplazar un enfoque de hash MD5 para el almacenamiento de contraseñas dentro de una base de datos MS-SQL?

    
pregunta David Stubley 03.12.2010 - 16:31
fuente

4 respuestas

2

Creo que: SHA256, SHA512 son más seguros en este momento.

  

A partir de 2009, los dos más utilizados   funciones hash criptográficas son MD5   y SHA-1. Sin embargo, MD5 ha sido   roto; Se utilizó un ataque contra él.   para romper SSL en 2008. El SHA-0 y   Las funciones hash SHA-1 fueron desarrolladas por   la NSA.
  En febrero de 2005, un   El ataque exitoso a SHA-1 fue   informó, encontrando colisiones en alrededor de   2 ^ 69 operaciones de hashing, en lugar de   El 2 ^ 80 esperado para un hash de 160 bits.   función.
  En agosto de 2005, otro   El ataque exitoso a SHA-1 fue   Reportado, encontrando colisiones en 2 ^ 63.   operaciones Debilidades teóricas de   SHA-1 también existe, sugiriendo que   puede ser práctico romper dentro   años.
  Nuevas aplicaciones pueden evitar   estos problemas mediante el uso más avanzado   miembros de la familia SHA, tales como   SHA-2, o utilizando técnicas tales como   hashing aleatorio que no requiere   resistencia a la colisión.

Consulte Wikipedia para obtener más información.

    
respondido por el garik 03.12.2010 - 17:46
fuente
9

En 1978, Robert Morris y Ken Thompson publicaron el esquema de contraseñas "crypt" de Unix con Dos innovaciones que son cruciales para el hashing de contraseñas: las sales y la iteración cuentan. Sin un salt, los hashes son muy vulnerables a las tablas hash y tablas de arcoiris . Incluso con una sal, también se necesitan iteraciones para evitar el forzamiento bruto muy rápido de la mayoría de las contraseñas con 8 o menos caracteres, para no mencionar las variaciones simples de las palabras del diccionario. ¿Cuánto tiempo se tarda en generar realmente tablas arco iris? ?

Por lo tanto, utilice un hash real diseñado para las contraseñas, es decir, que sea lento y salado. Algunos buenos candidatos son:

Puede ajustarlos para que no ocupen demasiado tiempo en el servidor, pero las personas no se autentican muy a menudo, así que no sea tacaño.

Vea también: hashing de contraseña - Seguridad de TI

    
respondido por el nealmcb 10.05.2011 - 06:15
fuente
3

El consejo más importante es migrar a un algoritmo diseñado para el hashing de contraseñas: bcrypt, PBKDF2 o scrypt. Estos algoritmos están diseñados para satisfacer las necesidades de las contraseñas de hash; por ejemplo, para disuadir los ataques de diccionario, utilizan la iteración para garantizar que el hash sea lento, y para disuadir los ataques de amortización, incluyen una sal en el hash.

No es necesario migrar de MD5 a SHA. Es posible que hayas oído que el MD5 está roto. Esto es cierto, pero no de una manera que ponga en peligro a MD5 para el hashing de contraseñas. Los ataques contra MD5 están en su resistencia a la colisión. Sin embargo, la unidireccional del MD5 sigue siendo fuerte. Para el hashing de contraseñas, todo lo que necesita es unidireccional. Por lo tanto, no es necesario migrar de MD5 a otro hash como SHA256 o SHA512 (excepto posiblemente por "apariencias").

Entonces, lo más importante que puedes hacer es cambiar a bcrypt / PBKDF2 / scrypt para que la búsqueda de diccionarios sea más difícil.

Consulte también las siguientes publicaciones con excelentes consejos sobre cómo cifrar contraseñas:

respondido por el D.W. 05.09.2011 - 20:37
fuente
2

SHA-2 con sal funciona bien. Sin embargo, tendrás que pensar en cómo migrar las contraseñas.

    
respondido por el Steve 03.12.2010 - 17:09
fuente

Lea otras preguntas en las etiquetas