Usando el ID de GUID del usuario como sal para Rfc2898DeriveBytes

0

Utilizo Rfc2898DeriveBytes para crear una clave AES para proteger los datos del usuario.
Para el valor de sal, me gustaría usar el ID del usuario, que es una guía.

Tengo entendido que el único inconveniente de usar la identificación del usuario sería que será más fácil descifrar las claves que se crearon previamente para este usuario específico, en caso de que el atacante esté en la posesión de la base de datos. Pero como el atacante ya ha descifrado la clave actual, no hay necesidad de descifrar claves antiguas, por lo tanto, no veo esto como un problema.

¿Es un problema usar la identificación del usuario como un salt para la derivación clave?

Tipo de guía
Como información adicional, el guid es un Guid secuencial de Windows. Por lo tanto no es realmente aleatorio sino bastante único.

    
pregunta HCL 19.05.2018 - 12:46
fuente

1 respuesta

1

Dado que dice que el GUID se asigna secuencialmente y se envía en el tráfico de la red, no, no es adecuado para su uso como sal. Si bien aún evitará los escenarios típicos de "el atacante quiere descifrar todas sus contraseñas, así que construyen una tabla de arco iris que se puede usar para buscar cualquier contraseña con hash" y "dos usuarios usaron la misma contraseña, y se puede decir porque los hashes coinciden ", sigue siendo más débil de lo que debería ser.

En particular, no evita el escenario de "el atacante quiere descifrar una contraseña específica , por lo que construyen una tabla de arco iris utilizando ese usuario (conocido ) sal ". Sí, el atacante aún necesita obtener acceso al hash de la contraseña del usuario, lo que implica que tendrían acceso a la sal de todos modos, pero normalmente eso comienza una carrera entre el administrador del sitio notando la violación y el atacante logrando forzar la fuerza bruta hash lento (usaste una función hash cara, ¿verdad?). Si se conoce la sal de antemano, el atacante puede realizar el proceso lento de fuerza bruta forzando los hashes (mediante la creación de una tabla de arco iris), y luego determinar la contraseña una vez que se conoce el hash del usuario.

    
respondido por el CBHacking 20.05.2018 - 21:44
fuente

Lea otras preguntas en las etiquetas