前回のモバイル通信の冒頭で簡単に紹介しいていた、レイヤ2レベルでの仮想ネットワークを実現するフリーソフトウェア「SoftEther」の公開が一時中止された。再配布可能なライセンスとなっているSoftEtherは、現在でも他サイトからダウンロードすることは可能だが、作者の公式ウェブページからはダウンロードできなくなっている。その経緯はINTERNET Watchでも取り上げられ、公式サイト内でも公開中断に至った経緯が紹介されている。まずはそちらを参照してもらうのがいいだろう。 ごくごく簡単だったにも関わらず、SoftEtherを紹介してすぐに僕のメールアドレスにはいくつかの意見が届いた。その中には「SoftEtherとインターネット電話を取り上げているのは、どちらも通信トンネルという意味では同じだからですか?」といった質問もあった。確かにインターネット電話は、音声通信をIPトンネルに通す技術とも言える。が、そう深い意味があったわけではなく、自由度が高すぎるきらいはあるが非常に興味深いソフトウェアが生まれたことを伝えたかったからに他ならない。 様々なネットワーク環境において、必要とする情報に自由にリーチすることが可能なツールは、PCを持ち歩いて色々なところで使うモバイルコンピューティングのスタイルにもマッチする。もちろんSoftEther以外にも、ファイアウォールを越えて接続することを目的としたVPN技術はある。SoftEtherと同様にHTTPSアクセスによるSSLセッションを偽装するVPNソフトなどは従来から存在するのだ。 しかし導入しやすく、概念もわかりやすく、誰もが手軽に使え、しかも互換性がすこぶる高い。そんなSoftEtherには、新しい使い方が生まれる可能性を感じたから紹介したのだが、企業のネットワーク管理者からはすこぶる評判が悪い。なぜなら、管理することが非常に難しいからだ。 そこで企業ネットワークの管理を担当している数人の友人の意見を参考にしながら、SoftEther作者の登 大遊氏に質問をぶつけてみた。なお、インタビューはメール交換で行なっている。また、年末の更新終了時間と重なることもあって時間が限られており、回答に対する再質問も行なっていない。文中の登氏の発言は、メール内容を編集せずに掲載する。 ●SoftEtherの概要 SoftEtherについて、前回のモバイル通信では「Ethernetの動作をソフトウェアで真似る」ものだと紹介した。もう少し詳しく言えば、OSI基本参照モデルにおける第2層、データリンク層以上を仮想化し、物理層の通信をTCPパケットにカプセル化するもの、ということになる。Ethernetのメディアアクセスコントロールは、すべてソフトウェアでエミュレーションされる。だから“SoftEther”というわけだ。 しかし一時的な公開中止に至った経緯を見ると「レイヤ2以上をエミュレーションしているからダメ」というわけではないようだ。SoftEtherのもう1つの特徴である「ファイウォールの内側からVPNセッションを張れる」という部分に対して、多少過剰に反応しているように見える。HTTPSを偽装してプロクシ経由でインターネットに抜け、SSLセッションを張られてしまうと、その通信内容は隠れてしまう。このため、パケットを監視してSoftEtherによる通信を見つけ出すことはできそうにない(ただし前述したように同様のテクニックを使うVPNソフトは別途存在しているため、SoftEtherだけがユニークというわけではない)。 まずはSoftEther開発の動機について聞いてみた。 「動機は大きく分けて2つあります。 1つ目は、これまでいくつかのVPNプロトコル(PPTP・IPSec・vtun)を使用していて不満に思った点を改善しようとしたというのが大きな動機です。たとえば、従来のVPNプロトコルはあまり一般的でないGREのようなパケットを使ったり、NATフリーでなかったり、Proxyサーバーなどを経由することができなかったので、特定の環境では導入が困難または不可能である場合が多かったと思います。また、システム管理者がVPNを導入する場合でも、従来であればすでに安全な状態に設定されているファイアウォールの設定を変更して(つまり、穴を開けて)VPNプロトコルの通過を許可させる必要があり、設定ミスや予期せぬ不具合などによりネットワークが危険な状態となることがあったと思います。そのため、既存のファイアウォールに手を加えなくても導入可能なVPNシステムがあれば、大変便利であると思いました。そこで、各種のProxyやファイアウォールに対応したプロトコルを開発し、カプセル化されたパケットを送受信できるようにしました。 2つ目は、筑波大学の無線LANシステムが使いにくかった点です。 http://www.softether.com/jp/showcase/tsukuba.aspxでも紹介していますが、Proxyサーバーを経由しないとインターネットができない状態となっており、誰がどの時間に無線LANに接続していたのかをログとして保存するために、Proxyでの認証が必須となっています。しかし、これではHTTP以外のほとんどのプロトコルを通すことはできず、メールを読むこともできませんでした。そこで、そのような状況でもVPNを構築でき外部のホストを経由してインターネットアクセスができれば大変便利であると考えました。 なお、上記の大学内無線LANの Proxy型ネットワークは、ユーザーの確認・認証が必要であるためやむを得なくProxyを導入しているということです。したがって、SoftEther を使用する場合もユーザー認証を行なった上でトンネリングする必要があるので、無線LANシステムを認証なしで使用する訳ではなく、(システム管理上)問題無いということになっています」。 [本田] SoftEtherを今後、どのように発展させたいと考えているのでしょう? 「商用サービスへの展開や製品化案などについて、多数の問い合わせや相談を受けています。特に、現在簡単にVPNが構築でき、様々なネットワーク環境に柔軟に対応できるSoftEtherは注目度が高いようです。 商用目的以外でも、フリーウェアとしてのSoftEtherの開発・機能強化は継続して行ないたいと考えています。たとえば、Radius認証への対応、HUB同士のカスケード接続へのネイティブ対応、クラスタリングのサポート、GUI管理ツールの開発、完全なSSL通信のサポート、など実現したいことはたくさんあります」。 [本田] Media Access Controlをエミュレートすることによるメリットとは何でしょう? これまでMACをエミュレートするVPNはありませんでした。デメリットはないのでしょうか? 「MACをエミュレートすることによるメリットとしてはたくさんありますが、このようなトンネリング技術ではトンネリングするレイヤーが低い程一般的に自由度が高くなります。たとえば、TCPをトンネリングするSOCKSは有名ですが、各アプリケーションがSOCKSに対応しているか、特殊なWinSockリダイレクタが必要になってしまいます。それに対してMACをトンネリングさせることにより、ほとんどすべてのソフトウェアは何も設定しなくても透過的に仮想ネットワークを利用することができます。 仮想LANカードと仮想HUBはレイヤ2レベルのエミュレーションをしています。レイヤ1(物理層)のエミュレートは不可能ですので、レイヤ2が実現可能な最低のレベルであり、OSのファイル共有機能などを含めて、すべての通信を仮想ネットワークに流すことができるという利点があります。 デメリットとしては、ドライバがカーネルモードで動作するため、インストールにはAdministratorsでログオンしている必要があります。しかし、むしろこれは会社のPCなどで無許可でクライアント ソフトウェアをインストールできないようにする制限の役割も果たしており、ちょうど良い状態になっていると思います」。 ●SoftEtherの安全性 [本田] SoftEtherはインターネットを通じ、広い範囲に同一セグメントのネットワークができてしまいます。このため、ブロードキャストメッセージがインターネットに拡散してしまい、トラフィックを無駄に増加させるのでは? との懸念を述べるネットワーク管理者もいました。実際の実験仮想HUBでは、どのような状況になっているのでしょう。 「実験用仮想HUBであるhub.softether.comには、常時30~200台のコンピュータがインターネットを経由して接続していますが、そのパケットの統計を見る限りでは、ブロードキャストパケットの量はほとんど問題では無いという印象を受けました。 仮想LANを流れるブロードキャストに占められるトラフィックは、たかだか数十kbps程度であることがわかりました。これは、より大きなデータを頻繁に送受信できるブロードバンド環境ではほとんど問題にならない量だと思います。 ただし、このような巨大な仮想HUBにPHSのような低速回線で接続してみたところ、回線容量の50%以上がブロードキャストに占められる状態が短時間ですが続きました。したがって、低速な接続環境のユーザーが集まって1つの大きなHUBに接続するということは、あまり実用的ではないと思います」。 [本田] SoftEtherは128bitの鍵で通信内容の暗号化を行なっているそうですが、暗号強度に関して自身ではどのように評価してますか? 「秘密鍵暗号技術の128 bit RC4を使用しています。かなり長い間アルゴリズムが検証され続けているが、深刻な問題は見つかっていないと聞いています。ただ、使い方を誤ると危険(解読されやすい)という情報もあり、AESを採用したほうが良いのではないかという意見をいただいています。 開発を始めた頃は、SoftEtherは既存のネットワーク上の障壁を通過して通信するためのソフトウェアであり、暗号化は必須条件では無いと考えていました。しかし、「安全な暗号化通信ができれば、大きな特徴になるのでは」という意見があり、暗号化のサポートを後から組み込みました。ただし、SoftEtherの暗号化方式についてはまだ十分にテストされておらず、暗号の専門家からはあまり良い方法を使っていないと見られるかも知れません。それでも、SoftEtherの本来の目的はネットワーク障壁の通過であり、暗号化通信は第2目標ですので、あまり暗号化通信のほうに開発時間をとられてしまうのは問題かも知れません」。 [本田] 仮想HUBのユーザー認証プロトコルはどうでしょう? それほど強くないのでは、という意見も耳にする上、仮想HUBの構成ファイルを開くと、その中にユーザー名とパスワードがアスキー文字列として見える。ユーザー認証のセキュリティに関して、自身でどのように評価していますか? 「ユーザー認証はチャレンジ&レスポンス方式を使用しています。PPPoEや一般的なダイヤルアップ、PPTPなどで使用されているような方式であると考えてください。ただし、独自に仕様を決めた部分があり、私は暗号については素人ですので、本当に安全であることについての確証はありません。しかし、パスワードは復元不可能な形で送信されるので、仮に盗聴されたとしてもパスワードが復元できるものではありません。 ディスクのCFGファイルにはパスワードはバイナリで保存されていますが、データ列はASCIIコードなので容易に見えてしまいます。設定ファイルを暗号化するなどの対策はありますがファイルごと盗まれてしまうと意味がありません。この設定ファイルはAdministratorsとSYSTEM以外はアクセスできないようになっています。チャレンジ&レスポンスを採用しているので、CFGファイルを暗号化する場合でも内部的に復元可能な形で保存する必要があるというのが難点です」。 [本田] 作者として、企業のネットワーク管理者に対して、SoftEtherの利用制限を行なうためのアドバイスはありませんか? 現時点では仮想HUBの応答メッセージをモニタすることで、SoftEtherのVPNセッションを捕まえることができるようです。しかし、SSLセッションで繋いでいる場合、そのメッセージさえも見ることができません。さらには、ハンドシェイク部分を変えた改造版が出れば、そうした努力も無に帰してしまいます。 「管理者に対して、社内ネットワークなどで社員が SoftEther を無断で使用できないようにする具体的な方法を、今後www.softether.comなどで情報提供させていただくほか、Windows Active Directory の“グループポリシー”機能などに対応し、ドメイン内でSoftEtherの使用が一切できないような制限をSoftEthe側に組み込むことも検討しています。ただ、このようなソフトウェア側での対策を行なっても、いずれは“クラック版”が出回る可能性が高く、実質的にあまり意味が無い気もします。 HTTP Proxy経由接続でSSLハンドシェイク・プロトコルを実装することにより、本物のHTTPS通信なのか、それともSoftEtherのSSL通信なのか、見分けることは非常に困難になると思います。しかし、この点では既製品としていくつか出ているSSL-VPN技術でも同様だと思います。 そもそも、SSL の目的はパケットの中身を隠すことにあるのですし。もし隠されたデータの送受信を禁止したいのであれば、ファイアウォールでSSLを全面禁止するべきかも知れません」。 ●SoftEtherへの反響と今後 [本田] SoftEtherのセキュリティに関しては、MACエミュレーションを行なうということと、SSL、Socks、SSHでファイアウォールを越えることとは、切り離して考える必要があると思います。このうち後者の切り口で言えば、他にも同様のアプローチでファイアウォールを越えるVPN製品が存在しますよね。その中で、なぜSoftEtherだけに批判が集まって公開中止を求められたとお考えでしょうか? 「(MACエミュレーションとファイアウォール越えを容易にする機能の)両者が1つのソフトウェアとして提供され、無料で配布され、かつ驚くほど導入が簡単であるというのが大きな理由であると思います。 仮に、市販ソフト(数万円)でインストールには複雑なコマンドや専門知識が必要であるとしたら、全然評価は異なります。“なぜSoftEtherだけに批判が集まったと思うか”とありますが、SoftEtherに対する批判は全体のフィードバックに比べるとごく一部です。たくさんのユーザーの方から、「大変便利なソフトウェアである」、「悪用されるかも知れないという理由だけで批判するのはおかしい」などといったメールをいただいております」。 [本田] 内通者がいれば、たいしたスキルがなくても誰もが簡単に社内ネットワークに穴を開けることができる。しかも、防ぐことが非常に困難だ。このことが、ネットワーク管理者からの抗議に繋がっているように思えます。その反面、誰もが簡単に使えるVPNであることは長所でもあるわけです。この矛盾を含んだ問題について、何らかの回答を出したいとお考えでしょうか? 「上でも述べたように、“グループポリシー”機能などに対応し、ドメイン内でSoftEtherの使用が一切できないような制限をSoftEther側に組み込むことも検討しています。ただ、このようなソフトウェア側での対策を行なっても、いずれは“クラック版”が出回る可能性が高く、実質的にあまり意味が無い気もします。 そもそも、コンピュータがどのような使い方をされるかは利用者のモラルに依存することであり、それを支える基幹技術に依存するものでは無いと考えます。簡単に悪用できるソフトウェアがあったとしても、有益な利用方法や利用実例が悪用の危険性の何倍・何十倍もあるソフトウェアであれば、それを「悪用されるかも知れない」といった理由で普及を阻害するのは明らかにおかしいと思います。 また、“ファイアウォールをすり抜けることができるVPN”という表現は、管理者の意図しない利用を促進しているのではないかという意見がありますので、今後は“ファイアウォールの設定を変更することなく、外部のネットワークとの間で簡単かつ安全にVPNを構築することができます。そのため、既存のファイアウォールに危険な穴を開けることなく拠点間ネットワークが構築できます”といった表現に全面的に切り替えていく予定です」。 ●的外れなSoftEther批判 僕はSoftEtherの公開中断に関して意見を述べる立場にはないが、現時点で情報処理振興事業協会(IPA)から伝えられている批判に関しても、インターネットとは切り離されている住民基本台帳ネットワークへの影響など、的外れなものばかりだ。なぜ自身が審査し、開発支援を行なってきたSoftEtherの公開中断を求めたのか、今ひとつ釈然としない。 少々乱暴な言い方かもしれないが、Administrator権限がなければインストールできないソフトウェアを自由にインストールできる環境では、たとえSoftEtherが存在しなくともセキュリティに問題も出てしまうだろう。 Administrator権限をエンドユーザーに与えている。あるいは社員自らが所有するPCを自由に接続させている。ならばセキュリティはないも同然ではないだろうか? たとえば、PHSなどの無線通信でインターネットに接続し、社内ネットワークに進入されれば同じことである。ウィルス感染した自前のPCを社内ネットワークに接続し、感染を広げるケースも考えられる。 いかにSoftEtherのプロトコルが管理不能な(ネットワーク管理者にとって)難物であったとしても、その是非を問うことが問題の本質だとはどうしても思えない。 □SoftEtherのホームページ (2003年12月26日) [Text by 本田雅一]
【PC Watchホームページ】
|
|