Windows 相当于 OS X 钥匙链? ?

在 Windows 中是否存在与用于存储用户密码的 OS X 钥匙链等效的操作系统?我会用它来保存我的(桌面)软件所使用的 Web 服务的用户密码。

从这个相关问题(在桌面应用程序中保护用户密码(Rev 2))和可用的 大量的第三方密码存储工具的答案中,我假设这样的事情不存在——我是不是每次访问 Web 服务时都要问密码,或者只是存储混淆了密码?

149403 次浏览

“传统的”Windows 版本是受保护的存储子系统,IE (IE7之前)、 OutlookExpress 和其他一些程序都使用这个子系统。我相信它是用你的登录密码加密的,这可以防止一些离线攻击,但是一旦你登录,任何程序都可以读取它。(例如,参见 NirSoft 的 受保护的存储密码视图。)

Windows 还提供了可能有所帮助的 CryptoAPI 和数据保护 API。但是,我不认为 Windows 会做任何事情来阻止在同一个帐户下运行的进程看到彼此的密码。

看起来 < em > 用户识别及认证机制 这本书提供了所有这些方面的更多细节。

Eclipse (通过其 安全 储藏室特性)实现了类似的东西,如果您有兴趣了解其他软件是如何做到这一点的。

实际上,通过查看 MSDN,他们推荐使用的函数(而不是受保护的存储)是:

  • CryptProtectData
  • CryptUnprotectData

CryptProtectData的链接在 CryptProtectData 函数

Windows8有一个称为密码库的密钥链的概念。Windows 运行时应用程序(Modern/Metro)以及托管桌面应用程序可以利用它。根据文件记载:

应用程序和服务不能访问与其他应用程序或服务相关联的凭据。

请参阅 MSDN 上的 如何存储用户凭据

在 Windows8之前,数据保护 API(DPAPI)是最接近于密钥链的等价物。可以使用此 API 对任意数据进行加密,但是存储加密的数据取决于开发人员。数据最终使用当前用户的密码进行加密,但用户或开发人员提供的“可选熵”可以包括在内,以进一步保护数据不受其他软件或用户的攻击。还可以在域中的不同计算机上对数据进行解密。

DPAPI 可以通过对 Crypt32.dll 的 CryptProtectDataCryptUnprotectData函数的本机调用访问,也可以通过。NET Framework 的 ProtectedData类,它是前面函数的有限特性包装器。

关于 dpAPI 的更多信息可以在 Passcape 的文章 DPAPI 中的安全分析和数据恢复中找到。

现在是2018年,Windows 10有一个“凭证管理器”,可以在“控制面板”中找到

OS X 密钥链在 windows 中等价于 证书经理

一个免费和开源的密码管理器,保持所有您的密码安全在一个地方是“ KeePass”和替代 Windows 凭证管理器。

如果你在窗户上得到 控制面板-> 视窗证书

是的,答案是 证件柜

它有特定的 UWP API,我相信您可以从 WinUI3访问相同的 API