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

6. PGP と Mutt との統合

送信メッセージに行なう動作 (署名か暗号化、またはその両方) は、「y」を 押して送信してしまう前に、「p」オプションで見ることのできるオプション メニューの中で正確に選択しましょう。その動作を選んでも、画面ではメッセージ ヘッダのうちの PGP 行しか変化しません。しかし「y」キーで メッセージを送信するときには、メッセージの署名を有効にするためにパスフレーズ が聞かれたり、暗号化のためにどの公開鍵を使うか (これは公開鍵束の中に受信者 の鍵が見あたらない場合ですが) 聞かれたりします。

MEMO: パスフレーズが聞かれたときに打ち間違うと Mutt が「ハング」 したようになります; しかしそうではなく、再入力を待っているのです。 再入力するためには、<Enter> キーを押してから <Ctrl>F (<Ctrl> を押しながら F) を押してメモリからパスフレーズを 消去してください。その次にメッセージ送信を (「y」で) 再試行し、 パスフレーズを再入力します。

この手続きをすると MuttPGP/MIME をメッセージ送信に 使います。すると、(署名だけを選択したときは) 送信するファイルの一覧には 一つ、署名のファイルが増えます。または、メッセージ全体 (あらゆる MIME パーツ) を暗号化して、二つの MIME パーツだけにしてしまいます。 そのときの最初の一つは PGP/MIME のバージョンで、二番目のは暗号メッセージ (その中にすべての MIME パーツが入っている) で、もし署名も選択していたなら、 そのパーツには署名もされています。

Memo: 何らかの理由で受信者のメールユーザエージェントが MIME を 使えないなら、署名をメッセージ本体に含める必要があるかもしれません。 PGP5GnuPG の、application/pgp についての章をご覧ください。

Mutt は、PGP/MIME を使った受信メールには自動で署名の検証 や復号化を試みます。 Procmail のメモと小技 をご覧ください。そこでは、MIME タイプを正しく設定していないメッセージ が来たときに自動的に MIME タイプを変える方法が注解されています。

6.1 付加的な設定ファイル

次の章には PGP2PGP5、また GnuPG を簡単に 使えるようにする Mutt 設定ファイルの編集方法が書いてあります。 (訳注: ただし、新しい Mutt を使っているなら、それらは動作しないかも しれません。PGP-Notes.txt, gpg.rc, pgp2.rc, pgp5.rc, pgp6.rc 等があれば そちらを参照するようお勧めします)

編集するのは、.gnupgp.mutt という名前の新しい設定ファイルです (これ は自分で決める名前なので、メイン設定ファイル ~/.muttrc で 設定しておけば、他のどんな名前にすることもできます) 。

~/.muttrc ファイルの最後の行にその新しい設定ファイルの 絶対パス (場所) を含めることによって、使うことができるようになります。 このファイルや他の付加的な設定ファイルを入れるディレクトリは、適切な 権限があればどこでもかまいません (前の章では ~/Mail/ に 入れました)。つまりホームディレクトリの中ならどこでも結構ですし、どんな 名前にでもできます。

~$ mkdir mutt.iroiro

では、そこに付加的な設定ファイル .gnupgp.mutt をコピー (または 作成) して、次にその呼び出し地点を .muttrc ファイルの中で source コマンドによって指定しましょう。下記のようになります。

source ~/mutt.iroiro/.gnupgp.mutt

これで Mutt は、.gnupgp.mutt の中で設定した変数を、あたかも 直接 .muttrc で設定したかのように受け入れるようになります。

これは設定ファイルが巨大になったり、その中の順番がバラバラになったり するのを防ぐ、良い方法です。さらに他のあらゆる変数の設定も、こうやって 別々のファイルで行なうことができます。例えば、上記と同様 vimMutt のデフォルトのエディタに使いながらも、コマンドライン から vim を使うときの .vimrc とは別の設定ファイルを使うよう に .muttrc へ書くことができます。最初に、~/.vimrc を 付加的な設定ファイルのディレクトリ ~/mutt.iroiro/ に コピーしてください。そして名前を別のものにします (例 vim.mutt)。

$ cd /home/jibun ~$ cp .vimrc mutt.iroiro/vim.mutt

