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

标签 windows digital-certificate codesign authenticode

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

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

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

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

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

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

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

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

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

最佳答案

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

关于windows - 为什么在查看证书详细信息之前,数字签名的可执行文件会被视为未签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4379985/

相关文章:

windows - 为什么无法从具有 PAGE_GUARD 保护的 block 中读取数据?

windows - 计划任务 : setting a working directory?

windows - 在 Windows 上使用 OpenBLAS 安装 numpy 的教程

.net - 使用自签名证书的 RabbitMQ 相互身份验证

java - Java证书和vba证书有什么区别?

digital-signature - 对 pdf 进行数字签名

ios - 命令/usr/bin/codesign 失败,退出代码为 1

.net - 没有管理员权限,应用程序无法工作

ios - 重新签名 iOS 应用程序 .iPA 文件而不更改 BundleId

ios - 使用更少或更多设备重新签署 .ipa