¿Es una buena idea hacer doble cifrado AES con 2 claves diferentes, cuando el usuario retiene una y la otra se almacena en el servidor?

3

Estoy construyendo una aplicación web. La aplicación necesita mantener ciertos datos dentro de la base de datos muy seguros.

Supongamos por un momento que no tengo un HSM o una instalación de administración de claves y no puedo costear la implementación de uno.

Al almacenar los datos de un usuario, quiero generar una clave aleatoria y proporcionarla al usuario. Esto no será almacenado en ningún lugar de mi servidor. Esta clave se utilizará para cifrar los datos.

No me siento cómodo porque el usuario tiene la única clave necesaria para decodificar el texto cifrado, ya que no sé cómo lo van a almacenar, si van a enviarlo por correo electrónico, etc.

Como tal, pretendía aplicar alguna otra forma de cifrado en el lado del servidor.

Entonces, primero, cifraría los datos usando la clave aleatoria provista al usuario, y luego la cifraría nuevamente, usando una clave estática o una segunda clave aleatoria que almacenaré en el servidor / db.

Al no almacenar la clave aleatoria proporcionada al usuario, los datos permanecen protegidos si el servidor está comprometido, ya que no hay ningún lugar dentro del servidor o componentes asociados que un pirata informático pueda obtener todas las claves necesarias para descifrar los datos. Pueden obtener acceso a la clave estática o segunda clave aleatoria, pero esto no será suficiente.

Estaba pensando en usar AES para el primer y segundo cifrado.

  • ¿Es esta una mala idea?
  • ¿Debería crear una clave de cifrado que sea una fórmula de la clave aleatoria del usuario y la clave almacenada en el servidor, y luego cifrar solo una vez?
  • ¿Debo hacer algo completamente diferente?
pregunta Baraka 24.10.2014 - 10:41
fuente

1 respuesta

2

Si el servidor va a descifrar los datos cuando se presentan con la clave del usuario, esa segunda capa de cifrado no protege contra la clave de un usuario filtrado. Quien tenga esa clave puede descifrar los datos.

Una segunda capa de cifrado hace hace que un ataque de fuerza bruta sea más difícil, pero si la clave de la segunda capa se almacena con los datos, la ventaja también desaparece.

Finalmente, su mayor preocupación no es si el usuario pierde la clave, es el usuario que pierde el acceso a la clave. "Tengo una computadora nueva; por favor envíe mi clave secreta otra vez".

    
respondido por el Bob Brown 24.10.2014 - 13:04
fuente

Lea otras preguntas en las etiquetas