用GnuPG插件实现Linux应用程序通信安全

来源:岁月联盟 编辑:zhuzhu 时间:2007-10-08
用GnuPG插件实现Linux应用程序通信安全内容简介:

实现Linux的安全通信可以有很多途径,其中加密或签名就是一种可靠的选择。比如GNU 隐私卫士(GNU Privacy Guard,简称为GnuPG)允许用户加密、解密、签名、验证通信和数据,并创建和管理这些任务所需要的密钥。GnuPG是一个符合OpenPGP标准的完全开源工具,并与许多Linux应用程序集成,从剪贴板程序到即时通信客户端。这些应用程序使得在GNU网络对象模型环境(GNOME)中将GnuPG用于数字通信的安全更加容易。

本文介绍的这些应用程序几乎可以透明地使用GnuPG技术,而且用户无需对加密或数字通信安全有太多了解就可以成功地实现。

为了使用GnuPG实现数字安全通信,需要设置GnuPG密钥。此后就可以将密钥用于GNOME桌面应用程序中,这些应用程序支持GnuPG以保障消息通信、电子邮件、文本以及文件等的安全。

Seahorse

让我们先从Seahorse开始,这是一个GnuGP图形用户界面的为GNOME编写的程序,用户可以用来设置并管理其GnuPG密钥。多数Linux发行版本都将其包括在存储库中,因此其安装是相当简单的。在安装过程中,它会增加一些用于gEdit、 Nautilus、Epiphany Web浏览器等的插件。

要运行Seahorse,请在Applications(应用程序)菜单中查找,打开Seahorse后,找到Passwords and Encryption Keys(口令和加密密钥),在key(密钥)上单击,并选择“Create New Key”( 创建新的密钥)菜单。如图1:

在弹出的窗口中,选择“PGP Key”选项以创建一个新的PGP密钥。如图2:

单击“Continue”,在弹出的窗口中,输入用户的姓名和电子邮件地址,并选择密钥类型等。如图3:

在密钥创建过程中Seahorse为其它选项提供的默认设置对多数人来说通常已经足够了。在此过程中用户会被提示为自己的私钥(private key)输入一个密码短语。用户应选择一个安全的密码短语,并应牢记之。如果忘记了密码短语,用户就不能用私钥解密或为数据签名了。一旦输入了自己的密码短语,用户只需单击“确定(OK)”,系统就会为用户创建密钥对(Key Pair)。如图4:

一旦用户拥有了密钥对,就可以通过将其包含到电子邮件的签名中或将其放置到Web站点或博客中与朋友共享了。为了构建信任站点,用户需要使公钥被朋友签名,并签名朋友的公钥。

用户有可能会想到将公钥发布到一个密钥服务器,为了在Seahorse中实现此功能,选择Remote -> Sync and Publish Keys。如图5:

一旦设置完成GnuPG密钥,用户的GNOME桌面将成为其数字安全的工作站。

要通过下面列示的应用程序使用GnuPG,其过程通常如下:

1、选择用户想签名、加密、验证或解密的数据。

2、选择用户希望用于此过程的密钥。

3、如果用户正使用私钥,应提供密码短语。

文本编辑器Gedit

Seahorse为gEdit安装一个插件,它允许用户加密、解密、签署并验证纯文本。要为gEdit启用此GnuGP插件,从“Edit”菜单选择“Preferences”。如图6:

单击“Plugins”选项卡,选择“Text Encryption”,单击“OK”。然后选择想要加密、解密、签名的文本,并选择“Edit”菜单下的加密选项。完成后,将加密的文本复制、粘贴到其它应用程序中。

剪贴板文本加密小程序

Seahorse还安装了一个剪贴板文本加密小程序,用户可以将其添加到面板上,从而可将文本复制到剪贴板上,并对它加密,然后再复制到另外一个应用程序中。这是一个通过基于Web的电子邮件客户端使用加密的方法。要想启用它,在一个面板上右击,单击“Add to Panel”(添加到面板)。

