為什麼有時需要手動導入金鑰?

為什麼有時需要手動導入金鑰?

AUR 上有許多軟體包,當您嘗試安裝它們時,會導致以下錯誤:==> ERROR: One or more PGP signatures could not be verified!

透過使用類似 的內容導入金鑰可以解決此問題gpg --recv-keys 123456789ABCDEF。 AUR 討論通常會提供關鍵。

我對此有幾個問題:

  1. 這些鍵到底有什麼作用? GPG 正在驗證什麼?

  2. 為什麼需要手動導入金鑰?為什麼不能自動化?

  3. 如果盲目地從 AUR 評論線程導入密鑰是不好的,我應該採取什麼步驟來「驗證」密鑰?

  4. 如果沒有人願意在評論中發布密鑰,並且我沒有時間發布評論並希望維護者回复,我應該在哪裡找到密鑰?

在網上搜索,我發現了一個參考資料眾所周知的部落格文章。很遺憾,我仔細閱讀了幾遍之後,仍然不明白以上幾點。

答案1

這些鍵到底有什麼作用? GPG 正在驗證什麼?

這些金鑰用於驗證您正在下載的軟體是否是軟體包作者的意圖,而不是來自可能已被攻擊者成功滲透的儲存庫伺服器的特洛伊木馬惡意軟體。或者,攻擊者可能可以將您的下載請求重定向到他偽裝的惡意軟體儲存庫,而不是真正的 AUR 儲存庫。 GPG 驗證使得攻擊者難以成功地將軟體儲存庫用作惡意軟體分發管道。

為什麼需要手動導入金鑰?為什麼不能自動化?

您應該有意識地選擇是否信任特定的軟體作者/打包者,以及您是否有足夠的信心來確保您收到的金鑰是真實的而不是來自冒名頂替者。

必要的信任和置信水平取決於您正在做的事情:用於娛樂的私人家庭系統、用於處理其他人的健康和/或企業信用卡資訊的伺服器以及用於國家導彈防禦系統的輔助支援伺服器應該每個都有不同的要求。

如果盲目地從 AUR 評論線程導入密鑰是不好的,我應該採取什麼步驟來「驗證」密鑰?

如果該金鑰是由您已經擁有金鑰的其他人簽署的,並且您至少在簽署 GPG 金鑰時相信這些人的判斷,那麼您可以將此作為該金鑰可能是真實的證據。否則,您可以嘗試從多個不同來源取得金鑰並比較結果。如果它對您來說足夠重要,您甚至可以致電或與開發人員會面,以獲得更強有力的確認,證明您擁有正確的密鑰。

如果沒有人願意在評論中發布密鑰,並且我沒有時間發布評論並希望維護者回复,我應該在哪裡找到密鑰?

旨在廣泛使用的 GPG 公鑰通常發佈在 SKS 金鑰伺服器上:如果您沒有正確的金鑰,軟體包工具應該能夠顯示所需金鑰的 keyID,您可以使用它來搜尋金鑰伺服器上的密鑰。

有關 SKS 金鑰伺服器網路的更多信息,請參閱此處:https://sks-keyservers.net/

您也可以透過 google 搜尋 keyID。

答案2

TL;DR - 新的、增強的和自動化的“根據網站上發布的列表檢查下載的 md5sum”

簽名是對誰簽署了包的數位驗證,以確保包自創建以來沒有被修改過。通常由包維護者或發布經理或發行版核心專案維護組中的「權威」人員簽署。本質上,它是對您要安裝的內容進行增強和自動化的完整性檢查 - 新的“我們已經發布了文件列表的 md5sum 哈希值,您應該將您下載的內容與這些內容進行比較”。

它的工作方式是公鑰/私鑰 - 我創建一個帶有密碼的私鑰(強密碼)並用它產生一個公鑰。我可以給出公鑰。我產生包,對其進行簽名,當您安裝它時,您會被告知匹配 ABC321FF 的公鑰或驗證簽名所需的任何內容。匯入金鑰後,您端的軟體可以驗證標識雜湊是否相同,並且該雜湊是由我的私鑰簽署的。

將軟體從儲存庫添加到系統時的安全性問題是「這個軟體背後的人是誰 - 哦,還有密鑰」。如果它是某個發行版的金鑰(某些發行版有自己的金鑰,或已撤銷並建立新金鑰),那麼沒關係,無論如何,您都在運行其發行版中的軟體。請注意,當您進入第 3 方儲存庫(例如 Ubuntu 和專案 PPA)時,您最終將為每個儲存庫匯入一個金鑰,這可能是您關心的問題。

您應該注意的是,該金鑰現在僅適用於該金鑰已簽署的任何其他內容。根據您的偏執程度,您可能需要根據需要添加密鑰,並在安裝軟體包後將其從可信任密鑰清單中刪除。當然,隨著頻繁的更新,您會建立更多的工作和更新步驟。

如果您對那個密鑰簽署一些令人討厭的東西感到偏執,您可能不應該願意嘗試從該存儲庫安裝任何東西。

相關內容