• お問い合わせ
  • ユーザー登録
ドキュメント
サポート案内
ユーザー登録
サポートセンター
ドキュメント
ダウンロード
セキュリティ
よくある質問とその回答
製品マニュアル
カタログ
収録パッケージ一覧


ツールの解説 No. 119

GnuPG を使用して文書を暗号化する


【解説】

GnuPG(GNU Privacy Guard) はファイルの暗号化・復号化を行うための強力なツールです。
ネットワークを介してファイルを送信する場合、改竄やなりすましなど様々なセキュリ
ティ上の脅威にさらされます。GnuPGは、公開鍵暗号方式による暗号化、復号化、署名な
どの手段により、ファイルを保護します。

【共通鍵暗号方式】

相手と鍵を共有し、暗号化・復号化を行います。

1) 暗号化

$ gpg -c topsecret.txt

パスフレーズを入力します。暗号化されたtopsecret.txt.gpgが生成されます。

2) 復号化

$ gpg topsecret.txt.gpg

暗号化時に使用したパスフレーズを入力します。
復号化されたtopsecret.txtが生成されます。

【公開鍵暗号方式】

お互いに秘密鍵と公開鍵を用意し、送信者は受信者の公開鍵を用いて暗号化します。
受信者の公開鍵で暗号化されたファイルは、受信者の秘密鍵でのみ復号化できます。

1) 鍵の生成

次のコマンドを実行します。

$ gpg --gen-key

---------------------------------------------------------
いくつかの質問がありますので、回答してください。

すきな鍵の種類を選択してください:
   (1) DSAとElGamal (既定)
   (2) DSA (署名のみ)
   (4) ElGamal (署名と暗号化)
どれにしますか?
---------------------------------------------------------
"1"を入力

---------------------------------------------------------
どの鍵長にしますか? (1024)
---------------------------------------------------------
規定値の"1024"を入力

---------------------------------------------------------
鍵の有効期間は? (0)
---------------------------------------------------------
規定値の"0"(無期限)を入力

---------------------------------------------------------
本名:                  <- あなたのフルネーム 
電子メール・アドレス:  <- あなたのメールアドレス
コメント:              <- コメント
---------------------------------------------------------
本名、メールアドレス、コメントをそれぞれ入力します。
これらは、鍵のユーザIDとして
"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"
の形式で構成されます。

---------------------------------------------------------
名前(N)、コメント(C)、電子メール(E)の変更、またはOK(O)か終了(Q)?
---------------------------------------------------------
入力値を確認したら、'O'を入力

---------------------------------------------------------
パスフレーズを入力:  <- パスフレーズを入力
パスフレーズを再入力:  <- パスフレーズをもう一度入力
---------------------------------------------------------
パスフレーズを入力します。一般的なパスワードよりも長い文章を指定する事が可能で
あり、空白を含むこともできます。ただし、メモをしなくても忘れない内容にしてくださ
い。

最後に鍵の作成が行われます。CPUによっては処理に時間がかかります。その間に、
マウスやキーボードをランダムに操作してください。生成される乱数がより複雑になり
ます。

2) 鍵の無効化証明書を生成

ここで、あらかじめ鍵の無効化証明書を生成しておきます。もし、パスフレーズを忘れて
しまったり、それが外部に漏れてしまった場合など、あなたの秘密鍵が安全でなくなった
場合に、この無効化証明書を使用してあなたの公開鍵を無効とすることができます。

$ gpg -o noriyuki.revoke --gen-revoke noriyuki@isp.com

作成対象の鍵が表示されますので、よければ'y'を入力します。

---------------------------------------------------------
Please select the reason for the revocation:   
  1 = 鍵がパクられました
  2 = 鍵がとりかわっています
  3 = 鍵はもう使われていません
  0 = Cancel
(Probably you want to select 1 here)
あなたの決定は?
---------------------------------------------------------
理由を尋ねられるので'1'を入力

