Seguridad de la información: ¿Cuál es la diferencia entre el cifrado a nivel de base de datos y el nivel de archivo?

Puede tener cifrado en varios niveles. Cuanto más subas en la pila (ver más abajo), más depende el cifrado de un sistema o aplicación.

  • disco : todo el disco está encriptado, el sistema operativo maneja el encriptado. Lo que escriba en el disco lo hace como de costumbre, el cifrado es transparente. Ejemplo: Bitlocker en MS Windows.
  • sistema de archivos : bastante similar al disco, el sistema operativo maneja el cifrado. Puede tener particiones cifradas y no cifradas en un disco. Ejemplo: dm-crypt en Linux.
  • archivo : una aplicación maneja el cifrado, generalmente para almacenar sus datos en forma cifrada. El archivo es un archivo normal desde la perspectiva del sistema operativo, puede manejarlo como cualquier otro archivo. Ejemplo: datos de Keepass.
  • aplicación : una aplicación almacena sus datos en un formato propietario y los cifra en buena medida. Puede imaginar que almacena algunos datos en una base de datos (cifrándolos sobre la marcha antes de enviarlos a la base de datos) y algunos otros en forma de archivos normales (también cifrándolos antes de escribirlos en el disco). De todos modos, los datos están encriptados por la aplicación, generalmente con las claves de los usuarios (esto varía enormemente)

Por lo tanto, su pregunta no es muy clara para mí: si cifra sus datos en el nivel de la base de datos, se pueden cifrar por los cuatro medios anteriores. Te proteges contra diferentes cosas eligiendo una de ellas. Cuanto más avanzas en la lista, más complicado suele ser.
Como ejemplo: si encripta correctamente sus discos, está a salvo del robo físico de alguien que no está relacionado con usted o con la empresa de alojamiento (entran, roban los discos y huyen). Sin embargo, no está a salvo de administradores maliciosos o de un hackeo de su aplicación.
Si su aplicación realiza el cifrado, está a salvo de todo menos de una vulnerabilidad en su aplicación (nuevamente, suponiendo que el cifrado esté diseñado correctamente).

Por lo general, es mejor manejar la aplicación lo más cerca posible de los datos, en otras palabras, por la aplicación misma. Entonces eres inmune a los ambientes hostiles.

El cifrado a nivel de archivo significa que cuando la base de datos se está ejecutando, el sistema de archivos se descifrará. El cifrado a nivel de base de datos implicaría que solo la base de datos tiene las claves y lo descifraría mientras está en funcionamiento. Por lo tanto, uno no podrá capturar esto de la memoria como en el caso del cifrado del sistema de archivos (forma de hablar suelta).
Para una explicación más simplista, piense en el cifrado del sistema de archivos como un equivalente del controlador para un sistema de archivos que existe en un sistema operativo (por ejemplo, NTFS). Entonces esto sería administrado por los sistemas operativos o la capa de cifrado que se encuentra debajo de la capa de base de datos. Y esto sería transparente para el DBMS (y la gestión de claves se haría fuera)