security - remember - password generator plus
¿Es un riesgo de seguridad utilizar partes de GUID como contraseñas aleatorias? (6)
Cuando los usuarios crean una cuenta en mi aplicación web, genero un GUID y uso los primeros 8 caracteres como su contraseña, que luego se envía por correo electrónico.
¿Hay algún riesgo de seguridad que desaproveche al usar los GUID como contraseñas? He echado un vistazo a la pregunta Are GUIDs good passwords?
, pero esa pregunta se refiere a contraseñas personales no contraseñas aleatorias / generadas. Idealmente, los usuarios iniciarán sesión y cambiarán su contraseña si así lo desean.
"El criptoanálisis del generador de GUID de WinAPI muestra que, dado que la secuencia de GUID de V4 es pseudoaleatoria, dado el pleno conocimiento del estado interno, es posible predecir los valores anteriores y posteriores". http://en.wikipedia.org/wiki/Globally_unique_identifier
No lo usaría Después de todo, no es tan difícil utilizar un generador de números aleatorios, que están diseñados para ser lo más aleatorio posible, en lugar de intentar garantizar la singularidad global.
Este artículo dice que no lo uses.
Los GUID vienen en una variedad de sabores; algunos tienen partes que son predecibles.
Por otro lado, es muy, muy fácil generar números aleatorios.
¿Por qué utilizar una técnica cuestionable cuando una alternativa segura está disponible?
Sí, a menos que sepa exactamente cómo se construye el GUID. Por ejemplo, algunos GUID agrupan la dirección MAC del host en el GUID. Si usa esos bits, eso compromete una gran cantidad de espacio de bits para la contraseña "aleatoria".
En pocas palabras, los GUID pueden ser únicos, pero no necesariamente son aleatorios.
Usar GUID
s como contraseñas es una muy mala idea. GUID
s se generan de una manera muy predecible y bien definida. O en otras palabras, con suficiente información, permitiría a un atacante predecir las contraseñas de otros usuarios.
Predecible y bien definido es exactamente lo contrario de lo que quiere en un generador de contraseñas.
Usar parte del GUID, o incluso todo, es una muy mala idea. Incluso si la mayoría de ellos son aleatorios, no hay garantía de que alguna porción en particular sea.
No estoy seguro de que haya muchos problemas para usar un hash de un GUID o, mejor aún, un hash que combina un GUID con alguna otra fuente de aleatoriedad (por ejemplo, uno podría hash el momento en que se inicia el programa y luego generar un código de acceso) devolviendo parte de un hash del hash anterior y un nuevo GUID). Si hay alguna aleatoriedad en la generación de GUID, la entropía del hash debería aumentar con cada iteración. Tenga en cuenta que el código de acceso no debe revelar todo el valor hash; algo de eso debe mantenerse como estado interno secreto.