SSL VPN と OpenVPN:多くの嘘とわずかな真実(1/4 ページ)

SSL VPN市場は、ここ5年、活況を呈しているが、その裏には従来のVPN技術への不満がある。ここではSSL VPNの問題点を挙げるとともに、OpenVPNという強力な製品について述べていこう。

» 2005年10月17日 13時28分 公開
[Charlie-Hosner,japan.linux.com]

 当初、強力なOpenVPNについて記事を書くつもりだったのだが、その他のSSL仮想プライベート・ネットワーク(VPN)のセキュリティがあまりにもお粗末なことを知るにつけ、まずこの点から書き起こすことにした。

 SSL VPN市場は、ここ5年、活況を呈しているが、その裏には従来のVPN技術への不満がある。つまり、Point-to-Point Tunneling Protocol(PPTP)にセキュリティ上の問題があることと、IP Security(IPsec)標準が複雑でOSに食い込んでいることが嫌われたのである。一方のSSL VPNはセキュリティが強固で使いやすく堅牢であり、これにより従来技術は影が薄くなったと主張している。わたしは、こうした主張を聞くにつけ、眉をしかめざるをえない。そして、事実を指摘すべきだと考えたのである。

前編:SSL VPNの問題点

 成熟したセキュリティ技術(SSL/TLSなど)を利用している場合、システムのセキュリティはゼロ・サム・ゲームになりがちだ。SSL VPNが新しいパラダイムであるのはそのとおりだが、アーキテクチャに新たな機能を追加すれば、まず間違いなくセキュリティが犠牲になる。もちろん、わずかな利点を絞り出すことはできるだろう。しかし、セキュリティを犠牲にせずに機能を大きく追加したという話は、眉に唾を塗って聞くべきである。機能とセキュリティの両面を同時に改善することは不可能ではない。実際、後ほど紹介するOpenVPNという実例がある。しかし、そうした両得の主張の多くは幻以外の何物でもなく、その背後にはマーケティングのための策略が隠れているのである。

 SSL VPNのアーキテクチャ上の主な利点は、IPsecの複雑さをなくし、暗号化層に簡潔で十分な実績のあるSSL/TLS構造を導入した点にある。これについては何ら問題はない。実際、IPsecは、以下に述べるように、さまざまな理由から効果的に使うのが難しいプロトコルなのだ。

 問題点の1つは、IPsecで設定可能な構成が多すぎること。しかも、その中にはアーキテクチャが安全ではなくなってしまうものがあるのだ。IPsecの設定オプションと構造的コンポーネントの多さは、「複雑は安全の敵」という格言を絵に描いたようなものである。

 2つめの問題点は、IPsecが本質的にOSカーネルと密接に結びつく必要があること。OSとの干渉は、いかなるアプリケーションにとっても好ましいことではない。ましてや、決定的に重要なセキュリティ・コンポーネントの場合はなおさらである。安全で可用性の高いシステムを作るためにはカーネル・スペースとの干渉を可能な限り避ける必要があるということは、Multicsの時代からよく知られていることである。アプリケーションがカーネル・スペースと干渉する場合、一般に、アプリケーションの障害が全システムの崩壊につながるからである。ましてや、セキュリティ・コードがカーネル・スペースと干渉していれば、セキュリティの枠組み全体がたった1つの欠陥によって攻撃に屈する可能性がある。そして、カーネルと結合したコンポーネントの陥落は、そのままrootアクセスを奪われることに等しい。IPsec VPNはカーネル・スペース内に実装される。SSL VPNはそうではない。したがって、この点においてはSSL VPNはなかなかに賢い発想である。

 しかし、現実には、この利点は商売気に利用されているだけである。SSL VPNの中にはこうした利点を現に活用しているものもあるが、ほとんどは一歩前進三歩後退の状態にある。VPNで重要となるアーキテクチャ上の要件の多くがなおざりにされているからである。弱点は主として「クライアント(ソフトウェア)のないVPN」と言われている構成に起因する。

 従来のVPNの場合、サーバ上で中央VPNソフトウェアを動かし、各クライアントはローカル・アプリケーションをインストールして拡張ネットワークに参加する。このクライアント・アプリケーションは、あらかじめ管理者がマシンごとにインストールし設定しておく。ユーザーは、前からあったマシンを使って接続しようとしても接続することはできない。あらかじめ設定されたマシンから接続するしかないのである。こうした環境で誰もが思いつく改善点は、クライアントはあらかじめ設定しておくべしという独裁体制を排し、どのマシンからでもVPNセッションを開始できるようにして、虐げられしユーザーを解放することである。素人目には格好良く見えるだろうが、これがセキュリティ上意味することは重大である。

 安全な通信は、双方の状況を把握することなしにはありえない。ユーザーのマシンにクライアント・アプリケーションのプレインストールを求めることは、この要件を満たす一助となるのである。クライアント・アプリケーションがないということは、盗聴はありえないがボタンがなく勝手にデタラメにダイヤルする携帯電話機のようなものである。エンド・ツー・エンドのリンクの暗号化は保証されていても、電話が誰に繋がるかわからない。これが安全だと言えるだろうか。

次ページ:従来のVPNとSSL VPN

       1|2|3|4 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