none
encriptar conection string del app.config RRS feed

  • Pregunta

  • buenas,

     

    actualmente tengo una app windows en c#, y quiero encriptar y desencriptar el conectionstring. tienen algun codigo por alli?

     

    gracias

    jueves, 8 de septiembre de 2011 11:22

Respuestas

  • el archiv .config desencriptado tomando el valor y encriptarlo de nuevo?

    para nada, solo aplicas la tecnica para encriptar la seccion del .config

    la desencriptacion es automatica, solo al tomar la seccion lo desencripta

    hay alguna manera de tomar el valor ecncriptado y descriptarlo para poderlo tomar en mis variables de conexion sin modificar fisicamente el archivo .config.

    creo que no ash analziado del todo la informacion, porque si realizas pruebas veras quee s asi como trabaja

     

    Securing Connection Strings 

     

    usa algo como ser

     

    Configuration conf = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    conf.ConnectionStrings.SectionInformation.ProtectSection("DataProtectionConfigurationProvider")
    conf.Save();
    


    y despues solo usas

    ConnectionsStringSettings connstring = ConfigurationManager.ConnectionString["Conexion"];
    

    esto solo sabra que la seccion esta encriptada y lo desencriptara recuperando los datos

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta cbolivar82 viernes, 9 de septiembre de 2011 12:10
    viernes, 9 de septiembre de 2011 2:02

Todas las respuestas

  • Hola,

    Mira esta entrada del foro de windows form

    http://social.msdn.microsoft.com/Forums/es-ES/winformses/thread/09ae3499-5bf1-4980-9240-ff983fcfd493

    Saludos,


    phurtado
    jueves, 8 de septiembre de 2011 11:40
    Moderador
  • Ahora bien, el procedimiento normal es encriptar el conectionstring. y cuando lo necesito utilizar a nivel de ejecucion de la app (codigo) tengo que modificar el archiv .config desencriptado tomando el valor y encriptarlo de nuevo?

     

    hay alguna manera de tomar el valor ecncriptado y descriptarlo para poderlo tomar en mis variables de conexion sin modificar fisicamente el archivo .config..

     

     

    gracias
    jueves, 8 de septiembre de 2011 22:43
  • el archiv .config desencriptado tomando el valor y encriptarlo de nuevo?

    para nada, solo aplicas la tecnica para encriptar la seccion del .config

    la desencriptacion es automatica, solo al tomar la seccion lo desencripta

    hay alguna manera de tomar el valor ecncriptado y descriptarlo para poderlo tomar en mis variables de conexion sin modificar fisicamente el archivo .config.

    creo que no ash analziado del todo la informacion, porque si realizas pruebas veras quee s asi como trabaja

     

    Securing Connection Strings 

     

    usa algo como ser

     

    Configuration conf = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    conf.ConnectionStrings.SectionInformation.ProtectSection("DataProtectionConfigurationProvider")
    conf.Save();
    


    y despues solo usas

    ConnectionsStringSettings connstring = ConfigurationManager.ConnectionString["Conexion"];
    

    esto solo sabra que la seccion esta encriptada y lo desencriptara recuperando los datos

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta cbolivar82 viernes, 9 de septiembre de 2011 12:10
    viernes, 9 de septiembre de 2011 2:02
  • Muchas graciaa leandro! de verdad ahora si lo entendi, pero me surgue otro inconveniente.

    El caso es que si tu como programador ves mi conection string y ves que es del proveedor "DataProtectionConfigurationProvider" o "RSAProtectedConfigurationProvider", en ambos casos puedes desescriptar el conection string.

     

    De que manera puedo implementarle mayor seguridad?

     

    Nota: se que con el "RSAProtectedConfigurationProvider" se puede colocar una llave, pero dicha llave no se como cambiarla y que no aparesca en el app.config.

     

    muchas gracias
    viernes, 9 de septiembre de 2011 12:10
  • De que manera puedo implementarle mayor seguridad?

    es que en realidad no lo vez, se supone que las lineas que encriptan debenerian solo eejcutarse una sola vez, quizas en la instalacion, ya que si usas DataProtectionConfigurationProvider la key de enciptacion es puntual para cada pc

    luego solo se lee, pero eso es por codigo

    puede que entonces tu caso no sea bueno usar DataProtectionConfigurationProvide ,sino el RSA asi controlas previamente la encriptacion

     

    se que con el "RSAProtectedConfigurationProvider" se puede colocar una llave, pero dicha llave no se como cambiarla

    en realidad no se cambia, sino que se exporta, o sea la primera vez genera sy suas para enciptar, luego en cada pc solo la instalas

    Importing and Exporting Protected Configuration RSA Key Containers 

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 9 de septiembre de 2011 12:23