He leído muchas, muchas, muchas publicaciones sobre cómo "probablemente estás almacenando contraseñas incorrectamente". Siempre se refieren al almacenamiento de contraseñas en un servidor en el que un usuario está iniciando sesión; básicamente repasan (pretenden) consejos omnipresentes como asegurarse de eliminar las contraseñas, etc. Sin embargo, nunca he visto un artículo sobre las mejores prácticas para almacenar contraseñas en un cliente para que el cliente no tiene que iniciar sesión manualmente cada vez que quieran iniciar sesión; La función "Recuérdame".
Muchas piezas de software tienen esta característica, desde navegadores hasta programas como Dropbox.
Leí un artículo antiguo recientemente, acerca de cómo Dropbox almacenaba una identificación en su computadora que podría copiar / pegar en otra computadora e iniciar Dropbox e iniciar sesión como el dispositivo del cual obtuvo la identificación; sin inicio de sesión, sin nada, y acceso completo a la cuenta de Dropbox. Esto parece un diseño realmente estúpido, pero no puedo pensar en una mejor manera de hacerlo.
Ni siquiera estoy seguro de cómo evitar almacenar algo como una cookie en texto sin formato. Si lo cifra, ¿dónde almacena la clave para descifrarlo?
La única forma que veo para no introducir vulnerabilidades de seguridad es eliminar la función de inicio de sesión automático y hacer que el usuario escriba su contraseña cada vez que quiera usar un servicio, pero eso es una lucha de usabilidad y los usuarios están malcriados esperando que no tengan que hacerlo. haz eso.
¿Qué puedo leer acerca del almacenamiento local de credenciales de forma segura para implementar la función de inicio de sesión automático? Si los principios son demasiado simples para un artículo completo, ¿cuáles son? El software en cuestión no debe depender de las características que no están presentes en todas las plataformas (como el "llavero" que tienen algunas distribuciones de Linux).