› Foros › PC › Software libre
xzibit escribió:Gracias
Una duda, ¿si hay colisiones en el MD5 como se resuelven?
Otra incógnita que me surge es que la aplicación va a tener dos partes, una parte en PHP minoritaria, y otra bastante más mayoritaria que va a ser en en una aplicación para Android. Yo entiendo que lo que me comentas es por ejemplo en PHP, porque esa caché funcionaría a nivel global. Sin embargo en la aplicación Android funcionaría a nivel local sólo, y no sé si eso ayudaría lo suficiente.
xzibit escribió:Gracias
Una duda, ¿si hay colisiones en el MD5 como se resuelven?
Otra incógnita que me surge es que la aplicación va a tener dos partes, una parte en PHP minoritaria, y otra bastante más mayoritaria que va a ser en en una aplicación para Android. Yo entiendo que lo que me comentas es por ejemplo en PHP, porque esa caché funcionaría a nivel global. Sin embargo en la aplicación Android funcionaría a nivel local sólo, y no sé si eso ayudaría lo suficiente.
xzibit escribió:Buff pues yo en Android estaba usando el conector jdbc:mysql de Java directamente. Me imagino que esta opción no me la recomendáis ni de coña, no?
EDITO: He estado googleando y me parece un disparate en términos de seguridad que la información viaje "plana". Para no tener que que cambiar medio código y seguir usando el conector, estaba pensando en hacer una de dos:
- Un tunel SSH
- Usar una conexión SSL
Pero no sé yo cual de las dos opciones es mejor...
xzibit escribió:Muchas gracias por las respuestas. Ya he implementado unos servicios web SOAP con Axis2 (a través de un servidor Tomcat) y he vuelto a poner la BD MySQL accesible sólo al localhost. Me ha costado lo suyo montarlo todo y hacerlo funcionar porque es la primera vez que tocaba servicios web, pero al final lo he conseguido y funciona todo perfecto. Lo bueno es que al ser Java he aprovechado el 90% del código que tenía.
Eso si, de momento la conexión de los servicios web es http a pelo. Realmente no me importa que así sea, salvo cuando viaja la contraseña de usuario desde el programa cliente al servicio (o sea el login y otro servicio que tengo para cambiar la contraseña). Con lo que comenta f5inet del cifrado tengo la duda entre si cifrar toda la conexión o bien cifrar sólo las contraseñas para más simplicidad. ¿Que opinan?
Y ya que estamos hablando de seguridad. Me gustaría conocer por alguien sabe, como sería posible esconder las contraseñas dentro del código Java. Lo que quiero decir es que si abrimos un .class ya compilado (o precompilado mejor dicho) con un editor, podremos ver todas las inicializaciones de los Strings todas juntas en una porción del archivo. Si una de ellas es por ejemplo alguna contraseña de cualquier tipo pues mal asunto porque se podría ver tal cual. Y aunque en cierta manera sería como encontrar una aguja en un pajar, no me quedo muy tranquilo sabiendo que la contraseña está ahí sin cifrar. ¿Alguna forma para evitar esto?
PD: Por cierto que el cifrado a nivel de aplicación/base de datos es asimétrico. Concretamente:
sha256( sha256(password) + salt)
en donde el "salt" son 64 bits provenientes de un random criptográficamente seguro que sólo cambia cuando se genera o cambia la contraseña. ¿Les parece suficiente?