Cómo encriptar las cadenas de conexión del archivo web.config

Publicado al menos 4 años hace por Flexygo Team

Publicar un tema
  • Tema bloqueado
Flexygo Team
Flexygo Team

Encriptar el Web.Config


El verdadero titulo de este post deberia ser encriptar una sección del web config, pero estoy seguro que lo que quieren es ocultar el es el connectionString.
Vamos a utilizar el proveedor de configuración protegida RSA y la herramienta aspnet_regiis.exe para poder lograr la encriptación de secciones del Web.Config.

En el ejemplo que veremos a continuación, la encriptación se generará con la llave propia del servidor. Aunque es posible importar y exportar las claves RSA de un servidor a otro, esto nos ayudará a utilizar el mismo cifrado en varios servidores.

Para encriptar la sección connectionString del Web.Config vamos a realizar los siguientes pasos:


No olvides consultar las fuentes al final del documento, ya que incluimos videos de youtube.


1. Abrir una ventana de la línea de comandos CMD con la opción de abrir como administrador.


2.  Introduciremos la llamada al programa aspnet_regiis ubicado en la ruta de la versión activa del servidor, en mi caso es la versión  v4.0.30319 


C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -pef "connectionStrings" Carpeta_Con_Web.Config 




3. Si consultamos el archivo web.config, ya podemos ver que dicha sección se ha encriptado.




4. Podemos comprobar si funciona la desencriptación, cambiando el parámetro "-pef" por "-pdf"




5.  Por último, tan sólo hay que tener presente un par de cuestiones:

  1. El cifrado depende de la máquina donde está instalado IIS por tanto, si tenemos dos entornos NO podemos copiar el archivo web.config con secciones cifradas de un servidor a otro pues en el nuevo no se interpretaría el cifrado. Debe ejecutarse el comando individualmente en ambos servidores
  2. Existen dos tipos de cifrado (que indicamos en el parámetro –prov) que se pueden usar: DataProtectionConfiguratioProvider y RsaProtectionConfigurationProvider. Al desencriptar no es necesario indicar el proveedor pues ya se especifica en el archivo. (Ver apartado de fuentes con el tutorial)



Fuentes: 

https://www.youtube.com/watch?v=P3hMKefn5Qc

https://www.cjorellana.net/2009/10/encriptar-el-webconfig.html Para ver la encriptación RSA, útil para tener la misma llave en varios servidores.

https://albporra.wordpress.com/2011/02/09/net-encriptar-secciones-de-web-config-2/

https://docs.microsoft.com/es-es/aspnet/web-forms/overview/data-access/advanced-data-access-scenarios/protecting-connection-strings-and-other-configuration-information-cs

0 Votos


0 Comentarios