Зберігання паролів за допомогою ключових файлів python


16

Я використовую бібліотеку брелоків для зберігання паролів у моєму додатку python.

import keyring
keyring.set_password('My namespace', username, password)
keyring.get_password('My namespace', username)

І це дуже добре працює.

Я припускаю, що паролі безпечні в keyring, вони зашифровані. Але оскільки я можу отримати їх за іменем користувача, що заважає іншим програмам робити те саме?

Це не ризик для безпеки, чи я щось пропускаю?

Відповіді:


14

Бібліотека брелоків використовує стандартний брелок для вашого робочого середовища, наприклад, брелок GNOME . Цей брелок розблокується, як тільки ви ввійдете в систему, що означає: так, будь-яка інша запущена вами програма має доступ до пароля, який ви зберігаєте разом із вашою програмою, але - і це ідея створення брелока - інших користувачів та їх програм немає.

Цитуючи " Філософію безпеки gnome-keyring ":

Прикладом театру безпеки є ілюзія, що якось одна програма, що працює в контексті безпеки (наприклад, ваша сесія користувача), може зберігати інформацію з іншої програми, що працює в тому ж контексті безпеки.

Зауважте, що usernameв set_password/ get_passwordфункції не пов’язано з іменем користувача, який запускає додаток (тобто користувача, ключовий брелок якого використовується), але може бути, наприклад, адресою електронної пошти, іменем бази даних тощо.


Дякую за відповідь. Отже, зберігати паролі там може бути ризиковано :)
umpirsky

3
Ні, той, хто отримує пароль, повинен знати (або надав) пароль для входу користувача. Спробуйте ввімкнути автоматичний вхід, а потім запустіть додаток. Ви не повинні мати доступ до збережених паролів, не вказуючи свій пароль для входу.
Хав'єр Рівера

@umpirsky: це не ризикованіше, ніж зберігання у файлі. І незалежно від того, як ви це зафіксували, ключ (и) для розшифровки повинні зберігатися десь або надаватися якось. Тож незалежно від того, що ви робите, будь-які програми у вашому сеансі матимуть доступ до нього.
MestreLion

Важливо зазначити, що цей код, що працює на сервері Ubuntu, де немає Gnome Keyring, повернеться до файлів із кодованими значеннями Base64, які легко доступні.
Cat Man Do

Це посилання здається мертвим.
AdamC
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.