このハウトゥの目的とは違いますが、だれからの公開鍵を入手するにせよ、 もっとも安全な方法は、それを直に手渡ししてもらうことだと言っておきましょう。
長い間 (なんと長いことか) そうなのですが、これには簡単な方法がありません。 公開鍵を電子メールで送ったり鍵サーバで探したりすることはできますが、 そのどちらも、入手した鍵が本当に思っているとおりの人のものだと確証するもの ではないのです。それを確証できるのは、「セキュア (安全)」だとみなされている 他のコミュニケーション手段 (電話帳でその持ち主を探して本人に鍵の「指紋」を 読んでもらい、それをセキュアでない経路から入手した鍵の指紋と照らし合わせて みる、など) を用いたときだけです。
これから出てくる「小技」は、それを .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 (重要): 括弧の中に入れるのは、スペース と タブ です (訳注: お分かりでしょうが、コの字型の括弧のことです)。
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 な署名メッセージと暗号メッセージに 適用されます。
公開鍵を 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 に感謝します。