gpt4 book ai didi

c# - ProtectedData.Protect (DPAPI) 有多安全?

转载 作者:可可西里 更新时间:2023-11-01 02:59:51 30 4
gpt4 key购买 nike

假设有人可以访问我的所有硬盘,我猜弱点就是我的 Windows 密码。在不知道/无法检索的情况下,数据应该非常安全,不是吗?

我特地询问是因为 EFS entry在维基百科中指出

In Windows 2000, the local administrator is the default Data Recovery Agent, capable of decrypting all files encrypted with EFS by any local user.

而EFS恰好使用了DPAPI。这同样适用于我自己使用此保护的数据:

ProtectedData.Protect(plain, null, DataProtectionScope.CurrentUser);

如果确实是这样,我该如何预防呢?

[编辑] 注意我正在尝试存储 winforms 应用程序的凭据,以便用户不必在每次登录时都输入密码。换句话说,如果某人能够以该用户身份登录(即知道用户密码),那么他们也可以读取加密数据。

哪个 - 不是来自 Windows 背景 - 现在让我想知道 - 本地管理员不能以任何本地用户身份登录吗?在那种情况下,我不应该担心管理员无论如何都能够检索密码......

[Edit2] 正如谷歌所揭示的那样,看起来管理员不能只是以任何用户身份登录而不先重置/更改他们的密码。所以我的问题似乎仍然相关...

最佳答案

EFS 使用 DPAPI,而不是相反。管理员无法像那样读取您的 key 。

在忘记 DPAPI 之前,我会考虑替代方案。如果您自己加密文件,

  1. 你必须选择一个强大的算法并很好地实现它。
  2. 你需要一把 key 。它会在哪里?
  3. 您会将 key 存储在驱动器上某处的文件中。
  4. 该 key 很敏感,显然,您需要对其进行加密
  5. 转到 1

DPAPI 在 1 到 3 方面做得很好。 4 和 5 没有实际意义。如果 Windows 密码不足以保护数据,问问自己为什么它就足够了 CRUD这些数据放在首位。

为了更好的安全性,如果可能的话,您可以考虑不保存数据,而是保存数据的(加盐)哈希。不过,它使您的数据只写。例如,如果您要验证客户许可证号:

  • 保存它的加盐哈希值
  • 对要验证的加盐许可证号运行相同的哈希,
  • 比较两者。如果它们匹配,则许可证有效。

如果您必须读回加密数据而本地加密 key 不够用,请考虑使用存储在智能卡上的私钥加密您的应用程序 key (上述第 2 步)。

无论哪种方式,请记住事情总会发生。您总是在某处需要备份 key 。

关于c# - ProtectedData.Protect (DPAPI) 有多安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4756046/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com