Я работаю над системой, которая взаимодействует со многими внешними системными API: s. Большинство из них требуют аутентификации. Для удобства использования есть приложение AppConfig с широким охватом приложений, которое хранит информацию о конфигурации, а также учетные данные для внешних систем.Как управлять паролями в конфигурации приложения
Мой вопрос в том, что это плохая идея хранить имена пользователей и пароли (в открытом виде) во внешних системах в файле конфигурации приложения. Если да, то как этого избежать?
Чтобы получить доступ к файлу конфигурации, вам необходимо либо поставить под угрозу файловую систему сервера, либо репозиторий git на другом сервере (или, конечно, в любой системе разработчика). Я думал, что шифрование пароля в файле конфигурации не повышает уровень безопасности, так как ключ шифрования должен быть где-то сохранен. Неужели я ошибаюсь?
Я бы очень благодарен за ответы, объясняющие, как вы решили эту проблему.
Решение
Итак, вот мое окончательное решение. Я создал простую библиотеку, использующую OpenSSL для шифрования и дешифрования моих конфиденциальных данных. Ключ извлекается у пользователя при загрузке конфигурации, за исключением производственных серверов, где он хранится в файле. Это все еще не оптимальное решение, но оно лучше, чем «решение», которое я ранее имел.
Благодарим за ответы. Я соглашусь с ответом Уэйна, поскольку он был самым информативным.
Я предлагаю http://security.stackexchange.com/questions/15040/standards-for-encrypting-passwords-in-configuration-files как хорошую лекцию для всех, кто наткнуться на эту тему :) – tlegutko