У меня есть серверное приложение .NET, которое должно хранить пароли, которые не могут быть хэшированы, потому что некоторые API, которые я использую, нуждаются в паролях в виде простого текста.
Эти пароли также можно экспортировать и импортировать как часть конфигурации системы в другой экземпляр приложения или для резервного копирования.
Зашифрованные данные обязательно должны быть доступны для чтения экземплярами приложения на других серверах, кроме того, с которого они были экспортированы.
Какой самый безопасный способ сделать это без особых хлопот для пользователя и минимального риска потери данных из-за потерянного / недоступного ключа шифрования?
EDIT
Я ищу больше деталей, таких как:
- Как / где хранить ключ
- Генерация
уникальный ключ для каждой установки и
хранение против приложения в целом
общий ключ
... не какой алгоритм шифрования использовать.
РЕДАКТИРОВАТЬ II
Я должен добавить, что это приложение будет распространяться среди клиентов для запуска на их собственных серверах. Это клиент / серверное приложение. Сохраненные пароли используются нашим приложением только для передачи во внешние методы API. Мы не используем их ни для чего другого.
Основная проблема заключается в том, когда конфигурация системы экспортируется в виде XML для резервного копирования или для перемещения на другой компьютер. Именно здесь мы хотим защитить их, а также сделать их максимально простыми и гибкими для пользователя.