SoftEther

僕の理解を超えているのは確かだが、SoftEtherに関する所感を書きたくなった。

SoftEtherをはじめて知ったのは一年くらい前。初めてSobalipseを公開した直後だった。当時のSobalipseは、すでに現在の機能とほぼ同程度の機能をもっていたのだが、ファイアウォールを越えることができなかった。それまで半年くらいかけて作ってせっかく公開したのに、「使えない・繋がらない」と多くのユーザーに言われ、寂しい思いをしていた。

そんなときに、SoftEtherが話題になっていた。原理は良くわからないが、これまでファイアウォールがあってできなかったことができるようになるらしい。少しさわってみたところ、インストールも簡単で、すぐに使ってみることができた。

実は、当時は、僕はネットワークプログラミングをしたことがなかった。(それなのに、よくもネットワーク上で動くプログラムを作ろうとしたものだが。。。)そんな僕にとって、SoftEtherは、今までできなかったことを可能とする奇跡的な技術のように思えた。

しかし、「Sobalipseを使うためにはSoftEtherをインストールして下さい」というのも辛いし、仕事やその他のことで少し忙しくなったので、Sobalipseファイアウォール越えの件は少し置かれていた。そして今年になって、ネットワークプログラミングについて調べてみたら、実に簡単だった。そのままSobalipseを作り直した。

あれから一年たって、SoftEtherが再び話題になっている。なにやらユーザーモードで色んなことができるようになったらしい。

今となってSoftEtherを考えると、これは何なのか良くわからなくなる。httpでもhttpsでも外部のサーバと接続したら、ネットワーク的には穴が空くことになる。そのときのセキュリティは、その穴を空けたソフトウェアの信頼性に委ねられる。したがって、ソフトウェアを作るときは、セキュリティの面で想定外のことが起こらない・できないようにしなければならない(一つでもできてしまったらセキュリティホールと叩かれることになる)。一方で、SoftEtherは何でもできるようにしている。これに何の意味があのかな?何でもできるようにしたというところがすごいのかな。

話しがそれるが、少し前まで、僕は、「サーバを使わずにP2Pファイアウォールを越える方法はないか?」と上の方の人に散々言われていた。こういう注文を聞くと、何でわざわざ難しく考えるのかなぁと思う。難しいことにチャレンジするのは良いのだが、サーバ(もしくはサーバピア)を使わないで直接通信にこだわる必要性が良く分からない(通信データによっては通信経路の安全性を保証するために直接通信したいという意味はあるかもしれないが)。その後、Skypeが出現したことにより、そのような注文がなくなったので、個人的には非常に助かった。

SoftEtherの話に戻る。それにしても、これだけ騒がれていると、外部のサーバと一切接続せずに、ネットワーク的にバックドアを作る技術のように錯覚してしまう。実は、僕は今でも、心の中のどこかで、そのような技術なのではないかと感じている。以前植え付けられた奇跡的な技術というイメージもあるのだろう。ネットワークプログラムを組んだことがある僕でもそう感じるのだから、普通のユーザーにはもっとわけがわからないだろう。この技術を見て、「サーバピアを経由せずにファイアウォールを越える」という注文が再燃したらと考えると恐ろしい。ていうか、SoftEtherのホームページは、なんか難しいことが書いてあって良くわからん。一般ユーザーが、もっと物事をシンプルに見れるようにしてほしい。まあシンプルに言ってしまったら、「SoftEtherトロイの木馬です」なのかもしれないけれど。

というわけで、ファイアウォール越えに悩まされたトラウマのせいで、今回の日記はかなり偏った主観に基づいたものになってしまった。実は、SoftEtherに誉められるところはたくさんある。実際、僕がSoftEtherについて他の人に言うときは、「これはすごい技術ですよ」と興奮に満ちた言い方で言うことが多い。それについては、後日の日記で書こうと思う(気が向いたら)。