校验 CentOS 7 镜像文件
验证镜像文件的原因
CentOS Vault(http://vault.centos.org/)页脚的镜像站链接上有段英文,指出页脚的镜像站链接不受 CentOS 团队的监控,除此之外还有一个原因就是镜像文件下载的过程中也有可能被篡改,通过文件校验可以保证你下载的镜像文件是完整、未被篡改的。
Tips:下面是我参考https://wiki.centos.org/TipsAndTricks/sha256sum总结出来的校验方法,因为处理镜像文件一般都是在windows环境下,所以这里我只介绍windows环境下校验镜像文件的方法。
文件校验(1)
首先需要对文件校验有一定认识,参考百度百科的部分介绍:
每个文件都可以用 MD5 验证程序算出一个固定的 MD5 码来。软件作者往往会事先计算出他的程序的 MD5 码并帖在网上。因此,在网上看到某个程序下载旁注明了 MD5 码时,可以把它记下来,下载了这个程序后用 MD5 验证程序计算你所下载的文件的 MD5 码,和你之前记下 MD5 码比较,就知道你下的是不是原版了,如果两者相同,那么你所下载的是原版。如果计算出来的和网上注明的不匹配,那么你下载的这个文件不完整,或是被别人动过手脚。
Tips:文件校验除了使用MD5,还使用sha1、sha256、sha512等算法。关于计算工具,这里我推荐MD5 & SHA Checksum Utility,下载链接:https://raylin.wordpress.com/downloads/md5-sha-1-checksum-utility/
校验CentOS 7.4 Everything镜像
MD5 & SHA Checksum Utility是一个可以直接运行的程序。
将CentOS 7.4镜像直接拖入这个工具,或者点击Browse选择。
大概几分钟之后就可以计算出CentOS 7.4镜像的MD5、SHA1、SHA256、SHA512值,左侧可以取消选中不需要计算的的值,减少计算时间。
打开CentOS Vault的CentOS 7.4目录,虽然CentOS Vault的ISO不能够下载(点击会跳转到镜像站),但是sha1.sum.txt、sha1sum.txt.asc等文本文件是可以下载的。
这里也不用下载下来,直接点击就可以在浏览器中打开你想要验证方式的txt文档。这里我选择的是sha256的校验方式,将sha256sum.txt中CentOS-7-x86_64-Everything-1708.iso前面那串无规律的数字(也就是Everything的sha256值)复制。
粘贴至红框处,点击Verify。
校验成功,如图所示
校验失败,如图所示
Tips:sha1的校验方式类似。
这里不使用美国镜像站中的sha256sum.txt文件文件,是因为美国镜像站不由CentOS团队维护,而CentOS Vault是由 CentOS 团队维护的,权威性更高。
文件校验(2)
百度百科文件校验 的后半部分:
不过这种方式(MD5)依旧有漏洞,第三方截获到文件之后,将修改后的文件同md5码一起放出来,接收方拿到文件后,依旧无法鉴别。正式基于此,MAC(消息校验码)诞生了,MAC是发送方和接收放约定的一个特定的数值串,当发送方发送文件时,将文件内容加上MAC一起进行HASH计算(MAC不随文件一同发送),此时第三方尽管截获到此文件,由于没有MAC,因此无法再计算出正确的HASH值。当接受拿到文件时,将文件同自身拥有的MAC一起进行校验对比HASH值,即可判定文件是否是发送方发过来的原文件。
Tips:也就是说单通过sha256校验CentOS镜像文件并不完全可靠,但是CentOS也没有使用MAC(消息验证码),而是采用了数字签名的方式,增强对CentOS镜像文件的校验。
一般情况下镜像文件通过sha256进行校验就可以了,了解数字签名完全是我出于对sha256sum.txt.asc这个文件的好奇,这部分涉及的东西要完整的写出来可能需要好几篇文章,加上镜像文件校验这部分实际很少有人去做,所以这里我就略讲,根据我文章中涉及的关键词去百度,很快就应该就能基本理解数字签名涉及的技术。推荐参考:https://blog.csdn.net/21aspnet/article/details/7249401#,http://www.ruanyifeng.com/blog/2013/07/gpg.html。
OpenPGP
OpenPGP是一个标准,实现这个标准的软件有很多个,Windows、Linux、MAC的客户端都有,建议以Linux的客户端“GPG”为关键词百度,会搜索出较多的内容,OpenPGP主要有加解密和数字签名两个功能。
加解密
OpenPGP软件(比如GPG)能够根据一些算法生成公钥和私钥(也叫密钥对),密钥对实际上就是两个文本文件,可以通过复制粘贴传播。公钥加密后的文件只能由对应的私钥解密,通过私钥可以推导出公钥,但是通过公钥无法推导出私钥。
eg:总司令把公钥复制给每一个将军,每个将军都安装上OpenPGP软件,将军将需要汇报的军情通过OpenPGP软件使用公钥进行加密,再通过邮件发送给总司令,总司令收到邮件后,将加密后的军情通过OpenPGP软件使用私钥解密后阅读。只有拥有私钥才能够解密文件,否则看到的就是一堆乱码,所以即使间谍有OpenGPG软件,截获了公钥和邮件,也无法看懂军情。如果总司令还需要和副司令分享军情,只需要把私钥复制给副司令一份,副司令也安装上OpenPGP软件,让将军发邮件的时候抄送给副司令,这样两位司令就都可以阅读军情了。
数字签名
数字签名是用私钥签名 ,公钥校验。私钥是作者独有的,作者用私钥计算出作品的一个唯一值(数字签名),附加到作品的旁边(或者是添加到作品末尾)提供下载,用户把作品、数字签名、公钥下载下来,再用公钥校验作品和数字签名。
同一件作品,不同私钥计算出的数字签名不同,某一个私钥的数字签名只能由对应的公钥才能成功校验,作品一旦被修改过,公钥必然无法校验成功。也就是说作品、数字签名、公钥三者任意一者不对应,用户都无法校验成功。单是使用公钥去校验作品和数字签名能否对应,也存在MD5那种校验方式的缺陷,有可能黑客修改作品后,用黑客的私钥签名,下载到的作品、数字签名、公钥都是黑客的,所以数字签名还引用了公钥验证。公钥认证又有两种方式,一种是作者去一些官方认证机构(CA),认证公钥,用户把下载到的公钥再去和CA服务器的公钥对比,另一种是通过公钥的一个唯一ID(指纹),去和作者确认,OpenPGP采用的是第二种公钥认证方式。
sha256sum.txt.asc数字签名校验
CentOS 并不是直接对镜像文件进行数字签名,而是对CentOS的sha*sum.txt进行数字签名,只要证明sha*sum.txt是完整的,再通过文件校验(1)的sha*值对比法就能证明镜像文件是完整的,这样做是因为直接对镜像文件签名、校验实在太慢了。
sha256sum.txt下面有一个sha256sum.txt.asc,它也是一个文本文档,也可以点击直接在浏览器中打开,它就是用来校验sha256sum.txt的完整性。
1.下载sha256sum.txt.asc
Tips:直接点击sha256sum.txt.asc会在浏览器中打开该文件,需要右键链接另存为。
2.安装OpenPGP的windows客户端——gpg4win
有兴趣了解到这一步的人,动手能力应该都不错了,就不介绍怎么下载安装gpp4win了。
3.下载证书(也就是公钥)
前往CentOS官网下载 CentOS 7 证书:https://www.centos.org/keys/,也是需要右键“链接另存为”才能够下载。
4.导入证书(公钥)
安装gpg4win后,桌面会有这个图标,打开即可。
这里一定要选择任意文件,才可以看到刚才在CentOS下载的证书(公钥)。
4.核对证书
百度一个在线文本对比工具
将导入证书的指纹与 CentOS 官网提供的证书指纹,导入文本对比工具对比,如果是一致的,就说明你导入本地的证书(公钥)是CentOS官方的证书。
5.开始校验
选择下载下来的sha256sum.txt.asc
这样就代表,校验成功。
将sha256sum.txt.asc用记事本打开
设置自动换行,方便查看。
这里我添加了一个大写字母A,同样的方法再次校验
这样就代表校验失败,说明文件被修改过。
sha256sum.txt.asc校验镜像文件的逻辑
对比sha256sum.txt.asc和sha256sum.txt,sha256sum.txt.asc除了一些分隔符,主要就是多了一段无规律的字符串,这段无规律的字符串就是数字签名。这里CentOS采用的是将数字签名结合在原文件下面的方式,还有一种方式是原文件和数字签名分开提供下载。通过成功校验sha256sum.txt.asc,说明下载到本地的sha256sum.txt.asc中红圈部分的内容是未被篡改的,之后再结合用文件校验(1)的方法,采用sha256值校验镜像文件,这时候sha256值校验就应该用下载到本地的sha256sum.txt.asc文件的sha256值,因为通过校验sha256sum.txt.asc只是说明了本地这个sha256sum.txt.asc红圈部分的内容是未被修改的,而不能说明网页中打开的sha256sum.txt.asc是未被篡改的,存在浏览器中查看的sha256sum.txt.asc是被黑客篡改过的可能。
对于数字签名和原文件分开的方式,就需要将两者都下载下来,一起导入校验程序。
指纹是证书(公钥)的唯一ID,通过比对指纹,可以确定下载的证书是正确的。如果没有比对,那就和文件校验(1)的缺陷一样,有可能公钥、原文件、数字签名三者都被篡改了。CentOS采用的是在官网公布证书的指纹,除非黑客把官网黑了,放上自己证书的指纹,并且把公钥、sha256sum.txt.asc、镜像文件的下载链接也都黑了,不然就一定能够确定下载的镜像文件的真假。
校验 CentOS 7 镜像文件的更多相关文章
- CentOS 7 镜像文件各个版本区别
CentOS ISO 镜像文件的功能 引导安装 CentOS ISO 镜像文件包含有安装程序,官方称其为 Anaconda,用来引导安装 CentOS 提供 CentOS 的安装文件 镜像文件不一定包 ...
- 下载 CentOS 7 镜像文件
CentOS 7 镜像文件的下载地址 CentOS 官网:https://www.centos.org/ 点击“Get CentOS Now” 点击想要下载的ISO镜像,(目前仅有“DVD ISO”和 ...
- centos ios镜像文件 安装详细
1.挂载iOS镜像(先打开VM 选择虚拟机---->设置-->CD ---->使用ISO镜像文件 用浏览打开) 2.开始界面选择 3出现下面的界面 这是提示你是否扫描文件的完整性 我 ...
- centos 6.6 ios镜像文件 下载 官网和阿里云两种方式教你下载
1百度一下:centos 打开打开官网.选择这一项 CET CENTOS 2选择 DVD ISO,双击下载 直接选择左键点击下载 这里需要迅雷 方法 二 打开 https://mirrors.aliy ...
- 从零开始构建一个centos+jdk7+tomcat7的docker镜像文件
从零开始构建一个centos+jdk7+tomcat7的镜像文件 centos7系统下docker运行环境的搭建 准备centos基础镜像 docker pull centos 或者直接下载我准备好的 ...
- 使用Dockerfile文件制作centos6.8基础镜像,基于centos基础镜像的ssh远程登录镜像,jdk1.8镜像,tomcat镜像,elasticsearch镜像等等
一.首先制作一个centos6.8的裸机镜像 创建一个干净的目录: [root@docker centos6.]# ls c68-docker.tar.xz Dockerfile Dockerfile ...
- 初涉定制linux系统之——自动化安装Centos系统镜像制作
最近碰到个需求:要在内网环境安装centos6.5系统并搭建服务,但由于自动部署脚本里安装依赖包使用的是yum安装,而服务器无法连接外网,实施人员也不会本地yum源搭建O__O "….. 本 ...
- 烂泥:CentOS6.5光盘以及ISO镜像文件的使用
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 学习CentOS有一段时间了,在平时使用过程中.系统镜像以及光盘使用的比较多,这篇文章就从实用的角度介绍相关有关光盘与镜像文件的使用. 因为物理机相关的 ...
- 攻城狮在路上(叁)Linux(二十四)--- linux设置开机挂载及镜像文件挂载
虽然可以手动进行文件系统的挂载,但是每次都手动挂载就会很麻烦,开机挂载的目的就是实现文件系统的自动挂载. 一.开机挂载:/etc/fstab及/etc/mtab 主要是通过修改/etc/fstab文件 ...
随机推荐
- 使用MySQLMTOP监控MySQL性能
一.服务器角色 服务器角色 172.18.35.29 10.160.22.14 (MySQL Master) 10.160.22.47 (MySQL Slave) 监控点 YES NO NO 被监控点 ...
- Qt的安装和使用中的常见问题(详细版)
对于太长不看的朋友,可参考Qt的安装和使用中的常见问题(简略版). 目录 1.引入 2.Qt简介 3.Qt版本 3.1 查看安装的Qt版本 3.2 查看当前项目使用的Qt版本 3.3 查看当前项目使用 ...
- Java程序设计19——类的加载和反射-Part-A
1 本文概要 本章介绍Java类的加载.连接和初始化的深入知识,并重点介绍Java反射相关的内容.本章知识偏底层点,这些运行原理有助于我们更好的把我java程序的运行.而且Java类加载器除了根加载器 ...
- Introduction to Razor Pages in ASP.NET Core
https://docs.microsoft.com/en-us/aspnet/core/mvc/razor-pages/ 从ASP.NET Core 2.0.0版本之后,添加了新的特性Razor p ...
- 前端福利之个性化设置table的td宽度(总结)
很多时候,我们在用到table时,都希望随意设置 每个单元格的宽度,而不希望单元格被内容撑开table的样式. 1.首先,设置table的宽度 width=“1000” 或者 width=“100%” ...
- Image 和byte[]之间的转换
1.Image 转 byte[] public byte[] GetByteByImage(Image image) { byte[] bt = null; try { if (!image.Equa ...
- ZOJ3767 Elevator 2017-04-13 23:32 37人阅读 评论(0) 收藏
Elevator Time Limit: 2 Seconds Memory Limit: 65536 KB How time flies! The graduation of this ye ...
- View Pi's Status on WebBrowser
1. install php and cgi support sudo apt-get install php5-common sudo apt-get install php5-cgi sudo a ...
- XEvent--Demo--使用XEvent来捕获在数据库DB1上发生的锁请求和锁释放
--==============================================================--使用XEvent来捕获在数据库DB1上发生的锁请求和锁释放--=== ...
- 一.Jenkins的windows安装
1,打开jinkens官网: https://jenkins.io/ ,点击 Download 进入下载界面 2,选择 Long-term Support 版本(推荐选择长期支持版本)->Win ...