1. 程式人生 > >校驗 CentOS 7 鏡像文件

校驗 CentOS 7 鏡像文件

並不是 下載證書 check 對比 md5 href 如果 數值 相同

驗證鏡像文件的原因

技術分享圖片

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是一個可以直接運行的程序。

技術分享圖片

將需要校驗的鏡像文件直接拖入這個工具,或者點擊Browse選擇。

技術分享圖片

大概幾分鐘之後就可以計算出鏡像文件的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鏡像站是由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是完整的,再通過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校驗的邏輯

1.為什麽只需要sha256sum.txt.asc,而不需要sha256sum.txt?

技術分享圖片

對比sha256sum.txt.asc和sha256sum.txt,sha256sum.txt.asc除了一些分隔符,主要就是多了一段無規律的字符串,這段無規律的字符串就是數字簽名。這裏CentOS采用的是將數字簽名結合在原文件下面的方式,還有一種方式是原文件和數字簽名分開提供下載。通過校驗sha256sum.txt.asc,說明sha256sum.txt.asc紅圈部分的內容是未被篡改的,之後再結合用文件校驗(1)的方法,進行sha256校驗鏡像文件,這時候就應該用sha256sum.txt.asc中的sha256值,因為通過校驗sha256sum.txt.asc說明了紅圈部分的內容是未被修改的。

所以這裏也就不需要原文件(sha256sum.txt),對於數字簽名和原文件分開的方式,就需要將兩者都下載下來,一起導入校驗程序。

2.為什麽要比對指紋?

指紋是證書(公鑰)的唯一ID,通過比對指紋,可以確定下載的證書是正確的。如果沒有比對,那就和文件校驗(1)的缺陷一樣,有可能公鑰、原文件、數字簽名三者都被篡改了。

校驗 CentOS 7 鏡像文件