インターネットの安全を実現する鍵交換技術

2.2. 鍵交換の基本技術 | 2.4. 鍵交換の実例

2.3. 成り済ましを防ぐ認証付き鍵交換

2.3.1. 鍵交換の安全を脅かす中間者攻撃

前節で紹介した鍵交換の方式は、第3者からの盗聴を防ぐことはできますが、「なりすまし」に対しては安全ではありません。次のようなケースを考えてみましょう。

今、太郎と花子の通信路の間に、次郎が割り込んでいる状況を考えてみます。太郎は花子と鍵交換したつもりが、実際には次郎と鍵交換を行い、鍵KAを共有します。同様に、花子も太郎とのつもりが、実際には次郎と鍵交換を行い、鍵KBを共有します。太郎と花子はお互いに正しい相手と鍵交換をしたつもりになっていますので、太郎は鍵KAを使って、暗号文を送りますし、花子は鍵KBを使って暗号文を送ります。次郎は、二つの鍵KA、KBを知っているので、太郎からの通信は鍵KAで復号し、花子からの通信は鍵KBで復号をすることができます。こうして、次郎はお互いの相手になりすまして、通信を行なうことによって、両者に気付かれずに盗聴や改ざんをすることができます。このような攻撃は「中間者攻撃(MIM:Man-In-the-Middle)」と呼ばれています。

太郎と花子の間に入り込んだ次郎は、太郎・花子それぞれと鍵交換を行なうことにより、太郎と次郎、花子と次郎の間では暗号化通信が成立するものの実際には次郎が全ての情報を入手できてしまうことになるような攻撃。

図2-6 太郎と花子の間に次郎が攻撃してる図

2.3.2. 中間者攻撃の防止方法

それでは、中間者攻撃を防ぐにはどうしたらよいでしょうか?基本的には、鍵交換を行う前に、相手が確実に通信しようとしているその人だということを確認する、すなわち、最初に相手認証を行って、正しい相手と鍵交換しようとしていることを確認すればよいわけです。

さて、この相手認証の方式ですが、代表的には、以下に示すような方式があります。

方式メリットデメリット
パスワードを用いる方式手軽であり、小規模なシステムに向く鍵交換する人の組み合わせが増えると、管理すべき秘密情報=パスワードの数が人数の二乗で増える
公開鍵暗号を用いる方式鍵交換する人の組み合わせが増えても、管理すべき秘密情報=私有鍵の数は人数に比例してしか増えない公開鍵・秘密鍵ペアの生成など、手軽とはいえない管理が必要となる
PKIを用いる方式理論的には管理すべき秘密情報は認証局の秘密鍵一つだけで済む(ただし、実際のシステムでは理論ほど単純にはいかない)仕組みが複雑であり、運用にはかなりのコストを要する。

【パスワードを用いる方式】

事前にお互いに秘密の合言葉(パスワード)を共有することによって、相手を認証する方式です。鍵交換を行うときに、まず相手から受け取った秘密のパスワードが、自分の知っているパスワードと合致することを確認します。この方式では、事前に秘密のパスワードを2人の間で取り決めておく必要があります。もちろんこのパスワードは第3者に知られないように厳重に管理しておかなくてはなりません。パスワード認証方式は、簡単な方式なので、組織の規模が小さく鍵交換しあう人たちの数が少ない場合には、手軽に利用できるというメリットがありますが、鍵交換する人たちの数が増えると、人数の二乗に比例した数の秘密のパスワードを管理する必要があるため、あまり現実的ではありません。

【公開鍵暗号を用いる方式】

この方式では、あらかじめ鍵交換をする相手から公開鍵を入手しておく必要があります。これは鍵交換の処理とは別に行っておきます。そして、鍵交換を行うときに、まず相手に自分の私有鍵で暗号化した署名データを送ります。署名データを受け取った相手は、あらかじめ入手しておいた公開鍵で、署名データを復号し、それが合致するかどうかを判定することで、相手を認証します。公開鍵暗号方式は、パスワード方式とは異なり、鍵交換する人たちの数が増えても、秘密にしておく情報は各人の私有鍵だけであり、人数の二乗に比例することはありません。ただし、事前に公開鍵と秘密鍵のペアを生成して鍵交換する相手に公開鍵を渡しておくなどの手間はかかります。

【PKIを用いる方式】

PKIとはPublic Key Infrastructureの略で、日本語では「公開鍵暗号基盤」と呼ばれるしくみです。PKIについては詳しくは次章で説明しますが、PKIを使うと前の2つの方式とは違って、事前に相手と秘密のパスワードを取りきめたり、公開鍵を入手しておいたりする必要はありません。太郎と花子の例を用いると、2人は実際に会ったことは無いのですが、お互いの名前だけは知っているような状況です。このとき、例えば、太郎から花子へ秘密の手紙を送ったとします。花子はどうやって受け取った手紙が確かに(会ったことのない)太郎からのものだと確信できるのでしょうか?PKIでは、太郎は、認証局と呼ばれる機関からあらかじめ自分は太郎である、という証明書を入手しておき、秘密の手紙と一緒に送ります。その証明書には、この証明書の持ち主が太郎であることと、そのことを保証する認証局の署名が記述されています。花子は、受け取った証明書を見て、それが花子も信頼している認証局が発行した証明書であることをチェックし、確かに太郎からの手紙であることを確信するわけです。PKIによる方式では事前に取得しておく必要がある情報は特に無いので、大規模な組織で鍵交換を行う場合に適しています。ただし、実際にPKIを用いた運用はコストがかかるというデメリットもあります。この辺の事情は次章で説明します。

無料小冊子のお申込みはこちら

株式会社システム計画研究所のオフィシャルサイトはこちら

当サイトへのご質問及び安全・安心・信頼のシステム開発に関するご相談はこちら

通信・ネットワークシステムの開発マネージメント情報サイト「通信・ネットワークシステム開発.COM」はこちら

サーバ監視・ネットワーク監視ツール isNetSentry-S のサイトはこちら