许多正规的程序都有自身的数字签名。数字签名是对所有以数字创建的文件进行真实性验证的信息记录,是唯有信息发送者才能生成而别人无法伪造的信息。所有文件都可以创建数字签名,但我们最常用的是程序签名,许多安装文件会添加数字签名,以便让用户验证其真实性。那么,如何查看和验证文件的数字签名呢?下面介绍三种方法。
首先可以通过文件资源管理器进行数字签名验证。选择一个要验证的文件,例如 Photoshop 的程序文件,右键单击并从快捷菜单中选择 “属性”,打开程序文件属性窗口,如果看到有 “数字签名” 选项卡,说明该程序进行过数字签名(图 1)。
如果软件没有经过数字签名,右击软件并显示其属性窗口,将不会出现 “数字签名” 选项卡。但这并不意味着软件不能安装或运行,你会发现一个未经数字签名的 EXE 绿色程序,依然可以正常运行。微软会对未签名的驱动安装作保护性提示,但选择主动权在于用户,这可通过在高级启动设置中选择 “禁用驱动程序强制签名” 来解决。
单击 “数字签名” 选项卡下的 “详细信息” 按钮,即可看到该程序签名的具体信息,包括签名者名称、电子邮件和签名时间等(图 2)。
点击 “查看证书” 按钮能查看签名证书的具体情况,包括该证书的签发目的、颁发者和颁发给的对象、证书的有效期、证书的详细信息、证书的路径等内容。
如果是可信软件,可以安装证书,让系统对该软件放行。点击 “安装证书” 会弹出 “证书导入向导”,按向导安装即可。通过 “数字签名详细信息” 窗口中的 “高级” 选项卡,能看到序列号、算法等信息。
此外,通过 DigiCert Certificate Utility 软件也能进行数字签名验证。运行该软件后,点击 “I Accept” 按钮接受使用条款。进入主界面后点击左侧栏的 Code Signing 项,再点击右侧窗格上方工具栏的 Check Signature 按钮,随后在文件对话窗口中找到要检查证书的程序,点击 “打开” 按钮(图 3)。
在弹出的证书验证窗口中,如果两个圆形钮都显示为绿色,说明数字签名和时间戳均有效(图 4)。
在微软 Windows 10 SDK 套件中有一个 SignTool 工具,它也可以验证程序的数字签名。由于 SDK 主要针对开发者,因此日常使用的 Windows 中不包含该组件,需要下载安装。安装之后,用以下命令验证已经签名的文件。
signtool verify MyFile.exe