如何在Linux上驗證已下載軟件的PGP簽名

PGP代表“相當不錯的隱私”,是一種公共密鑰加密軟件。 PGP可用於加密和簽名數據通信。 在本教程中,我們將研究 如何驗證已下載軟件的PGP簽名

Linux用戶可以從發行版的存儲庫中安全地安裝軟件。 但是有時您還需要從網站上下載和安裝軟件。 您如何確定下載的軟件沒有被篡改?

一些軟件作者使用PGP程序(例如GPG)對他們的軟件簽名,GPG是openPGP標準的免費軟件實現。 在這種情況下,您可以使用GPG驗證軟件的完整性。

過程相對簡單:

  1. 您下載軟件作者的公鑰。
  2. 檢查公共密鑰的指紋,以確保它是正確的密鑰。
  3. 將正確的公鑰導入GPG公鑰環。
  4. 下載軟件的簽名文件。
  5. 使用公鑰驗證PGP簽名。 如果簽名正確,則表示該軟件未受到篡改。

我們將以VeraCrypt為例,向您展示如何驗證已下載軟件的PGP簽名。

示例:驗證VeraCrypt的PGP簽名

儘管VeraCrypt是開源軟件,但未包含在Ubuntu或其他Linux發行版的存儲庫中。 我們可以從官方網站下載VeraCrypt Linux安裝程序。

或者,您可以使用以下命令在終端中下載VeraCrypt安裝程序。

wget https://launchpadlibrarian.net/289850375/veracrypt-1.19-setup.tar.bz2

在VeraCrypt下載頁面上,您還可以找到PGP公鑰和PGP簽名下載鏈接。 下載這兩個文件。 或者,您可以使用以下命令在終端中下載它們。

PGP公鑰

wget https://www.idrix.fr/VeraCrypt/VeraCrypt_PGP_public_key.asc

PGP簽名文件

wget https://launchpad.net/veracrypt/trunk/1.19/+download/veracrypt-1.19-setup.tar.bz2.sig

在使用公共密鑰進行任何操作之前,必須始終檢查密鑰的指紋以查看其是否為正確的密鑰。 使用以下命令顯示鑰匙的指紋。

gpg --with-fingerprint VeraCrypt_PGP_public_key.asc

輸出的第二行是按鍵的指紋。

pgp公鑰指紋

將其與在VeraCrypt網站上發布的指紋進行比較。

veracrypt公鑰指紋

如您所見,這兩個指紋是相同的,這意味着公鑰是正確的。 因此,您可以使用以下命令將公共密鑰導入您的公共密鑰環:

gpg --import VeraCrypt_PGP_public_key.asc

gpg導入公鑰

現在,使用以下命令驗證簽名。 您需要指定簽名文件和軟件安裝程序,其名稱通常相同,只是文件擴展名不同。 這是一個分離的簽名,這意味着簽名和軟件是相互獨立的。

gpg --verify veracrypt-1.19-setup.tar.bz2.sig veracrypt-1.19-setup.tar.bz2

輸出應顯示“ Good Signature”。

驗證pgp簽名

簽名是一個哈希值,使用軟件作者的私鑰加密。 GPG使用公鑰解密哈希值,然後計算VeraCrypt安裝程序的哈希值並進行比較。 如果這兩個哈希值匹配,則簽名是好的,並且該軟件未被篡改。

如果GPG告訴您這是一個錯誤的簽名,則說明軟件安裝程序已被篡改或損壞。

從可信來源導入公鑰

請注意,如果軟件作者在網站上告訴您他/她的公共密鑰ID,則可以使用以下命令導入公共密鑰:

gpg --recv-keys <key-ID>

然後通過以下方式顯示指紋:

gpg --fingerprint <key-ID>

並將輸出的指紋與網站上發布的指紋進行比較。 這是更安全的,因為公鑰是從公鑰服務器導入的,該服務器默認情況下設置為 hkp://keys.gnupg.net~/.gnupg/gpg.conf 文件。 由於所有主要密鑰服務器都相互通信並同步密鑰,因此您無需更改默認值。

而已!

我希望本教程可以幫助您驗證軟件下載的PGP簽名。 與往常一樣,如果您發現此帖子有用,請訂閱我們的免費新聞通訊,或在Google +,Twitter或我們的Facebook頁面上關注我們。

Sidebar