Правильное хранилище паролей для репозиториев Git

Я создаю приложение, в котором вы можете управлять репозиториями GIT.

Я решил хранить информацию о репозитории в базе данных, но у меня проблема с паролями.

Проблема: когда я сталкиваюсь с защищенным хранилищем https + password, мне нужно будет сохранить пароль. Если я хочу внести изменения в репозиторий, мне понадобится пароль в виде обычного текста.

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

Я использую Java с библиотекой JGit.

Спасибо.


person Mats Stijlaart    schedule 04.07.2012    source источник
comment
Сохраните их в базе данных SQLite (обычный текст) и закодируйте с помощью SQLcipher. Проблема хранения паролей не столько проблема, сколько то, что пароль будет у вас в памяти, по крайней мере, когда вы его используете.   -  person Lukas Knuth    schedule 04.07.2012


Ответы (2)


Вам придется хранить их как обычный текст на каком-то уровне: как вы сказали, ваше приложение зависит от наличия пароля.

То, как вы их храните, зависит от того, с каким уровнем взаимодействия с пользователем вы можете иметь дело и на каких системах вы работаете — на рабочих столах Gnome вы можете интегрироваться с seahorse, в Windows вы можете использовать учетные данные. сейф. Если вы не можете интегрироваться, копирование подхода, используемого чем-то вроде KeePass, может быть хорошей идеей.

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

person Andrew Aylett    schedule 04.07.2012

Попробуйте BouncyCastle [1]. Он поставляется с большим количеством алгоритмов шифрования под либеральной лицензией.

[1] http://www.bouncycastle.org/java.html

person Matthias Sohn    schedule 23.08.2012
comment
Это позволяет избежать открытого текста, но у вас есть ключ шифрования, который снова является своего рода паролем, который вам нужно где-то хранить, по крайней мере, в коде, где его можно легко декомпилировать с помощью языков программирования на основе байт-кода, таких как Java, лучшим вариантом было бы использовать поддержку ОС, но с Java вам, вероятно, придется реализовать это самостоятельно. - person centic; 02.08.2013