since2012/04/23

     
 
最近升级日期:2009/09/15

大标题的图示检验软件正确性

前面提到很多升级与安装需要注意的事项,因为我们需要克服很多的程序漏洞,所以需要前往 Linux distribution 或者是某些软件开发商的网站,下载最新并且较安全的软件文件来安装才行。 好了,那么『有没有可能我们下载的文件本身就有问题?』 是可能的!因为 cracker 无所不在,很多的软件开发商已经公布过他们的网页所放置的文件曾经被窜改过! 那怎么办?连下载原版的数据都可能有问题了?难道没有办法判断文件的正确性吗?

这个时候我们就要透过每个文件独特的指纹验证数据了!因为每个文件的内容与文件大小都不相同, 所以如果一个文件被修改之后,必然会有部分的资讯不一样!利用这个咚咚,我们可以使用 MD5 这个指纹验证机制来判断该文件有没有被更动过! 举个例子来说,台湾高速网络中心所提供的 CentOS 5.3 原版光盘下载点:

http://ftp.twaren.net/Linux/CentOS/5.3/isos/i386/

同时提供了 CentOS 5.3 所有光盘/DVD 的 ISO 文件 MD5 编码,透过这个编码的比对, 我们就可以晓得下载的文件是否有问题。那么万一 CentOS 提供的光盘映象档被下载之后,让有心人士偷偷修改过,再转到 Internet 上面流传,那么你下载的这个文件偏偏不是原厂提供的,呵呵! 你能保证该文件的内容完全没有问题吗?当然不能对不对!是的,这个时候就有 md5sum 与 sha1sum 这个文件指纹的咚咚出现啦!说说他的用法吧!


小标题的图示md5sum / sha1sum

目前有多种机制可以计算文件的指纹码,我们选择使用较为广泛的 MD5 与 SHA1 加密机制来处理。 同样的,我们以高速计算机中心谈到的 CentOS 5.3 的网络安装映像档来处理试看看好了。 在上面的连结网址上面,你会看到几个文件:

  • CentOS-5.3-i386-netinstall.iso:CentOS 5.3 的网络安装映像档;
  • md5sum.txt: MD5 指纹编码
  • sha1sum.txt: SHA1 指纹编码

如果你下载了 CentOS-5.3-i386-netinstall.iso 后,再以 md5sum 与 sha1sum 去检验这个文件时, 文件所回传的指纹码应该要与网站上面提供的文件指纹码相同才对!我们由网站上面提供的指纹码知道这个映像档的指纹为:

  • MD5 : 6ae4077a9fc2dcedca96013701bd2a43
  • SHA1: a0c640ae0c68cc0d9558cf4f8855f24671b3dadb
[root@www ~]# md5sum/sha1sum [-bct] filename
[root@www ~]# md5sum/sha1sum [--status|--warn] --check filename
选项与参数:
-b :使用 binary 的读档方式,默认为 Windows/DOS 文件型态的读取方式;
-c :检验文件指纹;
-t :以文字型态来读取文件指纹。

范例一:将刚刚的文件下载后,测试看看指纹码
[root@www ~]# wget \
> http://ftp.twaren.net/Linux/CentOS/5.3/isos/i386/CentOS-5.3-i386-netinstall.iso
[root@www ~]# md5sum CentOS-5.3-i386-netinstall.iso
6ae4077a9fc2dcedca96013701bd2a43  CentOS-5.3-i386-netinstall.iso
[root@www ~]# sha1sum CentOS-5.3-i386-netinstall.iso
a0c640ae0c68cc0d9558cf4f8855f24671b3dadb  CentOS-5.3-i386-netinstall.iso
# 看!显示的编码是否与上面相同呢?赶紧测试看看!

一般而言,每个系统里面的文件内容大概都不相同,例如你的系统中的 /etc/passwd 这个登陆资讯档与我的一定不一样,因为我们的使用者与口令、 Shell 及家目录等大概都不相同,所以由 md5sum 这个文件指纹分析程序所自行计算出来的指纹表当然就不相同罗!

好了,那么如何应用这个东西呢?基本上,你必须要在你的 Linux 系统上为你的这些重要的文件进行指纹数据库的创建 (好像在做户口调查!),将底下这些文件创建数据库:

  • /etc/passwd
  • /etc/shadow( 假如你不让使用者改口令了 )
  • /etc/group
  • /usr/bin/passwd
  • /sbin/portmap
  • /bin/login ( 这个也很容易被骇! )
  • /bin/ls
  • /bin/ps
  • /usr/bin/top

这几个文件最容易被修改了!因为很多木马程序运行的时候,还是会有所谓的『运行序, PID』为了怕被 root 追查出来,所以他们都会修改这些检查排程的文件,如果你可以替这些文件创建指纹数据库 (就是使用 md5sum 检查一次,将该文件指纹记录下来,然后常常以 shell script 的方式由程序自行来检查指纹表是否不同了!),那么对於文件系统会比较安全啦!


 
     
http://linux.vbird.org is designed by VBird during 2001-2011. ksu.edu 

本网页主要以Firefox配合解析度 1024x768 作为设计依据     鸟哥自由软件整合应用研究室