验证文件的数字签名

论坛 期权论坛 期权     
黎小白   2019-10-27 13:02   2613   0
★前言
文件的数字签名的工具有很多,我说说三个比较典型的工具:SignTool、MakeCat和GPG。


SignTool和MakeCat是微软的,只能用于Windows;GPG是一款用于信息加密、验证的软件,而且是跨平台的,强无敌!


数字签名的过程和原理不解释了,直接讲最实用的部分——验证。
★常见的文件数字签名
文件的数字签名有四种常见的形式:“.exe”、“.gpg”、“.asc”和“.sig”。
“.exe”是用SignTool制作的,后面三种是用GPG制作的。下面我着重介绍这四种数字签名该如何校验。
★“.exe”
大伙儿比较常见的是 Windows 平台下的数字签名。如今大型 IT 公司(比如:微软、Google、苹果、等)或者是知名开源组织发布的 Windows 软件,安装文件通常都内置数字签名。
◇利用资源管理器验证单个文件
大概从 Windows 2000开始,Windows 就支持在某个文件尾部附加数字签名,并且 Windows 的资源管理器内置了对数字签名的校验功能。
下面俺通过几个截图,简单介绍一下:如何在资源管理器中验证数字签名。


比如,俺手头有一个 Firefox 的安装文件(带有数字签名)。当俺查看该文件的属性,会看到如下的界面。眼神好的同学,会注意到到上面有个“数字签名”的标签页。如果没有出现这个标签页,就说明该文件没有附带数字签名。


选择该标签页,出现如下界面。
顺便说一下,某些数字签名中没有包含“邮件地址”,那么这一项会显示“不可用”;同样的,某些数字签名没有包含“时间戳”,也会显示“不可用”。不要紧张,这里显示的“不可用”跟数字签名的有效性没关系。


一般来说,签名列表中,有且仅有一个签名。选中它,点“详细信息”按钮。跳出如下界面:
通常这个界面会显示一行字:该数字签名正常(图中红圈标出)。如果有这行字,就说明该文件从出厂到你手里,中途没有被篡改过(是原装滴、是纯洁滴)。


如果该文件被篡改过了(比如,感染了病毒、被注入木马),那么对话框会出现一个警告提示:该数字签名无效(图中红圈标出),界面如下。一旦出现数字签名无效,那这个文件就不要再使用了。

◇利用命令行工具批量验证
用上面的图形化界面进行验证,比较傻瓜化。但有一个缺点——如果你要验证的文件比较多,一个一个去点对话框,手会抽筋滴。所以,俺再介绍一下命令行的工具,适合进行批量验证。

这个命令行工具就是微软官网提供的 SigCheck,由大名鼎鼎的 SysInternals 出品(SysInternals 已经被微软收购),它是一个小巧、绿色、免费的命令行工具,下载页面在“这里”:


https://docs.microsoft.com/en-us/sysinternals/downloads/sigcheck

使用如下命令,可以批量检查某个目录下(包括多层嵌套子目录)的所有可执行程序,并且把“无签名”或者“签名无效”的文件列出来。


sigcheck -u -e -s某个目录的路径名


先提醒一下:
检查数字签名的有效性本身就比较慢,如果目录下的文件很多,你要有足够的耐心等它运行完毕。
★“.gpg”、“.asc”和“.sig”
由于篇幅太长,请看《验证gpg、asc和sig》。
★结尾
这里只演示了验证较常见的四种签名,基本上涵盖了绝大部分普通用户的应用情况,有更多精力可以去深入了解Windows和Linux的签名,关键词就是SignTool、MakeCat和GPG。
★参考文献
1.扫盲文件完整性校验——关于散列值和数字签名
2.SignTool (Windows)
3.MakeCat (Windows)
4.The GNU Privacy Guard
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP