Lo que me gustaría saber es el enfoque definitivo para encriptar cadenas de conexión en un archivo de configuración. Aquí están mis preguntas:.Net Encryption
uso de la encriptación a nivel de máquina, no pueden acceder a mi servidor a nadie escribir un pequeño programa .NET para leer el contenido de las cadenas de conexión?
Si estoy implementando mi aplicación en máquinas de usuarios en un entorno empresarial, y la aplicación tiene cadenas de conexión en un archivo de configuración, ¿cómo puedo asegurarme de que solo mi aplicación pueda descifrarlo? El escenario es especialmente interesante en un escenario de implementación de ClickOnce. He leído acerca de personas que almacenan la configuración sin encriptar en el servidor editor y encriptan a nivel de máquina cuando la aplicación se descarga, instala y ejecuta por primera vez. Esto suena tan mal para mí: las cadenas de conexión se comprimen sin protección a través del cable y se sientan sin protección durante un breve período de tiempo entre la descarga y la ejecución de la aplicación.
¿Puedo tener una clave pública y privada, firmar mi aplicación, encriptar el archivo de configuración con una clave, y cuando el usuario la ejecuta, el descifrado solo sería posible desde la aplicación firmada?
Dado que estoy usando ClickOnce, podría tener mi información confidencial encriptada en el código o incrustada, porque ClickOnce no detectará un cambio a menos que la versión # cambie. Entonces, si necesito volver a compilar si cambio mi cadena de conexión, el punto de un app.config está silenciado. ¿Qué otros enfoques puedo tomar, fuera del uso de un archivo de configuración, para lograr la protección de las cadenas de conexión en el servidor, el cliente y en el medio?
¿Puedes describir mejor tu primera pregunta? ¿Qué es el cifrado "a nivel de máquina"? – nightcoder
Por lo que sé, puede usar el cifrado integrado para encriptar a nivel de máquina y nivel de usuario. Por ejemplo, usando configSection.SectionInformation.ProtectSection ("RSAProtectedConfigurationProvider"); oa través de aspnet_regiis.exe –
Quizás Tendría más sentido elaborar su pregunta anterior formulada ayer (http://stackoverflow.com/questions/890396/click-once-how-to-encrypt-connection-strings) antes que crea una pregunta duplicada redactada de manera diferente. – Pwninstein