電子メールと暗号

インターネットで電子商取引や重要な情報の交換が行われるようになると、その安全性が気になります。もともとインターネットは、学術研究の情報交換を目的とし、性善説に基づいて運営されてきたものですから、セキュリティはそれほど期待できません。このため、電子商取引ではSETのような標準的な手段が確立しつつあります。電子メールでは、PGPというフリーソフトが有名です。機種を問わず普及しているので利用者も多く、マッキントッシュなら使い方も簡単なので、重要なメッセージの交換に、ぜひ導入したいものです。

インターネットのセキュリティ

インターネットの利用が進んで、ビジネス上の重要な情報もどんどん電子メールなどでやり取りされるようになってきました。電子メールによる連絡は、手紙よりずっと手軽でしかも即時性があり、電話のように人の時間に割り込むこともなく、またFAXと違って情報の再利用が可能です。ビジネスにはうってつけのコミュニケーション手段といえるでしょう。

しかし、企業秘密に属するような情報を電子メールでやり取りしても、安全なのでしょうか。電子メールに限らず、インターネットのデータは、様々な中継点を経由して、バケツリレーのように目的地まで送り届けられます。この過程で、盗み読みされたり、ひどいときには内容を改竄される危険がないとは言えません。電子メールの機密性は、はがき程度、あるいはそれ以下と考えておくべきなのです。

公開鍵と秘密鍵

メールで送るメッセージを暗号化すれば、秘密を盗まれる心配はありません。ただ、ここで問題になるのは、暗号を解くための鍵をどうやって相手に渡すかということです。本文をそのまま送るのが危険だから暗号をかけるのに、肝心の解読鍵を裸で送付するのでは、何のための安全対策だか分かりませんね。

そこで、開閉に同じ鍵を使うのではなく、特別な二つの鍵のペア(AとB)で、暗号化と復号化を役割分担する方法が考えられました。Aで暗号化したものは、Bの鍵でなければ解読できず、逆にBによる暗号文を読むにはAが必要という仕組みです。

このうち一つの鍵を公開しておき(公開鍵)、自分宛のメッセージはその鍵を使って暗号化してもらいます(図1)。暗号化に使った鍵では解読はできないので、公開鍵は誰の手に渡っても危険がありません。解読に使うもう一方の鍵は、秘密鍵として手元に大切にしまっておけばよいのですから、マスターキーを交換するのに比べて遥かに安全です。この方法を「公開鍵方式」とか「非対称鍵方式」と呼びます。

電子署名

「秘密鍵」を解読用ではなく暗号化に用いると、メッセージが改竄されていないことを保証する「電子署名」も実現できます(図2)。

まず差出人は、定められた方法で、メッセージ(M1)の「ダイジェスト」(D1)を作成します。これはメッセージの「指紋」のようなもので、原文が一文字でも異なるとダイジェストも異なります。これを秘密鍵(Ks)で暗号化したものが電子署名で、本文とともに相手に送信します。

