encriptacion - Servidor sql vs.net cifrado
tipos de encriptacion sql server (2)
Esta es una gran pregunta.
Mi opinión es permitir que la parte responsable del almacenamiento de los datos también sea responsable de cualquier cifrado de los mismos. En este caso, deje que el servidor SQL administre el cifrado.
La razón principal es que rara vez construimos aplicaciones independientes. Es más común que varias aplicaciones utilicen el mismo backend de base de datos. Además, es más común reemplazar la tecnología utilizada para crear una aplicación que reemplazar el motor de base de datos que se encuentra debajo.
Si lo hace en código, entonces cada aplicación que use el almacén de datos tendrá que usar su propia biblioteca de cifrado / descifrado para obtener acceso a los datos. Si se realiza en un servidor SQL, entonces las aplicaciones pueden ignorar el proceso mientras se mantiene el mismo nivel de protección.
Junto con esto, debe aprovechar la capacidad de cifrar las conexiones al servidor SQL, lo que permitiría mantener los datos cifrados mientras está en movimiento entre el servidor web / de aplicaciones y la base de datos. También debe tener SSL habilitado entre el navegador y su sitio web para garantizar que los datos nunca se descifren entre el navegador -> servidor web -> servidor de base de datos.
Espero que ayude.
Tengo que almacenar una pequeña cantidad de campos de base de datos (~ 3) en forma cifrada en tablas de base de datos.
En general, ¿es mejor cifrar / descifrar datos dentro de una aplicación usando criptografía .net o cifrar / descifrar datos en una base de datos utilizando cifrado de clave simétrica? ¿Cuáles son los pros / contras de los dos métodos?
Aquí está mi ambiente:
Aplicación - aplicación web intranet
Plataforma de desarrollo - Visual Studio 2010, ASP.Net, .Net Framework 3.5
Sistema operativo del servidor - Windows Server 2008
Base de datos - SQL Server 2008
Para las aplicaciones internas en las que no le preocupan los "investigadores" de Internet, prefiero hacer el cifrado en la base de datos. De esa manera, si algo va hacia el sur con su aplicación (por cualquier razón) no depende de esa aplicación para recuperar los datos. Su aplicación también, entonces, no tiene la dependencia de los mecanismos de cifrado o la sobrecarga de realizar la aplicación. Se puede asumir que se cuidará en la base de datos para que el código sea más fácil de mantener.
También es más conveniente para las aplicaciones que tienen múltiples interfaces o puertas de enlace. Los datos están encriptados / descifrados centralmente. Sin embargo, lo que necesitaría en ese caso es asegurarse de que los datos se transfieran a / desde la base de datos a través de un túnel seguro (SSL o VPN o algo similar), de lo contrario no significa nada para cifrar los datos en todos; Se puede interceptar fácilmente con un rastreador de red estándar.
Para entornos de alojamiento compartido, prefiero hacer el cifrado dentro de la aplicación por motivos de seguridad. En esa situación yo controlo las teclas y no el proveedor del host.