net from encrypt encriptar connectionstrings connectionstring conexion cadena app .net asp.net security encryption web-config

.net - from - encrypt connectionstring app config



¿Encriptar web.config usando la configuración protegida no tiene sentido? (1)

Necesita al menos acceso de escritura al sistema de archivos para poder descifrarlo, suponiendo que esté usando el proveedor DPAPI. Las formas de descifrarlo incluyen:

  • Copie una página aspx que contenga un código de descifrado en el servidor y navegue hasta ella
  • Inicie sesión en el servidor y ejecute una aplicación para descifrarlo.

Pero protege contra el descifrado por un usuario no autorizado que tiene acceso de lectura al sistema de archivos o una copia de seguridad del sistema de archivos.

Normalmente, configuraría sus servidores de producción para que solo los administradores autorizados puedan iniciar sesión en el servidor o escribir en su sistema de archivos.

Los desarrolladores pueden tener acceso de lectura remota para fines de soporte, y no podrían descifrar el archivo de configuración de forma remota.

El cifrado / descifrado es sencillo con las bibliotecas estándar: la parte difícil es garantizar que solo las personas autorizadas tengan acceso a las claves.

Si está utilizando DPAPI, básicamente está delegando la administración de las claves a la seguridad de Windows. Si usa otro proveedor como RSA, debe almacenar la clave en algún lugar y protegerla contra el acceso no autorizado, por ejemplo, utilizando una ACL.

Debo estar perdiendo algo...

Así que estoy en el proceso de descifrar la mejor manera de encriptar la cadena de conexión de la base de datos y la información de conexión del estado de la sesión sql en web.config. Rápidamente encuentro una explicación en msdn explicando el uso de la configuración protegida para cifrar partes del web.config: tutorial de MSDN sobre el uso de la configuración protegida

Así que estoy pensando genial, hay un mecanismo para hacer esto y se ve muy simple. Llego al final del tutorial y proporcionan el código fuente de una página aspx que se puede utilizar para descifrar todas las cadenas de conexión.

¿¿¿Cual es el punto??? No tengo ningún servicio ftp ejecutándose en este servidor web, la única forma en que cualquiera va a ver web.config es si tienen acceso al sistema de archivos donde se publica el sitio web. Si tienen eso, entonces todo lo que tienen que hacer es usar el código provisto para desencriptar.

¿Qué me estoy perdiendo? ¿Hay una mejor manera de encriptar estos? Si lanzo una solución personalizada, ¿funcionará para la parte de estado de la sesión sql? (no crea que se elimine el bastón de web.config)