このページの本文へ

前へ 1 2 3 次へ

初心者歓迎!ネットワークセキュリティ入門第5回

ネットワークの脅威と対策を一から学ぼう

メールソフトのセキュリティとメールの認証

2009年09月09日 06時00分更新

文● 大谷イビサ/TECH.ASCII.jp

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


前回の「メールが抱える根本的な弱点とスパム対策」では、メールの構造的な弱点とスパムメール対策を紹介した。続いては、メールソフトウェア側でメールのセキュリティを強化する技術、そしてユーザーやサーバを認証する技術を紹介していこう。

メールクライアントで安全性を高める

 メールの安全性を高めるための技術として、古くから提供されているのが、メールクライアントでセキュリティ機能を実装する方法である。メールクライアント側で暗号化や送信元認証、改ざん検知などのセキュリティ機能を実装すれば、送信元から宛先までエンドツーエンドでセキュリティを確保できる。当然、相手側にも同様のセキュリティ機能が必要になるが、経路上のメールサーバの設定を変更しなくてもよい。

 1990年代後半、インターネットが普及すると、セキュリティ機能を組み込んだメールクライアントが次々と登場した。こうしたメールクライアント向けのセキュリティ技術の代表として挙げられるのが「PGP」※1や「S/MIME(Secure MIME)」などである。

※1:PGP(Pretty Good Privacy) フィル・ジマーマン氏が開発した公開鍵暗号採用の暗号化ツール。開発当初は米国当局によって武器とみなされ、国外への輸出が禁止された。1999年に輸出が一部解禁され、現在は商用版も利用できる。

画面1 OutlookのPGPプラグインを用いたメッセージの暗号化

 これらの技術では公開鍵暗号や電子署名などを組み合わせることで、セキュリティを確保している。以下では、メールセキュリティを例に公開鍵暗号方式と電子署名の仕組みについて見ていきたい。

公開鍵暗号と電子署名でメールのセキュリティ

 公開鍵暗号方式は、誰でも入手できる公開鍵と、本人しか知らない秘密鍵をペアで組み合わせることでデータの暗号化を行なう方法だ。

 1970年代に公開鍵暗号が登場する前までは、暗号といえば通信する当事者が同じ鍵を用いてデータを暗号化する共通鍵暗号方式が一般的であった。しかし、共通鍵暗号は、仕組みがシンプルでありながら、鍵が第三者に漏えいしたら、暗号が解読されてしまうという弱点があった。そこで公開鍵暗号方式では、誰にでも公開してよい公開鍵と、利用者のみが知り得る秘密鍵という鍵ペアを利用することで、安全なやり取りを実現した。

 手順としては、たとえばAが公開鍵と秘密鍵のペアをまず生成し、そのうち公開鍵のみを通信相手のBに渡しておく。受け取ったBは、その公開鍵を用いてメッセージを暗号化し、Aに渡す。Aは自らのみ知る秘密鍵を使うと、データが復号され、Bのメッセージを読むことができる。経路上に、鍵は流れず、データは暗号化されているため、セキュリティ面では安心だ。ただし、処理が重いため、共通鍵暗号と併用するのが一般的だ。

 実際のメールの送受信では、平文を処理速度の速い共通鍵方式で暗号化し、その共通鍵を公開鍵暗号で暗号化するという方法を採用する。受信者側では、暗号化された共通鍵は、秘密鍵を用いて復号する(図1)。

図1 公開鍵方式を用いた暗号化

 一方の電子署名は現実世界では、印鑑やサイン、身分証明書に相当するもので、発信者の認証と改ざん検知を実現するものだ。

 電子署名は前述した公開鍵暗号を採用しているが、公開鍵と秘密鍵を逆に使う。つまり、秘密鍵を使って電子署名を行ない、公開鍵を用いて、これを検証するという流れになる。公開鍵と秘密鍵はペアで用いるため、秘密鍵で暗号化されたデータが公開鍵で確認できるのであれば、送信元は正当であることを証明できるわけだ。この仕組みを用いたのが電子署名である。

 具体的には、メッセージ自体をハッシュ関数※2でダイジェスト化し、これを秘密鍵で暗号化することで、電子署名を作成する(図2)。元の文章をダイジェスト化するのは、公開鍵暗号でメッセージをすべて暗号化するのは処理負荷が重いためだ。そして、電子署名をメッセージといっしょに相手に送る。

※2:ハッシュ関数 あるデータの代表となる固定値を算出する関数で、算出した値をダイジェストと呼ぶ。ダイジェストから元のデータを算出できないという不可逆性があるため、改ざん検知や暗号化などに用いられる。MD5やSHAなどのアルゴリズムがある。

図2 ダイジェストを用いた電子署名

 一方、受信側は、メッセージから同様にダイジェストを算出した上で、さらに暗号化されたデータを公開鍵で復号し、元のダイジェストを取り出す。この2つが同一であれば、送信元が正当であること、そして第三者によって改ざんされていないことが保証されるわけだ。

PGPとS/MIMEの違いとは?

 PGPやS/MIMEでは、公開鍵暗号と電子署名を組み合わせ、メッセージを暗号化することで、メールのセキュリティを高める。具体的には、(1)送信元アドレスが正当であることの証明、(2)メッセージの秘匿性を確保、(3)改ざんされていないことの保証を行なう。

 両者の違いは、鍵の管理の仕組みにある。PGPでは、公開鍵を別のユーザーの秘密鍵で署名できる。つまり、すでに知っている人は信頼できるものとして、他人に紹介できる「信頼の輪」モデルを採用している。これに対してS/MIMEは公開鍵の正当性を、認証局という第三者機関が証明してもらうことになる。

 S/MIMEは、多くのメールクライアントでサポートされているが、公開鍵を含んだ証明書の発行が有償である。また、PGPはユーザーが増えると鍵管理が面倒になり、標準でサポートされているメールクライアントも少ない。こうした背景があったため、技術的には確立されていたにも関わらず、両者ともユーザーは多くない。セキュリティを意識したユーザーの場合、むしろSSLなどで通信データが暗号化されたWebメールなどを用いるほうが一般的のようだ。

(次ページ、「メールプロトコルでユーザー認証を強化」に続く)


 

前へ 1 2 3 次へ

この連載の記事
ピックアップ