Jump to content

Duda con java, descompiladores y seguridad


kmikz

Recommended Posts

hace un par de días comencé a preguntarme lo siguiente

 

que pasa si hago un programa en java que se conecte a una bdd remota, creo mi clase y todo dentro del mismo proyecto, lo clásico

 

ahora bien, existen infinidad de des-compiladores para java, los cuales, obviamente, aplican ingeniería inversa para mostrar el código java que genero ese proyecto, y por ende verán los códigos de conexión a la bdd remota (host, user, pass, bdd, driver, etc...)

 

*debo aclarar que no eh probado nada aun, esto se me ocurrió hace unos 2 días aprox. <_<

 

con esos datos, se puede dejar literalmente la caga... :banana:

 

como creen que se podría evitar esto, de que forma se podría aplicar mas "seguridad" ??

 

PD: no soy experto en java, pero me defiendo bien xd

 

saludos

 

Link to comment
Share on other sites

  • 2 weeks later...

<_< Estimando, su pregunta me inspiro a googlear un rato (bastante rato... de hecho, me debi acostar hace rato.... :tonto: )

 

Pero bueno, hace mucho tiempo me hice la misma pregunta... ¿donde guardar los datos de conexión hacia la BD de mis aplicaciones de escritorio?

 

Opciones:

1. :blink: "HardCode" (en el codigo)... mmm, se puede ver con el block de notas sin mucha dificultad (ademas, hay que recompilar si deseas cambiar la psw)

 

2. :hide: en un archivo externo..., escondido... o con nombres extraños en las mas profundas carpetas del sistema... (aplicando técnicas de ofuscamiento) Pero si el usuario lo descubre, este esta en texto plano (aunque sea XML) (ademas, basado en la primera opcion, el usuario puede ver cualquier "lieteral String" de nuestro codigo, por ende, puede ver como se llama el archivo de texto que deseamos leer...)

 

 

3. :nose: entonces donde... Lo que todos dices es "Encripta la PSW" y los mas pillos dicen Usa MD5 o SHA-1 (o similares)...

 

Aunque no es tan mala idea, debes saber que para encriptar, también debes desencriptar (por eso no sirve MD5 y SHA, ya que son algoritos unidireccionales de "Digest") :blink:

 

 

Para realizar criptografia, debes tener una clave.... :banana: :banana: :banana: Pero donde guardas la clave????...

 

O_o Ya se... la solucion es...

 

 

:burla: La verdad es que ahora hago aplicaciones Web y la conexión a la BD la configuro en el "Apication Server"...

 

 

Saludos y ojala alguien tenga alguna experiencia personal para compartir con el foro...

 

 

:bravo: :bravo: :bravo: :bravo: :bravo: :bravo:

 

 

 

 

 

 

 

 

 

Link to comment
Share on other sites

jajajajaja

 

les cuento, estuve conversando con un profe y me dijo que podría conectarme a la bdd a través de un tercero y no directamente con mi aplicación en java, la verdad al principio no entendi bien lo que me quizo decir, pero la idea es que no maneje directamente la conexion a la bdd con la aplicacion en java, sino a travez de un proveedor de datos y que este se conecte a la bdd...(ni yo entendi lo ke dije xd)

 

y aun asi no termino de entender jajajajajajajajajajaaj

 

este es un tema ke da pa arto xddd

 

uta, ojala, alguien ke alla pensado en esto y alla llegado a una solucion lo mas cercana a la perfeccion nos alumbre, mas ke nada para tenerlo como referencia para el futuro, esto se me ocurrio de ocioso xdd, ademas, puede servir para otros lenguajes no solo para java

 

 

saludos

Edited by kmikz
Link to comment
Share on other sites

  • 3 months later...

ayer baje un descompilador y encontre un applet que me intereso en una pagina, webie un poco con la url y pude descargarlo buscando, despues lo descompile y pude ver too el codigo.

 

pero ahora fuera de los applet, hablando de jps por ejemplo nica creo que sea lo mismo, uno claro tiene acceso al codigo fuente superficial, pero yo caxo que la conexion con el servidor se puede colocar en una capa mucho mas abajo. por ejemplo un profe siempre nos decia nunca accedan a un elemento de forma directa tiene que verlo a travez de un metodo, entonces el dato queda una capa por decirlo asi mas abajo y es mas dificil acceder.

 

weno pero nada es irropible, pero aun asi le tengo mucha fe a java en cuanto a la seguridad. sobretodo porque tiene los tipos private y esas cosas que creo hacen mucho mas dificil acceder a los datos.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...