Estoy tratando de diseñar la mejor estrategia para lograr los siguientes objetivos:
- Proteger los datos en el cable entre mi servidor y MongoHQ.
- Encriptando todos los datos en reposo con MongoHQ (posiblemente también valores clave).
Y esta es mi estrategia de trabajo actual:
- Use un túnel VPN para conectarse a MongoHQ mediante el protocolo mongodb. No creo que el protocolo mongodb sea compatible con SSL todavía (¿o alguna vez lo hará?), Así que creo que esta es mi única opción, a menos que quiera usar la API REST (que no lo hago).
- Estoy ejecutando un nodo / pila expresa, por lo que creo que mi mejor opción para lograr el objetivo de cifrado / descifrado es usar un módulo como node-cryptojs-aes o crypto-wrapper para manejar todo cifrado y descifrado en la capa de aplicación, luego almacene los datos cifrados en MongoHQ.
Nota: utilizaría bcrypt para las contraseñas de hash y salt.
Las preguntas que tengo son:
- ¿La solución VPN / túnel es buena para establecer una conexión segura a través del protocolo mongodb?
- ¿Debo molestarme en cifrar las claves en mis documentos? Supongo que esto es subjetivo, pero ¿existe una mejor práctica establecida?
- ¿Es AES la herramienta adecuada para usar al cifrar todos los datos en la base de datos? ¿Hay alguna alternativa que pueda ofrecer un mejor rendimiento y / o seguridad?
Gracias de antemano por cualquier ayuda.