Windows相当于OS X钥匙串?


71

Windows中是否有等效的OS X钥匙串用于存储用户密码?我将使用它来保存我的(桌面)软件使用的Web服务的用户密码。

从这个相关问题的答案(在桌面应用程序中保护用户密码(Rev 2))和众多可用的第三方密码存储工具中,我认为这种情况不存在-我是否坚持要求每次访问Web服务或只是对其进行混淆存储时都输入密码?


Answers:


19

Windows的“传统”等效项是IE(pre IE 7),Outlook Express和其他一些程序使用的Protected Storage子系统。我相信它是使用您的登录密码加密的,可以防止某些离线攻击,但是一旦您登录,任何想要读取的程序都可以读取它。(例如,请参阅NirSoft的Protected Storage PassView。)

Windows还提供了可能有用的CryptoAPI和数据保护API。同样,我认为Windows不会采取任何措施来防止在同一帐户下运行的进程看到彼此的密码。

看起来《用户识别和认证的机制》一书提供了所有这些方面的更多详细信息。

如果您想了解其他软件是如何做到的,则Eclipse(通过其安全 存储功能)实现了类似的功能。


1
受保护的存储在XP / 2k3之后已弃用,并且在Windows Vista和Server 2008中是只读的:msdn.microsoft.com/en-us/library/bb432403%28v=vs.85%29.aspx
Spig

1
哇,Windows中的安全性真的很难吗?
Geremia


17

Windows 8有一个称为“密码保险库”的钥匙串概念。Windows运行时应用程序(现代/地铁)以及托管桌面应用程序都可以使用它。根据文档:

应用程序和服务无权访问与其他应用程序或服务关联的凭据。

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

在Windows 8之前的版本中,数据保护API(DPAPI)最接近于钥匙串。尽管存储加密数据取决于开发人员,但可以使用此API加密任意数据。最终使用当前用户的密码对数据进行加密,但是可以包括用户或开发人员提供的“可选熵”,以进一步保护数据免受其他软件或用户的侵害。数据也可以在域中的不同计算机上解密。

可以通过对Crypt32.dll的CryptProtectDataCryptUnprotectData函数的本机调用或通过.NET Framework的ProtectedData类(对以前的函数进行有限的功能包装)来访问DPAPI 。

Passcape的文章DPAPI Secrets中提供了比您需要了解的更多有关DPAPI的信息DPAPI中的安全性分析和数据恢复


14

实际上,从MSDN看,他们建议使用的功能(而不是受保护的存储)是:

  • CryptProtectData
  • CryptUnprotectData

的链接CryptProtectData位于CryptProtectData函数


这样的保护单独的应用程序从阅读彼此的数据...
rogerdpack

pOptionalEntropy在相同的上下文中运行时,传递可以为其他应用程序读取您的应用程序数据提供某种保护。
斯皮格2014年


2

一个免费且开源的密码管理器是“ KeePass”,它可以将所有密码保存在一处,这是Windows Credential Manager的替代产品。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.