怎样验证软件是否可信?是否被篡改?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样验证软件是否可信?是否被篡改?相关的知识,希望对你有一定的参考价值。


证书除了可以用来验证某个网站,还可以用来验证某个文件是否被篡改。软件开发者需要购买代码签名证书给发布的软件签名,来验证软件代码的来源与完整性。后面专门告诉大家如何验证文件的数字签名。就拿 Windows 的例子来说吧。

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

选择该标签页,看到如下界面。

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

技术分享

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

如果该文件被篡改过了(比如,感染了病毒、被注入木马),那么对话框会出现一个警告提示“该数字签名无效”(图中红圈标出)。界面如下:技术分享

不论签名是否正常,你都可以点“查看证书”按钮。这时候,会跳出证书的对话框。如下:技术分享技术分享

从后一个界面,可以看到俺刚才说的证书信任链。图中的信任链有3层:

第1层是根证书(Thawte Premium Server CA)。

第2层是 Thawte 专门用来签名的证书。

第3层是 Mozilla 自己的证书。 

目前大多数知名的公司(或组织机构),其发布的可执行文件(比如软件安装包、驱动程序、安全补丁),都带有数字签名。你可以自己去看一下。

建议大伙儿在安装软件之前,都先看看是否有数字签名?如果有,就按照上述步骤验证一把。一旦数字签名是坏的,那可千万别装。


以上是关于怎样验证软件是否可信?是否被篡改?的主要内容,如果未能解决你的问题,请参考以下文章

区块链 交易怎么验证是否被篡改 SPV验证

powershell脚本:你的文件已经被黑客篡改.ps1

检测 Apk 中的代码篡改

接口签名实现

MD5 使用 md5sum hash 校验文件完整性与是否被篡改

监控web站点目录下所有文件是否被恶意篡改