2024年10月如何检测Linux系统已下载文件的完整性(2)

发布时间:

  ⑴原理: 原理同MD一样,都是通过对文件进行HASH求值,比对文件发布者发布的HASH值,通过是否相等判断文件是否被篡改

  ⑵说明: SHA HASH求值方法可以说是MD的一个升级版本(SHA 位,MD 位,在HASH求值方面,MD退出的舞台将有SHA占据。SHA家族有五个算法:SHA-、SHA-、SHA-、SHA-,和SHA-,后四种有时候称为SHA

  ⑶使用: CentOS有SHA的命令: shasum

  ⑷# 直接输出SHA Hash

  ⑸$ shasum your-downloaded-file-name

  ⑹dbdfa your-downloaded-file-name《/p》 《p》# 将SHA Hash值保存到文件中

  ⑺$ shasum your-downloaded-file-name 》 sha-hash.txt

  ⑻# 显示文件内容

  ⑼$ cat sha-hash.txt

  ⑽dbdfa your-downloaded-file-name《/p》 《p》#通过sha-hash.txt来校验我们下载的文件your-downloaded-file-name

  ⑾# 注意,文件必须要要通过txt文件中的路径知道哦

  ⑿$ shasum -c sha-hash.txt

  ⒀your-downloaded-file-name: OK

  ⒁这个SHA和MD基本一致,需要补充说明下的是,在使用 mdsum 也好,还是 shasum 也罢,校验文件的时候,务必要让系统能够根据文件中提供的路径找到文件,如果文件找不到,是没有办法进行校验的。

  ⒂如果是做多个文件的Hash校验,可以通过一个文件保存多个文件的Hash值即可。

  ⒃原理:使用非对称加密,程序生成唯一的密钥对(公钥和私钥:Public Key和Private Key/Secret Key。操作方法如下:

  ⒄.发布者通过用生成的密钥对中的私钥对要发布的文件进行签名,得到签名文件(sign;

  ⒅.发布者将密钥对中的公钥发布到公钥服务器;

  ⒆.发布者将文件和用私钥生成的签名一起发布;

  ⒇.验证者下载发布者发布的文件和签名;

  ⒈.使用PGP的程序获取的发布者第二步发布的公钥;

  ⒉.使用公钥校验文件签名

  ⒊说明:签名算法中,密钥的用处分别是:公钥用于加密信息和验证,私钥用于解密和签名。私钥掌握在信息发布方,公钥可以任意分发。信息发布方用密钥进行对信息进行签名,接收方在获取公钥后,可以用公钥对发布方发布的信息+签名进行验证。如果验证失败则认为信息被篡改。在网络中,我们经常碰到的HTTPS协议,使用了同样的机制。

  ⒋使用:由于PGP是商业应用程序,在CentOS/Linux中,具有同类功能的是GPG(也就是:GnuPG,同样遵守OpenPGP数据加密标准( RFC ,没有安装可以用 yum install gnupg 安装,命令是: gpg

  ⒌# 由于过程相对复杂,并且在实际使用中,校验用的比较多,因此这里只介绍文件的校验过程。

  ⒍# 在获得文件和签名时,我们先用gpg校验签名,此时文件必须存在

  ⒎$ gpg --verify downloaded-file-sign.asc