2011-05-11 14 views
11

Por lo que yo puedo decir, cualquier sección en un archivo web.config se pueden cifrar & descifrado usando aspnet_regiis.exe.¿Por qué encriptar un archivo de configuración web?

Si aspnet_regiis se puede utilizar para descifrar el archivo web.config, entonces ¿cuál es el punto de encriptación de la misma? ¿Es solo para evitar que las contraseñas & se almacenen como texto sin formato? Si alguien con el archivo y el exe puede descifrarlo, ¿realmente protege la información de configuración confidencial?

ACTUALIZACIÓN

Gracias a todos los que respondieron con respecto a la llave de la máquina. La razón por la que hice esta pregunta es porque tenemos un proyecto de código abierto alojado en codeplex.com. Sin embargo, también implementamos este proyecto en Windows Azure. Estoy tratando de encontrar el mejor enfoque para mantener las contraseñas confidenciales fuera del control de la fuente, pero mantenerlas accesibles como parte de mi proyecto para cuando despliegue en Azure.

Actualmente, estoy usando web.config transforma a almacenar las cadenas de conexión (Azure, así como contraseñas de Gmail para system.net). Creé un archivo de transformación Web.PublishToAzure.config y lo mantuve fuera del control de la fuente. También encontré this article que puede ser una mejor opción. Gracias de nuevo.

+0

El enlace a "este artículo" no existe. Realmente me gustaría echar un vistazo si es posible. Gracias. –

Respuesta

2

respuesta simplista: no van a tener acceso a la clave

creo que por defecto la clave se almacena en el almacén de certificados de la máquina, por lo que un usuario malicioso necesitarían tener acceso a eso también. No soy un experto, pero esa es la esencia de esto.

8

El archivo está cifrado con claves específicas de la máquina. Si bien es cierto que cualquier persona con acceso a nivel de máquina podría descifrarlo, cifrarlo detendría a las personas con acceso FTP ya que no tienen las teclas DPAPI de la máquina.

4

Mi entendimiento es que el aspnet_regiis.exe utiliza una clave específica máquina como "sal"

Si cifra una sección en una máquina, y luego tomar la configuración a otra máquina y tratar de descifrarlo, se no trabajará.

+0

+1 por mencionar la parte acerca de mover el archivo encriptado a otra máquina. – Andrew

4

En la historia, había exploits en navegadores o software de servidor web que permiten a los usuarios ver cualquier archivo en el disco duro del servidor. En un caso como este, el archivo web.config encriptado podría ser de alguna utilidad. Sin embargo, si un servidor web se ha visto comprometido permitiendo el acceso remoto al servidor, tener un archivo web.config encriptado será la menor de sus preocupaciones.

+0

De acuerdo. Estoy pensando más en términos de mantener las contraseñas y otra información confidencial fuera del control de la fuente. – danludwig

Cuestiones relacionadas