Tenemos una aplicación web (que se ejecuta en Apache Tomcat en una máquina con Windows Server 2008) que almacena la mayoría de sus datos en el sistema de archivos. Estamos investigando formas de implementar el cifrado para estos datos en reposo. Para nuestro caso de uso, hay una sola carpeta que querríamos cifrar de tal manera que solo pueda ser leída / modificada por la cuenta de usuario del servicio tomcat. Esa única carpeta tiene actualmente alrededor de 20 GB y la aplicación la lee y escribe de forma constante.
Nuestro primer pensamiento fue usar Windows EFS, pero esto resultó ser problemático. Por razones que no hemos podido descubrir, unos pocos cientos de miles de archivos que intentamos encriptar se corrompieron permanentemente. Parecía que aún estaban encriptados, pero el sistema operativo pensaba que solo eran archivos de texto simple y no nos dio la opción de descifrarlos. Como no pudimos identificar la causa de esto, nos sentimos incómodos al confiar en EFS.
Las otras alternativas que hemos podido identificar (hasta ahora VeraCrypt y Symantec File Encryption), sin embargo, todos asumen que habrá un usuario físico en el otro extremo del cifrado que podrá ingresar una frase de contraseña para desbloquear los archivos Esto no funcionará para una cuenta de servicio que no se conectará. Nuestra aplicación perdería el acceso a los archivos cada vez que el servidor se reinicie.
No puedo imaginar que otros no hayan tenido una situación similar, pero estamos teniendo dificultades para identificar alternativas viables. ¿Hay soluciones recomendadas para este tipo de caso de uso?