lunes, 26 de febrero de 2007

El medio roto al encriptar

En estos día he estado averiguando como encriptar contraseñas en PHP, para que sean almacenadas en una base de datos, con el fin de desarrollar una aplicación en la que filtre el acceso a ciertos lugares usando nombres de usuario y contraseña... sin embargo, me encontré con un problema grave!!!, es posible que no me sirva de gran cosa encriptar las contraseñas cuando existe un problema en el proceso que afecta por completo la seguridad!!!

En un principio encontré algoritmos de encriptado ( MD5 ), junto con formas de implemenarlos en PHP, lo que permite que el proceso de cifrado se lleve a cabo en el servidor de mi aplicación, pero en este punto aparecieron suceptibilidades de seguridad graves, suceptibilidades relacionadas con el transpaso de la información desde el cliente hasta el servidor... mejor dicho:

Cuando un usuario ingrese a la aplicación, colocará su nombe de usuario y contraseña y da click en un boton de acceso, como "acceder", "log in" o cosas así; es en este punto donde empieza el algoritmo :

  1. El computador cliente toma los datos ingresados y los envía por la red hasta el servidor.
  2. El servidor recibe estos datos desde la red, comprueba la existencia del nombre de usuario.
  3. Si el usuario existe, se procede a encriptar la contraseña.
  4. Se compara el resultado del cifrado de la contraseña con los datos (previamente encriptados con el mismo algoritmo de encriptado) de contraseña almacenados en la base de datos.
  5. Si ambos datos (la contaseña encriptada enviada y la almacenada) son iguales, entonces se le dá acceso al cliente, de lo contrario se deniega el acceso.
Como pueden ver, el proceso es bastante simple, sin embargo, que pasa si alguien filta la información que sale desde el cliente???, es decir, que pasa si alguien "chuza" el cable de red y logra ver la contraseña que viaja antes de que llegue al servidor???

Pues se perdió el trabajo!!!! alguien que logre interceptar la contraseña podrá usarla cuantas veces quiera y se habrá perdido la seguridad!!!

Entonces encontré una nueva propuesta...

Algunos proponen que en lugar de hacer el encriptado en el servidor, es mejor hacerlo en el cliente, usando para ello JavaScript!!! así se evita que el "chuzador" vea la contraseña tal cual y solo va a poder ver el cifrado de la misma!!!, el resto del proceso es lo mismo e igual se usaría PHP para tener acceso a la base de datos, comparar información y todo eso...

... pero... si el chuzador usa el cifrado del password para enviarlo también al servidor??? no se tendría la misma debilidad que en el caso anterior, solo que esta vez en lugar de interceptar la contraseña original se intercepta la contraseña cifrada???

Es justo en este instante en donde pienso que a pesar de que es muy bueno que miles de científicos, investigadores e ingenieros al rededor del mundo luchen por perfeccionar los sistemas de encriptado, el esfuerzo pierde mérito siempre que exista la posibilidad de que el medio por el cual viaja la información tenga la posibilidad de "romperse" e interceptar así la información!!!

Para ser sincero solo hablo de lo que conozco, no sé si existan métodos para evitar esas "chuzadas", pero si no existe algo tan efectivo como los procesos de encriptado... quizá debamos dedicarle un poco más de tiempo y dedicación a solucionar este problema....

... o quizas sea yó quien no esté usando las técnicas de desarrollo adecuadas???

... en fin, esos son mis conflictos con el medio roto a la hora de encriptar.

PDT: Cualquier ayuda o información adicional es muuuy valiosa para mí, dejamne tu comentario!!!

miércoles, 21 de febrero de 2007

Iniciando a ensayar...

Después de darme cuenta que en ocasiones quiero contar cosas que en mis otros blogs no encajarían, he decidido empezar éste espacio en el que voy a intentar ensayar un poco mi intelecto.

Eseo... según mis investigaciones, que no fueron muy exaustivas, traduce simplemente "Ensayo", tal como aqueyos escritos científicos, y pues es precisamente lo que intento hacer en este blog, intentar ensayar, no solo a hacer ensayos formales, si no también ensayar a mostrar cosas que surgan de mi razón, sin importar el tipo de cosas que sean...

El contenido... pues simplemente lo que me dé por publicar, tal como los blogs lo permiten, lo que siempre voy a procurar es escribir desde la mente, no desde el corazón, pues para eso está Exodo...

y es así como arranca esta vaina!!!!