次のページ 前のページ 目次へ

8. Procmail のメモと小技

8.1 自分の公開鍵を自動で送信するよう Procmail を設定する

このハウトゥの目的とは違いますが、だれからの公開鍵を入手するにせよ、 もっとも安全な方法は、それを直に手渡ししてもらうことだと言っておきましょう。

長い間 (なんと長いことか) そうなのですが、これには簡単な方法がありません。 公開鍵を電子メールで送ったり鍵サーバで探したりすることはできますが、 そのどちらも、入手した鍵が本当に思っているとおりの人のものだと確証するもの ではないのです。それを確証できるのは、「セキュア (安全)」だとみなされている 他のコミュニケーション手段 (電話帳でその持ち主を探して本人に鍵の「指紋」を 読んでもらい、それをセキュアでない経路から入手した鍵の指紋と照らし合わせて みる、など) を用いたときだけです。

これから出てくる「小技」は、それを .procmailrc に組み込むと、 定義したとおりの文章が Subject 行にあるメッセージを受け取ったとき には、Procmail というメールプロセッサから自分の公開鍵を差し出し人に自動で 送り返すようにするというものです。

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

前の段落にあるものの意味はこうです ― 「公開鍵の ASCII 式のコピーを、 どこかのディレクトリ (この場合は /clau というディレクトリ) の mykey.asc という名前のファイルの中に書いておきますよ。だから procmail さん、『send key pub』を Subject: 行に含むメッセージを 受け取ったときには、そのファイルを差し出し人に送信してくださいよ」

IMPORTANT (重要): 括弧の中に入れるのは、スペースタブ です (訳注: お分かりでしょうが、コの字型の括弧のことです)。

8.2 PGP/MIME でないメッセージに自動で検証と復号化をする

PGP/MIME を使って署名されたメッセージを受け取って、それをお好みの MUA (Mutt ですよね?) で開くときには、MUA がメッセージを 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-----
Hash: SHA1

Date: Tue, 25 May 1999 13:04:26 +0200
From: 某社 <bill@reboot.com>
Subject: アップデートのお知らせ
To: お困りの皆様方へ <pepe@casa.es>


お困りの皆様方へ:

このたび弊社の reboot99 オペレーティングシステムをお買い求め                    
いただきますと、O.E.プログラムの最新バージョンが入手できる
ことをお知らせいたします。お値段は破格の ... etc


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: KUHASIKU WA http://www.gnupg.org/ WO GORANKUDASAI

iD8DBQE774UNVQzjC/gBPiwRAmyNAJ4qzf1nlqD96c51sa1TJoxpONeYVQCfY8ve
Fiksuk/T8ahgPfWA1RWM0zk=
=kM6m
-----END PGP SIGNATURE-----

これを検証するには、ファイルに保存してコマンドラインを使うことが必要です (訳注: いいえ、今では check-traditional-pgp という機能があります。 これは既定値として「<ESC>P」に割り当てられているはずです。 manual.txt を参照してください)。 しかし、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 鍵が内部にあるが PGP/MIME でないメッセージの MIME タイプを変える

公開鍵を PGP/MIME 未対応の MUA から受信したときには、その メッセージ本文をディスク内に保存して、それから、その鍵を公開鍵束に入れ なくてはなりません (訳注: 未確認ですが、これも check-traditional-pgp で 解決されているかもしれません)。しかし、この行を .procmailrc ファイルに 含めておくと、直接 mutt から取り込むことができるようになります。

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

この procmail のメモをくれた Denis Alan に感謝します。


次のページ 前のページ 目次へ