下一页 上一页 目录

8. Procmail 备注和技巧

8.1 配置 Procmail 以自动发送您的公钥

由于这不是本 Howto 的目的,我们将评论说,从任何人那里获取公钥最安全的方式是让他亲手交给我们。

由于很多时候这不是一个简单的方法(它们有多长),人们可以通过电子邮件发送公钥,或者在密钥服务器中搜索它,但是这些方法都不能保证获得的密钥确实来自它声称的来源。如果您使用其他被认为是“安全”的通信媒介(在电话簿中搜索所有者并要求他读出他的密钥“指纹”,以便与我们从非安全途径获得的密钥的指纹进行对比)。

我们将要看到的是一个“技巧”,放入 Procmail 邮件处理器中的 .procmailrc 文件中,以便当您收到主题行中包含特定文本的消息时,自动将您的公钥返回给发件人。

:0 h
* ^Subject:[    ]+\/(|send)[    ]+key pub\>.*
| mutt -s "Re: $MATCH" `formail -rtzxTo:` </clau/mykey.asc

前一段所说的是:我们在任何目录(在本例中是 /clau 目录)的名为 mykey.asc 的文件中,有我们公钥的 ASCII 副本;当 procmail 收到主题行中包含“send key pub”的消息时,将该文件发送给发件人。

重要提示:括号之间是一个空格一个制表符

8.2 自动验证和解密没有 PGP/MIME 的消息

当您收到使用 PGP/MIME 签名的消息,并使用您首选的 MUA(Mutt,不是吗?)打开它时,如果您的确拥有发件人的公钥,它会识别该消息为 PGP/MIME 并检查签名。这些消息是在 Mutt 中消息行的第一部分带有“S”的消息。

36  S  05/09 Andres Seco Her ( 12K) Al fin

而加密的消息带有“P”。

12  P  03/24 Andres Seco Her (6,3K) Re: FW: Re: Mutt - pgp/gnupg

但是,如果消息已签名并且具有“application/pgp”MIME 类型,当您打开它时,Mutt 不会检查其签名,并且此签名在消息正文中,如下所示:

-----BEGIN PGP SIGNED MESSAGE-----

Date: Tue, 25 May 1999 13:04:26 +0200
From: La Corporaci�n <bill@reboot.com>
Subject: Actualizaci�n S.O.
To: Sufrido Usuario <pepe@casa.es>


Sufrido usuario:

le comunicamos que puede usted adquirir la �ltima actualizaci�n del
programa O.E. con la adquisici�n de nuestro sistema operativo reboot99
por el m�dico precio de ... etc.


-----BEGIN PGP SIGNATURE-----
Version: 2.6.3ia
Charset: noconv

iKBGNpUBX0235VapRBUy1KklAQGl9wQA3SBMio0bbbajHAnyKMOlx3tcgNG7/UVC
AbqXcUnyGGOo13Nbas95G34Fee3wsXIFo1obEfgiRzqPzZPLWoZdAnyTlZyTwCHe
6ifVpLTuaXvcn9/76rXoI6u9svN2cqHCgHuNASKHaK9034uq81PSdW4QdGLgLoeB
vnGmxE+tGg32=
=Xidf
-----END PGP SIGNATURE-----

要验证它,您必须保存它并使用命令行。但是,可以使用 Procmail 转换这种 MIME 消息类型,以允许 Mutt 将其识别为 PGP/MIME。您只需要将此添加到 .procmailrc 中即可

:0
* !^Content-Type: message/
* !^Content-Type: multipart/
* !^Content-Type: application/pgp
{
    :0 fBw
    * ^-----BEGIN PGP MESSAGE-----
    * ^-----END PGP MESSAGE-----
    | formail \
        -i "Content-Type: application/pgp; format=text; x-action=encrypt"

    :0 fBw
    * ^-----BEGIN PGP SIGNED MESSAGE-----
    * ^-----BEGIN PGP SIGNATURE-----
    * ^-----END PGP SIGNATURE-----
    | formail \
        -i "Content-Type: application/pgp; format=text; x-action=sign"
}

如您所见,这对于已签名消息和带有 application/pgp 的加密消息都有效。

8.3 更改消息的 MIME 类型,使其包含没有 PGP/MIME 的密钥

当您从不兼容 PGP/MIME 的 MUA 收到公钥块时,您必须将消息正文保存在磁盘中,然后将其插入到您的公钥环中,但是,将以下行包含在您的 .procmailrc 文件中,您可以直接从 mutt 中包含它。

    :0 fBw
    * ^-----BEGIN PGP PUBLIC KEY BLOCK-----
    * ^-----END PGP PUBLIC KEY BLOCK-----
    | formail -i "Content-Type: application/pgp-keys; format=text;"

感谢 Denis Alan 的 Procmail 备注。


下一页 上一页 目录