Я использую библиотеку ключей для хранения паролей в моем приложении на python.
import keyring
keyring.set_password('My namespace', username, password)
keyring.get_password('My namespace', username)
И это работает очень хорошо.
Я предполагаю, что пароли в брелоке безопасны, они зашифрованы. Но, поскольку я могу получить их по имени пользователя, что мешает другим приложениям делать то же самое?
Разве это не угроза безопасности или я что-то упустил?
Библиотека ключей использует стандартный набор ключей вашего рабочего стола, например, брелок GNOME . Этот брелок разблокируется сразу после входа в систему, что означает: да, любое другое приложение, запущенное вами, имеет доступ к паролю, который вы храните вместе с вашим приложением, но - и это идея брелка - другие пользователи и их приложения не иметь.
Цитируя « gnome-keyring Security Philosophy »:
Примером театра безопасности является иллюзия, что каким-то образом одно приложение работает в контексте безопасности (например, ваш пользователь). сеанс) может хранить информацию из другого приложения, работающего в том же контексте безопасности.
Обратите внимание, что username
в функциях set_password
/ get_password
не относится к имени пользователя, запускающего приложение (т. Е. Пользователя, чье связывание ключей используется), но может быть, например, электронным письмом. адрес, имя пользователя базы данных и т. д.