1

我想像这样使用 DPAPI 加密密码

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

并且想知道域管理员是否可以解密生成的 blob,如 Using Passwords Effectively所述:

但是,在域环境中,域管理员可以安全地更改您的密码,并且您仍然可以访问您的加密文件。

似乎域管理员必须首先解密数据(或者更确切地说,加密的主密钥),以便能够使用不同的密码重新加密它。

4

3 回答 3

1

答案是肯定的,前提是他还可以访问密钥(如果创建了一个),或者如果他愿意并且有足够的能力侵入 blob(请参见下面的链接)。

对于 DPAPI 中的主密钥(在CurrentUser模式下),使用 windows 登录用户名和密码来生成主密钥。如果管理员更新用户的域密码,DPAPI 将为该用户重新编码主密钥。如果用户由于例如更新他的密码也是如此。每月密码更改政策。

但是,如果他无权访问可选的熵密钥或构成该密钥的数据,则文件将保持加密状态,他将得到的只是无效数据。

如果在CurrentMachine模式下使用 DPAPI,则只能在加密它的计算机上解密文件,但该计算机上的所有帐户都可以读取该文件,前提是他们还可以收集熵密钥的内容。

一个很好的信息存储库是DPAPI Secrets这篇关于反向工程 DPAPI + 链接到可以从 DPAPI blob 中恢复数据的工具的文件

于 2018-03-06T16:46:14.550 回答
0

简短的回答:他可能不能开箱即用,但域管理员功能强大。如果他们真的想要,有很多方法可以拿到你的钥匙。

长答案:DPAPI 使用密钥加密您的数据。IIRC,它使用 AES 和每 90 天更改一次的密钥。密钥存储在您的计算机上,并使用您的密码加密。这是默认设置,它将您的密钥保存在除您之外的任何人都无法触及的地方。

除非您的域管理员远程安装密钥记录器、窃取您的密码、冒充您并窃取您的密钥(或直接访问他现在以纯文本形式看到的数据)。

另一个鲜为人知的事实是,当在 Active Directory 上启用凭据漫游时,它会将您的加密密钥发送到服务器。域管理员可以使用该副本进行离线攻击。但这很难,除非您的数据非常有价值,否则我不会担心。

于 2012-02-06T03:08:09.400 回答
0

答案是肯定的。带有描述的 PoC 实用程序:Win2K、Win2K3、Windows Server 2008 和 Windows Server 2012 中的 DPAPI 数据保护漏洞也 适用于 Win Server 2016/2019。

于 2019-05-20T09:56:44.250 回答