Contexto
En realidad estoy creando una aplicación de escaneo de seguridad automatizada, lo que significa que cada usuario podrá escanear su propio sitio web (la parte de verificación de la propiedad está hecha) y obtener fallas encontradas en los informes.
El problema es que realmente quiero asegurar los datos almacenados, lo que significa que quiero que mis datos sean legibles solo por el usuario y el servidor (debido a que están expuestos mediante una API RESTful, al servidor de una aplicación angularjs).
Los datos se almacenan en un graphdb llamado neo4j
Ya pensado
-
Almacenar una clave de cifrado en cada nodo de usuario
- El problema es que si alguien roba mi base de datos, solo tiene que encontrar el algoritmo utilizado para cifrar y puede obtener todos los defectos de cada sitio web.
-
Cifre los datos enviados por el usuario con su contraseña (borrar) en el lado del cliente, de modo que el servidor no conozca la clave, ya que solo está almacenando la contraseña con hash.
- El problema es que el servidor no podrá almacenar datos cifrados si no conoce la clave de cifrado.
¿Cómo puedo lograr eso? Realmente necesito proteger mis datos en este punto, lo que significa que incluso si robas la base de datos, es imposible obtener datos de ella, a menos que seas ... yo o el desarrollador que creó el sistema de cifrado.