2012-01-24 7 views
6

Esta pregunta me hizo comenzar a pensar en el uso de contraseñas nuevamente. Actualmente uso bcrypt (específicamente py-bcrypt). He escuchado mucho sobre PBKDF2 y scrypt.¿Qué método de hashing de contraseña debo usar?

Lo que me pregunto es si hay métodos de hashing de contraseña "más modernos" que pueda que no conozca (porque son nuevos, para que la gente no hable tanto de ellos), o tal vez otros métodos No lo sé.

Y luego, desde allí, ¿cuál debo usar? La mayoría de la gente parece recomendar bcrypt, pero me pregunto si es solo porque es viejo (léase: bien conocido). scrypt parece mejor (cantidad variable de uso de memoria). No sé mucho sobre PBKDF2.

Entonces, si hago un esquema de administración de usuarios, ¿cuál de estos debo usar? ¿O debería usar algo completamente diferente?

Respuesta

6

PBKDF2 se utiliza en WPA/WPA2 y Domain Cached Credentials 2 (AKA DCC2). Puede cambiar las iteraciones para HMAC-SHA1 para aumentar la seguridad. Este método de ralentizar el proceso de craqueo no se ha roto. Sin embargo, dado que está basado en SHA1, puedes llamarlo amigable para GPU para atacar.

Ambos, bcrypt y scrypt, utilizan una tabla de búsqueda. Esta dependencia de la memoria lo hace antipático. Sin embargo, las últimas arquitecturas de GPU 28   nm reactivan el acceso muy rápido a la memoria.

Por ahora deberías preferir bcrypt o scrypt. Es una buena opción utilizar hash dependientes de la memoria, pero en el futuro esto podría cambiar. Vigile cómo aumenta el rendimiento de la GPU de las galletas. Es posible que alcancen un horizonte de eventos en el que será mejor volver a simplemente hacer hashes favorables a GPU pero aumentar su conteo de iteraciones.

Cuestiones relacionadas