GnuPG
此條目可參照英語維基百科相應條目來擴充。 |
原作者 | 維爾納·科赫 |
---|---|
開發者 | GNU計劃 |
首次釋出 | 1999年9月7日[1] |
目前版本 | |
原始碼庫 | |
程式語言 | C語言 |
作業系統 | Microsoft Windows、 |
前任 | PGP |
標準 | OpenPGP |
類型 | 密碼學軟件 |
特許條款 | |
網站 | gnupg |
GNU Privacy Guard(GnuPG 或 GPG)是一個密碼學軟件,用於加密、簽章通訊內容及管理非對稱密碼學的金鑰。GnuPG 是自由軟件,遵循 IETF 訂定的 OpenPGP 技術標準設計,並與 PGP 保持相容。[5]
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 裏流行的桌面環境 KDE 和 GNOME 裏的圖形化電子郵件用戶端:KMail 和 Novell Evolution。也有 GnuPG 的圖形化前端(GNOME 裏的 Seahorse,KDE 裏的 KGpg 和 Kleopatra)。在 Mac OS X 上,Mac GPG 專案提供 Aqua 作為作業系統整合的加密前端和金鑰管理器和 GnuPG 安裝一樣通過 Installer packages 進行安裝。[13]此外,GPGMail 專案[14]可以使 Apple Mail 使用 GnuPG 加密。即時通訊(IM)程式,例如,當 GnuPG 已經安裝並組態好時,Psi 和 Fire 可以自動安全的傳遞訊息。像 Horde 這類基於互聯網的軟件也可以使用 GnuPG。跨平台外掛程式 Enigmail 為 Mozilla Thunderbird 和 SeaMonkey 提供了 GnuPG 支援。類似的,Enigform和 FireGPG 為 Mozilla Firefox 提供了 GnuPG 支援。Mailvelope 為在瀏覽器中使用 GnuPG 操作電子郵件提供了支援。
在2005年,G10 Code和 Intevation 發行了 Gpg4win,一個包含 GnuPG for Windows, WinPT, Gnu Privacy Assistant 和為 Windows Explorer 和 Outlook 提供的 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 支援的各種加密演算法:
- 對稱加密:CAST5、Camellia、Triple DES、AES、Blowfish、Twofish、ChaCha20、IDEA (從 1.4.13 和 2.0.20 開始被添加)
- 非對稱加密:ElGamal、RSA、DSA、ECDSA、EdDSA
- 密碼雜湊函數:RIPEMD-160、MD5、SHA-1、SHA-2、Tiger
- 數碼簽章:DSA、RSA、ECDSA、EdDSA
應用程式支援
支援 GPG 的應用程式、前端及瀏覽器擴充套件:
參見
參考資料
- ^ 1.0 1.1 Release Notes. GnuPG. [2020-02-05]. (原始內容存檔於2014-02-09).
- ^ Noteworthy changes in version 2.2.43. 2024年4月16日 [2024年5月27日].
- ^ 維爾納·科赫. GnuPG 2.5.1 released. 2024年9月12日 [2024年9月24日].
- ^ 維爾納·科赫. [Announce] GnuPG 2.4.6 released. 2024年10月29日 [2024年10月30日].
- ^ Project, The People of the GnuPG. GnuPG Frequently Asked Questions. www.gnupg.org. 2018-02-14 [2019-05-04]. (原始內容存檔於2015-04-29) (英語).
- ^ online, heise. Bundesregierung fördert Open Source. heise online. [2019-05-04]. (原始內容存檔於2017-12-22) (德語).
- ^ Germany Awards Grant for Encryption. archive.nytimes.com. [2019-05-04]. (原始內容存檔於2018-04-05).
- ^ GnuPG-2.0 released. [2009-05-02]. (原始內容存檔於2014-02-14).
- ^ [Announce] The maybe final Beta for GnuPG 2.1. lists.gnupg.org. [2024-05-02]. (原始內容存檔於2019-05-02).
- ^ Project, The People of the GnuPG. GnuPG - Related Software. www.gnupg.org. 2017-03-23 [2024-05-02]. (原始內容存檔於2009-10-04) (英語).
- ^ Koch, Werner. GnuPG 1.4.13 released. Fri Dec 21 12:18:11 CET 2012 [2024-05-02]. (原始內容存檔於2018-01-11).
- ^ [Announce] GnuPG 2.1.0 "modern" released. lists.gnupg.org. [2024-05-02]. (原始內容存檔於2018-02-19).
- ^ Mac GNU Privacy Guard. SourceForge. [2008-04-29]. (原始內容存檔於2017-10-17).
- ^ GPGMail project. GitHub. [2010-07-28]. (原始內容存檔於2020-10-30).
- ^ Phong NGUYEN -- Publications. www.di.ens.fr. [2024-05-02]. (原始內容存檔於2017-12-04).
- ^ [Announce] GnuPG's ElGamal signing keys compromised. lists.gnupg.org. [2024-05-02]. (原始內容存檔於2018-02-19).
- ^ [Announce] False positive signature verification in GnuPG. lists.gnupg.org. [2024-05-02]. (原始內容存檔於2018-02-19).
- ^ [Announce] GnuPG does not detect injection of unsigned data. lists.gnupg.org. [2024-05-02]. (原始內容存檔於2018-02-19).
- ^ getfiregpg.org. [2015-08-10]. (原始內容存檔於2020-05-10).
外部連結
官方網站 (英文)