GTM-MML4VXJ
Skip to main content

SSL-VPN入門

本連載では、リモートアクセスの手段として注目されているSSL-VPN について解説します。


掲載日:2005年5月31日

これまでの連載

第2回 SSL-VPN の基本動作と実現方法その1(リバースプロキシ)

第1回で説明しました通り、SSL-VPN は、リモートアクセス端末と企業イントラネット間をSSL で通信します。 そこで、まずSSLではどのようにしてインターネット上での安全な通信を実現しているかを説明します。

blue_dot.gifSSL通信で使われている技術

SSL では、暗号化や認証といった複数の技術を用いて通信の安全性を高めています。

暗号化
盗聴を防ぐために有効な方法として挙げられるのが、暗号化です。 暗号化は、ある条件に基づき決まった手順に従ってデータを変換することです。変換に使う条件は「鍵」、変換の手順はアルゴリズムと呼ばれます。

例:古代ローマのシーザー(カエサル)が使ったと言われる、アルファベットを3文字ずらす(ABC→DEF)「シーザー暗号」の場合、鍵が「3」、「アルファベットを鍵の数だけずらす」がアルゴリズムとなります。

暗号化の仕組み
図1. 暗号化の仕組み

シーザー暗号で暗号化されたデータは、暗号化と同じ鍵の数だけアルファベットを逆にずらせば元に戻せます。このように、データの暗号化と、受信した暗号文を元に戻す復号化のために同じ鍵を使う方式を、共通鍵暗号方式と呼びます。この場合、鍵(共通鍵と呼びます)を第三者に知られると暗号文を解読されてしまうため、盗聴や情報漏えいの危険性があります。このため、共通鍵は当事者しか知らないようにする必要があります。

共通鍵暗号方式では、同じ鍵を相手と自分が持っていなくてはならないため、鍵を相手に必ず渡しておかなければなりません。鍵をそのまま平文で渡すと、盗まれてしまう可能性があります。かといって暗号化して送っても、相手が鍵を持っていないので復号化できません。
この鍵の受け渡しの問題を解決するために考案されたのが、

  • データの暗号化と復号化の鍵を別にする

方法です。
この方法では、片方の鍵で暗号化したものはもう一方の鍵でしか元に戻せない鍵のペアを作ります。そして、片方の鍵だけを通信相手に渡し(こちらの鍵を公開鍵と呼びます)、残った方は本人だけが使えるよう厳重に管理しておきます(こちらは秘密鍵と呼びます)。公開鍵を受け取った通信相手は、その鍵を使ってデータを暗号化して送信します。

公開鍵を使った暗号化

図2. 公開鍵を使った暗号化

暗号化されたデータを元の平文に戻せるのは秘密鍵だけなので、公開鍵が受け渡しの途中で盗まれても問題ありません。この方法は、公開鍵暗号方式と呼ばれています。(但し、この方式は暗号化と復号化の計算が複雑で時間がかかるため、大量のデータの暗号化には公開鍵で共通鍵を暗号化して送るハイブリット暗号方式が用いられます)

公開鍵暗号方式で使われる公開鍵・秘密鍵を使うと、通信されてきたデータが本当に通信相手からのものなのか見分けることもできます。
通信相手に公開鍵を渡している状態で、秘密鍵でデータを暗号化して送信した場合、通信相手はデータが公開鍵で復号できるか否かによって、正しい通信元からのものなのかを判断できます。これは、通信データに署名や実印を押して送っているようなものなので、電子署名と呼ばれます。

しかし、公開鍵暗号方式にも実は問題があります。公開鍵の受け渡しの際に、第三者が通信相手になりすましていた場合、公開鍵で重要な情報を暗号化して送信しても、鍵自体がなりすましている第三者からのものであるため、簡単に情報を復号化されてしまい、情報漏えいの脅威につながる危険性があります。

公開鍵の認証方法
公開鍵のなりすまし問題を解決するため、公開鍵の正当性を信頼できる機関(認証局)によって証明してもらう方法が考案されています(この方法は、役所に行って印鑑証明書を作り、本人証明として相手に提示することによく似ています)。

公開鍵の認証方法の例として、下の図を使って、クライアントであるAさんに対しサーバのBさんが公開鍵を渡すケースを説明します。

認証局を使った公開鍵の認証方法

図3. 認証局を使った公開鍵の認証方法

