Как реверсивно хранить пароль с Python в Linux? - PullRequest
7 голосов
/ 16 июня 2009

Во-первых, мой вопрос не о хешировании паролей, а о шифровании паролей. Я создаю настольное приложение, которое должно аутентифицировать пользователя в стороннем сервисе. Чтобы ускорить процесс входа в систему, я хочу дать пользователю возможность сохранить свои учетные данные. Поскольку мне нужен пароль для аутентификации его в сервисе, его нельзя хэшировать.

Я думал об использовании модуля pyCrypto и его реализации Blowfish или AES для шифрования учетных данных. Проблема в том, где хранить ключ. Я знаю, что некоторые приложения хранят ключ непосредственно в исходном коде, но поскольку я кодирую приложение с открытым исходным кодом, это не кажется очень эффективным решением.

Поэтому мне было интересно, как в Linux вы бы реализовали пользовательские или системные ключи для повышения безопасности хранения паролей.

Если у вас есть лучшее решение этой проблемы, чем использование pyCrypto и системных / пользовательских ключей, не стесняйтесь поделиться им. Как я уже говорил ранее, хеширование не является решением, и я знаю, что шифрование пароля уязвимо, но я хочу дать возможность пользователю. Использование Gnome-Keyring также не вариант, так как многие люди (включая меня) не используют его.

Ответы [ 3 ]

5 голосов
/ 16 июня 2009

Попробуйте использовать PAM . Вы можете создать модуль, который автоматически дешифрует ключ при входе пользователя в систему. Именно так работает GNOME-Keyring (если это возможно). Вы даже можете писать модули PAM на Python с pam_python .

5 голосов
/ 16 июня 2009

Шифрование паролей на самом деле не дает вам гораздо большей защиты, чем хранение в незашифрованном виде. Любой, кто может получить доступ к базе данных, вероятно, также имеет полный доступ к компьютерам вашего веб-сервера.

Однако, если потеря безопасности является приемлемой и вам это действительно нужно, я бы сгенерировал новый ключевой файл (из хорошего источника случайных данных) как часть процесса установки и использовал его. Очевидно, храните этот ключ максимально надежно (заблокированные права доступа к файлам и т. Д.). Использование одного ключа, встроенного в исходный код, не очень хорошая идея - нет причин, по которым отдельные установки должны иметь одинаковые ключи.

0 голосов
/ 16 июня 2009

Password Safe разработан Брюсом Шнайером и с открытым исходным кодом. Это для Windows, но вы должны видеть, что они делают, и, возможно, использовать их снова.

http://www.schneier.com/passsafe.html

http://passwordsafe.sourceforge.net/

Прочитайте это: Если вы вводите A-E-S в свой код, вы делаете это неправильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...