GnuPG

OpenPGP與S/MIME標準的完整實作

GNU Privacy GuardGnuPGGPG)是一個密碼學軟件,用於加密簽章通訊內容及管理非對稱密碼學的金鑰。GnuPG 是自由軟件,遵循 IETF 訂定的 OpenPGP 技術標準設計,並與 PGP 保持相容。[5]

GNU Privacy Guard
The GNU Privacy Guard logo
原作者維爾納·科赫
開發者GNU計劃
首次釋出1999年9月7日,​25年前​(1999-09-07[1]
目前版本
  • 2.2.43(2024年4月16日;長期支援)[2]
  • 2.5.1(2024年9月12日;預發佈版本)[3]
  • 2.4.6(2024年10月29日;穩定版本)[4]
編輯維基數據連結
原始碼庫 編輯維基數據連結
程式語言C語言
作業系統Microsoft WindowsmacOSRISC OSAndroidLinux
前任PGP
標準OpenPGP
類型密碼學軟件
特許條款 編輯維基數據連結
網站gnupg.org 編輯維基數據連結

GnuPG 是自由軟件基金會GNU 計劃的一部份,曾受德國政府資助。[6]

歷史

GnuPG 的早期版本由維爾納·科赫開發,經過近兩年迭代後於1999年9月7日正式釋出1.0.0版[1]。軟件實現遵循 OpenPGP 標準,相容菲爾·齊默爾曼開發的 PGP。2000年,德國聯邦經濟及科技部資助了31.8萬馬克,用於移植 GnuPG 到 Microsoft Windows[7]

德國政府於2005年資助開發 S/MIME。GnuPG 2.0 於2006年11月13日發佈加入了,S/MIME。因為 GnuPG 2.0 的新的軟件架構不支援某些用途,所以 1.x 與 2.0 是兩個分支版本。[8]此外 GnuPG 1.x 使用了一個整合的加密庫,而 GnuPG 2.x 則用 Libgcrypt 取代了加密庫。

GnuPG 還支援對稱加密演算法。預設情況下,GnuPG 從 2.1 版開始使用 AES 對稱演算法[9],早期版本中使用了 CAST5。GnuPG 不使用專利或其他受限制的軟件或演算法。相反,GnuPG 使用了多種其他非專利演算法。[10]

很長一段時間,它都不支援 PGP 中使用的 IDEA 加密演算法。事實上,可以通過下載其外掛程式在 GnuPG 中使用 IDEA,但是,在 IDEA 獲得專利的國家中,某些用途可能需要獲得特許。從 1.4.13 版和 2.0.20 版開始,GnuPG 支援 IDEA,因為 IDEA 的最後一個專利於 2012 年到期。對 IDEA 的支援旨在「擺脫所有試圖解密舊數據或將金鑰從 PGP 遷移到 GnuPG 的人的問題」[11],因此不建議常規使用。

GnuPG 2.x 的最近版本(「現代」和現已棄用的「穩定」版本)公開了 Libgcrypt(其使用的密碼庫)提供的大多數加密函數和演算法,包括在「現代」版本(即自 GnuPG 2.1 以來)中對橢圓曲線加密 (ECDH、ECDSA 和 EdDSA) [12]的支援。

使用

雖然基本的 GnuPG 程式有一個命令列介面,仍然存在許多提供圖形化使用者介面前端。例如 GnuPG 加密被整合進了 Linux 裏流行的桌面環境 KDEGNOME 裏的圖形化電子郵件用戶端KMailNovell Evolution。也有 GnuPG 的圖形化前端(GNOME 裏的 Seahorse英語Seahorse (software)KDE 裏的 KGpgKleopatra)。在 Mac OS X 上,Mac GPG 專案提供 Aqua 作為作業系統整合的加密前端金鑰管理器和 GnuPG 安裝一樣通過 Installer packages 進行安裝。[13]此外,GPGMail 專案[14]可以使 Apple Mail 使用 GnuPG 加密。即時通訊(IM)程式,例如,當 GnuPG 已經安裝並組態好時,PsiFire 可以自動安全的傳遞訊息。像 Horde英語Horde (Software) 這類基於互聯網的軟件也可以使用 GnuPG。跨平台外掛程式 EnigmailMozilla ThunderbirdSeaMonkey 提供了 GnuPG 支援。類似的,Enigform英語EnigformFireGPGMozilla Firefox 提供了 GnuPG 支援。Mailvelope 為在瀏覽器中使用 GnuPG 操作電子郵件提供了支援。

在2005年,G10 Code和 Intevation 發行了 Gpg4win,一個包含 GnuPG for Windows, WinPT, Gnu Privacy Assistant 和為 Windows ExplorerOutlook 提供的 GnuPG 外掛程式的 mail 軟件套裝。這些工具被包裝進了一個標準的微軟安裝套件裏,使 GnuPG 可以在 Windows 系統上安裝和使用。

漏洞

2003 年,由於對 GnuPG 的一次更新中出現了錯誤,導致了一個安全漏洞[15]。不過它只影響了一種對訊息進行數碼簽章的辦法且只影響 GnuPG(1.0.2 到 1.2.3)的一些釋出版本。受影響的金鑰少於1000個[16],絕大多數人也不使用這種方法。因此造成的損害(如果有的話,因為尚未公開報告過)似乎很小。在此發現之後釋出的 GnuPG 版本(1.2.4 及更高版本)中已經刪除了對這種方法的支援。

2006 年初又發現了兩個漏洞;第一個是對 GnuPG 進行指令碼化以進行簽章驗證可能會導致誤報[17], 第二個是非 MIME 訊息容易受到數據注入[18],這些數據雖然沒有被數碼簽章覆蓋,但會被報告為簽章訊息的一部分。

2021 年 1 月,Libgcrypt 1.9.0 版釋出,其中包含一個簡單的嚴重漏洞。10 天后,在 Libgcrypt 1.9.1 中釋出了修復程式。

過程

GnuPG 使用用戶自行生成的非對稱金鑰對來加密資訊,由此產生的公鑰可以同其他用戶以各種方式交換,如金鑰伺服器。他們必須小心交換金鑰,以防止得到偽造的金鑰。GnuPG 還可以向資訊添加一個數碼簽名,這樣,收件人可以驗證資訊完整性和發件人。

GnuPG 支援的各種加密演算法:

應用程式支援

支援 GPG 的應用程式、前端及瀏覽器擴充套件:

參見

參考資料

  1. ^ 1.0 1.1 Release Notes. GnuPG. [2020-02-05]. (原始內容存檔於2014-02-09). 
  2. ^ Noteworthy changes in version 2.2.43. 2024年4月16日 [2024年5月27日]. 
  3. ^ 維爾納·科赫. GnuPG 2.5.1 released. 2024年9月12日 [2024年9月24日]. 
  4. ^ 維爾納·科赫. [Announce] GnuPG 2.4.6 released. 2024年10月29日 [2024年10月30日]. 
  5. ^ Project, The People of the GnuPG. GnuPG Frequently Asked Questions. www.gnupg.org. 2018-02-14 [2019-05-04]. (原始內容存檔於2015-04-29) (英語). 
  6. ^ online, heise. Bundesregierung fördert Open Source. heise online. [2019-05-04]. (原始內容存檔於2017-12-22) (德語). 
  7. ^ Germany Awards Grant for Encryption. archive.nytimes.com. [2019-05-04]. (原始內容存檔於2018-04-05). 
  8. ^ GnuPG-2.0 released. [2009-05-02]. (原始內容存檔於2014-02-14). 
  9. ^ [Announce] The maybe final Beta for GnuPG 2.1. lists.gnupg.org. [2024-05-02]. (原始內容存檔於2019-05-02). 
  10. ^ Project, The People of the GnuPG. GnuPG - Related Software. www.gnupg.org. 2017-03-23 [2024-05-02]. (原始內容存檔於2009-10-04) (英語). 
  11. ^ Koch, Werner. GnuPG 1.4.13 released. Fri Dec 21 12:18:11 CET 2012 [2024-05-02]. (原始內容存檔於2018-01-11). 
  12. ^ [Announce] GnuPG 2.1.0 "modern" released. lists.gnupg.org. [2024-05-02]. (原始內容存檔於2018-02-19). 
  13. ^ Mac GNU Privacy Guard. SourceForge. [2008-04-29]. (原始內容存檔於2017-10-17). 
  14. ^ GPGMail project. GitHub. [2010-07-28]. (原始內容存檔於2020-10-30). 
  15. ^ Phong NGUYEN -- Publications. www.di.ens.fr. [2024-05-02]. (原始內容存檔於2017-12-04). 
  16. ^ [Announce] GnuPG's ElGamal signing keys compromised. lists.gnupg.org. [2024-05-02]. (原始內容存檔於2018-02-19). 
  17. ^ [Announce] False positive signature verification in GnuPG. lists.gnupg.org. [2024-05-02]. (原始內容存檔於2018-02-19). 
  18. ^ [Announce] GnuPG does not detect injection of unsigned data. lists.gnupg.org. [2024-05-02]. (原始內容存檔於2018-02-19). 
  19. ^ getfiregpg.org. [2015-08-10]. (原始內容存檔於2020-05-10). 

外部連結

官方網站  (英文)