GnuPG :GnuPG

更新时间:2024-09-21 15:46

GnuPG就是用来加密数据与制作证书的一套工具,其作用与PGP类似。但是PGP使用了许多专利算法,属于美国加密出口限制之列。GnuPG是GPL软件,并且没有使用任何专利加密算法,所以使用起来有着更多的自由。

软件简介

GnuPG是实现安全通讯和数据存储的一系列工具集,可以做加密数据和做数字签名之用。在功能上,它和PGP是一样的。由于PGP使用了IntelliJ IDEA专利算法,所以使用PGP会有许可证的麻烦。但是GnuPG并没有使用这个算法,所以对用户来说使用GnuPG没有任何限制。GnuPG使用非对称加密算法,安全程度比较高。所谓非对称加密算法,就是每一个用户都拥有一对密钥:公钥和私钥。其中,密钥由用户保存,公钥则由用户尽可能地散发给其他人。

软件特点

- 完全兼容 PGP

- 没有使用任何专利算法,没有专利问题

- 遵循GNU公共许可证

- 与OpenPGP兼容

- 使用广泛,安全性高于PGP2,可以加密校验和PGP5.x格式的信息

- 支持多种加密算法

- 支持扩展模块

- 用户标识遵循标准结构

- 多语言支持(尚未支持中文)

- 在线帮助系统

- 支持匿名信息接收

- 支持HKP密钥服务

- 拥有众多的GUI界面支持

- GnuPG的源代码可以在http://www.gnu.org/downloadHTML取得

GnuPG是GNU项目的一部分,并于1999年获得了德国政府的主要资助。GnuPG 1.x系列使用集成的加密库,而GnuPG 2.x系列则用Libgcrypt替换了这个库。GnuPG还支持对称加密算法,自版本2.1以来默认使用AES对称算法。GnuPG不使用受专利或受限制的软件或算法,而是使用各种其他非专利算法。长时间以来,它不支持PGP中使用的IntelliJ IDEA加密算法,但自版本1.4.13和2.0.20开始,由于IDEA的最后一个专利于2012年到期,GnuPG开始支持IDEA。

版本更新

GnuPG的更近期版本2.x(“现代”和现在不推荐使用的“稳定”系列)公开了Libgcrypt(其加密库)提供的大多数加密功能和算法,包括对椭圆曲线加密(ECDH、ECDSA和EdDSA)的支持。至于算法,截至2.3或2.2版本,GnuPG支持多种公钥、对称和哈希算法,以及压缩方法。

自稳定的GnuPG 2.3版本发布以来,从2021年10月的2.3.3版本开始,GnuPG有三个稳定分支在积极维护:稳定分支(2.3)、LTS(长期支持)分支(2.2)和旧的传统分支(1.4)。不同的GnuPG 2.x版本不能同时安装,但可以与“经典”GnuPG版本(即来自1.4分支)一起安装。

GnuPG的历史与OpenPGP标准紧密相关,它旨在与PGP相互操作,PGP是由Phil Zimmermann最初设计和开发的电子邮件加密程序。2014年2月7日,GnuPG的众筹活动结束,筹集了36,732欧元,用于新网站和基础设施改进。

尽管基本的GnuPG程序具有命令行界面,但存在各种提供图形用户界面的前端。例如,GnuPG加密支持已集成到KMail和evolution中,这是KDE和GNOME中最流行的Linux桌面上找到的图形电子邮件客户端。还有图形GnuPG前端,例如GNOME的Seahorse和KDE的KGPG和Kleopatra。

GPGTools提供了一些用于OS集成加密和密钥管理的前端,以及通过Mac OS的安装程序包安装GnuPG。GPG Suite安装了所有相关的OpenPGP应用程序(GPG Keychain)、插件(GPG Mail)和依赖项(MacGPG),以及GPG Services(集成到macOS服务菜单)以使用基于GnuPG的加密。

当安装和配置了GnuPG时,即时通讯应用程序(如Psi和Fire)可以自动保护消息。基于Web的软件,如Horde,也可以使用它。跨平台扩展Enigmail为Mozilla Thunderbird和SeaMonkey提供了GnuPG支持。类似地,Enigform为Mozilla Firefox提供了GnuPG支持。FireGPG于2010年6月7日停止。

