从 .pfx 文件中恢复密码

信息安全 密码 密码破解
2021-09-04 20:40:13

我有一个使用签名证书(.pfx 文件)发布的旧 Windows SmartClient 应用程序。我们希望将到期日期延长至一年以上。我使用了一个名为RenewCert的程序来处理其他证书。但是,我们不知道 RenewCert 要求的此证书的密码。我尝试使用一个名为CertificatePasswordRecovery的程序来恢复密码,但它找不到它。

现在唯一的选择似乎是生成一个新证书,这将需要在所有机器上卸载/重新安装应用程序。

这个对吗?或者你能想到任何其他的可能性吗?

编辑:更多信息:
我在互联网上看到了另一种潜在的解决方案,您在记事本中打开文件并搜索 signtool.exe,密码将跟随 /p 开关。我没有成功,但我不确定我是否正确地接近它。在记事本中,我只看到一堆中文符号。然后我尝试在 Ultraedit 中以文本和十六进制模式查看 pfx 文件,但我没有看到类似“signtool.exe”的任何内容。我寻找“符号”的ASCII十六进制 - 73 69 67 6e - 但没有找到。

2个回答

首先,我有一个命名问题:您链接到 sortof 的文章表明术语“公钥/私钥对”和“证书”是可以互换的。实际上,证书只是密钥对的公钥部分,而 .pfx 文件是包含证书(公共部分)和加密私钥[来源]的捆绑包

(当人们谈论“保护证书的密码”时,我感到很恼火,因为证书是公共信息,这是没有意义的!你的意思是“保护私钥的密码”。但是由于 PFX 格式鼓励人们去思考这一切作为一个捆绑包,我想这是可以原谅的。)

根据您链接的那篇文章,RenewCert 似乎正在使用与该证书关联的私钥生成一个新的自签名证书,其中包含与旧证书相同的公钥(并在此过程中获得更长的到期日期) . 自签名证书在 HTTPS 中会失败,但您的 SmartClient 应用程序应该没问题。证书需要由某人的私钥签名,因此 RenewCert 使用与您认证的相同密钥对进行签名(因此是“自签名证书”)。

更新证书的另一种方法是向证书颁发机构 (CA) 提交证书签名请求 (csr)。不幸的是,在这里您也需要访问私钥,以便您可以通过所有权证明向 CA 证明您拥有此密钥 [参见RFC 4211 第 4 节IETF 关于 CSR 中 POP 的声明]。

因此,您的问题的答案是:除非您能找到访问该私钥的方法(通过记住 .pfx 文件上的密码,或者通过在某处的备份中找到私钥),否则您唯一的选择是生成一个新的密钥对,制作一个全新的证书,并更新所有的应用程序。没办法……证书的全部意义在于证明您拥有相应的私钥。

PFX 文件是 PKCS#12 格式的证书的 Windows 实现。可以像暴力破解 .ZIP 文件一样暴力破解这些密码。重新下载证书或获取新证书通常更容易。

我建议在 PFX 文件上使用密码,其熵类似于 PFX 文件中私钥的熵。我通常刚到 grc.com 并使用 Perfect Passwords 服务。