在 Windows 中是否有用于存储用户密码的 OS X 钥匙串的等价物?我会用它来保存我的(桌面)软件使用的网络服务的用户密码。
从这个相关问题的答案(Protecting user passwords in desktop applications (Rev 2))和大量可用的第三方密码存储工具,我认为这样的事情不存在——我是否坚持要求每次访问 Web 服务时的密码,还是只是将其混淆存储?
在 Windows 中是否有用于存储用户密码的 OS X 钥匙串的等价物?我会用它来保存我的(桌面)软件使用的网络服务的用户密码。
从这个相关问题的答案(Protecting user passwords in desktop applications (Rev 2))和大量可用的第三方密码存储工具,我认为这样的事情不存在——我是否坚持要求每次访问 Web 服务时的密码,还是只是将其混淆存储?
现在是 2018 年,Windows 10 有一个“凭据管理器”,可以在“控制面板”中找到
“传统的”Windows 等效项是受保护的存储子系统,由 IE(IE 7 之前)、Outlook Express 和一些其他程序使用。我相信它是用您的登录密码加密的,这可以防止一些离线攻击,但是一旦您登录,任何想要读取它的程序都可以读取它。(例如,参见 NirSoft 的Protected Storage PassView。)
Windows 还提供了可能有所帮助的 CryptoAPI 和数据保护 API。不过,我不认为 Windows 会采取任何措施来防止在同一帐户下运行的进程看到彼此的密码。
看起来用户识别和认证机制一书提供了所有这些的更多细节。
如果您有兴趣了解其他软件是如何做到的,Eclipse(通过其安全 存储功能)实现了类似的功能。
Windows 8 有一个名为 Password Vault 的钥匙串概念。Windows 运行时应用程序(现代/Metro)以及托管桌面应用程序可以使用它。根据文档:
应用程序和服务无权访问与其他应用程序或服务关联的凭据。
请参阅如何在 MSDN 上存储用户凭据。
在 Windows 8 之前,数据保护 API (DPAPI) 是最接近钥匙串的等价物。可以使用此 API 加密任意数据,但存储加密数据取决于开发人员。数据最终使用当前用户的密码进行加密,但是可以包含用户或开发人员提供的“可选熵”以进一步保护数据免受其他软件或用户的影响。数据也可以在域中的不同计算机上解密。
DPAPI 可以通过对 Crypt32.dll 的CryptProtectData和CryptUnprotectData函数的本机调用或通过 .NET Framework 的ProtectedData类来访问,后者是前函数的有限功能包装器。
Passcape 的文章DPAPI Secrets中提供了比您需要了解的更多关于 DPAPI 的信息。DPAPI中的安全分析和数据恢复。
实际上,通过 MSDN,他们推荐使用的功能(而不是受保护的存储)是:
CryptProtectData
CryptUnprotectData
的链接CryptProtectData
位于CryptProtectData function。
OS X 钥匙串等价物是Windows 中的凭据管理器。
一个免费的开源密码管理器可以将您的所有密码安全地保存在一个地方,它是“KeePass”,是 Windows 凭据管理器的替代品。
如果您在 Windows 上,则必须控制面板 -> windows Credentials
Windows 上的凭据转储,即使使用“凭据管理器”仍然是一个问题,我认为在特殊硬件之外没有任何方法可以防止它。MacOS 钥匙串没有这个问题,所以我认为没有完全等价的。
是的。答案是凭证储物柜
它有特定的 UWP API,我相信您可以从 WinUI 3 访问相同的 API