Si cifro mis datos en reposo en una base de datos Heroku PostgresSQL usando una clave que se almacena en la memoria como una variable de entorno (accesible por la aplicación), ¿cuánta seguridad adicional he obtenido realmente?

a) ha logrado el cifrado de datos en reposo en la base de datos administrada y controlada por su aplicación. – Entonces, incluso si alguien obtiene acceso al nombre de usuario y contraseña de su base de datos, no podrá acceder a los datos. Esa es la diferencia clave entre el cifrado tradicional de base de datos transparente y el cifrado administrado por su aplicación fuera de la base de datos.

b) Si ha separado la aplicación web en otro proveedor de la nube, ahora el proveedor de la nube no tendrá acceso a los datos, incluso si pueden crear su propio nombre de usuario y contraseña.

Ahora veamos el riesgo de su aplicación.

a) está encriptando los datos con la clave almacenada en la memoria accesible desde la variable de entorno. Entonces, ese es un gran riesgo en la gestión de claves.

b) No especificó sobre su algoritmo de cifrado … su cifrado es tan bueno como el algoritmo, la rotación de claves, etc.

c) La tercera pregunta es, ¿todos los usuarios de la aplicación tendrán acceso a la clave de cifrado? El cifrado sin control de acceso no tiene sentido.

d) Si su aplicación web es vulnerable a alguna de las vulnerabilidades web conocidas, sus claves ya no se mantendrán en secreto.

Esto no responde exactamente a su pregunta, pero Heroku ahora admite el cifrado en reposo con su última actualización si ofrece su base de datos.

https://blog.heroku.com/archives

Recomendaría usar su encriptación integrada en lugar de usar la suya propia.