С# хранит конфиденциальные учетные данные пользователя для сторонней системы

В нашем приложении мне нужно попросить пользователя ввести учетные данные, такие как логин, apikey для сторонней системы, чтобы наше приложение могло выполнять вызов API к этой системе, используя учетные данные. Сторонняя система использует SOAP с логином/паролем или Oauth с APIKey для генерации токена и т. д.

Как лучше всего хранить конфиденциальные учетные данные пользователя?

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

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


person Bo Hu    schedule 15.11.2016    source источник
comment
Вы НЕ должны хэшировать пароли, так как вы не можете их восстановить. Ваша проблема аналогична проблеме современных веб-браузеров, таких как Firefox и т. Д., Обрабатывающих ваше имя пользователя и пароль для сайтов, которые вы посещаете. Возможно, вы сможете найти дополнительную информацию на их страницах разработки.   -  person Bernhard Hiller    schedule 15.11.2016
comment
См. этот SO Answer для потенциального решения, при котором ни ключ шифрования пароля не находится на сервере фактов в Интернете. Что-то вроде HSM бедняка.   -  person zaph    schedule 15.11.2016
comment
@BernhardHiller Я предполагаю, что Firefox сохраняет логин в браузере клиента, а не на удаленном центральном сервере, поэтому, когда центральный сервер взломан, нет риска раскрыть миллионы логинов клиентов.   -  person Bo Hu    schedule 16.11.2016
comment
@zaph спасибо, это похоже на хорошее решение.   -  person Bo Hu    schedule 16.11.2016