受信者は、差出人の公開鍵(Kp)を使って電子署名の暗号を復元(D1')。そして、同じ定められた方法を使って、届いた本文(M2)のダイジェストを作成し(D2)、署名から復元したD1'と比較します。

指紋に相当するD2とD1'が等しければ、M2とM1も同じ、つまりメッセージは改竄されていないと判断できますね。さらに、Kpで解読できる暗号(=電子署名)を作れるのはKsの所有者だけなので、差出人の本人確認もできたということになるのです。

フリーソフトPGP

この「公開鍵」を応用した電子メールの暗号化手段はいくつか考案されていますが、もっとも広く使われているのが、P.Zimmermannによって1991年に開発されたPGP(Pretty Good Privacy)というフリーソフトです。これは、米国の暗号輸出規制によって制約を受けてきたにも関わらず、UNIXからWindows、マッキントッシュまで、プラットフォームを問わず広く世界中で普及しました。現在、日本で使えるものはバージョン2.6.3iで、マッキントッシュ用のMacPGPもインターネットや雑誌の付録CD-ROMから簡単に入手できます。97年の夏には最新版であるPGP 5.0が発表され、まもなくマッキントッシュ版も登場する見込みです。

新しく鍵を作る

配布用の圧縮ファイルを解凍してMacPGPをインストールしたら、最初に行うのは、自分の公開鍵と秘密鍵の作成です。プログラムを起動して、「Key」メニューから「Generate key...」を選択して下さい。図3のようなダイアログで、鍵の長さ(暗号の強さ)などを指定するよう求められます。安全を重視するならサイズは1024 bitsを選んでおきましょう。IDは自分の名前とメールアドレスを記入します。

これでOKすると、次に図4のようにして「パスフレーズ」の入力を求められます。パスフレーズはこのあと暗号を使うときに必須になりますから、忘れないようしっかり覚えておいて下さい。

最後に、キーボードを数十回ランダムに打つように要求されます。これによって乱数を発生させ、オリジナルな鍵を作成するのです。

しばらくすると公開鍵と秘密鍵が生成され、フォルダには「pubring.pgp」と「secring.pgp」というファイルが加わります。これらは「鍵束(key ring)」と呼ばれるもので、暗号を使ってメッセージをやり取りする相手の公開鍵を追加登録することができます(この時点では、いま作成した自分の鍵しか含まれていません)。

メッセージを暗号化する

早速なにかテキストを暗号化してみましょう。例えば図5のようなメッセージを作ってファイルtest.txtに保存してください。MacPGPの「File」メニューから「Encrypt/Sign...」を選択し、ファイルダイアログでtest.txtを選びます。

次は、誰の公開鍵を使って暗号化するか(つまり受取人は誰か)の選択です(図6)。鍵束にはまだ自分の公開鍵しかありませんから、それを選んでOKします。

次の画面は暗号化のオプションを選択するダイアログです(図7)。ここでは、「Encrypt」(暗号化)を選び、右のチェックボックスは「ASCII radix-64」を選びましょう。これは、電子メールで送るために、出力をASCIIテキスト形式にするというオプションです。最後に「Do It」をクリックすると、暗号化されたファイルtest.txt.ascが作成されます。中身は図8のようになっており、電子メールの本文として送ることができます。

秘密鍵で暗号を解く

自分の公開鍵で暗号化されたメッセージは、手元の秘密鍵を使って解読できるはずですね。メニューから「Open/Decrypt...」を選び、さきほどのファイルを開いてみましょう。図9のようなダイアログが出るので、そのまま「Do It」をクリックすると、最初に登録したパスフレーズを入力するように求められます。ここで正しいパスフレーズを与えると、秘密鍵を使って暗号が解読され、オリジナルのメッセージがファイルに復元されます。

鍵の公開と鍵束への追加

さて、こうした暗号化によるメッセージ交換のためには、公開鍵をお互いに交換しなければなりません。このためには、「Key」メニューの「Extract keys...」でpubring.pgpを開き、自分の公開鍵を書き出します。このとき「Asciify the output」をチェックすることで、公開鍵がテキスト形式になるので、電子メールで送ったり、Webページ上で公開したりすることができるようになります(図10)。

逆に、このような形で受け取った公開鍵を鍵束に加えるには「Key」の「Add keys...」を使い、手に入れたファイルを選択します。これによって、この公開鍵を持つ相手に暗号化したメッセージを送ることができるようになるわけです。

電子メールとの連動など

このほかMacPGPには、電子署名など様々な機能が備わっています。また、Eudoraと連動して簡単に暗号化電子メールを送受信できるツール「ちょいプ」も公開されているので、これを使うとさらにスムーズにメッセージが交換できるでしょう。

メールをいちいち暗号化して送るのは面倒なものですが、ビジネスに安全は欠かせません。はがきと封書の使い分けのように、必要に応じてPGPを活用し、安心できるメッセージ交換を目指して下さい。

(MacFan 1998-01-01/15号)

*PGPに関してはYahoo JapanのPGPのページから多くの情報を辿ることがます。