Estoy usando System.Configuration para encriptar y proteger algunas contraseñas en una sección de configuración personalizada vis: -.ProtectSection con RsaProtectedConfigurationProvider ¿a dónde va la llave?
static public void SetPassAndProtectSection(string newPassword)
{
// Get the current configuration file.
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.None);
// Get the section.
MyAppProtectedSection section =
(MyAppProtectedSection)config.GetSection(DEFAULT_SECTION_NAME);
section.DBPassword = newPassword;
// Protect (encrypt)the section.
section.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider");
// Save the encrypted section.
section.SectionInformation.ForceSave = true;
config.Save(ConfigurationSaveMode.Full);
}
Parece que funciona bien, pero necesito algo de información adicional para mi documentación.
¿Dónde se almacena la llave?
¿Cuánto dura la llave?
Michael
Gracias h0b0 Lo he comprobado y es correcto. Me sorprendió un poco descubrir que la ubicación de las teclas a nivel de máquina tiene un acceso predeterminado de 'everyone..read'. Estoy pensando que necesitaré usar las claves de nivel de usuario porque en mi caso el usuario de la clave es un servicio de Windows que se ejecuta como una cuenta específica. Gracias por su respuesta. –
Nota: la ubicación puede haber cambiado en la versión posterior de Windows. El de mi respuesta fue diferente. –