GNUPG使用手册

GNUPG使用手册
一.介绍
“GNUPG使用公用秘钥加密技术,以便用户可以安全地进行通信。在公用秘钥系统中,每个用户都有一对由私钥和公用秘钥组成的秘钥。用户的私钥是保密的,永远不需要公开私钥只提供公钥就可以和与之信任的人通信。”来自GNU隐私手册。
本文介绍如何使用OpenPGP秘钥。有关什么是OpenPGP的简要说明,请参见下一节。软件包gnupg(包括命令pgp)已安装在所有ubuntu系统上。软件包描述部分说:”GNUPG1.4是独立的,非模块化的系列。与gnupg2软件包一起提供的版本2系列相反,它不支持S/MIME和其他一些对桌面环境有用的工具。而且依存度更低。”本文主要介绍如何使用gpg命令。
二.术语
术语”OPENPGP”,”PGP”和”GNUPG/GPG”通常可以互换使用。这是一个常见的错误。因为他们明显不同。
1.尽管已经广泛使用,但openpgp在技术上是一个提议的标准。openpgp不是程序,而是一套加解密的标准。pgp和gnupgp是实现openpgp标准的计算机程序。
2.pgp是”pretty good privacy”(提供良好隐私和密码的计算机程序)的首字母缩写。
3.gnupg是gnu privacy guard的首字母缩写,gnu privacy guard是另一种提供加密隐私和身份验证的计算机程序。
三.图形化界面
有几个程序可为gnupg系统提供图形界面
1.Enigmail,一个Mozilla Thunderbird的openpgp插件。
sudo apt-get install enigmail
2.gnu privacy assistant是gnupg的图形用户界面。
sudo apt-get install gpa
3.seahorse是用于管理加密秘钥的gnome应用程序。它还与nautilus,gedit和其他地方集成在一起进行加解密操作。注意:默认情况下,seahorse已安装在ubuntu上。
在ubuntu中它被称为”密码和秘钥”。
4.kgpg是一个简单的免费的用于kde界面的前端
sudo apt-get install kgpg
5.kleopatra是gpg的另一个kde前端。它与kde pim绑定在一起
sudo apt-get install kleopatra
四.生成一个openpgp秘钥
生成秘钥
1.打开一个终端输入
gpg --gen-key
(1)如果您使用的是gnupg1.4.10或更高版本,这将导致选择屏幕,其中包含以下选项:

选择(1),这将同时启用加密和签名。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输入密码两次。(注意:忘记密码将导致秘钥失效)
一路根据提示最后生成秘钥,图上pub//172C2B0FA即为秘钥
将秘钥设置为默认值
最好在/.bash_profile或/.profile中将此秘钥设置为默认值。这样做将允许使用gpg的应用程序自动使用您的秘钥。
1.通过在~/.bash_profile中输入以下行来将秘钥设置为默认秘钥(以及要导出的任何其他形式变量):
export GPGKEY= 172C2B0FA
请注意: 该资源仅在您下次登录时提供。要立即使用它,应该在当前shell中运行export命令。
2.现在重启gpg-agent并设置相关的环境变量:
killall -q gpg-agent
eval $(gpg-agent --daemon)
export GPGKEY= 172C2B0FA
添加加密功能
1.如果您之前创建了”RSA(仅签名)”秘钥,则可能需要添加加密功能,假设您如上所述编辑~/.bash_profile,再次打开终端输入:
gpg --cert-digest-algo = SHA256 --edit-key $ GPGKEY
2. 这将显示如下对话框

3.要创建子项,请输入”addkey”。您必须输入秘钥的密码,然后您将看到一系列熟悉的对话:

