Estoy trabajando en una empresa con sede en la UE y nos gustaría ofrecer a los clientes comerciales algún tipo de plataforma SaaS basada en la nube independiente del sistema operativo para procesar y almacenar datos confidenciales (de salud). Nos gustaría implementar nuestro software en la plataforma Google Cloud.
Todos los datos confidenciales se deben cifrar con claves simétricas que proporciona el cliente y no se almacenan en la plataforma en la nube. (Confiamos en Google, pero el acto patriota es un problema.)
Sin embargo, la interfaz del cliente debe ejecutarse preferiblemente como una aplicación web dentro del navegador. Esto hace que el cifrado del lado del cliente sea complicado. Además, muchos empleados deben tener acceso a los datos cifrados dentro del dominio del cliente comercial. Por lo tanto, la clave de cifrado debe compartirse de alguna manera entre los empleados.
Una idea es generar la clave de cifrado a partir de una frase de contraseña compartida (usando PBKDF2), almacenarla dentro de una cookie de sesión (vida útil = 0) y transferirla al servidor en la nube para cada solicitud de acceso a datos confidenciales. El servidor realiza la operación solicitada y luego elimina la clave de su memoria.
Por supuesto, siempre podría haber formas de extraer la clave si nosotros o Google quisiéramos hacer esto, pero podemos asegurar que los datos se almacenen encriptados con una clave suministrada por el usuario que solo es administrada por el cliente.
Me pregunto si alguien tiene mejores ideas. Muchas gracias de antemano.