(1)
Bさんは公開鍵と秘密鍵のペアを作成します
(2)
Bさんの公開鍵を認証局に送付し、公開鍵が本物であることを証明する電子証明書の作成を申請します
(3)
認証局でBさんの身元を審査し、問題ないことを確認後、Bさんの公開鍵を認証局の秘密鍵で暗号化し、電子証明書を作成します
(4)
認証局は、作成された電子証明書をBさんへ送信します
(5)
AさんがBさんと暗号通信を開始する時に、BさんからAさんへ電子証明書を送付します
(6)
Aさんが認証局の公開鍵を使って電子証明書からBさんの公開鍵が取り出せれば、Bさんからの公開鍵であることが証明されます

この認証方法は、認証局はBさん以外の人にBさんの電子証明書を出さない、という前提の元に成り立ちます。このため、認証局には必ず信頼できる機関を選択することが重要です。

blue_dot.gifSSL通信の流れ

下の図を使って、クライアントとサーバ間のSSL通信の流れについて説明します。
まず、サーバは秘密鍵と公開鍵を作り、認証局から電子証明書をもらってきておきます。クライアントは、認証局の公開鍵を持っておく必要がありますが、有名で信頼性の高い認証局の公開鍵は、既にWEBブラウザなどに入っているため、特に何もしなくても大丈夫です。

SSL通信の流れ

図4. SSL通信の流れ

(1)
クライアントは、サーバに対し、SSLで通信したいことを告げます
(2)
通信を受けたサーバは、クライアントにサーバの公開鍵を含む電子証明書を送ります
(3)
クライアントは、認証局の公開鍵で電子証明書からサーバの公開鍵を取り出します
(4)
クライアントはサーバとの通信で使う共通鍵を作り、サーバの公開鍵で暗号化します
(5)
クライアントは暗号化された共通鍵をサーバに送信します
(6)
サーバは、サーバの秘密鍵で共通鍵を復号化して取り出します
(7)
サーバ・クライアントともに共通鍵を入手したので、以降はこの共通鍵を使って暗号通信を開始します(SSL通信確立)

ここまで、SSL通信の概要について解説してきました。それでは、次からこのSSL通信を使ったSSL-VPNが、どのように実現されているかを見ていきます。

blue_dot.gifSSL-VPNの実現方法

SSL-VPN では、これまで説明してきたSSLと様々な機能を組み合わせてVPNを構築します。
まずは、SSL-VPNの一つ方式である「リバースプロキシ方式」について、説明していきます。

リバースプロキシ方式
リバースプロキシとは、インターネットからイントラネット内のサーバへのアクセスを中継する機能です(通常のプロキシサーバは、イントラネットからインターネットへ中継するため、本機能はリバース(逆の)プロキシと呼ばれます)。
リバースプロキシ方式は、SSL とリバースプロキシを組み合わせて、インターネット上に公開されていない、イントラネット内のサーバ(WEBやファイル、FTPサーバ)にアクセスすることを可能にします。

リバースプロキシ方式では、まず、リモートアクセス端末でWEBブラウザを開き、HTTPS(WEBでのデータのやり取りに使うHTTPにSSLを対応させたもの)でVPN装置へアクセスします(HTTPSを使う場合、URLの最初が"https://~"となります)。VPN装置は受け取ったアクセスを解析し、企業イントラネット内のサーバのアドレスに変換して、サーバにアクセスします。この時、企業イントラネット内のサーバはSSL対応していないので、VPN装置がHTTPSをHTTPに変換してアクセスします。アクセス後、サーバからの応答をVPN装置が受け取ってHTTPSに変換し、リモートアクセス端末へ返します。

リバースプロキシ方式

図5. リバースプロキシ方式

この方法の利点としては、WEBブラウザでURLを指定するだけで、簡単に安全に企業イントラネット内にアクセスできることが挙げられます。アクセスしたい企業イントラネット内のサーバを直接インターネットに接続しなくてすむため、企業イントラネットの既存のポリシーの変更の必要がなく、ポリシー変更に伴うサーバの設定ミスで機密情報を公開してしまった、などの危険性を避けることができます。

一方、WEBブラウザ上で動作しないとアプリケーションが使えないため、サポートできるアプリケーションが限られてしまいます。 次回では、WEBブラウザ以外でも動作できるような方式について、説明します。

これまでの連載

富士通のSSL-VPN装置(IPCOM)のラインナップ

富士通のSSL-VPN装置 IPCOMシリーズは、システムに合わせて搭載機能を追加し、段階的な統合を可能にすることにより、常にシステムに最適なネットワーク環境を実現します。

lineup_moreinfo.gif
GTM-5X9NS8