it-swarm-es.com

Almacenamiento de contraseña MS-SQL

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

12
David Stubley

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

A partir de 2009, las dos funciones hash criptográficas más utilizadas son MD5 y SHA-1. Sin embargo, MD5 se ha roto; se utilizó un ataque en su contra para romper SSL en 2008. Las funciones hash SHA-0 y SHA-1 fueron desarrolladas por la NSA.
En febrero de 2005, se informó de un ataque exitoso en SHA-1, encontrando colisiones en aproximadamente 2 ^ 69 operaciones hash, en lugar de las 2 ^ 80 esperadas para una función hash de 160 bits.
En agosto de 2005, se informó de otro ataque exitoso contra SHA-1, encontrando colisiones en 2 ^ 63 operaciones. También existen debilidades teóricas de SHA-1, lo que sugiere que puede ser práctico romper en años.
Las nuevas aplicaciones pueden evitar estos problemas utilizando miembros más avanzados de la familia SHA, como SHA-2, o utilizando técnicas como el hash aleatorio que no requieren resistencia a colisiones.

Consulte Wikipedia para obtener más información.

2
garik

Allá por 1978, Robert Morris y Ken Thompson publicaron el esquema de contraseñas de "cripta" de Unix con dos innovaciones que son cruciales para el hash de contraseñas: sales y recuentos de iteraciones. Sin sal, los hashes son muy vulnerables a las tablas hash y tablas Rainbow . Incluso con una sal, también se necesitan iteraciones para evitar la fuerza bruta muy rápida de la mayoría de las contraseñas con 8 o menos caracteres, por no hablar de las variaciones simples de las palabras del diccionario. ¿Cuánto tiempo se tarda en generar tablas Rainbow?

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

Puede ajustarlos para que no ocupen demasiado tiempo en el servidor, pero la gente no se autentica con mucha frecuencia, así que no sea tacaño.

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

9
nealmcb

El consejo más importante es migrar a un algoritmo diseñado para el hash de contraseñas: bcrypt, PBKDF2 o scrypt. Estos algoritmos están diseñados para satisfacer las necesidades de hash de contraseñas; 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 haya escuchado que MD5 está roto. Esto es cierto, pero no de una manera que ponga en peligro a MD5 para el hash de contraseñas. Los ataques a MD5 se centran en su resistencia a colisiones. Sin embargo, la unidireccionalidad de MD5 sigue siendo sólida. Para el hash de contraseñas, todo lo que necesita es unidireccional. Por lo tanto, no hay necesidad de migrar de MD5 a otro hash como SHA256 o SHA512 (excepto posiblemente por "apariencias").

Entonces, lo más importante que puede hacer es cambiar a bcrypt/PBKDF2/scrypt para dificultar la búsqueda en el diccionario.

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

3
D.W.

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

2
Steve