.NET: Лучшая практика для шифрования конфиденциальных данных в клиентском приложении?

Мне нужно безопасно хранить пару пользователь / пароль в клиентском приложении.NET (надстройка Outlook).

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

На самом деле, я хотел бы получить доступ к EFS- подобному API, чтобы делегировать шифрование в Windows.

Любой намек на этот вопрос?

1 ответ

Решение

Если у вас есть доступ к.Net 4.0, я бы порекомендовал класс ProtectedData, который инкапсулирует Windows DPAPI, рекомендуемый способ шифрования данных на клиентском компьютере в Windows. В противном случае вы можете P / Invoke DPAPI напрямую сделать это.

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

Но трудно знать, что вам нужно, не зная, чего вы пытаетесь достичь.

MSDN Link

Другие вопросы по тегам