我觉得我在这里遗漏了一些明显的东西,但我没有看到它写在任何地方。
我使用Authenticode证书签署我的可执行文件,但是当我开始学习更多关于它的信息时,我正在质疑它的价值。
现在,我关心的是:
如果更改了签名的exe,则进入“属性”>数字签名>选择签名>详细信息...显示“此数字签名无效”。这是一个非常模糊的方式来查看可能是一个严重问题,以及一个巨大的指标,你不应该运行该文件。
如果从文件中删除签名(使用delcert),则表示没有任何错误。同样,您可以运行该文件,并且在属性对话框中不会显示任何证书。
为了使这更有用,我认为签名文件需要验证自己。启动时,应检查是否存在有效签名,并且签名的sha1指纹可能与Xyz Corporation证书的预期签名匹配。
(当然,这仍然无法处理有人剥离证书,然后编辑文件以删除证书检查的情况)
我找不到任何人在谈论如何做到这一点(至少不是在.NET中,当然也不是像我期望的那样简单的API调用) - 所以这导致了几个问题:
答案 0 :(得分:0)
看看这个问题。一位评论者说,有一个策略设置只允许签名的可执行文件运行。
Are "code-signed" windows applications less vulnerable to virus infections?
此外,这个问题非常相似:Preventing executables with invalid Authenticode signatures from running