2009-01-14 116 views

回答

14

“传统”Windows相当于IE(Pre-IE 7),Outlook Express和其他一些程序使用的受保护存储子系统。我相信它是用你的登录密码加密的,它可以防止一些脱机攻击,但是一旦你登录了,任何想要读取它的程序都可以。 (例如,参见NirSoft的Protected Storage PassView。)

Windows还提供了可能有所帮助的CryptoAPI和数据保护API。不过,我认为Windows不会阻止在同一个帐户下运行的进程看到对方的密码。

看起来书Mechanics of User Identification and Authentication提供了所有这些的更多细节。如果您有兴趣了解其他软件如何操作,Eclipse(通过其SecureStorage功能)实现类似这样的功能。

+1

受保护的存储在XP/2k3之后已被弃用,并且在Window Vista和Server 2008中为只读:http://msdn.microsoft.com/zh-cn/library/bb432403%28v=vs。 85%29.aspx – Spig 2014-12-10 21:02:11

+0

哇,在Windows中安全真的很难吗? – Geremia 2015-07-18 04:08:52

13

Windows 8有一个称为密​​码保险箱的钥匙串的概念。 Windows Runtime应用程序(Modern/Metro)以及托管桌面应用程序可以使用它。根据文档:

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

请参阅MSDN上的How to store user credentials

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

DPAPI可以通过对Crypt32.dll的CryptProtectDataCryptUnprotectData功能或通过.NET框架的ProtectedData类,这是因为以前的功能有限的功能封装本地调用访问。

有关DPAPI的更多信息,请参阅Passcape的文章DPAPI Secrets. Security analysis and data recovery in DPAPI