次に、vimMutt のエディタとして使われるときに変化して ほしい変数の設定を変えて、最後に .muttrc を編集してこの変更を 反映させます。

set editor="/usr/bin/vim -u ~/mutt.iroiro/vim.mutt"

この最後の一行によって、Mutt が外部エディタに Vim を、 必要なオプションをつけて使うように設定しているのです。

6.2 一般的な設定変数

Mutt には三つの公開鍵暗号プログラムに共通して使用する変数があります。 これらの変数は二値です。 つまり set (有効) か unset (無効) で設定します。

設定ファイル (~/.muttrc および ~/mutt.iroiro/.gnupgp.mutt、また何でも自分の使っているもの) において、記号「#」以下はコメントであり、無視されます。 それで、ここからはその記号を使って各変数にコメントすることにしましょう。

unset pgp_autosign

# この変数が有効だと、Mutt はすべての送信メッセージに署名
# するかどうかを聞いてきます (1)

unset pgp_autoencrypt

# この変数が有効だと、Mutt はすべての送信メッセージに暗号化
# するかどうかを聞いてきます (1)

set pgp_encryptself

# 暗号化したい送信メッセージを、暗号で保存します
# (一般的な設定変数 set copy=yes が必要)
# (訳注: 最近の Mutt には存在しないようです)

set pgp_replysign

# 署名されたメッセージに返事を出すときに、返信メッセージもまた
# 署名されるようになります

set pgp_replyencrypt

# 暗号化されたメッセージに返事を出すときに、返信メッセージもまた
%num; 暗号化されるようになります

set pgp_verify_sig=yes

# 署名された受信メッセージを自動的に検証したいですか?
# もちろんそうでしょう!

set pgp_timeout=<n>

# パスフレーズを入力後 <n> 秒後にメモリキャッシュから
# 消去する (2)

set pgp_sign_as="0xABC123D4"

# 送信メッセージを署名するためにどの鍵を使いたいですか?
# Memo: これをユーザ ID にすることも可能ですが、
# 異なる鍵に同じユーザ ID があると混乱のもとになりかねません

set pgp_strict_enc

# PGP が求めたときには「quoted-printable」形式を使います
# (訳注: 日本人は unset しておいた方がよいかもしれません)

unset pgp_long_ids

# 64 ビットの鍵 ID を使わず、32 ビット鍵 ID を使います

set pgp_sign_micalg=<some>

# メッセージ内容証明アルゴリズムです(訳注: 最近の Mutt には
# 存在しない変数です)。この <some> は次のうちのいずれかです (3)

続く三つの章では PGP の各バージョンに対する設定変数が説明されます。 四つ目の章では複数のバージョンの PGP を使っているときにそれらの変数を どう変更すればよいか説明します。

(1) 署名するたび、また暗号化するなら受信者を選ぶたびに Mutt がパスフレーズの入力を要求するので、この変数を有効にすると 不便かもしれません。たぶんこの変数を無効にしたいと思うことでしょう。 これは特に、メッセージ受信者全員の公開鍵がないときに暗号化するなら 有効にしておくべき変数と言えます。

(2) 署名したり復号化したりするメッセージの量に応じて、 キャッシュメモリの中にパスフレーズを保存しておく時間を増減させたいと 思うことでしょう。このオプションは、新規メッセージを署名したり受信 メッセージを復号化したりするたびにパスフレーズを入力する手間を省いて くれます。Warning (警告): パスフレーズをキャッシュメモリに保存する のは安全とは言えません。ネットワークに接続されているシステムなら特にそうです。

(3) これは署名に使う鍵にだけ必要です。鍵が コンポーズメニューから選ばれると、Mutt はそのアルゴリズムで 計算をすることになります。

6.3 PGP2 の設定変数

PGP2 を Mutt-i で使うには下記の行を ~/mutt.iroiro/.gnupgp.mutt ファイルに追加する必要があります。 (訳注: くりかえしますが、最近の Mutt では、付属してくる pgp2.rc の方が適切です)

set pgp_default_version=pgp2
set pgp_key_version=default
set pgp_receive_version=default
set pgp_send_version=default
set pgp_sign_micalg=pgp-md5
set pgp_v2=/usr/bin/pgp
set pgp_v2_pubring=~/.pgp/pubring.pgp
set pgp_v2_secring=~/.pgp/secring.pgp

