为什么在查看证书详细信息之前,数字签名的可执行文件将被视为未签名

时间:2010-12-07 18:04:25

标签: windows digital-certificate codesign authenticode

运行已经过数字签名的可执行文件时,我得到了一个非常奇怪的结果。

可执行文件使用signtool.exe使用适当的2级代码签名证书(非自行生成)进行签名。

在Windows 7计算机上进行测试,如果我启动已签名的可执行文件,我会收到Windows警告对话框,说明发布者未知(即未签名)。

然而,如果我然后取消并右键单击可执行文件并转到属性 - >数字签名,签名列表显示签名证书,然后我可以点击并选择“详细信息”以查看签名的详细信息,显示为“数字签名正常”。

此时,如果我启动可执行文件,现在所有突然的Windows都能正确识别exectuable已签名并报告正确的“已验证的发布者”。

似乎Windows可能没有在线检查证书,直到我从可执行文件的属性对话框中查看实际的证书详细信息(请注意,启动可执行文件后它不仅仅是一个延迟,它并不重要我等了多久或者我发布了多少次,它将它视为未签名,直到我进入文件的属性/数字签名。)

这是我用于测试的通用Windows 7安装 - 它没有以任何方式进行修改或调整。

这种行为似乎打破了Windows上代码签名的主要目的 - 除非用户知道进入右键单击属性并挖掘证书,否则可执行文件将被视为无符号。

有什么我想念的吗?有些方法可以将可执行文件标记为Windows应该主动检查执行时的证书吗?

1 个答案:

答案 0 :(得分:1)

很可能无论出于何种原因(连接问题等)都无法自动检查OCSP撤销。您需要在更多系统上执行测试以缩小问题范围。