Estoy de acuerdo con Mayo, pero el cifrado en la base de datos podría simplificar el mantenimiento de todo el sistema.
El cifrado al nivel de aplicación necesita que administre las claves, la fase de autenticación y autorización para las claves y la visualización de los datos (de acuerdo con lo que Mayo haya escrito).
Si elige el Cifrado de la aplicación, debe preocuparse por la corrección del algoritmo, no solo en la fase de desarrollo, sino también en la fase de mantenimiento. Debe implementar la prueba unitaria para no regresión. Tienes que gestionar el cambio del algoritmo de cifrado porque tal vez quieras un algoritmo diferente y mejor.
Y debe asegurarse de que los datos encriptados siempre se descifrarán. No es algo obvio, porque el software tiene errores, etc. Los datos perdidos son peores que los datos claros ;-)
Seguro que puede utilizar una biblioteca de encriptación bien conocida, pero todas las demás cosas son un gran trabajo para usted.
El cifrado en el DB solo protege en la base de datos, pero puede considerar el uso de algún tipo de comunicación SSL con la base de datos. Creo (pero no estoy seguro) que TDE implemente este tipo de comunicación segura.
La aplicación se usa por parte del usuario, una entidad que no es de confianza. Debe tener en cuenta que los datos en la aplicación se pierden. ¿Por qué? Si quiero robar datos de un sistema que implementa Cifrado de los datos en el Nivel de la aplicación o el nivel de la base de datos, ¡podría usar una cámara fotográfica para obtener los datos! ¡Muy simple!
Debe tener en cuenta la seguridad del sistema, pero también la funcionalidad. Más es la Seguridad, menos es la Funcionalidad. Espero que mis consideraciones te sean útiles.
¿Por qué publicaste un enlace a tu empresa en tu pregunta? –
Lo siento, fuerza de hábito, porque así es como firmo en mi blog. Ahora eliminado. –
Una vez publiqué una buena respuesta aquí en StackOverflow que describe una excelente forma de agregar cifrado de nivel de aplicación usando [RijndaelManaged] (http://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndaelmanaged.aspx) Clase, y obtuve un INFIERNO bastante grande sobre eso. Estoy "ASUMIENDO" que va a ser dirigido al cifrado DB. –