2005年,g10 Code GmbH和Intevation GmbH发布了Gpg4win,这是一个软件套件,包括Windows版的GnuPG、GNU隐私助手和Windows资源管理器和Outlook的GnuPG插件。这些工具包装在标准的Windows安装程序中,使得在Windows系统上安装和使用GnuPG更加容易。

历史上,GnuPG曾因处理数字签名消息的方法中的错误而引入安全漏洞,但这些漏洞在发现后已被修复。例如,2003年的一个漏洞影响了GnuPG版本1.0.2至1.2.3,但影响范围有限。2006年初发现的两个漏洞也在公布时已提供了更新版本的GnuPG。2017年6月,Libgcrypt中的一个漏洞(CVE-2017-7526)允许对RSA-1024进行完全密钥恢复,对RSA-2048的密钥进行了超过1/8的恢复。2017年10月,ROCA漏洞影响了YubiKey 4令牌生成的RSA密钥。大约在2018年6月,SigSpoof攻击被公布。2021年1月,Libgcrypt 1.9.0发布,发现其中包含一个简单利用的严重漏洞,10天后发布了Libgcrypt 1.9.1的修复版本。

安装方法

首先要取得GnuPG的源代码,然后执行如下操作:

1.解开源代码包:

tar xvzf gnupg-version.tar.gz

cd gnupg-version

./configure

2.编译源代码

make

3.检验生成的工具

make check

4.安装工具包

make install

使用方法

1.生成密钥

使用GnuPG之前必须生成密钥对(公钥和私钥),参数选项"--gen-key"可以生成密钥对。可按如下步骤操作。

gpg --Gen.Gkey

2.证书的回收

当您的密钥对生成之后,您应该立即做一个公钥回收证书,如果您忘记了您的私钥的口令或者您的私钥丢失或者被盗窃,您可以发布这个证书来声明以前的公钥不再有效。生成回收证书的选项是"--gen-revoke"。

gpg --output revoke.asc --gen-revoke mykey

其中mykey 参数是可以表示的密钥标识,产生的回收证书放在revoke.asc文件里,一旦回收证书被发放,以前的证书就不能再被其他用户访问,因此以前的公钥也就失效了。

3.密钥列表

gpg --list-Keys

4.输出公钥

您可以输出您的公钥供您的主页使用,也可以把它放在密钥服务器上,当然,还可以使用于其他的途径。在您使用此公钥之前您首先要导出它。选项 --export 可以实现这个功能,在使用这个选项时,还必须使用附加的选项指明您要输出的公钥。

下面的命令表示以二进制格式输出公钥:

gpg --output kapil.gpg --export somebody@南非广播公司

如下命令表示以ASCII字符格式输出:

gpg --output kapil.gpg --export --armor somebody@sa.b.c

5.导入公钥

可以把从第三方的公钥数据库中得到的公钥导入您的私有数据库,在与他人进行通讯时使用。

gpg --import \u003c filename \u003e

其中,参数filename为公钥文件。

6.确认密钥

导入密钥以后,使用数字签名来验证此证书是否合法。查看数字签名使用 --fingerprint 选项。

gpg --fingerprint \u003c UID \u003e

其中,UID 为您要验证的公钥。

7.密钥签名

导入密钥之后,可以使用 --sign-key 选项进行签名,签名的目的是证明您完全信任这个证书的合法性。

gpg --sign-key \u003c UID \u003e

其中,UID 是要签名的公钥。

8.检查签名

gpg --check-sigs \u003c UID \u003e

这个选项可以列出此密钥文件的所有的签名。

9.加密和解密

加密和解密一个文件非常容易,如果您要给Red Hat发送一个加密文件,您可以使用redhat的公钥加密这个文件,并且这个文件也只有redhat使用自己的密钥才可以解密查看。

加密一个文件可以使用下面的指令

gpg --sear \u003c UID \u003e \u003c file \u003e

其中,UID是对方的公钥,file为您要加密的文件。

如果您要解开一个其他用户发给您的文件可以使用下面的指令:

gpg -d \u003c file \u003e

其中,File是您要解密的文件。解密过程中,GnuPG会提示您输入使用密钥所需要的口令,也就是在产生私钥时您所输入的口令。

参考资料

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}
友情链接: