2010-08-29 17 views
8

Estoy usando coldfusion y me gustaría generar un campo de sal aleatorio para mis contraseñas. Me preguntaba si una función CreateUUID() es útil aquí. Encontré muchos ejemplos que usan una función separada para crear la cadena de sal; pero ¿por qué hacer esto cuando podría usar las funciones rand() o CreateUUID()? No estoy seguro.¿Es una buena idea usar una función CreateUUID() como sal?

¿Es una exageración o una buena idea? ¿O debería usar rand() o una marca de tiempo en su lugar?

+0

vea también: http://stackoverflow.com/questions/1194318/is-a-guid-a-good-salt-is-my-register-login-process-got-any-flaw – Kip

Respuesta

6

Ésta es no es una buena idea - garantías CreateUUID singularidad, no aleatoriedad; si realizó un análisis estadístico de CreateUUID, lo más probable es que no sea una distribución considerada suficientemente aleatoria para la criptografía, porque no se diseñó explícitamente de esa manera.

Por ejemplo, los primeros n bytes de CreateUUID es su dirección MAC - es decir, siempre la misma para cada sal. Al hacer eso, ha disminuido significativamente la cantidad de entropía que tienen sus sales, lo que las hace más fáciles de descifrar. Utilice bibliotecas para manejar todo el escenario de autenticación si es posible, y si no, utilice una función real rand().

+2

No soy Asegúrese de que todo lo que haya dicho sea el argumento de que un UUID es malo. La singularidad de una sal es en realidad más importante que la aleatoriedad. El objetivo de una sal es evitar los hacks de tablas arcoiris. – Kip

+0

@Kip Si puede predecir la sal para un nuevo usuario (o para un usuario existente), puede reducir significativamente el espacio clave de las cosas que tiene a la fuerza bruta. Eso es malo ™ –

Cuestiones relacionadas