2008-10-16 13 views
8

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).Mejores prácticas para el cifrado de bases de datos en SQL Server 2005

Ahora, estos datos son sumamente confidenciales, y debo tenerlos 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 encriptar/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 datos (¿es una buena idea)?

Respuesta

3

Mire this link para una buena introducción con las muestras.

Creo que es mejor hacer el cifrado de datos en la aplicación, 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 sus necesidades, diría yo.

1

¿Ha considerado cifrar sus datos en el nivel file-system?

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

+0

NUNCA use el casillero de bits, si incluso leyó el artículo de wikipedia que publicó debería haberlo sabido. –

+0

@ChrisMarisic, ¿Por qué? Acabo de leer el artículo y no veo ningún problema mencionado que afecte a este escenario. – Ben

0

Antes de decidirse por un método de cifrado, debe acceder a las partes del sistema que 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.

0

El cifrado debe realizarse 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 en lo que respecta al uso de CPU, lo que es más importante, la sobrecarga depende del alogrithim que se utiliza para la desencriptación.

Cuestiones relacionadas