ご存じのとおり、~/.pgp/pubring.pgpsecring.pgp というファイルが存在していなくてはなりません。PGP2 のさらなる情報は man pgp コマンドでどうぞ。

6.4 PGP5 の設定変数

PGP5 を Mutt-i で使うためには、下記の行を ~/mutt.iroiro/.gnupgp.mutt ファイルに追加する必要があります。 (訳注: くりかえしますが、最近の Mutt では、付属してくる pgp5.rc の方が適切です)

set pgp_default_version=pgp5
set pgp_key_version=default
set pgp_receive_version=default
set pgp_send_version=default
set pgp_sign_micalg=pgp-sha1
set pgp_v5=/usr/bin/pgp
set pgp_v5_pubring=~/.pgp/pubring.pkr
set pgp_v5_secring=~/.pgp/secring.skr

お分かりでしょうが、~/.pgp/pubring.pkrsecring.pkr というファイルが存在していなくてはなりません。PGP5 に関するさらなる情報は man pgp5 というコマンドでどうぞ。

6.5 GnuPG の設定変数

GnuPGMutt-i で使うには、下記の行を ~/mutt.iroiro/.gnupgp.mutt ファイルに追加する必要があります。 (訳注: くりかえしますが、最近の Mutt では、付属してくる gpg.rc の方が適切です)

set pgp_default_version=gpg
set pgp_key_version=default
set pgp_receive_version=default
set pgp_send_version=default
set pgp_sign_micalg=pgp-sha1
set pgp_gpg=/usr/bin/gpg
set pgp_gpg_pubring=~/.gnupg/pubring.gpg
set pgp_gpg_secring=~/.gnupg/secring.gpg

ご存じのとおり、~/.gnupg/pubring.gpg および secring.gpg というファイルが存在していなければなりません。man gpg.gnupg, man gpgm, man gpg というコマンドで、さらに GnuPG の情報を ご覧ください。

6.6 混合時の設定変数

複数の PGP ソフトウェアを使いたいならば、前述の変数をいくつか修正する 必要があります。ただ実際には、無駄なバージョンの変数を消すだけです。

たとえば、もし GnuPG をデフォルトの署名道具として使うとすると、 GnuPG/PGP を使う Mutt のあらゆるメニューコマンドはこのプログラムを 署名、復号化、暗号化、検証、等々の動作に使用することになります。 そのようにするため、いったん $pgp_default_version という設定変数を 有効にしなくてはなりません。それで、こうしてください。

set pgp_default_version=gpg

さて、三種類すべてのプログラムを使うには ~/mutt.iroiro/.gnupgp.mutt ファイルがこんな感じに なっていればよいでしょう。 (訳注: この内容も最近の Mutt の設定変数とは異なっています。 新しい Mutt では gpg.rc, pgp2.rc, pgp5.rc, pgp6.rc 等の好みの内容を 混合すれば動くと思われます)

set pgp_default_version=gpg     # デフォルトで使うバージョン

set pgp_key_version=default     # デフォルトで使う鍵
                                # この場合は gnupg になります

set pgp_receive_version=default # 復号化のデフォルトのバージョン
set pgp_send_version=default    # 最初の行で定義したデフォルト (gpg) になります

set pgp_gpg=/usr/bin/gpg        # どこに GnuPG 実行ファイルがあるか
set pgp_gpg_pubring=~/.gnupg/pubring.gpg        # GnuPG 用の公開鍵ファイル
set pgp_gpg_secring=~/.gnupg/secring.gpg        # GnuPG 用の秘密鍵ファイル

set pgp_v2=/usr/bin/pgp         # どこに PGP2 実行ファイルがあるか
set pgp_v2_pubring=~/.pgp/pubring.pgp           # PGP2 用の公開鍵ファイル
set pgp_v2_secring=~/.pgp/secring.pgp           # PGP2 用の秘密鍵ファイル

set pgp_v5=/usr/bin/pgp         # どこに PGP5 実行ファイルがあるか
set pgp_v5_pubring=~/.pgp/pubring.pkr           # PGP5 用の公開鍵ファイル
set pgp_v5_secring=~/.pgp/secring.skr           # PGP5 用の秘密鍵ファイル


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