Mi situación:
-
La contraseña de inicio de sesión de una solicitud POST se deja en la memoria del navegador en texto claro siempre que no se borre la memoria caché (manualmente / cierre del navegador).
-
La conexión es HTTPS.
Posible solución:
- Genere una clave pública y una clave privada en el servidor para cada solicitud de inicio de sesión.
- Enviar una clave pública al navegador.
- Use JavaScript para cifrar la contraseña con la clave pública y enviarla al servidor.
- Descifre utilizando la clave privada y valide.
- Eliminar claves después de iniciar sesión.
Mi pregunta es, ¿es esto factible? ¿Pros y contras? ¿Hay alguna consideración de seguridad vs. rendimiento?
He repasado algunas preguntas como:
El primero realmente no responde a mi pregunta, ya que sugiero generar un nuevo par de claves en cada solicitud (lo que, sinceramente, es mi mayor preocupación en cuanto a la viabilidad y el rendimiento). Los otros dos enlaces parecen sugerir que javascript crypto es básicamente inútil mientras tengas una conexión HTTPS. ¿Pensamientos?