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.4.7(2024年11月25日;穩定版本)[3]
  • 2.5.2(2024年12月6日;預發佈版本)[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.4.7 and Gpg4win 4.4.0 released. 2024年11月28日 [2024年11月28日] (英語). 
  4. ^ 維爾納·科赫. GnuPG 2.5.2 released. 2024年12月6日 [2024年12月10日]. 
  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). 

外部連結

官方网站  (英文)