唯一和完整,是信息安全的两大主题
唯一和完整,是信息安全的两大主题

使用WinMD5Free校验下载文件的MD5

从网上下载的软件,可能数据因为传输错误受到损坏,也可能已经被植入木马或病毒。养成使用MD5校验来检查数据完整性的习惯,可以在极大程度上避免受到伤害。

1. WinMD5Free的使用

WinMD5Free是一个小而美的MD5校验工具,操作非常简单,使用非常广泛。

  1. 下载WinMD5Free,解压,运行其中的WinMD5.exe。
  2. 如下图所示,选择要校验的文件,WinMD5Free会自动计算文件的MD5值。
  3. 拷贝官方公布的文件的MD5值,点击Verify进行验证。
  4. 如果文件没有损坏或经过篡改,WinMD5Free会弹窗告诉你:“Matched!”(匹配!)。

一帮情况下,我们在网上下载软件时,官方都会在下载链接附近提供软件安装包的MD5校验和的值(一个32位的文本串),或以MD5文件的形式放在下载软件的压缩包里。MD5校验的意思就是:利用WinMD5Free把下载的软件计算一个MD5值,与官方公布的MD5值做对比,如果一样,就意味着下载的软件文件与官方发布的一致,没有经过损坏或篡改。

2. 理解MD5

MD5是一种消息摘要算法(Message-Digest Algorithm,也叫哈希算法或散列算法,Hash),是一种单向,不可逆的加密方式,在计算机安全领域广泛应用于保护或校验信息传输的完整性。

MD5算法对输入任意长度的信息,产生128位固定长度的MD5值。MD5值用16进制数表示,每个16进制数占4位,所以,最后我们看到的MD5值都是32个16进制数字(32位长的字符串)。

MD5是一种哈希算法,其他常见的哈希算法还有MD4,SHA1,SHA256,SHA384,SHA512。

理解下列哈希算法的属性,在很多地方都能用上:

  1. 单向,不可逆:压缩或者加密是可逆的,也就是说压缩或加密后的数据还可以再还原。但哈希算法计算出来的散列值是不可以还原为原始数据的。所以,散列值可以公开,不用担心泄露信息。
  2. 确定性:通过哈希算法对两段不同数据计算的到的散列值一定是不相同的。哪怕这两段数据只有一丁点(比如一个比特)的区别,得到的散列值也会表现的完全不同。因此,第一,散列值可以用来代表原始数据,就是我们平时说的数字指纹;第二,散列值不同,原始数据一定不同,这就是校验数据完整性的基础。
  3. 抗碰撞:故意,或随机的构造散列值相同的两个源数据是不可能的。这就是哈希函数的安全性。当然,时至今日,在某些特定条件下,密码专家已经可以制造MD5的人为碰撞,所以MD5在密码学意义上已经被认为是不安全的了。

3. Windows自带的校验工具

如果不想要下载校验工具,可以使用Windows自带的命令行工具CertUtil,更方便。

上面的例子中,参数MD5,也可以换为SHA1,SHA256等其他算法。

4. 基于哈希算法的数字签名

哈希算法,或散列函数,说他们是现代信息安全的基础和柱石,也并不过分。在我们日常工作中,方方面面都离不开它们。

哈希算法得到一个信息的唯一指纹,而如果使用一个人(或终端电脑、或网站等)的私钥对这个指纹进行加密,再使用他对应的公钥进行解密验证,这个过程就是数字签名和验证签名。

私钥和公钥的说法来自于另一个加密算法:非对称密钥算法(或者叫公开密钥算法)。特点是:私钥保密,公钥公开,一个密钥加密的信息只能用另一个对应的密钥解密。
如果使用私钥加密,公钥解密,就是签名和验证签名;如果反过来使用公钥加密,私钥解密,实现的效果就是,任何人都可以向拥有私钥的接收者发送秘密,而不用担心别人窃取。

签名和验证签名的过程,可以类比于传统的盖章。
印章只有我有,所以,我盖过章的文件,就一定是我发出的。
再使用哈希算法来保证文件的完整性,就保证我盖章的文件,一定是我发出的,而且没有被人篡改过。

4.1 可执行程序的数字签名

Windows浏览器中内置了查看和验证数字签名的功能。如果你看到某个程序或文件,不确定他的安全性,最简单的办法就是右键 - 属性 - 数字签名,查看它的签名信息和发布者。


如果签名者或签名信息有问题,就说明这个文件可能被人篡改过,
可能已经中毒或带有木马。

4.2 UAC,用户账户控制

Windows为了保护用户不被恶意软件伤害,在运行软件之前会自动检查可执行程序的签名,并且提示用户。如下图:

很多作恶的杀毒软件会自作主张替用户关掉这个提示,结果就是用户更容易运行来路不明的软件,甚至有恶意软件悄悄启动了,用户也毫不知情。

所以,如果你很少看到上面这种弹窗,请检查下面的设置。如果发现控制条已经被拉到最底部,说明要么你中毒或中木马了,要么就是你信任无比的杀毒软件干了这件事情。

4.3 HTTPS,信得过的网站

我们在访问一些网站时,经常会遇到如下的提示:

出现这个提示的原因就是网站的签名证书没有通过验证。没有通过签名验证的网站是不可信的,因为作为与你进行网络通信的对象,身份不可信,而且在不能建立起有效加密通道(Https连接)的情况下,你们的通信内容是可以被第三方窃取的。如果在这种网站上输入账号、口令、信用卡等信息,这些信息就有可能被泄露。

4.4 有用的小结

做到如下几点,就可以在日常工作中避开99%以上的信息安全危害:

  1. 安装一个靠谱的杀毒软件,及时更新和升级。比如微软自带的Microsoft Defender就很好,把微软自带的安全中心配置好(默认配置即可),不需要多操心。
  2. 如果遇到来历不明的软件,可以检查它的数字签名。如果签名不可信,最好在沙箱或虚拟机里打开使用。
  3. 不要关闭UAC。
  4. 不要访问不能提供安全连接的网站。

 


 

Related Articles

关于我们

深圳市云溪科技有限公司为您提供创新的效率与安全服务。
宗旨:让技术应用具有人性的温度。

地址:广东省深圳市福田区岗厦社区彩田路3069号星河世纪A栋1512A5
邮编:518033
联系电话:18675562006