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 :
- El computador cliente toma los datos ingresados y los envía por la red hasta el servidor.
- El servidor recibe estos datos desde la red, comprueba la existencia del nombre de usuario.
- Si el usuario existe, se procede a encriptar la contraseña.
- 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.
- 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.
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!!!