4.选择6,然后依次输入即可
创建吊销证书
如果您的私钥已受到任何损害,则必须生成吊销证书来吊销您的公钥。建议您在创建秘钥时创建吊销证书。将吊销证书保存在可以安全保护的介质中
要创建吊销证书,请输入:
gpg --output revoke.asc --gen-revoke &GPGKEY
注意:GPGKEY为您具体生成的某个秘钥,吊销证书可以打印或者存储在文件中.
制作ASCII版本的公钥
一些秘钥服务器允许您黏贴公钥的ASCII版本以便于上传下载。通常首选此方法,因为秘钥直接来自于用户,并且用户可以看到秘钥已经上传成功。
请输入以下命令创建公用秘钥的ASCII版本,请输入:
gpg --output mykey.asc --export -a $GPGKEY
这是我们的示例:
gpg --output mykey.asc --export -a 172C2B0FA\

将秘钥上传到ubuntu秘钥服务器
本节将介绍如何上传您的公开秘钥的服务器,使任何人都可以下载。将其上传到一个秘钥服务器后,它将传播到其他服务器,最终多数秘钥服务器将拥有您的秘钥的副本。您可以通过将秘钥上传到多个秘钥服务器来加快此过程。
要上传秘钥,请输入:
gpg --send-keys --keyserver keyserver.ubuntu.com $GPGKEY
例子:
gpg --send-keys --keyserver keyserver.ubuntu.com 172C2B0FA
要使用网络浏览器上传秘钥:
1.通过发出以下命令导出秘钥(上面定义了gpgkey):
gpg --export -a $GPGKEY > mykey.asc
2.复制文件mykey.asc的内容
3.在浏览器窗口中打开 http://keyserver.ubuntu.com
4.将复制的内容黏贴在”提交新的openpgp秘钥”标签下的框中
5.点击提交
注意:只能通过ipv4访问keyserver.ubuntu.com
阅读openpgp电子邮件
openpgp实现可用于对电子邮件进行数字签名,加密和解密,以提高安全性。您可以使用lanuchpad验证秘钥,在某些情况下,launchpad会向您发送签名或加密的电子邮件。然后,您将在邮件阅读器中使用openpgp支持来解密这些消息或验证消息的数字签名。当然,您还可以使用邮件阅读器中的openpgp支持与同事交换加密的消息,或者对自己的消息进行签名,以便其他人可以更好的保证看似来自于您的电子邮件确实来自于您。
linux阅读器
Evolution
Evolution具有对openpgp的内置支持。编辑账户时,请在安全性选项卡中查看
1.打开Evolution并转到edit->preferences。
(1)选择您的电子邮箱账户,单击它,然后单击”编辑”。
(2)单击安全性选项卡
(3)在pgp/gpg秘钥id 框中黏贴您的keyid
(4)单击确定,单击关闭
2.如果要在任何新电子邮件中使用秘钥,只需单击新电子邮件中的”安全性”菜单项,然后单击”pgp签名”。
邮件
kmail/kontact内置了对Gutsy和更高版本的支持,默认情况下会安装所有必须的东西。
claws邮件
claws mail通过插件claws-mail-pgpinline支持openpgp
1.在”Universe”存储库中可以找到claws-mail-pgpinline。
2.sudo apt-get install claws-mail-pgpinline
3.插件安装后可能必须手动加载。打开claws mail。然后选择配置->插件
(1)如果在”插件”对话框中有pgp/core和pgp/inline,则说明已正确加载了插件。
(2)否则,请单击窗口底部的”加载插件”按钮。在文件选择对话框中,选择pgpinline.so,然后单击”打开”按钮。
4.当claws mail尝试打开加密的电子邮件时,程序将提示您输入秘钥的密码,然后显示带有解密邮件的电子邮件。
雷鸟
1.Thunderbird通过enigmail插件支持openpgp。
2.enigmail在”主”存储库中可用。
3.sudo apt-get install enigmail
4.在Thunderbird的Enigmail->prefences下配置openpgp支持,并在gnupg可执行文件路径下添加。gnupg的路径是/usr/bin/gpg。

