“不可出口”证书是真正的安全措施还是仅仅是安全秀?

“不可出口”证书是真正的安全措施还是仅仅是安全秀?

最近,我正在从死机(电源损坏)的 Windows XP 机器中恢复数据,其中包括安装在 IE 6 中的一些客户端证书。我插入了一个临时电源并尝试导出证书,但却被告知“这些证书被标记为不可导出,因此无法导出私钥”。

我已经在 intertubes 上进行了一些搜索,但是我能找到的唯一建议与预安装场景有关(即显然有一个选项可以在安装过程中检查以避免这种情况)。

我的问题是:

  • 这是真正的安全措施吗?在我看来,你可以简单地修补 IE6(或 CryptoAPI)中的验证逻辑并强制导出证书/私钥
  • 是否有现成的工具可以做到这一点?(例如用于备份目的)

答案1

导出已标记为不可导出的证书上的私钥?呃,怎么样一个名为 Jailbreak 的工具...

答案2

“不可导出”是指私钥无法访问CryptExportKey()。也许可以修补内存中的 CryptoAPI,但我没有找到任何相关参考。

也可能有一种方法可以在另一个系统中加载注册表“配置单元”并复制证书或编辑“不可导出”位......但同样,googlenet 上没有这样的东西。

答案3

更新:

mimikatz 有新版本,也支持 CNG Export(Windows Vista / 7 / 2008...)

  1. 下载(并以管理权限启动;主干版本为最新版本)
  2. privilege::debug(如果您已经是系统或者仅以 CryptoApi 为目标则不需要)
  3. crypto::patchcng(nt 6) 和/或crypto::patchcapi(nt 5 & 6)
  4. crypto::exportCertificates和/或crypto::exportCertificates CERT_SYSTEM_STORE_LOCAL_MACHINE

pfx 文件受密码保护“mimikatz”


旧帖:

也许您可以尝试具有其他私钥功能的另一个工具:“mimikatz”,它导出其他无法导出的密钥(不可导出、介质保护、孤立密钥等)。系统文件上的“位”不会改变,只有程序上下文会被改变:)例如,用户(不是管理员)可以导出他自己的受保护/不可导出的密钥,而无需特定权限。

相关内容