Foro de elhacker.net

Seguridad Informática => Seguridad => Mensaje iniciado por: xuturk en 20 Septiembre 2011, 14:28 pm



Título: proteger cadena de conexion a base de datos VS2008
Publicado por: xuturk en 20 Septiembre 2011, 14:28 pm
Hola de nuevo a todos, hoy estoy teniendo un problemilla con un programa bastante simple.

Estoy programando una conexion y una serie de consultas a una base de datos MySql desde visual C# y todo va de maravilla, el problema es que tras mucho leer y leer por internet, he encontrado que la mejor forma de proteger la cadena de conexion para que no puedan entrar con ese usuario y contraseña es meterlo en el App.Config, hasta ahi todo bien, lo he metido y es al fin y al cabo un XML mas... le abro y vale, lo puede leer cualquiera, paso al problema de cifrar ese fichero para que no puedan leerlo.

Paso conseguido, me bajo la Enterprise Library Configuration (por que no he visto otra mas simple) y cifro el fichero App.Config, Todo correcto ahora toda la cadena de conexion aparece cifrada en RSA y no hay dios que la entienda.

Ahora vamos con el problema que me surge:

Vuelvo al programa, ejecuto y todo de maravilla de nuevo, utilizando la misma sentencia de conexion a la ddbb ConfigurationManager.connectionstrings....

Va todo bien, ¿Cual es el problema?

Que imprimo esta cadena de conexion que se supone que esta cogiendo del XML y me devuelve toda la cadena de conexion descifrada :S... por lo que yo ahora pienso.. y si descompilan mi programa... ¿Que sentido tiene haber cifrado todo esto si en cuanto tengan el codigo fuente van a poder imprimir esta cadena aunque este cifrada?

No he probado nunca la descompilacion de nada por tanto no se si esque una vez descompilado no se puede ejecutar o que, pero viendo esto se me ocurre que en vez de haber cifrado nada podia perfectamente metido la cadena de conexion en cada consulta como una variable y pista...

Por tanto me gutaria saber algo mas sobre este tema, y si hay una manera mas segura de cifrar seto en Visual C# que seguro que la hay, por que yo despues de esto ya me he perdido completamente TT_____TT

Un saludo y muchas gracias!


Título: Re: proteger cadena de conexion a base de datos VS2008
Publicado por: Novlucker en 20 Septiembre 2011, 15:24 pm
Puedes ofuscar tu aplicación, pero de cualquier modo sigue siendo posible obtener la cadena. Tienes que pensar que en algún punto necesitas de la cadena en plano para poder conectarte, y es en ese punto donde se podría obtener. Si no es de tu aplicación será de memoria o por los paquetes de red.
Ese problema que comentas pasa en muchisimas apps, y no solo en .NET, sino en otra cantidad de lenguajes.

Saludos
 


Título: Re: proteger cadena de conexion a base de datos VS2008
Publicado por: n0more en 20 Septiembre 2011, 16:21 pm
Ten en cuenta que aunque "codifiques" la cadena en tu programa o con el XML, cuando la envias al servidor, este debe interpretarla en texto plano (si no me equivoco), con lo cual, con un sniffer en la red, estas vendido...


Un saludo.