帮酷LOGO
0 0 评论
文章标签:gpg  encrypt  Message  


介绍

GPG或GNU Privacy Guard(GNU隐私保护),是一个公钥加密实现,这允许对各方之间的信息进行安全传输,并可以用来验证消息的原点是否真实。

本指南将讨论GPG的工作原理以及如何实现它。

设置GPG密钥

缺省情况下,在大多数发行版中都安装了GPG 。

如果你没有安装,在Ubuntu和Debian上,你可以更新本地repo索引,并通过键入以下内容来安装它:


sudo apt-get update
sudo apt-get install gnupg

在CentOS上,你可以通过键入以下命令安装GPG :


sudo yum install gnupg2

要开始使用GPG加密通信,你需要创建密钥对,


gpg --gen-key

创建吊销证书

这个吊销密钥必须先生成,并保存在安全的位置,以防你的计算机损坏或不可操作,若要生成吊销密钥,请键入:


gpg --output ~/revocation.crt --gen-revoke your_email@address.com

将要求你确认吊销密钥创建,然后提示你撤回它的原因,通常,为每个可能的场景创建吊销证书是一个很好的主意。

在创建吊销证书之前,你需要输入密钥密钥以确认你的身份,吊销证书将被写入由--output标志(我们的例子中的revocation.crt )指定的文件中:


OutputRevocation certificate created.

Please move it to a medium which you can hide away; if Mallory gets
access to this certificate he can use it to make your key unusable.
It is smart to print this certificate and store it away, just in case
your media become unreadable. But have some caution: The print system of
your machine might store the data and make it available to others!

你应该立即限制生成的证书文件的权限,以防止未经授权的访问:


chmod 600 ~/revocation.crt

吊销证书必须保持安全,以便其他用户不能撤消你的密钥,你应该考虑将证书备份到其他机器,并且打印出来,正确地保护它。

如何导入其他用户的公钥

你可以多种方式导入某人的公钥,


gpg --import name_of_pub_key_file

也可以把他们的密钥上传到公钥服务器上,这些密钥服务器是用来在世界范围内公开人们密钥的。

你可以通过在网页浏览器中访问姓名或电子邮件地址来搜索人:

 
https://pgp.mit.edu/

 

你还可以通过键入以下命令在GPG中搜索密钥服务器:


gpg --keyserver pgp.mit.edu --search-keys search_parameters

你可以使用此方法按名称或电子邮件地址进行搜索,

如何验证和签署密钥

验证其他人的身份

你可以通过键入以下命令获取公钥的指纹:


gpg --fingerprint your_email@address.com


Outputpub 4096R/311B1F84 2013-10-04
 Key fingerprint = CB9E C70F 2421 AF06 7D72 F980 8287 6A15 311B 1F84
uid Test User <test.user@address.com>
sub 4096R/8822A56A 2013-10-04

签署他们的密钥

若要签署已导入的密钥,只需键入:


gpg --sign-key email@example.com

你可以通过键入以下内容来完成这个操作:


gpg --output ~/signed.key --export --armor email@example.com

你必须重新输入你的密码,然后,由你签署的他们的公钥将会显示出来,发送这些信息,以便在与他人交互时获得"stamp of approval"的好处。

他们可以通过键入以下命令来完成:


gpg --import ~/signed.key

如何使你的公钥更有效

你可以通过从GPG系统请求公钥来发送你的公钥:


gpg --output ~/mygpg.key --armor --export your_email@address.com


Output-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.11 (GNU/Linux)

mQINBFJPCuABEACiog/sInjg0O2SqgmG1T8n9FroSTdN74uGsRMHHAOuAmGLsTse
9oxeLQpN+r75Ko39RVE88dRcW710fPY0+fjSXBKhpN+raRMUKJp4AX9BJd00YA/4
EpD+8cDK4DuLlLdn1x0q41VUsznXrnMpQedRmAL9f9bL6pbLTJhaKeorTokTvdn6
5VT3pb2o+jr6NETaUxd99ZG/osPar9tNThVLIIzG1nDabcTFbMB+w7wOJuhXyTLQ
JBU9xmavTM71PfV6Pkh4j1pfWImXc1D8dS+jcvKeXInBfm2XZsfOCesk12YnK3Nc
u1Xe1lxzSt7Cegum4S/YuxmYoh462oGZ7FA4Cr2lvAPVpO9zmgQ8JITXiqYg2wB3
. . .

另一个选择是通过GPG接口实现这个功能,


gpg --list-keys your_email@address.com


Outputpub 4096R/311B1F84 2013-10-04
uid Test User <test.user@address.com>
sub 4096R/8822A56A 2013-10-04

要将密钥上传到某个密钥服务器,你可以使用以下语法:


gpg --send-keys --keyserver pgp.mit.edu key_id

密钥将被上传到指定的服务器上,之后,它会分发到世界各地的其他密钥服务器。

使用GPG加密和解密消息

你可以在与其他人共享密钥后,轻松加密和解密邮件。

加密消息

你可以使用"–encrypt"的标志来加密消息,基本语法如下:


gpg --encrypt --sign --armor -r person@email.com name_of_file

使用收件人密钥对消息进行加密,用你自己的私钥来标记它,并以文本格式输出消息,文件名将与输入文件名相同,但是,有.asc扩展名。

解密邮件

收到消息时,只需在消息文件上调用GPG :


gpg file_name.asc

你可以按"ctrl-d"来表示消息结束,GPG会为你解密。

密钥维护

要列出你从其他人那里获得的可用GPG密钥,你可以执行以下命令:


gpg --list-keys

你可以通过以下方式更新密钥信息:


gpg --refresh-keys

这将从密钥服务器获取新信息。

可以使用以下方法从特定密钥服务器提取信息:


gpg --keyserver key_server --refresh-keys

如果密钥服务器上找不到密钥,你收到错误消息。



文章标签:Message  encrypt  gpg  

Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语