クラッカがメールの送信者をなりすますことは簡単にできてしまう。熟練したクラッカは,ニセのヘッダーをそれらしく作って送りつける。こうなると,受信者が見分けるのは,ほとんど不可能になる。重要な内容のメールは,内容を証明する手だてが必要になる。

 クラッカがメールの送信者をなりすますことは,意外と簡単にできてしまう(図1)。受信メールには,送信元や返信先,中継してきたサーバー名などの情報がヘッダー部分に残る。しかし,熟練したクラッカは,ニセのヘッダーをそれらしく作って送りつける。こうなると,受信者が見分けるのは,ほとんど不可能になる。

図1●なりすましは意外に簡単<br>世界中のサーバー同士がつながるSMTPの基本は,「相手を信じる」こと。悪用されればなりすまされてしまう。
図1●なりすましは意外に簡単
世界中のサーバー同士がつながるSMTPの基本は,「相手を信じる」こと。悪用されればなりすまされてしまう。
[画像のクリックで拡大表示]

 さらに,クラッカにメールが横取りされれば,メールの内容が書き換えられる可能性もある。契約書など,とくに重要な内容のメールは,内容を証明する手だてが別に必要になる。

S/MIMEやPGPが有効

 これらの危険に対して,メール・サーバーは無力である。受信メールのヘッダーの内容にも期待できない。

 では,どうするか。POPやSMTPといったメール送受信のしくみとは別立てで,やりとりする内容や送信者の身元を証明するデータをメールに追加するのである。具体的には,S/MIME(エスマイム)PGP(ピージーピー)というしくみを使う(図2(1))。

図2●なりすましを防ぐ署名と暗号<br>公開鍵暗号というしくみを使って署名を付けると,なりすましを防げる。さらにメール本体の暗号化もできる。
図2●なりすましを防ぐ署名と暗号
公開鍵暗号というしくみを使って署名を付けると,なりすましを防げる。さらにメール本体の暗号化もできる。
[画像のクリックで拡大表示]

 S/MIMEやPGPでは,送信者の身元とメールが改ざんされていないことを証明するために,特別なデータを送信メールに添付する。電子署名と呼ばれるものだ。電子署名を作れるのは,公開鍵とベアになった秘密鍵を持っている送信者本人だけという公開鍵暗号方式の特徴を利用している。しくみを確認しておこう。

 送信側のメール・ソフトは,最初にメール本体からメッセージ・ダイジェスト(ハッシュ値)というデータを作る。メール本体が少しでも変わるとメッセージ・ダイジェストも変わるようになっているので,クラッカなどが改ざんしたことをあとで確かめられる。

 次にメール・ソフトは,このメッセージ・ダイジェストを送信者の秘密鍵で暗号化し,電子署名の中に入れる。そして,電子署名をメール本体とともに相手に送る。

 一方,電子署名付きメールを受け取った受信者は,電子署名に含まれている暗号化されたメッセージ・ダイジェストを送信者の公開鍵で復号化する。また,並行して受け取ったメール本体からメッセージ・ダイジェストも計算する。

 最後に受信メールから作ったメッセージ・ダイジェストと,署名から復号化したメッセージ・ダイジェストを比較する。一致すれば,本人からの改ざんされていないメールだとわかる。

メール本体の暗号化も可能

 本人確認と改ざん検出のしくみは,ここまでである。ただ,S/MIMEやPGPは,メール本体を暗号化することもできる。むしろ,S/MIMEやPGPは,電子メールの暗号化のための技術だと思っている人の方が多いだろう。

 しくみの話が続いてしまうが,メールの暗号化の方もざっと確認しておこう(図2(2))。送信側のメール・ソフトは,まず受信者の公開鍵を手に入れておく。そして送信側がメール本体を任意の共通鍵で暗号化し,この共通鍵を公開鍵で暗号化する。こうして暗号化したメール本体と,暗号化した共通鍵を相手に送る。

 これを受け取った受信側は,自分の秘密鍵で共通鍵を復号化し,その共通鍵でメール本体を復号化する。

 こうすれば,やりとりされるメールは受信側の秘密鍵でしか復号化できないので,受信者本人だけが読めるメールをやりとりできる。

まずは電子証明書を入手

 では,Outlook ExpressでS/MIMEを使えるようにしよう(図3)。

図3●電子署名の設定方法<br>まず電子証明書を取得。次にメール・ソフトを設定する。
図3●電子署名の設定方法
まず電子証明書を取得。次にメール・ソフトを設定する。
[画像のクリックで拡大表示]

 まず,自分の電子証明書を手に入れることからはじめる。契約者向けに用意されている,プロバイダの電子証明書発行サービスを利用すればよい。

 Webブラウザで,電子証明書発行サイトにアクセスして,必要事項を記入する。ニフティの場合,Webページのメニューから電子証明書発行サービスのページを呼び出す(図3(1))。そして「発行する」ボタンをクリックし,指示に従って必要な項目を入力すれば,その場で電子証明書が入手できる。実際には,アクセスしているWebブラウザに自動的に電子証明書がインストールされる。

ボタンで暗号化をオン・オフ

 電子証明書をインストールしたら,メール・ソフトの設定に移ろう。

 Outlook Expressなら,ツール・メニューの「オプション」を開き,「セキュリティ」タブをクリックする。表示されたウインドウで「デジタルID」ボタンをクリックすれば,発行された証明書が確認できる(図3(2))。

 そのうえで「すべての送信メッセージにデジタル署名を追加する」の項目をチェックすれば,送信メールに電子署名が自動的に追加されるようになる。「すべての送信メッセージの本文と添付ファイルを暗号化する」にチェックを付ければ,メールが暗号化される。

 ただし,暗号化の項目にチェックを付けておくのは,避けた方がいいかもしれない。メールを暗号化するには,相手の公開鍵を事前に入手しておく必要がある。しかし,初めて送る相手の公開鍵はわからない。こうした相手に暗号化メールを送ろうとすると,Outlook Expressはエラー・メッセージを表示する。

 それなら,必要なときだけメールを暗号化しよう。Outlook Expressでは,メール作成ウインドウのツールバーに「署名」と「暗号化」を意味するアイコンが表示される。暗号化アイコンをクリックすれば,簡単にそのメールだけを暗号化できる。

署名はじゃまにならない

 逆に,本人確認や改ざん検出に威力を発揮する電子署名は,最初から有効にしておいてもかまわない。電子署名は,送信者本人の秘密鍵だけを使うからである。仮に,相手がS/MIMEに対応していないメール・ソフトを使って受信しても,署名は小さな添付ファイルとして見えるだけで実害はない。

 S/MIMEなどの暗号メールを使うと,ウイルス対策ソフトの効き目がなくなってしまう点も注意すべきである。プロバイダやパソコンのウイルス対策ソフトは,暗号化されているメールの内容を解読できないので,ウイルス対策ソフトがウイルスを検出できなくなってしまう。