【发布时间】:2012-03-02 12:52:37
【问题描述】:
我想在 Windows PC 上安全地存储明文密码。我目前正在使用 DPAPI CryptProtectData 对其进行加密,然后将加密的 blob 存储在用户本地 AppData 的文件中。
在 Windows 7 中,Windows Vault 是一个凭据管理器(控制面板\用户帐户和家庭安全\凭据管理器),用于存储各种登录类型的登录数据,包括“通用凭据”。从表面上看,这看起来像是程序存储凭据的正确位置。但是,我找不到任何 API。我在 MSDN 中阅读了 Authentication function 参考资料,但坦率地说,我迷路了。
是否有用于 Windows Vault 的 API 来存储和检索程序中的凭据,如果有,我在哪里可以找到文档?
【问题讨论】:
-
在凭证管理功能部分下看起来像 CredWrite()、CredRead() 等。
-
我目前正在寻找存储用户凭据的解决方案——您能告诉我为什么您决定将加密的 blob 从 CryptProtectData 存储到 Windows Vault 吗?更安全?它似乎不太适合以前的 Windows 版本(但目前,我不确定我是否会在意)。
-
像 BSchlinker 一样,我不明白这给我们带来了什么。这怎么比存储在文件系统上更安全?
-
@Sammi:没有任何地方暗示这种方法比任何其他方法更安全/更不安全。我不认为它实际上在任何意义上都“更”安全,但我没有能力肯定地告诉你,抱歉。
-
@kkm 看起来毫无意义,这就是我的想法。苦无所得。但我不知道。它还将您锁定在 Windows 上,这在跨平台 .net 核心荣耀的时代是不幸的。
标签: security winapi authentication credentials dpapi