GPG 101 I – 初识GnuPG

本文属系列文章,查看目录

GnuPG

gnupg-logo

要了解什么是GPG,就要先了解PGP(Wikiedia: Pretty Good Privacy)

1991年,程序员Phil Zimmermann(Wikipedia: Phil Zimmermann)为了避开政府监视,开发了加密软件PGP。这个软件非常好用,迅速流传开来,成了许多程序员的必备工具。但是,它是商业软件,不能自由使用。所以,自由软件基金会决定,开发一个PGP的替代品,取名为GnuPG。这就是GPG的由来。

GPG有许多用途,本文主要介绍文件加密。至于邮件的加密,不同的邮件客户端有不同的设置,请参考Ubuntu网站的介绍

本文的使用环境为Linux命令行。如果掌握了命令行,WindowsMac OS 客户端,就非常容易掌握。GPG并不难学,学会了它,从此就能轻松传递加密信息。建议读者一步步跟着教程做,对每条命令都自行测试。

什么是公钥加密?

简单地说,公钥加密解决了一个古老的问题“在不与某人预先交换秘钥的条件下,如何与其进行安全的通信”,安全地交换共享秘钥是一个很难解决的问题。如果你的通信处于监听的情况下,你是无法保证交换的安全性。

有了公钥加密体系,通信的双方分别生成由公钥和“机密的”私钥组成的秘钥对,然后双方可以将各自的公钥发布到网上或直接发送给对方即可。

如果你有了用户B的公钥,那么你可以用它完成下面的工作:

  • 加密消息并且只能由B解密(B需要他的私钥来解密)
  • 验证一个是否由B的私钥签名的消息,也可以用来验证消息在传输过程中的完整性和机密性。

你可以用你的私钥做下面的事情:

  • 解密由你的公钥加密的消息
  • 对消息进行签名以便别人来验证此消息是否出自你手(对方需要你的公钥来验证签名)

Toolbox

我接收和发送的所有消息都使用的是OpenPGP格式(是一种开放的标准,最广泛使用的用于公共加密的标准),因此通信可以在任何OpenPGPG兼容的程序间工作正常。

要对电子邮件进行加密和签名,可以使用下面的工具:

  • GNU隐私卫士(GPG)
  • Thunderbird,mozilla的邮件客户端
  • Mozilla的Enigmail插件

如果你使用的是Fedora,你可以直接从源中安装Enigmail插件,而不用到网上下载。以root用户运行下面命令:

或者一次性安装所有的包:

在安装完或更新系统后,如果在Thunderbird菜单中找不到OpenPGP选项,先找到 Tools | Add-ons,禁用Enigmail,重启Thunderbird,开启Enigmail,重启Thunderbird。

不足的是,Thunderbird版本飙得太快,导致Enigmail有时无法与系统兼容,这就是为什么用类似yum的包管理器来保证包的兼容性,另一个好处就是可以手动运行gpg命令。

首先我们要对Enigmail进行一番设置,打开 OpenPGP | Preferences | Display Expert Settings。只进行基本设置是不够的。

Gnu隐私卫士的FAQ罗列了一些其它兼容GPG的email程序。注意,配合命令行下的gpg可执行程序,你可以使用任意e-mail程序(只要它不篡改消息)。

对于苹果机,你可以从GPGTools中获取GPG。(我个人没有使用过,但是别人推荐这个。)

做为替换,有时候我在Emacs/XEmacs中使用pgg包,这个包是对个gpg功能的包装。你可以高亮一部分内容,执行: M-x pgg-encrypt-region直接加密文档。

对于加密文件或者其它更有趣的事情,我只是在命令行中使用gpg程序。如果你是个安全偏执狂,那么更少的可执行程序,更好。本文档的大部分内容就是教你使用gpg程序让你变得更安全,这是一件有趣而且重要的事情。

gpg还是gpg2

GPG2的可执行文件名叫gpg2,两者都可以演示以后的例子,而且两个版本相互兼容。v1经受过了更多的测试,是庞大功能的集合体。v2使用了libgcryp之类的加密库进行编译的,可以与外部的密码工具良好的协作。

快速了解

这里准备了wikipedia的一幅图来让你快速了解PGP是怎么工作的,是如何保护隐私安全的:

PGP_diagram_zh-CN

声明: 本文采用 BY-NC-SA 协议进行授权 | Deamwork
转载请注明转自《GPG 101 I – 初识GnuPG
本文地址:https://www.deamwork.com/archives/gpg-101-getting-know-gnupg.orz6

回复 (0)

› 尚无评论。

发表评论 修改评论取消编辑

允许使用的标签 - 您可以在评论中使用如下的 HTML 标签以及属性。

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <img src="" alt=""> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

 :mrgreen:  :|  :twisted:  :arrow:  8O  :)  :?  8-)  :evil:  :D  :idea:  :oops:  :P  :roll:  ;)  :cry:  :o  :lol:  :x  :(  :!:  :?:

欢迎来到Deamwork! o(∩_∩)o
X