跳转到内容

GnuPG

本页使用了标题或全文手工转换
维基百科,自由的百科全书
GNU Privacy Guard
The GNU Privacy Guard logo
原作者維爾納·科赫
開發者GNU計劃
首次发布1999年9月7日,​27年前​(1999-09-07)[1]
当前版本
  • 2.5.24(2026年9月23日;缺陷修复版本)[2]
編輯維基數據鏈接
源代码库 編輯維基數據鏈接
编程语言C語言
操作系统Microsoft Windows、macOS、RISC OS、Android、Linux
前任PGP
标准OpenPGP,LibrePGP
类型密碼學軟體
许可协议 編輯維基數據鏈接
网站gnupg.org 編輯維基數據鏈接

GNU Privacy Guard(GnuPG 或 GPG)是一个密码学软件,用于加密、签名通信内容及管理非对称密码学的密钥。GnuPG 是自由软件,遵循 IETF 訂定的 OpenPGP 技術標準設計,并与 PGP 保持兼容。[3]

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

歷史

[编辑]

GnuPG 的早期版本由維爾納·科赫开发,经过近两年迭代后于1999年9月7日正式发布1.0.0版[1]。软件实现遵循 OpenPGP 标准,兼容菲爾·齊默爾曼开发的 PGP。2000年,德國聯邦經濟及科技部資助了31.8万马克,用于移植 GnuPG 到 Microsoft Windows。[5]

德国政府于2005年资助开发 S/MIME。GnuPG 2.0 於2006年11月13日發佈加入了,S/MIME。因為 GnuPG 2.0 的新的軟件架構不支援某些用途,所以 1.x 與 2.0 是兩個分支版本。[6]此外 GnuPG 1.x 使用了一个集成的加密库,而 GnuPG 2.x 则用 Libgcrypt 取代了加密库。

GnuPG 还支持对称加密算法。默认情况下,GnuPG 从 2.1 版开始使用 AES 对称算法[7],早期版本中使用了 CAST5。GnuPG 不使用专利或其他受限制的软件或算法。相反,GnuPG 使用了多种其他非专利算法。[8]

很长一段时间,它都不支持 PGP 中使用的 IDEA 加密算法。事实上,可以通过下载其插件在 GnuPG 中使用 IDEA,但是,在 IDEA 获得专利的国家中,某些用途可能需要获得许可。从 1.4.13 版和 2.0.20 版开始,GnuPG 支持 IDEA,因为 IDEA 的最后一个专利于 2012 年到期。对 IDEA 的支持旨在“摆脱所有试图解密旧数据或将密钥从 PGP 迁移到 GnuPG 的人的问题”[9],因此不建议常规使用。

GnuPG 2.x 的最近版本(“现代”和现已弃用的“稳定”版本)公开了 Libgcrypt(其使用的密码库)提供的大多数加密函数和算法,包括在“现代”版本(即自 GnuPG 2.1 以来)中对椭圆曲线加密 (ECDH、ECDSA 和 EdDSA) [10]的支持。

2023年11月出现了两个更新OpenPGP v4标准的RFC草案,最后在2024年7月RFC 9580成为了新的OpenPGP标准。然而,GnuPG主要维护者科赫的草案(现在称为LibrePGP)却并没有被OpenPGP工作组接受;此外GnuPG的新版本也宣布不再支持OpenPGP的新标准,而是选择支持科赫的LibrePGP。[11]

使用

[编辑]

虽然基本的 GnuPG 程序有一个命令行界面,仍然存在许多提供图形用户界面的前端。例如 GnuPG 加密被集成进了 Linux 裡流行的桌面环境 KDE 和 GNOME 裡的图形化電子郵件用戶端:KMail 和 Novell Evolution。也有 GnuPG 的图形化前端(GNOME 裡的 Seahorse(英语:Seahorse (software)),KDE 裡的 KGpg 和 Kleopatra)。在 Mac OS X 上,Mac GPG 项目提供 Aqua 作为操作系统集成的加密前端和密钥管理器和 GnuPG 安装一样通过 Installer packages 进行安装。[12]此外,GPGMail 项目[13]可以使 Apple Mail 使用 GnuPG 加密。即时通信(IM)程序,例如,当 GnuPG 已经安装并配置好时,Psi 和 Fire 可以自动安全的传递消息。像 Horde(英语:Horde (Software)) 这类基于互联网的软件也可以使用 GnuPG。跨平台插件 Enigmail 为 Mozilla Thunderbird 和 SeaMonkey 提供了 GnuPG 支持。类似的,Enigform(英语: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 的一次更新中出现了错误,导致了一个安全漏洞[14]。不过它只影响了一种对消息进行数字签名的办法且只影响 GnuPG(1.0.2 到 1.2.3)的一些发布版本。受影响的密钥少于1000个[15],绝大多数人也不使用这种方法。因此造成的损害(如果有的话,因为尚未公开报告过)似乎很小。在此发现之后发布的 GnuPG 版本(1.2.4 及更高版本)中已经删除了对这种方法的支持。

2006 年初又发现了两个漏洞;第一个是对 GnuPG 进行脚本化以进行签名验证可能会导致误报[16], 第二个是非 MIME 消息容易受到数据注入[17],这些数据虽然没有被数字签名覆盖,但会被报告为签名消息的一部分。

2021 年 1 月,Libgcrypt 1.9.0 版发布,其中包含一个简单的严重漏洞。10 天后,在 Libgcrypt 1.9.1 中发布了修复程序。

過程

[编辑]

GnuPG 使用使用者自行生成的非對稱密鑰對來加密信息,由此產生的公鑰可以同其他使用者以各種方式交換,如密鑰伺服器(英语:Key server (cryptographic))。他們必須小心交換密鑰,以防止得到偽造的密鑰。GnuPG 還可以向信息添加一個數位簽名,這樣,收件人可以驗證信息完整性和發件人。

GnuPG 支援的各種加密算法:

應用程式支援

[编辑]

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

參見

[编辑]

參考資料

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

外部連結

[编辑]

官方网站 在维基数据上编辑此内容(英文)