Я прочитал много, много, много постов о том, что «вы, вероятно, храните пароли неправильно». Они всегда имеют в виду хранение паролей на сервере, на который входит пользователь; они в основном перефразируют (каламбур) повсеместно распространенные советы, такие как неукоснительное использование паролей и т. д. и т. д. Однако я никогда не видел статьи о передовых методах хранения паролей на клиенте, чтобы клиенту не приходилось входить в систему. вручную каждый раз, когда они хотят войти; функция "запомнить меня".
Многие программы имеют эту функцию, от браузеров до таких программ, как Dropbox.
Недавно я прочитал старую статью о том, как Dropbox хранит на вашем компьютере идентификатор, который вы можете просто скопировать / вставить на другой компьютер, запустить Dropbox и войти в систему как устройство, с которого вы получили идентификатор; нет логина, нет ничего, и полный доступ к учетной записи Dropbox. Это похоже на действительно глупый дизайн, но я не могу придумать лучшего способа сделать это.
Я даже не уверен, как избежать хранения чего-то вроде куки в виде обычного текста. Если вы шифруете его, где вы храните ключ для его расшифровки?
Единственный способ, которым я вижу, чтобы не вводить уязвимости безопасности, - это удалить функцию автологина и заставить пользователя вводить свой пароль каждый раз, когда он хочет использовать службу, но это проблема удобства использования, и пользователи не хотят этого делать.
Что можно прочитать о безопасном локальном хранении учетных данных для реализации функции автоматического входа? Если принципы слишком просты для всей статьи, каковы они? Рассматриваемое программное обеспечение не должно зависеть от функций, присутствующих не на всех платформах (как, например, «связка ключей» в некоторых дистрибутивах Linux).