He desarrollado una aplicación cliente que habla sobre una API REST a un servidor. La forma en que funciona la aplicación es enviar el par de nombre de usuario / pwd en el inicio de sesión inicial al servidor y luego responder con un token de autenticación en la forma de un GUID recién generado.
El cliente utiliza el GUID para hablar con el servidor durante el resto de la sesión (hasta que se borre el almacenamiento local). La página de inicio de sesión requiere la capacidad de permanecer conectado. Para lograr esto, almaceno el token GUID en el almacenamiento local. Si la clave está ahí, se inicia automáticamente la sesión.
Todas las comunicaciones se realizan a través de SSL, por lo que no me preocupa la seguridad de los datos o MITM, pero me preocupa la seguridad del token almacenado en el almacenamiento local.
Algunas preguntas:
- ¿Debo cifrar más el GUID? ¿Esto me da algo?
- ¿Es un gran riesgo para la seguridad almacenar el token de autenticación GUID en el almacenamiento local? Vale la pena asegurar?
- ¿El almacenamiento del token dentro de una cookie mejora el problema?
También pensé en que el servidor genere nuevos tokens con cada nuevo inicio de sesión y reduzca la ventana de ataque, pero eso evitaría que la función "Recordarme" funcione.