電子メール(S/MIMEとPGP)

 電子メールの暗号化と電子署名には、一般的に、S/MIME(Secure/Multipurpose Internet Mail Extensions)とPGP(Pretty Good Privacy)が利用されています。

S/MIMEは、「エスマイム」、PGPは「ピージーピー」と読みます。

 これら2つには暗号化と署名の機能があり、共通鍵暗号方式、公開鍵暗号方式、メッセージダイジェスト関数とを組み合わせることで、この機能を実現しています。

 暗号の復号や署名を行うということは、公開鍵の扱い方が重要になってきます。公開鍵を偽造されたら、第三者になりすまされてしまうからです。

S/MIME、PGPでは、この公開鍵の扱い方が異なっています。

 S/MIMEでは、公開鍵の正当性を証明してもらうために認証局(CA)を利用します。ただし、商用認証局(Verisign社など)を利用するには、当然、お金がかかります。

 ルート認証局を持たない自前の認証局を利用する方法もありますが、自前の認証局は、「なんちゃって認証局」と呼ばれているぐらいで、信頼性は乏しいものとなります。

そのため、一般的には、商用認証局を利用します。

一方のPGPでは、第三者が他の証明書の証明を行う「Web-of-trust」(信用の輪)という考え方を利用しています。

 「Web-of-trust」(信用の輪)を簡単に説明すると、フジテレビの笑っていいとも!のテレフォンショッキングでの「友達の友達は、皆友達だ。」という考え方です。

 既に何らかの手段で本人の確認が済んでいる第三者によって署名されている公開鍵であれば、「信用してもよさそうだ!」と判断するのです。

PGPでは、この他に、公開鍵ごとに異なる文字列になるフィンガープリント(指紋)を使って公開鍵が正しいかどうかを検証します。

 上で説明したように、S/MIMEでは、公開鍵の正当性を正当な認証局が署名してくれますが、PGPでは、公開鍵は、友達の輪の考え方から、ある程度しか信用することができません。

S/MIMEとPGPの相違点をまとめると下表のようになります。

PGPとS/MIMEの違い
名前特徴
PGP
(Pretty Good Privacy)
Web-of-trust(信用の輪)という友達の輪という考え方に基づく方式。既に本人の確認の済んでいる第三者の秘密鍵で署名されていれば、ある程度、信頼できるということで信用する。また、公開鍵ごとに異なる文字列になるフィンガープリントという指紋を使って検証する方法もある。
S/MIME
(Secure/Multipurpose Internet Mail Extensions)
公開鍵の正当性を正当な認証局が証明する。自前の認証局では、信頼性に欠けるため、一般的には商用の認証局を利用する。
PGPとS/MIMEの違い

 上表の違いから、PGPは手軽に利用できるが、不特定多数とのやり取りには、向いていないといえます。PGPは比較的、限定された相手との利用するのに適しています。S/MIMEは不特定多数とのやり取りに向いていると言えます。

 PGPについては、Outlookなどのメジャーなメーラーが標準で対応していませんが、フリーウェア版、商用版があり、フリーウェア版を利用すれば、無料でPGPを導入することができます。

メール中継の問題

電子メールの歴史は古く、UUCPの時代からあります。

 UUCPとは、UNIX端末同士が電話回線を使用してファイルの転送するのに利用するプロトコルで、電話回線上をバケツリレー式でファイルを交換し合うことで通信を行います。

 電子メールは、もともと、UUCPをを利用して網内にあるSMTPサーバをバケツリレー方式で転送してゆく仕組みになっていており、自分が送ったメールは、直接相手に届くのではなく、まずは隣のSMTPサーバへ、そして、その隣のSMTPサーバへと、この動作を繰り返すことで宛先に届けられる仕組みを取っていました。

イメージ的には、こんな感じで、隣同士のSMTPサーバ間でメールを交換しています。

 バケツリレーを行うということは、メールの中継を誰にでも許可しておかなければなりません。つまり、電子メールは善意の中継で成り立っており、利用者認証の機構を持っていないと言うことです。

 インターネットの黎明期は、主に研究や学術目的で使用されていたため、ある意味善意の中継が成り立ちましたが、今や誰もがインターネットを利用する時代となっており、利用者が多くなれば、悪意を持った利用者も増えてくるわけで、善意の中継が成り立たなくなっています。

 現在のTCP/IP全盛の時代では、MTAが宛先ドメインのMXレコードを調べて、直接相手のMTAへSMTP通信を行うのが一般的になっていますが、SMTPリレー機能が有効になっているSMTPサーバや、いまだに、バケツリレーで配送するSMTPサーバもあり、バケツリレーで配送されるメールもあります。

 バケツリレー方式では、SPAMメールの中継のために悪用されるケースが頻発しています。SPAMメールが送られるそもそもの理由は、宣伝のお金をほとんどかけることなく宣伝ができるからです。

 電話勧誘にしろ、FAXにしろ、郵便にしろ、宣伝するにはお金がかかります。しかし、SPAMメールを中継すれば、手間をかけずに多くの人に宣伝できます。しかも、お金をほとんどかけずに済むのですから。

 何事もエスカレートするように、今では、インターネット上に流れるトラフィックのほとんどが、このSPAMメールのトラフィックだと指摘する声もあります。トラフィックの70%とも80%とも言われています。

そのため、メールサーバには、利用者制限を施す手法がいくつか考えられています。

電子メール(IPアドレスで制限する)

電子メールの不正中継を制限する最も単純な方法は、IPアドレスを指定して中継を拒否する方法です。

 ISPが保持しているIPアドレス以外からのメール中継要求を拒否するようにサーバを設定することで、そのISPの加入者以外の不正なメール中継を防ぐことができます。

これで、解決!と思いきや、デメリットがあるのです。

 現在では、モバイル環境が整っており、外出先や出張先などで、異なるISPからインターネットに接続するということも多々あります。

 接続するISPが変わればIPアドレスが変わってしまいます。IPアドレスが変わるということは、メールが使えないということになります。これでは、使い勝手がよくありません。このように、IPアドレスによる送信者制限には限界があるのです。

そもそもIPアドレスだけでは、利用者を認証することができません。

そこで、利用者認証を行う手段として、POP before SMTPやSMTP-AUTHなどが考え出されています。