9

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

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

在 Windows 7 机器上进行测试,如果我启动已签名的可执行文件,我会收到 Windows 警告对话框,显示 Publisher Unknown(即未签名)。

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

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

似乎在我从可执行文件的属性对话框中查看实际证书详细信息之前,Windows 可能没有在线检查证书(请注意,这不仅仅是启动可执行文件后的延迟,我等待多长时间都没关系或者我启动它多少次,它会将其视为未签名,直到我进入文件的属性/数字签名)。

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

这种行为似乎违背了在 Windows 上进行代码签名的主要目的——除非用户知道进入右键单击属性并四处寻找证书,否则可执行文件怎么可能被视为未签名。

有什么我想念的吗?将可执行文件标记为 Windows 应在执行时主动检查证书的某种方式?

4

1 回答 1

1

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

于 2010-12-09T07:46:17.383 回答