procedimientos procedimiento encriptar encriptado desencriptar almacenados sql-server-2005 encryption

procedimiento - Mejores prácticas para el cifrado de bases de datos en SQL Server 2005



encriptar y desencriptar en sql server (4)

Necesito desarrollar una aplicación que almacene datos en una base de datos SQL Server 2005 (la aplicación en sí misma será un Servicio WCF o un Servicio Web Asp.Net).

Ahora, estos datos son sumamente confidenciales y necesito que estén almacenados en forma cifrada en la base de datos.

Entonces, me pregunto cuáles son las mejores prácticas al respecto. Sé que hay algunas capacidades de encriptación que SQL Server ha incorporado. ¿Hay algún tipo de recurso "para tontos" para esto, de modo que pueda ponerme en marcha rápidamente?

Alternativamente, estaba pensando que podía cifrar / descifrar en mi código C # y no en la base de datos, tal vez tener una capa que maneja esto justo encima de la capa de acceso a los datos (¿es una buena idea)?


¿Has considerado encriptar tus datos a nivel de sistema de archivos ?

Es Windows 2008 / Vista solamente, pero debería darle lo que necesita y para lo que está diseñado.


Mire este enlace para una buena introducción con muestras.

Creo que hacer el cifrado de datos en la aplicación es mejor, porque en ese caso los datos transferidos ya están encriptados. De lo contrario, debe usar un canal seguro entre su aplicación y el servidor de la base de datos.

Depende de tus necesidades, diría yo.


Antes de decidirse por un método de cifrado, debe acceder a qué partes del sistema son vulnerables. Si existe la posibilidad de acceso no autorizado a la base de datos, ¿existe la misma amenaza para su aplicación? Alguien podría ejecutar su código a través de Reflector y determinar qué métodos se estaban usando para cifrar y descifrar. Puede mitigar esa exposición hasta cierto punto con los obstructores de código. Si esa preocupación no es un riesgo, entonces puede resultarle más fácil encriptar sus datos a nivel de aplicación.


El cifrado debe suceder en algunos lugares diferentes según la aplicación. Por ejemplo, un sitio para consumidores que utiliza la información de la tarjeta de crédito necesita encriptar la conexión a través de la red para evitar que el hombre se encuentre en medio de ataques o fisgoneo. cuando los datos se almacenan en la base de datos, necesita encriptar los datos para que un representante de ventas de bajo nivel no pueda leer ni acceder a la información de la tarjeta de crédito del cliente, en la que puede implementar cifrado de nivel de columna como un permiso apropiado además de esto si le preocupa que un día el conserje de su centro de datos pueda robarle una de sus copias de seguridad, entonces necesita la implementación de TDE para encriptar datos a nivel de disco.

El cifrado tiene una sobrecarga de rendimiento esp con respecto al uso de la CPU, y lo que es más importante, la sobrecarga depende del alogrithim utilizado para la excifrado.