DPAPI如何保护系统账户的MasterKey?

问题描述 投票:0回答:1

在阅读Microsoft 关于 DPAPI 的文档时,我发现了以下文本:

DPAPI专注于为用户提供数据保护。因为DPAPI 需要密码来提供保护,逻辑步骤是 DPAPI 使用用户的登录密码,在某种程度上它确实做到了。 DPAPI 实际上使用用户的登录凭据。在典型的系统中,在 用户使用密码登录,登录凭证很简单 用户密码的哈希值。

这让我开始思考 - 那些不需要密码的帐户又如何呢?

我指的是Windows和IIS安装的默认帐户,例如NETWORK SERVICE、LOCAL SERVICE、LOCAL SYSTEM、ASPNET。

如果我在这些帐户之一下运行的 Web 应用程序中使用 DPAPI,则 DPAPI MasterKey 将使用什么凭据?

windows security dpapi
1个回答
0
投票

security.stackexchange.com 中有一个非官方(但合理)的答案:

问:

如果用户没有登录密码,DPAPI 是否可以工作?

答:

是的,但不太安全。 DPAPI 使用主密钥加密数据,该主密钥与用户密码无关。当用户有一个 密码,主密钥是用用户的密码加密的。 如果没有密码,具有本地访问权限的攻击者(通过另一个用户 帐户)可能会提取主密钥。然而,一旦攻击者 无论如何,对系统的本地访问游戏就结束了。 DPAPI 只是一个 伤害限制系统,真的。

另外,纠正答案的评论:

小修正:主密钥使用帐户的 RSA 密钥进行加密,而 RSA 密钥又使用用户的密码进行保护。

所以在某种程度上它将使用例如。系统帐户凭据来派生加密密钥,但密钥本身将不受保护并且很容易获得。

MS 文档在某种程度上也提到了这一点: DPAPI实际上使用用户的登录凭据。在用户使用密码登录的典型系统中,登录凭据只是用户密码的哈希值。然而,在用户使用智能卡登录的系统中,凭证会有所不同。为了简单起见,我们将使用术语用户密码、登录密码或仅密码来引用此凭据。

但它并没有解释“凭证”这个术语...

© www.soinside.com 2019 - 2024. All rights reserved.