estoy poniendo en práctica la autorización en mi aplicación GWT, y en el momento que se hace de la siguiente manera:GWT/Javascript cifrado de la contraseña del cliente
- el usuario se registra por poner sus credenciales en una forma, y Los envío en texto claro al servidor.
- El código del servidor codifica la contraseña recibida utilizando BCrypt y coloca el hash en una base de datos.
- Cuando el usuario inicia sesión, su contraseña se envía clara al servidor, que la comprueba contra el hash almacenado.
Ahora. Lo que me molesta de esto es el hecho de que estoy enviando la contraseña al servidor sin tapujos, sigo pensando que no estaría muy contento si una aplicación que estaba usando hiciera eso con mi (use-for- todo-bueno) contraseña, pero encriptarla en el cliente realmente no me ganaría nada, ya que los atacantes podrían simplemente usar la contraseña hash como lo harían con la clara.
He estado googling todo el día para esto, y parece que Internet es bastante unánime cuando se trata de esto: aparentemente no hay nada que ganar con el cifrado de contraseñas del lado del cliente. This, this y this son solo algunos ejemplos de las discusiones y páginas que he visitado, pero hay muchas, muchas más, todas diciendo lo mismo.
Esta pregunta, a la luz de todo esto, puede parecer un poco innecesaria, pero espero que en algún lugar, alguien, tenga otra respuesta para mí.
¿Qué puedo hacer yo, si SSL no es una opción en este momento, para aliviar mi mente acerca de esto? ¿Hay algo que hacer, o implementar algún tipo de esquema cliente-encriptar-servidor-descifrar, solo será una patada de caballo muerto débil y lento?
Gracias por la amplia respuesta, muchos enlaces útiles allí. ¡Lo aprecio! –
BTW: hay CORS: solicitudes de origen cruzado ... así que realmente debería poder usar la solución de solo-para-iniciar-sesión-servidor. Lamentablemente, no sé si se han resuelto algunas incompatibilidades con respecto al generador de solicitudes de GWT e Internet Explorer (lo que significa que todos los navegadores ahora lo admiten al usar GWT "nativo" sin modificaciones del generador de solicitudes). – user1050755