Métodos para cifrar los datos del usuario en el servidor, autenticar con el certificado TLS del cliente

1

Estoy utilizando certificados TLS de cliente de usuario (de tarjetas inteligentes) para autenticarme en un programa web. Los usuarios almacenan datos en el servidor y me gustaría cifrar los datos almacenados para proteger la información si la base de datos está comprometida. Me gustaría no almacenar los datos en texto plano.

¿Cuáles son los métodos recomendados para cifrar o proteger los datos en reposo? No creo que pueda utilizar la clave privada de la tarjeta inteligente para descifrar los datos, ya que está bloqueada en el lado del cliente y es inaccesible para el servidor. El único método de autenticación de los usuarios es mediante tarjeta inteligente, por lo que no puedo usar una "contraseña de usuario" normal como clave de cifrado. Estoy utilizando Go como el servidor web, pero una solución en cualquier idioma es buena.

ACTUALIZACIÓN: el tipo de compromiso en el que estoy pensando es que un atacante obtenga un volcado completo de la base de datos. Me gustaría cifrar los datos en una base de datos de Redis en el nivel del "valor" del almacenamiento de clave / valor. Un ejemplo sería cifrar ciertos datos confidenciales utilizando la contraseña del usuario (si estuviera usando contraseñas) de modo que solo la contraseña provista por el usuario descifre los datos con éxito.

No estoy buscando un sistema operativo o un cifrado de toda la base de datos, ya que la base de datos está alojada por un tercero. El usuario accede a la aplicación web a través de HTTPS y el programa de aplicación web se comunica con la base de datos. Sé que IE tiene el complemento S / MIME que permite el uso de la tarjeta inteligente del cliente para descifrar el correo electrónico en Outlook en línea, pero eso es básicamente un programa del lado del cliente.

¿Alguna sugerencia?

Las plataformas de usuario a las que se dirige son Windows, OS X, Linux

Los navegadores de los usuarios son IE, Chrome

    
pregunta AnsonL 28.10.2017 - 00:39
fuente

1 respuesta

2

Una forma fácil es habilitar BitLocker, FileVault y su equivalente en Linux. Si alguien roba su máquina o disco, los datos están encriptados. Se realiza a nivel del sistema operativo, por lo que no necesita realizar ningún cambio en sus aplicaciones.

Esto es muy efectivo esp. con bases de datos heredadas, almacenes de archivos y aplicaciones.

Si le preocupa que DB esté comprometido de forma remota en una máquina que ya está desbloqueada y en ejecución, entonces puede ocurrir lo mismo con su aplicación. Por lo tanto, necesitará un modelo de amenaza y averiguar por qué el atacante que puede comprometer su base de datos no puede comprometer su aplicación y usarla para obtener los datos en forma descifrada.

    
respondido por el Omer Iqbal 28.10.2017 - 06:29
fuente

Lea otras preguntas en las etiquetas