---------------------------------------------------------
Enter an optional description; end it with an empty line:
>
---------------------------------------------------------
コメントの入力です。空行を入力します。

---------------------------------------------------------
Is this okay?
---------------------------------------------------------
'y'を入力

---------------------------------------------------------
パスフレーズを入力:
---------------------------------------------------------
鍵のパスフレーズを入力

作成された無効化証明書はFDなどにコピーして大切に保管しておきます。
実際に、無効化証明書を適用して鍵を無効化するには

$ gpg --import noriyuki.revoke

と実行します。

3) 公開鍵の出力

$ gpg -o noriyuki.pub [-a] --export noriyuki@isp.com

-aを指定するとASCII形式での出力となります。メール等に張り付ける際に利用します。
作成した公開鍵は、ファイルを交換する相手に渡しておきます。

4) 相手の公開鍵の入手

受信者の公開鍵を入手した際には、それをデータベースに追加しておきます。

$ gpg --import somebody.pub

公開鍵の一覧は次のコマンドで確認できます。

$ gpg --list-keys

受け取った公開鍵が本物であることを確認するためには、鍵の指紋を確認します。

$ gpg  --fingerprint

5) キー署名

受け取った公開鍵が信頼できるものと確信できるときは、その鍵に対してこちらが署名
を行います。キー署名が行われるまでその公開鍵は信用されないため、使用時に警告が
表示されます。mew を使用してメールを暗号化する場合などに必要になります。

$ gpg --sign-key somebody@someisp.net

6) 暗号化

相手の公開鍵を使用してファイルを暗号化します。

$ gpg -e [-a] -r somebody@someisp.net topsecret.txt

暗号化されたファイルtopsecret.txt.gpgが生成されます。
-aを追加すると、ASCII形式の暗号化ファイルtopsecret.txt.ascが作成されます。メール
等に張り付ける場合に使用します。

7) 復号化

自分の公開鍵で暗号化されたファイルを秘密鍵で復号化します。

$ gpg -d topsecret.txt.gpg

【電子署名】

ファイルに対して、署名を書き込むことができます。
秘密鍵で署名されたファイルは、本人の公開鍵を使って認証することによって、たしか
に本人から送られたファイルであることを確認することができます。暗号化と署名を
同時に適用すれば、より安全性が高まります。

ファイルdatafileに署名を付加するには、次のように実行します。

$ gpg -s datafile

また、次のように実行するとASCII形式での署名となります。メール等に張り付ける際に
利用します。

$ gpg --clearsign datafile

受け取ったファイルの署名を確認するには、

$ gpg --verify datafile

と実行します。

【 mewによる暗号化 】

$HOME/.xemacs ファイルに以下の行を追記します。

[$HOME/.xemacs]
------------------------------------------------------------------------------
(autoload 'mew "mew" nil t)
(autoload 'mew-send "mew" nil t)
(setq mew-mail-domain-list '("turbolinux.co.jp"))
(setq mew-icon-directory "/usr/lib/xemacs/site-packages/etc/mew/")

(setq mew-prog-pgp "gpg")            ←追加
(setq mew-from "noriyuki@isp.com")   ←追加
------------------------------------------------------------------------------

mew-from のところは、gpg --list-keysで表示される自分のメールアドレスを登録して
おいてください。

また、mewでメールが使用できるように、あらかじめ imsetup コマンドでメール送受信
の設定を行っておいてください。

以上の設定が終わっていれば、xemacs 起動後 [Alt]+x mew と入力することで、mew が
起動します。mew の起動後すぐにPOPなどのパスワードの入力を求められます。

作成した文書を暗号化するには、メニューバーに表示されている Encrypt ボタンを押し
てください。

【参照】

GnuPG
http://www.gnupg.org/
キーワード
GnuPG Mail

関連文書
(none)


Last modified : Wed Mar 05 JST 2003 # 3