目次>PGP/GPG暗号化ツール
ADDS Hosting Serviceへ戻る
マニュアル目次へ戻る

PGP/GPG 暗号化ツール

GPG、って何?

GPG (GNU Privacy Guard)は、PGP (Pretty Good Privacy)と対で役立つもので、webサイト上で入力されたフォームデータを暗号化し、メールで送信します。パソコンで受信したメールは、PGPによって暗号が解かれ、あなたのパソコン上で見ることができます。

ファイル、又はメールのメッセージを暗号化することができ、PGPによって解読可能となります。

GPGは特に、webサイトを通して個人情報などをやりとりをする場合に、有効です。FoemMailを改造したEncFormMail.plというCGIスクリプトにより、フォームに入力されたデータは自動的に暗号化され、あなたのメールアドレスまで届きます。あなたは、暗号化されたメールをパソコンで受信し、PGPを使って解読します。フォーム入力ページをSecure Server内に置いておけば、お客様のパソコンからあなたのパソコンまでの経路全てが暗号化されるということです。 インターネットを通じて、クレジットカード番号を入力してもらうようなページを作成するには必須の機能といえるでしょう。

サーバには予め、PGPコマンドをGPGコマンドに変換するWrapperプログラムをインストールしていますので、あなたのサーバ上でPGPコマンドを使用できます。

このマニュアルには、セットアップの方法と、webサイト上でのGPGの使い方を解説しています。また、これ以上の情報は GNU Privacy Guard web site をご覧ください。

GPGの使い方

あなたのサーバがプレミアムプランのサーバであれば、予め、GPGにアクセスできるように設定されています。また、暗号化フォームメールスクリプトについて下にある「mattfm.cgiを使う」をご覧ください。

あなたが、公開鍵を使った暗号化について詳しくなければ、以下のページを参考にしてください。GPG/PGPについてさらに詳しい解説があります。

簡単な例ですが、あなたがジョーという人に暗号化したメールを出したいとしましょう。あなたは、メッセージを暗号化するためにジョーの公開鍵を使用します。ジョーがあなたからのメールを受信したときジョーは暗号を解くためにジョーのプライベートキー(個人の鍵)を使用します。また、このとき、あなたの公開鍵リング(public key ring)に、ジョーの公開鍵がなくてはなりません。

EncFormMail.plを使って、フォームからメールを受信するには、あなたは、あなた個人の公開鍵とプライベート鍵をパソコンのハードディスク上に作成し、置いておく必要があります。そして、あなたの公開鍵をwebサイトにアップロードし、GPG公開鍵リングにインポートします。そうすると、フォームからのデータを暗号化し、そのままあなた自身に、暗号化されたメールが届きます。

PGP Softwareをあなたのパソコンにインストールしましょう

PGPソフトウエアをまだ使っていなければ、まず、インストールする必要があります。フリーウエアのバージョン(非商用)が The International PGP Home Page にてダウンロードできます。

以下の説明はWindows用の PGP 5.5 に関する説明ですが、ほぼ同じ考え方でインストール可能です。

ダウンロードした PGP software をダブルクリックして、インストールを始めましょう。出てくる手順通りに進んでください。途中、あなた自身の公開鍵/プライベート鍵を作るために、プロンプトが表示されます。そこでは、あなたのE-mailアドレスを入力してください。このときのメールアドレスは、必ず暗号化されたメールを受信するメールアドレスを入力してください。

あなたのGPG Key Pairをつくりましょう

あなたのサーバにGPG公開鍵/プライベート鍵のペアを作成する必要があります。このときメールアドレスが必要になるのですが、必ず、PGPのインストールで使用したメールアドレス以外を使用してください。こうしないと、暗号が解けません。このとき、アカウントを設定しなくてもメールを受信できるというサーバの機能が活きてきます。例えば、anyaddress@yoursite.comというメールアドレスを使用して、GPGの鍵ペアを作ることができます。

GPG鍵ペアを作るには、サーバにtelnetでログインし、以下のコマンドを打ってください。

gpg --gen-key

/home/username/.gnupg というディレクトリが作成されます。その中にはいくつか、初期設定のファイルが作られます(空の公開鍵 pubring.gpgや空のプライベート鍵も含みます)。あなたの鍵ペアを作るには、GPGがいくつか質問をしてきます。ほとんどがデフォルトの設定で大丈夫ですが、詳しく知りたい方は Creating a Key in the GnuPG Mini HOWTO をご覧ください。以下デフォルトでの入力例です。

  • GPG はどの種類の鍵が欲しいのかたずねます。1 と入力します。- DSA + ElGamal (it is not patented);
  • 次に鍵のサイズを聞いてきます。そのままEnterを押してください。 default (1024);
  • 鍵の期限を聞いてきます。通常 0 を選択します (never expire);
  • あなたの実名とメールアドレスを入力します。 (e.g. Joe Bloggs or Your Company),
    このときのメールアドレスはPGPの時とは違うアドレスです。
    その後は、コメントを聞いてきますが、そのままEnterを押します。
  • 内容の確認します。その内容でよければ O (for OK);
  • あなたの秘密鍵に対するパスワードを聞いてきます。このパスワードは、容易に推測されないようなものにしてください。数字と大文字小文字を混ぜたものがベストです。そして、どこかに書き留めて置いてください。
  • GPGはあなたの鍵を作成し始めます。もし、画面が止まってしまうようでしたら、キーボードをランダムにタイプしてみてください。 そして、最後に "public and secret key created and signed" というメッセージが出れば成功です。

あなたの公開鍵をwebサイトにアップロード

まず、パソコンにインストールしたPGPソフトウエアを使用して、PGP公開鍵をファイル(e.g. yourname.asc)に書き出します。PGPKeysのウインドーで、鍵リストの中からあなたの名前の鍵をクリックして選択します。KeysメニューからExportを選び、名前を付けて保存します。このとき、ファイル名にはスペースを入れないでください。このファイルをサーバの/home/username/.gnupgフォルダにASCIIモードでアップロードしてください。

あなたの公開鍵をサーバのGPG鍵リングに登録しましょう

サーバにTelnetでログインし、.gnupgディレクトリへ移ってください。(cd .gnupg)
次に以下のコマンドを打ってPGP公開鍵をGPG公開鍵リングへ登録させます。

gpg --import < yourname.asc

yourname.ascはアップロードしたファイル名です。

あなたの公開鍵に署名しましょう

今登録したPGP鍵に自分の署名をします。そのためにあなたのGPG鍵を使用します。PGP鍵をsales@yoursite.comのメールアドレスで登録したのであれば、telnetでログインし、.gnupgディレクトリで次のコマンドを打ってください。

gpg --edit sales@yoursite.com

Command> のプロンプトが現れます。ここで sign と打ち込むと、sales@yoursite.comの鍵の詳細が表示されます。そして、それに署名するのかどうか聞いてきます。y と打ってください。署名を確認するために、GPGパスワードを入力してください。

再びCommand> プロンプトになったら、q を打って変更を保存するかどうか聞かれたら、y と打ってください。

これで、GPG鍵リングを使用する準備は整いました。では、secring.gpgをパソコンにダウンロードし、安全な場所に保存してください。

mattfm.cgiを使う

GPG/PGP対応Perlフォームメールスクリプト mattfm.cgi をこちらからダウンロードします。ファイル内の設定項目を編集し、
/home/yourname/secure/cgi-bin/
へアップロードしてパーミッションを755に設定します。

SSLサーバにフォーム入力ページを作成し、そのデータを暗号化してメールで送るには、フォームページの中に以下の文をフォームタグとして入れてください。

<form action="https://SSLサーバ名/cgi-yourname/mattfm.cgi" method="POST">
を記述します。

以下のvalue値は、例です。
recipient (受信者のメールアドレス)
<input type=hidden name="recipient" value="youranme@yourname.com">
subject (メールの件名)
<input type=hidden name="subject" value="From SSL">
required (必須項目)
<input type=hidden name="required" value="email,address">
redirect (送信後に表示するURL)
<input type=hidden name="redirect" value="https://SSLサーバ名/yourname/thank.html">

mattfm.cgi ファイルの以下の部分を、実際にメールを受信するアドレスに変更します。

$gpg_recipient = '<yourname@yourname.com>';

二つ目のフォームページを作成し、受信アドレスが違う場合は、

/home/yourname/secure/cgi-bin/mattfm.cgi
を複製し
/home/yourname/secure/cgi-bin/mattfm2.cgi
を作成します。
mattfm2.cgi のパーミッションが755になっているか確認して下さい。

mattfm2.cgi ファイル内の、受信者アドレスを編集してください。

$gpg_recipient = '<yourname@yourname.com>';

この場合のフォームタグは、
<form action="https://SSLサーバ名/cgi-yourname/mattfm2.cgi" method="POST">
となります。

暗号文を解読

あなたのページを訪れたビジターがフォームに記入し送信すると、暗号化されたメールがあなたに届きます。このメッセージを解読するためにPGPソフトウエアを使用します。

  • メッセージのPGP部分を選択してください。 (including BEGIN and END lines);
  • 選択した部分をクリップボードにコピーします。 (Ctrl-C);
  • 画面の右下にあるステイタスバーの中にPGPトレイがありますので、その上で右クリックしてください。
  • PGPトレイメニューがでましたら、Decrypt/Verify clipboard を選択します。
  • プロンプトがでたら、あなたの秘密鍵のパスワードを入力します。
  • もう一度パスワードを入力すると、解読されたメッセージが現れます。

GPG,PGPをあなた自身のプログラムで使用する

あなた自身が作成したCGIプログラムの中でも、GPG,PGPを使用することができます。サーバにはGPGだけがインストールされていますが、Wrapperプログラムもインストールされているため、PGPコマンドは自動的にGPGコマンドに変換されます。

さらに、詳しい説明は以下をご参照ください。

マニュアル目次へ戻る
ADDS Hosting Serviceへ戻る
目次>PGP/GPG暗号化ツール