このページの本文へ

前へ 1 2 次へ

電子メールの秘密 第5回

メールサーバの機能とセキュリティ

メールを受け取る仕組みはどうなっていますか??

2009年07月28日 09時00分更新

文● 遠藤哲

  • この記事をはてなブックマークに追加
  • 本文印刷

安全なメールの送信

 メールの送受信はSMTPやPOPなどのプロトコルによって行なわれている。これらのプロトコルは、テキストベースのプロトコルでありASCII文字で通信を行なっている。そのため、パケットキャプチャなど使って通信されているIPパケットをモニタすると、通信内容が丸見えになってしまう。

 POPでメールを受信するためにユーザー認証を行なう際には、ユーザーIDとパスワードも丸見えになるため、APOPという手法によってパスワードを暗号化する。しかしAPOPで保護されるのはユーザー認証の部分だけで、それ以外の通信が丸見えになってしまうことは防げない。また、APOPには脆弱性も見つかっており、単独で使うのには不安が残る。

 そこで、Webの暗号化技術で使われているSSL(Secure Sockets Layer)を利用して通信を暗号化する方法も考えられた。そうしたプロトコルがPOP3S(POP3 over SSL)やIMAP4S(IMAP4 over SSL)、SMTPS(SMTP over SSL)である。この技術は、メールクライアントとメールサーバソフトの双方がSSLに対応していなければ利用できない。有名なソフトは多くがSSLに対応しているので、基本的にはメールクライアントのアカウント情報の設定だけで使えるはずだ(図2)。

図2 SMTPS/POP3S/IMAP4Sの仕組み

 ユーザー側で設定するのは、アカウント情報の中の送信サーバ、および受信サーバのポート番号の部分である。SSL接続を利用したSMTPまたはPOP3/IMAP4のセッションは、接続するサーバ側のポート番号で識別される。SMTPSは465番、POP3Sは995番、IMAP4Sは993番と決められている。これはWebの場合にHTTPとHTTPSでポート番号が異なるのと同じである。

 ほとんどのメールクライアントは、アカウント情報の設定画面にSSL接続の設定用のチェックボックスを設けているので、そのチェックボックスにチェックを入れればポート番号が変わるはずだ。クライアント側の設定はこれだけで完了する。

 続いてサーバ側について見てみよう。さまざまなLinuxディストリビューションやFreeBSDに収録されているメールサーバソフトは、MTAでもMRAでもSSL接続に対応している。そのため、メールサーバの設定だけでSMTPSまたはPOP3S/IMAP4Sが使えるようになる。1つ注意しなければならないのが、SSLを利用するためにはサーバ証明書が必要となることだ。

 サーバ証明書はいわゆる暗号の鍵情報で、SSLのネゴシエーションで使われる。基本的にサーバ証明書はホスト(ホスト名)ごとに発行されるものなので、Webサーバのサーバ証明書はメールサーバの証明書には使えない。したがって、SMTPサーバ、POP3/IMAP4サーバが別々のホストとして構築されているのであれば、ホスト名も異なるためそれぞれにサーバ証明書が必要となる。

 逆に個人が自宅用のサーバで、1台のマシンをWebサーバとメールサーバにしているようなケースであれば、Webサーバの証明書を流用できる。この場合、SMTPサーバまたはPOP3/IMAP4サーバからWebサーバ用の証明書を参照するように設定するのがポイントとなる。

 このSMTPSやPOP3S/IMAP4Sを利用した場合に暗号化通信で保護される範囲については、しっかり認識しておく必要がある。なぜなら、この技術ではユーザーのPCとメールサーバ間の区間はSSL通信で保護されているが、メールサーバ間、メールサーバと宛先ユーザー間の通信を暗号化するものではないからだ。また暗号化通信は通信を行なう双方が対応していなければ、暗号化そのものができない。インターネット上のすべてのメールサーバが暗号化通信をサポートしている保証はないことを考えれば、サーバ側で対応できる安全性には限界がある。

図3 SMTPサーバの脆弱性

前へ 1 2 次へ

カテゴリートップへ

この連載の記事
  • 角川アスキー総合研究所
  • アスキーカード