【发布时间】:2011-04-04 18:05:45
【问题描述】:
我的桌面应用程序要求用户提供代理服务器凭据以供以后使用。但是,存储这些安全信息以供进一步使用的最佳方式是什么?
【问题讨论】:
标签: windows algorithm security passwords desktop-application
我的桌面应用程序要求用户提供代理服务器凭据以供以后使用。但是,存储这些安全信息以供进一步使用的最佳方式是什么?
【问题讨论】:
标签: windows algorithm security passwords desktop-application
在 Windows 中,您可以使用CryptProtectData 函数使用帐户密码加密您的数据,然后将加密的数据存储在注册表或配置文件中。这样,您根本不需要询问任何密码。
【讨论】:
询问用户主密码并使用该密码加密与该用户相关的所有凭据和其他信息。首次请求此数据时询问此密码一次(就像 FireFox 对您的站点登录/通行证所做的那样)。
如果你想在没有用户主密码的情况下构建系统,你将有一个不安全的系统,因为你需要用一些密钥加密用户数据,该密钥将存储在你的应用程序中,反过来可以反过来- 工程化并且可以提取密钥。
【讨论】:
根据 Eugene 的评论,在 Ubuntu 等基于 Gnome 的系统上,您可以使用 GNOME Keyring 来加密信息。在 KDE 上,您可以使用 KWallet,等价物,在 Mac OS X 上,您可以使用 Keychain。
我肯定会努力使用这些操作系统工具,而不是自己编写。不幸的是,它们各自有不同的接口,但你必须使用的 API 并不是很复杂。
【讨论】: