Foros del Web » Programación para mayores de 30 ;) » .NET »

¿ como protegeis la cadena de conexion ?

Estas en el tema de ¿ como protegeis la cadena de conexion ? en el foro de .NET en Foros del Web. Hola a todos, os cuento, estoy utilizando VB.NET 2010 y me conecto remotamente a una base de datos MySQL, la cuestion es... En el archivo ...
  #1 (permalink)  
Antiguo 07/12/2012, 13:44
 
Fecha de Ingreso: febrero-2005
Mensajes: 33
Antigüedad: 19 años, 2 meses
Puntos: 0
Pregunta ¿ como protegeis la cadena de conexion ?

Hola a todos, os cuento, estoy utilizando VB.NET 2010 y me conecto remotamente a una base de datos MySQL, la cuestion es...

En el archivo de configuración My, es donde pongo la cadena de conexión a MySQL, en donde aparece, ademas de el servidor el nombre del usuario y la contraseña de la misma.

Mi miedo es, ante un eventual "desamblado", esos datos estarían tal cual...

¿ Como tratáis vosotros este tema ?

Un cordial saludo y gracias.
  #2 (permalink)  
Antiguo 07/12/2012, 13:53
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 2 meses
Puntos: 76
Respuesta: ¿ como protegeis la cadena de conexion ?

Hola

La forma mas facil es usar un cifrado de doble via, para que puedas cifrar el string de conexion y a la hora de leer, invertir ese cifrado.

Yo lo realizo en mis aplicaciones con el metod Rijndael, investiga un poco sobre esto en internet hay ejeplos.

Recomendacion:
Los metodos de cifrado de doble via utilizan una clave para cifrar e invertir le cifrado, no uses una clave "facil".

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #3 (permalink)  
Antiguo 08/12/2012, 08:52
 
Fecha de Ingreso: febrero-2005
Mensajes: 33
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: ¿ como protegeis la cadena de conexion ?

Gracias jhonwilliams, pero no me vale este sistema porque para acceder a MySQL utilizo la biblioteca que hay para .NET, y la opción de desencriptar una vez llega al servidor no se si existe opción de hacerlo.

En cualquier caso imagino que como mucho lo que podría hacer es ofuscarlo, porque igualmente si pongo encriptada la contraseña en el programa al descompilarlo si conocen mi metodo de encriptacion igualmente podrían desencriptarlo.

Mi idea era algún sistema de un solo paso, es decir que no se pueda desencriptar pero igualmente si lo decompilan, creo que seguirá viéndose fácilmente.

Creo que es un tema complicado este realmente, en un futuro acabare utilizando webservices, pero no lo veo lo mas optimo.

Un saludo
  #4 (permalink)  
Antiguo 08/12/2012, 09:18
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 2 meses
Puntos: 76
Respuesta: ¿ como protegeis la cadena de conexion ?

Ya esta tocando varios puntos.

Cita:
porque igualmente si pongo encriptada la contraseña en el programa al descompilarlo si conocen mi metodo de encriptacion igualmente podrían desencriptarlo.
No se recomienda poner en ningun caso la cadena de conexion dentro del programa, porque si tienes que cambiarla te tocaria generar una nueva compilacion de la misma.

Cita:
pero no me vale este sistema porque para acceder a MySQL utilizo la biblioteca que hay para .NET, y la opción de desencriptar una vez llega al servidor no se si existe opción de hacerlo.
Aca si me perdi, por tambien utiliso la biblioteca oficial de MySQLConnector y no tengo lio con esto.

Cita:
Mi idea era algún sistema de un solo paso,
Si lo haces con un sistema de un paso, como vas a leer luego la conexion?, cuando la leas vas a ver algo como esto:

Cifrado en SHA512
Código:
fJNePGOAOzMe0jZ3ZPPa62Q0LMiZyptpFZ++IG2Wtsfu838cMVkUDK/XLL5W8xkeDoYw8HrqyXAkctmOdXBuJg==
Esa linea es un cifrado de una sola via, si no la puedo invertir, como voy obtener una cadena de conexion valida al servidor?

Basicamente la idea de lo que tu necesitas se resume asi:

1. En el archivo de configuracion va la cadena cifrada
2. en la aplicacion, lees la cadena de conexion, inviertas el cifrado y lo asignas a la MySQLConnection con la cual vas a trabajar.
3. La idea de ofuscar la aplicacion no es mala, yo tambien lo hago.
4. Mis claves de cifrado (el key que cifra e invierte el cifrado) son GUID, asi que son un poco mas complejas para que las adivinen, algo asi como:

{54729436-D327-437c-B42E-E1616625FB9F}

Y esa misma clave se usa para cifrar y para invertir.


Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #5 (permalink)  
Antiguo 08/12/2012, 15:47
 
Fecha de Ingreso: febrero-2005
Mensajes: 33
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: ¿ como protegeis la cadena de conexion ?

jhonwilliams, nuevamente gracias por prestarme tu tiempo para responder.

Creo que ahora empezamos a entendernos, mejor dicho creo que ahora te he entendido mucho mejor.

Haré esto que comentas, pienso que alguien que quiera podría desofuscar la aplicación y encontrar en algún punto esta clave que invierte el cifrado tal cual, pero claro... sin duda es mucho mas rebuscado y perderán mas tiempo.

Gracias nuevamente jhonwilliams
  #6 (permalink)  
Antiguo 08/12/2012, 20:15
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 2 meses
Puntos: 76
Respuesta: ¿ como protegeis la cadena de conexion ?

Partamos de algo.

Por mas que queramos proteger una aplicacion "siempre" estara alguien tratando de romper la seguridad.

El ofuscar el codigo no es la forma infalible, pero al menos dificulta un poco el objetivo.

Que ofuscador utilizas?

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)

Etiquetas: conexion, net, sql, vb, cadenas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:59.