Cifrado del lado del cliente al almacenar datos en un servidor y acceder desde varios dispositivos

3

Suponiendo;

  • Estás usando HTTPS para cifrar los datos en tránsito
  • Está utilizando el cifrado del lado del servidor para cifrar los datos en reposo
  • Desea una cantidad cada vez mayor de seguridad para los datos
  • Desea almacenar datos centralmente en un servidor
  • Desea acceder a datos de múltiples dispositivos diferentes

Si bien este es un gran modelo, naturalmente esto termina en una situación en la que sus datos aún podrían ser descifrados en caso de que una persona no autorizada tenga acceso al servidor ya que la clave de cifrado se guardará allí de una forma u otra.

Esta es una de las mayores debilidades del cifrado del lado del servidor.

Luego, observa el cifrado del lado del cliente, que resuelve este problema, pero presenta otro problema relacionado con la manera en que se desacopla la seguridad del propio dispositivo. Por ejemplo, cuando se trata de acceder a través de múltiples dispositivos, y / o cuando se rompe el dispositivo, etc.

¿Existe un modelo de seguridad / patrón de diseño que aborde estos dos desafíos para ofrecer la máxima seguridad?

    
pregunta Michael Cropper 14.01.2018 - 17:23
fuente

2 respuestas

1

Las dos opciones obvias son -

  • Cifrado del lado del cliente con una clave exportable. Se puede hacer una copia de seguridad de la clave en la creación en algún lugar que el propietario considere seguro. Alternativamente, se puede cifrar con una contraseña proporcionada por el usuario y cargarse en el servicio; al proporcionar esta contraseña adicional en la instalación del cliente, los dispositivos adicionales pueden descifrar la clave.
  • Cifrado del lado del cliente con una clave derivada de una frase de contraseña. Similar al modelo anterior con el cifrado y la carga de claves, excepto que no es necesario almacenar datos clave en el servidor remoto.

* Ambos de los anteriores (suponiendo que el cifrado de la contraseña para el primero) se puede lograr con una sola frase de contraseña. Se toma un hash sin sal de la contraseña y se usa para la frase de contraseña de cifrado. Esto se vuelve a marcar antes de pasar al servidor para la autenticación. El inconveniente sería que si se cambia la contraseña, todos los datos se descargarán, se volverán a cifrar y se volverán a cargar.

    
respondido por el Hector 14.01.2018 - 21:32
fuente
1

El cifrado del lado del cliente con una clave pública hace lo que necesita.

Incluya un certificado con la clave pública junto con el código del cliente. Valide el certificado antes de confiar la clave con sus datos secretos (recomiendo el uso de técnicas de identificación de certificados). En el cliente, genere una clave AES aleatoria (lo más criptográficamente aleatoria posible). Use la clave AES aleatoria para cifrar los datos; Utilice la clave pública para cifrar la clave secreta. Coloque todos los datos en una estructura de CMS (PKCS # 7) y envíelos al servidor.

    
respondido por el John Deters 14.06.2018 - 03:58
fuente

Lea otras preguntas en las etiquetas