Сохранение паролей для неинтерактивного входа
Я понимаю, что использование соленого хеширования является предпочтительным способом сохранения паролей в базе данных. Однако это работает только в интерактивных целях. Например,
- Пользователь использует регистрационную форму для заполнения паролей, которая затем сохраняется как соленая запись хеша в базе данных.
- При следующем входе в систему с паролем хешированное значение сравнивается с записью базы данных.
Все идет нормально. Что если я захочу автоматизировать этот логин? т.е. вместо того, чтобы пользователь вводил пароль в онлайн-форме для отправки пароля для входа, я хочу сохранить пароль где-нибудь на моем локальном компьютере, чтобы я мог использовать его для автоматической аутентификации в форме входа в систему. Проблема в том, что я не могу использовать соленое хеширование здесь, поскольку оно одностороннее, и, следовательно, мне нужно использовать шифрование. Если я выбираю шифрование, мне нужно использовать безопасный ключ для дешифрования, который снова должен где-то храниться. Если мне нужно зашифровать, как мне сделать это безопасно? Если нет, то какой метод самый лучший. Есть ли лучшая практика для такого рода вещей?
Я видел некоторые неудачные реализации, которые были взломаны. Например, разработчик SQL, /questions/867130/kto-nibud-znaet-kakuyu-tehniku-shifrovaniya-ispolzuet-jdevelopersql-developer-dlya-sohraneniya-uchetnyih-dannyih/867151#867151
1 ответ
В Mac OS X и iOS есть цепочка для ключей для сохранения учетных данных.
Если вы не можете безопасно хранить учетные данные, используйте токен, который можно отозвать.
Файлы cookie и пароли для отдельных приложений - это одно и то же понятие.