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

Posted

技术标签:

【中文标题】为啥在查看证书详细信息之前,数字签名的可执行文件会被视为未签名【英文标题】:Why would a digitally signed executable be treated as unsigned until viewing certificate details为什么在查看证书详细信息之前,数字签名的可执行文件会被视为未签名 【发布时间】:2010-12-07 18:04:25 【问题描述】:

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

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

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

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

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

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

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

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

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

【问题讨论】:

您解决了这个问题吗?我也面临同样的事情? 我也观察到了这一点。有时,如果我只是离开几分钟,再次运行程序会显示经过验证的“蓝色”对话框。但我也观察到查看 sig '修复'它。 【参考方案1】:

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

【讨论】:

我最初也认为连接检查证书可能有问题。但是,一旦您进入属性并查看其详细信息(然后显示证书为有效),它对证书有效性的检查和报告完全没有问题,这一事实似乎排除了这种可能性。

以上是关于为啥在查看证书详细信息之前,数字签名的可执行文件会被视为未签名的主要内容,如果未能解决你的问题,请参考以下文章

为啥要安装ssl证书,都有哪些作用?

获取windows下执行文件签名和证书信息

有关CounterSignature和数字签名的查询

在初次使用burpsuite时,为啥先要安装好burpsuite的证书

Surface RT在Win10中安装UWP软件,证书签名已解决

“此文件包含病毒并已被删除”在我构建的可执行文件(和代码签名)上