zoukankan      html  css  js  c++  java
  • 怎样验证软件是否可信?是否被篡改?

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

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

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

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

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

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

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

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

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

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

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

    第3层是 Mozilla 自己的证书。 

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

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

  • 相关阅读:
    Go实现线程池
    Go语言工程结构
    Go语言示例-函数返回多个值
    Go语言参数中的三个点是干什么的
    go语言示例-Timer计时器的用法
    Go语言的类型转化
    iOS 修改通讯录联系人地址(address)崩溃原因分析
    tableview小结-初学者的问题
    Objective-C总Runtime的那点事儿(一)消息机制
    论坛源码推荐(11.6):iPhone6/6 plus屏幕适配Demo,Java代码转Objective-C
  • 原文地址:https://www.cnblogs.com/cioliuguilan/p/5433754.html
Copyright © 2011-2022 走看看