Encriptar y desencriptar secciones del Web.config

Configuración protegida RSA y la herramienta Aspnet_regiis.exe.
Javier Vera
 Encriptar y desencriptar secciones del Web.config
Configuración protegida RSA y la herramienta Aspnet_regiis.exe.
Visitas:14458
Fecha publicación:4/3/2008 9:09:45 AM
En este artículo se muestra como encriptar y desencriptar secciones del archivo web.config o Machine.config. En algunas ocasiones es importante encriptar los connectionStrings o cualquier otra seccion de estos archivos ya que cualquier persona que tenga acceso a el directorio donde se encuentran ya sea desde la maquina local o por red podria encontrar el servidor y las credenciales a las cual se nonecta la aplicación. Nosotros definimos nuestro connectionStrings en el web.config de la siguiente manera.
 
De esta forma definimos el servidor al cual se conecta y las credenciales para autenticarnos en el sevidor seleccionado. Luego creamos nuestra conexión y la abrimos de la siguiente forma.
 
De esta forma ya accedemos al ConnectionString desde nuestra aplicación. Ahora agregamos el siguiente codigo el cual nos permite crear un proveedor de configuracion protegida.
 
Para encriptar el archivo web.config usaremos aspnet_regiis que nos permite encriptar tanto el web.config local de nuestro proyecto como el publicado en un directorio virtual. La siguiente línea se debe ejecutar en el símbolo del sistema que provee .Net “Visual Studio 2008 Command Prompt” y sirve para encriptar la sección connectionStrings de una aplicación publicada en un directorio virtual llamada Example1. aspnet_regiis -pe "connectionStrings" -app "/Example1" De igual forma la siguiente línea de código permite encriptar la sección connectionStrings de una aplicación cuyo proyecto se encuentra en C:\Projects\Example1. aspnet_regiis.exe -pef "connectionStrings" C:\Projects\Example1 El resultado de la ejecución de cualquiera de estos comandos debe ser satisfactorio. Ya en este momento la sección connectionStrings debe estar encriptada y lucir algo como esto.
 
Ejecute el siguiente comando desde un símbolo del sistema de .NET.
 
Si en este momento intentaramos conectarnos a la base de datos no podriamos. Para esto no hay que modificar el codigo simplemente debemos dar permiso al usuario ASP donde esta publicada la aplicación para acceder a esta informacion. Para allar el usuario al que debemos dar permisos podemos crear una aplicación de prueba y ingresar el siguiente codigo.
 
Este nos retornara el usuario. Por ultimo agregamos el siguiente comando donde debemos remplazar NT Authority\Servicio de red por el usuario anteriormente retornado.
 
De esta forma nuestra aplicación tendrá acceso a esta sección y podrá desencriptarla aunque parece largo y difícil no lo es. Comandos. Encripcion de directorio virtual. aspnet_regiis -pe "connectionStrings" -app "/Example1" Encripcion de directorio local. aspnet_regiis.exe -pef "connectionStrings" C:\Projects\Example1 desencripcion de directorio virtual. aspnet_regiis -pd "connectionStrings" -app "/ Example1"
 
Comentarios:
  • Comentario:


Contenido relacionado