使用 PGP 保護程式碼完整性(三):生成 PGP 子金鑰

choubou發表於2021-09-09

在第三篇文章中,我們將解釋如何生成用於日常工作的 PGP 子金鑰。

圖片描述

在本系列教程中,我們提供了使用 PGP 的實用指南。在此之前,我們介紹了,並介紹瞭如何。在第三篇文章中,我們將解釋如何生成用於日常工作的 PGP 子金鑰。

  1. 生成 2048 位加密子金鑰(必要)   2. 生成 2048 位簽名子金鑰(必要)   3. 生成一個 2048 位驗證子金鑰(推薦)   4. 將你的公鑰上傳到 PGP 金鑰伺服器(必要)   5. 設定一個重新整理的定時任務(必要)

現在我們已經建立了主金鑰,讓我們建立用於日常工作的金鑰。我們建立 2048 位的金鑰是因為很多專用硬體(我們稍後會討論這個)不能處理更長的金鑰,但同樣也是出於實用的原因。如果我們發現自己處於一個 2048 位 RSA 金鑰也不夠好的世界,那將是由於計算或數學有了基本突破,因此更長的 4096 位金鑰不會產生太大的差別。

要建立子金鑰,請執行:

$ gpg --quick-add-key [fpr] rsa2048 encr$ gpg --quick-add-key [fpr] rsa2048 sign

用你金鑰的完整指紋替換 [fpr]

你也可以建立驗證金鑰,這能讓你將你的 PGP 金鑰用於 ssh:

$ gpg --quick-add-key [fpr] rsa2048 auth

你可以使用 gpg --list-key [fpr] 來檢視你的金鑰資訊:

pub rsa4096 2017-12-06 [C] [expires: 2019-12-06]
 111122223333444455556666AAAABBBBCCCCDDDD
uid [ultimate] Alice Engineer 

你的金鑰建立已完成,因此現在需要你將其上傳到一個公共金鑰伺服器,使其他人能更容易找到金鑰。 (如果你不打算實際使用你建立的金鑰,請跳過這一步,因為這隻會在金鑰伺服器上留下垃圾資料。)

$ gpg --send-key [fpr]

如果此命令不成功,你可以嘗試指定一臺金鑰伺服器以及埠,這很有可能成功:

$ gpg --keyserver hkp://pgp.mit.edu:80 --send-key [fpr]

大多數金鑰伺服器彼此進行通訊,因此你的金鑰資訊最終將與所有其他金鑰資訊同步。

關於隱私的注意事項:金鑰伺服器是完全公開的,因此在設計上會洩露有關你的潛在敏感資訊,例如你的全名、暱稱以及個人或工作郵箱地址。如果你簽名了其他人的鑰匙或某人簽名了你的鑰匙,那麼金鑰伺服器還會成為你的社交網路的洩密者。一旦這些個人資訊傳送給金鑰伺服器,就不可能被編輯或刪除。即使你撤銷簽名或身份,它也不會將你的金鑰記錄刪除,它只會將其標記為已撤消 —— 這甚至會顯得更顯眼。

也就是說,如果你參與公共專案的軟體開發,以上所有資訊都是公開記錄,因此透過金鑰伺服器另外讓這些資訊可見,不會導致隱私的淨損失。

如果你在開發中使用 GitHub(誰不是呢?),則應按照他們提供的說明上傳金鑰:

要生成適合貼上的公鑰輸出,只需執行:

$ gpg --export --armor [fpr]

你需要定期重新整理你的鑰匙環,以獲取其他人公鑰的最新更改。你可以設定一個定時任務來做到這一點:

$ crontab -e

在新行中新增以下內容:

@daily /usr/bin/gpg2 --refresh >/dev/null 2>&1

注意:檢查你的 gpggpg2 命令的完整路徑,如果你的 gpg 是舊式的 GnuPG v.1,請使用 gpg2。

透過 Linux 基金會和 edX 的免費“” 課程瞭解關於 Linux 的更多資訊。


via: https://www.linux.com/blog/learn/pgp/2018/2/protecting-code-integrity-pgp-part-3-generating-pgp-subkeys

作者: 譯者: 校對:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4548/viewspace-2808857/,如需轉載,請註明出處,否則將追究法律責任。

相關文章