mutt
1.创建一个~/.mutt目录并将此文件复制到目录中:/usr/share/doc/mutt/examples/gpg.rc
2.将此行添加到muttrc配置文件。
source ~/.mutt/gpg.rc
杂项/所有平台(web邮件)
此部分需要扩展。请随时为firefox或其他浏览器添加任何其他插件。
邮箱
1.如果您使用chrome浏览器,则可以使用goopg直接从gmail网络界面签名和验证电子邮件。详情查看此处(http://leoiannacone.github.io/goopg/)

使用launchpad进行验证
您需要使用launchpad验证秘钥(即,将其导入launchpad),以便能够签署Ubuntu准则(并因此成为ubuntuer)并使用。
openpgp键和launchpad
要导入秘钥,m需要秘钥指纹。要列出所有按键及其指纹,请输入:
gpg --fingerprint
指纹如下:
95BD 8377 2644 DD4F 28B5 2C37 0F6E 4CA6 D8FC 66D2

导入秘钥:
1.如有必要,请登录launchpad
2.访问”更改您的openpgp秘钥”页面。
3.将指纹黏贴到文本框中,然后单击”导入秘钥”。launchpad将向您发送加密的电子邮件。电子邮件的文本类似于以下内容:

4.将电子邮件的文本保存到文件中。
5.解密文本:
gpg --decrypt file.txt
6.输入您的密码。将显示该消息以及您必须使用链接才能使用启动板验证秘钥。
7.按照链接,在出现提示时输入您的launchpad密码,即可完成!
使用firefox和firegpg进行验证
1.如果您使用的是gmail,则使用firepgpg插件,只需向下滚动并单击”解密此邮件”。现在,您将看到带有链接和令牌的解密消息.复制该网址: https://launchpad.net/token/somealphanumerictoken
1点击链接,然后单击”确认”。请注意,验证确实需要一定时间。如果您遇到内部500服务器,只需要使用相同的令牌重试。
2.验证完成后,将出现一个确认页面。
签名数据
签名数据有助于验证某人的数据是否确实来自该人。下面介绍一个典型方案。
签署ubuntu行为准则
生成秘钥并将其导入后,如果您想成为ubuntu会员或ubuntuero,就该签署ubuntu行为准则了。
1.从 https://launchpad.net/codeofconduct/2.0/+download.下载行为准则
2.输入:
gpg --clearsign ubuntucodeofconduct-2.0.txt
3.上传ubuntu的内容代码在https://launchpad.net/codeofconduct/2.0/+sign上的conduct-2.0.txt.asc
获取秘钥签名
所有这些的全部目的是创建一个信任网络。通过签署某人的公共秘钥,您声明您已经检查使用某个密钥对的人,这样可以创建一个相互信任的人的完整网络.该网络成为”强链接集”。
秘钥签名准则

1.检索秘钥:
gpg --recv-keys E4758D1D C27659A2 09026E7B
2.签名秘钥:
gpg --sign-key E4758D1D
gpg --sign-key C27659A2
gpg --sign-key 09026E7B
3.导出秘钥:
gpg --armor --export E4758D1D --output E4758D1D.signed-by.01234567.asc
gpg --armor --export C27659A2 --output C27659A2.signed-by.01234567.asc
gpg --armor --export 09026E7B --output 09026E7B.signed-by.01234567.asc

4.通过电子邮件向秘钥用户发送电子邮件(使用秘钥用户id中的电子邮件地址)并附加相应的签名文件-或-将其签名的秘钥发送到秘钥服务器上:
gpg --send-keys --keyserver keyserver.ubuntu.com E4758D1D
5.收到签名的秘钥后,将其导入到密钥环:
gpg --import 01234567.signed-by.E4758D1D.asc
gpg --import 01234567.signed-by.C27659A2.asc
gpg --import 01234567.signed-by.09026E7B.asc
5.您应该查看您的秘钥:
gpg --list-sigs 01234567
6.发送您地方秘钥到秘钥服务器
gpg --send-keys 01234567
恭喜,您现在已经进入信任网或扩大了现有信任网。
备份和还原密钥对
为什么要备份密钥对?如果您丢失了密钥对:
1.使用丢失的秘钥对所加密的所有文件将无法回复。
2.您将无法解密发送给您的电子邮件。解密发送给您的电子邮件需要您的私钥,该秘钥不会存储在秘钥服务器上。如果您丢失了密钥对,则应该撤销密钥对。如果没有吊销证书,则无法完成此操作。
备份公钥
1.列出您的公钥:
gpg --list-keys
2.查找以固定id的秘钥并导出
gpg -ao something-public.key --export key-id
备份私钥
1.列出您的私钥
gpg --list-sercet-keys
2.导出私钥
gpg -ao something-private.key --export-secret-keys key-id
恢复密钥对
还原密钥对:
1.将上面创建的两个文件复制到计算机上
2.输入以下命令:
gpg --import something-public.key
gpg --import someting-private.key
确保秘密保存这些文件
撤销秘钥对
万一您的钥匙丢失或被盗,您应该撤销您的钥匙对。这告诉其他用户您的秘钥不再可靠。
1.要撤销秘钥,您需要首先创建一个撤销证书。指示要撤销的秘钥,并将输出到定向文件。
gpg --gen-revoke D8FC66D2 >revoke.asc
2.导入您的吊销证书:
gpg --import revoke.asc
3.将秘钥上传到您的选择的秘钥服务器。在这里,该示例使用的是ubuntu的秘钥服务器和key-id=D8FC66D2:
gpg --keyserver keyserver.ubuntu.com --send-key D8FC66D2
取消密钥对
如果您无意中撤销了秘钥,或者发现您的秘钥实际上并未丢失或受损,则可以撤销您的秘钥。首先,请确保您没有分发秘钥或将其发送到秘钥服务器。
1.导出秘钥:
gpg --export key-id> key.gpg
2.将秘钥分为多个部分。这将秘钥分为多个部分:
gpgsplit key.gpg
3.查找哪个文件包含吊销证书。在大多数情况下,他是000002-002.sig,但是您应该使用以下命令进行确认。如果sigclass为0x20,则说明文件正确.删除他。
gpg --list-packets 000002-002.sig
4.将私钥放回原处:
cat 0000* > fixedkey.gpg
5.删除旧秘钥:
gpg --export --delete-key key-id
6.导入新秘钥:
gpg --import fixedkey.gpg

更改密码
1.输入
gpg --edit-key key-id
2.在gpg提示下输入:
密码:
3.出现提示时输入当前密码
4.出现提示时,请输入两次新密码
5.输入:
保存
现在已经更换了密码

技巧和窍门
1.通过添加类似的行来将秘钥添加到~/.bash_profile中,以导出gpgkey=your key
2.gnupg-agent和pinentry-gtk2是软件包,可帮助您不必在每次使用密码时都输入密码。打开文件~/.gnupg/gpg.conf。
浏览并更改您喜欢的内容。一些有用的更改是:
1.秘钥服务器选项自动秘钥检索
2.use-agent(gutsy和更高版本的ubuntu默认配置)
前者使gpg在验证签名时自动检索gpg秘钥。后者使您可以使用gpg-agent,如果您经常使用gpg但又不想一直输入密码,这将非常有用。某些程序(例如kmail)也需要签名和加密信息。gnupg-agent和pinentry在gutsy的main中,并在kubuntu中自动安装/配置。
pinentry-program /usr/bin/pinentry-gtk-2
default-cache-ttl 86400
max-cache-ttl 86400
这将使gpg-agent使用pinentry-gtk2并会记住您的密码24小时(请考虑这样做的安全性-任何能够在24小时内访问您的计算机的人都可以使用您的秘钥签名)。对于kubuntu,请改用pinentry-qt4。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值