选择“Clipboard Text Encryption”( 剪贴板文本加密)小程序,然后单击“Add”。此后,无论用户是剪切或复制文本,用户可以在这个程序上单击,实现对剪贴板上的文本加密或签名。如果文本已经加密或签名,在此程序上单击就会允许用户解密或验证文本。

文件管理器

用户通过使用由Seahorse提供的另外一个插件可以将对数据加密和签名的菜单项目添加到Nautilus File Manager(Nautilus文件管理器)。这些菜单项目可以在Nautilus 的“Edit”菜单中找到,当用户在一个文件或文件夹上右击时也可以在弹出的菜单中找到。要使用这些项目,选择想要操作的文件或文件夹,单击“Edit”/“Encrypt or Edit”/“Sign”。GnuPG就会为用户加密的任何文件创建一个扩展名为.pgp的新文件;如果用户为任何文件进行了签名,文件的扩展名就为.sig。用户原始的、未加密的文件仍会保持不加密状态。

要验证扩展名为.sig的文件上的签名,在文件上右击,选择“Open with Verify Signature”。要解密一个扩展名为.pgp的文件,在其上右击,选择“Open with Decrypt File”。在Nautilus插件的较老版本上,用户不会看到这个最后的选项,用户可以选择“Open With”/“Open with Other Application”,单击“Open with Custom Command”选项,在出现的文本框中输入“seahorse-tool -d”。完成后,当用户在一个加密的文件上右击时就会看到“Open with seahorse-tool”,单击这个选项就会为用户解密这个文件。

Web浏览器

Epiphany Web浏览器可以从Seahorse所提供的另外一个GnuPG插件中获益,通过它用户可以在Web页面上的文本框中加密和签名文本。当然,用户需要安装Epiphany扩展,这样一来用户就可以通过“Tools”/“Extensions”菜单启用Seahorse的扩展。在用户的输入焦点处于某个文本字段内时,就会启用右击后的上下文菜单加密选项。用户还可以借助于FireGPG单元使用Firefox,直接加密及签名Web页面中的文本字段。要使用它,在一个文本字段上右击,在FireGPG的子菜单下可用的加密选项中选择即可。这些工具使得通过基于Web的应用程序(如Gmail 、 Yahoo! Mail等)使用GnuPG成为非常轻松的事情。

电子邮件

电子邮件的安全进展来自于对内置GnuPG的支持。雷鸟(Thunderbird)通过Enigmail插件支持GnuPG。Enigmail插件是一个综合性的GnuPG前端程序。此外,Balsa 和Claws这两个应用程序也支持GnuPG。

即时通信(IM)

在这方面的软件产品很多,Psi是一个跨平台的甲吧(jabber)客户端,它支持运用GnuPG的加密通信。而Gabber,是另一个甲吧(jabber)客户端,也使用GnuPG。Pidgin(即以前的Gaim)也拥有一个加密插件和OTR插件,它也可以对即时通信进行加密,不过二者都不使用GnuPG。

其它平台

虽然我们文章的题目是关于Linux程序的安全通信问题,不过在共享签名或加密的数据时,用户有可能会将数据与那些并不把Linux作为其主要操作系统的人们共享。非常幸运的是,GnuPG也可以在Windows和Mac OS X平台上实现,而且在这些平台上也有大量的应用程序允许我们在桌面电脑上使用GnuPG及其数据保护特性。

结束语

GNOME桌面提供了大量实用的应用程序,这些程序内建了或插入了对GnuPG的支持,这使得通过桌面程序实现数字通信的安全变得相当容易。更有甚者,前面列示的多数支持GnuPG的应用程序在KDE中都有其等价产品,并提供相同或类似的功能。我们相信,在数字通信安全日益受到重视的今天,Linux桌面提供的大量工具将可以满足我们的需要。

(责任编辑:李磊)