Credenciales de inicio de sesión de usuario utilizadas para el cifrado de archivos

1

Un sistema que estoy implementando requiere que un usuario cree un solo usuario, con una sola contraseña de inicio de sesión.

Quiero tener una contraseña única para el sistema, y no requerir varias entradas de contraseña diferentes para cifrar / descifrar archivos después de iniciar sesión (el propósito principal de este sistema).

La forma en que lo he implementado es: cuando el usuario configura por primera vez la contraseña de la cuenta,

  • la contraseña está hash (cifrada) *
  • se genera una sal *
  • se genera una clave criptográfica utilizando PBKDF2 (basado en la sal)
  • Se generan 256 bits aleatorios
  • los 256 bits se cifran con la clave derivada utilizando PBKDF2 *

Toda la información "*" anterior se almacena en una base de datos

Los 256 bits descifrados se utilizan para el cifrado / descifrado real del archivo.

La razón por la que lo hago de esta manera es que si un solo usuario decide cambiar su contraseña, los archivos aún serán descifrables (solo tengo que volver a cifrar los 256 bits aleatorios con la nueva contraseña).

¿Es este un enfoque común y seguro?

    
pregunta Gregorio Di Stefano 04.04.2017 - 20:39
fuente

1 respuesta

2

Sí, este es un enfoque viable. Sin embargo, algunos temas me parecen importantes.

  1. También debe agregar el hash bcrypt , no solo la función PBKDF2
  2. No debe usar los 256 bits aleatorios directamente como clave de cifrado (a menos que sepa exactamente cómo funciona su RNG y siempre funcionará en todas las versiones futuras). Utilice esos datos aleatorios como material de entrada para una función de derivación de clave adecuada (como HKDF) en su lugar.
respondido por el mat 05.04.2017 - 12:01
fuente

Lea otras preguntas en las etiquetas