如何从备份中恢复 EFS 证书?

信息安全 加密 视窗 证书 磁盘加密
2021-09-01 06:25:18

我备份了旧的 Win 7 Pro,然后进行了全新安装。但是我忘记导出我的 EFS 加密证书,所以当我从备份中恢复加密文件后,我无法再访问它们。到这里,不足为奇。

然后我研究并发现证书存储在C:\Users\username\AppData\Roaming\Microsoft\SystemCertificates\My\文件夹中。我去了备份中的那个位置,并将CertificatesKeys文件夹恢复到新安装中的相同位置

现在,当我打开 EFS 证书管理器(而不是 MMC 证书管理器)时,它会要求我选择或创建个人证书。我可以浏览所有旧机器的证书(现在可用,因为我从旧机器恢复了证书文件)。我可以选择似乎是个人证书的证书(证书名称是我的用户名),但 EFS 证书管理器不允许我使用这些证书中的任何一个:“找不到用于解密的证书和私钥”。可以想象在密钥文件夹中您会找到私钥,并且在证书中的证书中文件夹。毕竟,它是从我删除备份文件的这个位置读取证书 - 在我恢复备份之前,EFS 证书管理器没有要显示的证书。

当我打开 Certificate Manager MMC时,我看到从旧机器通过备份引入的相同的几十个证书。令我惊讶的是,当我单击这两个证书中的每一个时,certmgr 告诉我“有一个与此证书相对应的私钥”伟大的!但是,如果我尝试导出这些相同的证书,它会告诉我找不到相关的私钥(无论如何,Windows!

我写了以上所有内容来问这个问题:我在哪里从备份中检索证书和私钥? 这些答案不适用于我的情况。

PS:最坏的情况我知道我可以从备份中恢复旧系统并导出证书。但我真的很想避免这样做。

4个回答
  1. 也许您从旧机器上恢复的文件破坏了 EFS 证书及其相关私钥之间的链接。

  2. 因此,尝试在具有管理员权限的旧机器 http://blog.gentilkiwi.com/mimikatz/crypto#exportKeys 上使用Mimikatz 2.0

    • 使用 crypto::exportKeys 函数,您可以导出私钥(只需注意文件上的 ACL)

    • 使用 crypto::patchcapi 函数,您可以修补 mimikatz 中加载的 Windows CryptoAPI 提供程序。然后,«不可出口»私钥变成«可出口»:)

它归结为与用户密码纠缠在一起的私钥。即使您知道密码,也没有现有的工具可以自动提取。

私钥是如何存储的

AFAIK 没有办法解决它。您必须启动到旧系统,使用相应的私钥导出证书并保存(我将其保存为 PFX)。

然后我将文件带入另一个系统(顺便说一句,不同的笔记本电脑,因此不同的 TPM)并使用与前一台机器相同的用户名和密码登录。我能够成功地将 PFX 导入到我的个人证书存储中。

我可以确认这适用于访问 EFS 保护的文件。

PS:我不需要使用@Td6 在他的回答中推荐的工具。

这可能是您正在寻找的:

DPAPI 秘密