为什么某些 Windows 可执行文件没有“数字签名”选项卡?

信息安全 视窗 电子签名
2021-08-12 04:51:50

为什么 Windows 7 系统上的某些可执行文件没有“数字签名”选项卡?

(关于这个问题,我指的是那些不属于 Windows 操作系统并且安装包在开始菜单中创建快捷方式的可执行文件。)

是不是因为:

  1. .exe 文件实际上是某种包装器,例如 Java Jar 或 Flash SWF 文件?
  2. 制造商从未对 .exe 进行数字认证?
  3. 还有什么原因?

我之所以问,是因为我认为如果原因是 #2(二进制文件从未经过 CA 认证),那么在安装软件时我会收到某种警告消息。

更新:下面的屏幕截图显示了我机器上的两个可执行文件。对于其中之一(“iClone.exe”),Windows 不显示“数字签名”选项卡。对于另一个,显示选项卡。

没有 Dig Sign 选项卡的 .exe

3个回答

Microsoft不需要签署可执行文件。然而,司机是。

从 64 位版本的 Windows Vista 和更高版本的 Windows 开始,驱动程序代码签名策略要求所有驱动程序代码都具有数字签名此外,32 位版本的 Windows Vista 和更高版本的 Windows 的某些配置还需要对驱动程序代码进行数字签名,以便访问受内容保护策略控制的下一代高级内容。Windows Vista 和更高版本的 Windows 依靠这些组件的数字签名来提高 Microsoft Windows 平台的安全性和稳定性,并通过下一代优质内容实现新的客户体验。

参考:https ://msdn.microsoft.com/en-us/library/windows/hardware/ff548231(v=vs.85).aspx

如果您发现这是针对 Microsoft 可执行文件的,原因是 Windows 资源管理器的实现:如果签名在可执行文件本身中(例如使用 签名signtool,Windows 资源管理器只会显示数字签名它不会显示存储在 Windows 数字签名目录 ( C:\Windows\System32\catroot\)中的数字签名(例如使用 生成的makecat)。

要检查可执行文件的签名,包括数字签名目录中的条目,请使用SysInternals SigCheck它还会告诉您在使用-i命令行开关运行时它在哪里找到签名,例如

C:\>sigcheck.exe -i c:\Windows\System32\cmd.exe

Sigcheck v2.1 - File version and signature viewer
Copyright (C) 2004-2014 Mark Russinovich
Sysinternals - www.sysinternals.com

c:\windows\system32\cmd.exe:
        Verified:       Signed
        Catalog:        C:\Windows\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\Microsoft-Windows-Client-Features-Package-AutoMerged-base~31bf3856ad364e35~amd64~~10.0.10586.0.cat
[...]
  1. 制造商从未对 .exe 进行数字认证?

是的。它需要花钱,并且意味着在部署工作流程中需要付出额外的努力。

我之所以问,是因为我认为如果原因是 #2(二进制文件从未经过 CA 认证),那么在安装软件时我会收到某种警告消息。

不。虽然您可以使用“AppLocker”配置类似的东西(我猜是通过使用条件为“Any Publisher”的发布者允许规则),但在我知道的任何 Windows 操作系统上,默认情况下都没有这种机制处于活动状态。