我想使用像这样的DPAPI加密密码
ProtectedData.Protect(plain, optionalEntropy, DataProtectionScope.CurrentUser);
并想知道域管理员是否可以解密生成的blob,如 Using Passwords Effectively 州:
然而,在域环境中 域管理员可以安全地更改 你的密码,你还有 访问您的加密文件。
似乎域管理员必须首先解密数据(或者更确切地说是加密的主密钥),以便能够使用不同的密码对其进行重新加密。
答案 0 :(得分:1)
答案是是,前提是他还可以访问 entropy 键(如果创建了一个),或者他是否愿意并且有足够的能力入侵blob(见下面的链接)。
对于DPAPI中的主密钥(在 CurrentUser 模式下),Windows登录用户名和密码用于生成主密钥。 如果管理员更新用户的域密码,DPAPI将重新编码该用户的主密钥。如果用户由于例如更新他的密码也是如此。每月密码更改政策。
但是,如果他无法访问可选的熵密钥或组成该密钥的数据,则该文件将保持加密状态,并且他将获得的只是无效数据。
如果在 CurrentMachine 模式下使用DPAPI,则只能在加密文件的计算机上对文件进行解密,但该文件对该计算机上的所有帐户都是可读的,再次提供他们也可以收集熵密钥的内容。
良好的信息存储库是DPAPI Secrets和this paper on reverse-enginerring DPAPI + link to a tool that can recover data from DPAPI blobs
答案 1 :(得分:0)
简短回答:他可能无法开箱即用,但Domain Admin非常强大。如果他们确实需要,可以通过多种方式获取密钥。
答案很长:DPAPI使用密钥加密您的数据。 IIRC,它使用AES,密钥每90天更换一次。密钥存储在您的计算机上,使用您的密码加密。这是默认设置,它可以将您的密钥保存在除了您以外的任何人之外。
除非您的域管理员远程安装密钥记录器,窃取您的密码,冒充您并窃取您的密钥(或直接转到他现在以纯文本形式看到的数据)。
另一个鲜为人知的事实是,当在Active Directory上启用Credential Roaming时,它会将加密的密钥发送到服务器。域管理员可以将该副本用于脱机攻击。但这很难,除非你的数据很有价值,否则我不担心。
答案 2 :(得分:0)
答案是肯定的。描述为Vulnerability of DPAPI data protection in Win2K, Win2K3, Windows Server 2008, and Windows Server 2012的PoC实用程序 在Win Server 2016/2019中也可以使用。