当从互联网下载可执行文件时,我总是会检查它们是否经过数字签名,然后才放心运行它们。
在 Windows 中,右键单击经过数字签名的文件并选择“属性”时,“属性”对话框中将出现一个数字签名选项卡。
我想知道的是:Windows 真的核实属性对话框中显示的数字签名,还是仅仅表明文件包含数字签名可能有效也可能无效?
答案1
在 Windows 8.1 上,文件属性显示仅显示数字签名列表。您必须突出显示签名并单击“详细信息”,Windows 才会告诉您该签名是否有效。
我花费了不少钱和精力去获取代码签名证书。我做的第一件事就是对可执行文件进行签名,然后修改可执行文件以模拟篡改。如果您选择被篡改文件的属性,您看到的只是一个数字签名,没有任何警告表明它是否有效。
尽管该应用程序已被篡改,但 Windows 也允许我执行它。
答案2
Windows 自带证书存储包含来自所有受信任的根证书颁发机构 (CA) 的证书。Windows 可以通过检查存储中的证书签名来判断这些颁发机构是否颁发了用于对可执行文件进行签名的证书。
因此,基本上,答案是肯定的,Windows 确实需要验证数字签名。请注意,CA 必须确保他们出售证书的实体是他们声称的那个实体。因此,当您相信可执行文件来自 XYZZY 软件的报告时,您是根据 CA 的说法这样做的。