2012-09-14 49 views
0

我想弄清楚如何实现Windows凭据漫游。我发现它会漫游已经用密码强制保护的证书(可选熵CryptProtectData())。Windows凭据漫游 - 密码保护密钥如何发送到AD服务器?

我看不出怎么可以这样做,除非Windows将保留密码的副本某处时,证书是进口的。将%APPDATA%/ Crypto/RSA {UserSID}中的文件复制到另一台计算机将不起作用,因为密钥是使用用户DPAPI主密钥和可选的密码加密的。

除了使用将procmon,我不知道还有什么尝试还是看为了弄清楚这一点。任何指示帮助解决这个问题将非常感激!

回答

1

CryptProtectData确实有点更多的东西,使整个事情成为可能。

DPAPI将生成加密密钥。然后DPAPI密钥将使用从您的密码派生而来的另一个密钥进行加密。

在凭证漫游中发送的是DPAPI密钥,而不是您的密码。

这是同样的事情,也允许DPAPI继续工作(局部),当您更改密码。否则,Windows将不得不跟踪存储在任何地方的DPAPI加密斑点(文件,注册表项等)以加密到新的密码派生密钥。有无数的应用程序,使它不可能。

相反,关键在于一个众所周知且隐藏得很好的位置,用户从未见过。 Windows可以轻松使用新密码对DPAPI进行加密,从密码更改中屏蔽使用该密码的应用程序。

同样的机制也被凭据漫游留在用户的密码indenpendent。

这个网站有code to extract the SYSTEM's account DPAPI key,以及有关结构的一些信息,它可以帮助你调试。

+0

谢谢,我发现漫游DPAPI密钥随着凭据工作! – paulm