(57)【特許請求の範囲】
【請求項１】
第一のネットワークと、
端末と、
前記端末の内部に設けられ、前記端末のアプリケーションプログラムが仮想ＩＰアドレスに対してアクセスすべく制御するアプリケーション起動制御部と、
前記端末の内部に設けられるか、又は前記端末と前記第一のネットワークとの間に設けられ、前記アプリケーションプログラムが発する前記仮想ＩＰアドレスに対するアクセス要求に対して静的ＮＡＴを行う静的ＮＡＴ形成装置と、
前記端末とはＩＰリーチャブルでない第二のネットワークと、
前記第二のネットワークに配置されるサーバと、
前記静的ＮＡＴ形成装置と前記サーバとの間に一つ以上設けられ、前記サーバとＩＰリーチャブルである場合は前記アプリケーションプログラムから前記静的ＮＡＴ形成装置を通じて転送されるパケットを対応するリバースプロキシを稼働させて前記サーバへ転送し、前記サーバとＩＰリーチャブルでない場合は前記アプリケーションプログラムから前記静的ＮＡＴ形成装置を通じて転送されるパケットをＩＰリーチャブルな他の装置へ静的ＮＡＴにて転送するリバースプロキシサーバと、
前記アプリケーション起動制御部と、前記静的ＮＡＴ形成装置と通信を行い、一以上の前記リバースプロキシサーバによって形成される経路情報を前記静的ＮＡＴ形成装置に提供する仮想接続制御装置と
よりなるネットワークシステム。
【請求項２】
前記静的ＮＡＴ形成装置は、各装置を一意に識別可能な機器特定ＩＤを内包し、前記仮想接続制御装置に接続する際、前記機器特定ＩＤを用いて機器認証を行い、前記機器認証が成功すると前記仮想接続制御装置と制御情報を送受信するためのコントロールセッションを形成する、請求項１記載のネットワークシステム。
【請求項３】
前記アプリケーション起動制御部は、前記静的ＮＡＴ形成装置が前記機器認証を完遂した後に前記静的ＮＡＴ形成装置を通じて前記仮想接続制御装置と個人認証を遂行する画面を前記端末に形成する、請求項２記載のネットワークシステム。
【請求項４】
前記静的ＮＡＴ形成装置は、前記機器認証を完遂した後に更に前記端末を使用するユーザを認証する個人認証を行い、前記個人認証が成功すると、前記ユーザが利用可能な前記サーバと前記サーバに対応する前記仮想ＩＰアドレスの情報を前記アプリケーション起動制御部が前記仮想接続制御装置から受信する、請求項２記載のネットワークシステム。
【請求項５】
前記端末は更に、
ストレージと、
前記ストレージにファイル及びディレクトリを形成するファイルシステムと、
アプリケーションプログラムの起動及び終了を制御するプロセス制御部と
を備え、
前記アプリケーション起動制御部は、前記静的ＮＡＴ形成装置が前期仮想接続制御装置から受信した制限情報を受けて、前記端末のファイルシステムに対して前記ファイル及び／又はディレクトリの複写、移動、削除及び／又は名称変更を監視すると共に、前記端末のプロセス制御部に対して特定のプロセスの起動及び／又は自己プロセス隠蔽行為を監視する、
請求項４記載のネットワークシステム。
【請求項６】
端末のアプリケーションプログラムがアクセス対象のサーバと関連付けられている仮想ＩＰアドレスに対してＴＣＰ  ＳＹＮパケットを送信する接続要求ステップと、
前記ＴＣＰ  ＳＹＮパケットを捕捉したら、仮想ネットワーク接続を形成するための経路情報を仮想接続制御装置に対して要求する経路情報要求ステップと、
前記経路情報を受信したら、前記経路情報に列挙されているリバースプロキシサーバの順に、前記経路情報を含む仮想接続要求コマンドを送信する仮想接続要求ステップと、
前記仮想接続要求コマンドを受信したリバースプロキシサーバが前記経路情報の終端でないと判断したら静的ＮＡＴを設定し、前記経路情報の終端であると判断したらリバースプロキシを起動する、静的ＮＡＴ又はリバースプロキシ形成ステップと
を有する、仮想プライベート接続形成方法。
【請求項７】
前記静的ＮＡＴ又はリバースプロキシ形成ステップは、
前記仮想接続要求コマンドを受信したリバースプロキシサーバが前記経路情報の終端であると判断したら、前記リバースプロキシを起動するに先立ち、前記仮想接続制御装置からリバースプロキシを起動して設定するために必要な前記サーバの情報を取得するサーバ情報取得ステップと
を含む、請求項６記載の仮想プライベート接続形成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークシステム及び仮想プライベート接続形成方法に関する。
より詳細には、従来の仮想プライベートネットワーク（Virtual Private Network：以下「ＶＰＮ」）の問題点を解消し、極めて軽量なソフトウェア及びハードウェアの追加で、柔軟な運用性且つ強固なセキュリティを実現する、新規な仮想プライベートネットワークシステム及び仮想プライベート接続形成方法に関する。
【背景技術】
【０００２】
今日、インターネットから端を発するＩＰネットワークは、我々の社会生活及び企業活動に必要不可欠な存在である。企業には社屋内にＬＡＮが張られており、このＬＡＮには企業の機密情報等も含まれるファイルサーバ等のサーバも接続されている。従業員はＬＡＮに接続されたパソコン等の端末を用いて、サーバが提供する情報資源を利用して業務を遂行する。一般的に、企業のＬＡＮは機密情報を含むサーバ等を守るため、ＬＡＮのインターネットとの接続点にはファイアウォールが設けられている。こうして、ＬＡＮは悪意ある第三者がインターネットから容易に企業のＬＡＮ内に侵入できないように構成されている。
【０００３】
従業員が外出先でもノートパソコン等の端末を用いて企業内ＬＡＮに接続して業務を遂行したい場合、このファイアウォールが邪魔になる。インターネットからファイアウォールを越えて企業のＬＡＮに安全に接続するための技術として、ＶＰＮが用いられている。
ＶＰＮはその接続形態によって様々な種類があるが、大別すると二通りの技術に分類できる。
一つは、ＬＡＮの外に存在する端末にＬＡＮのサブネットに属するＩＰアドレスを付与する手法である。
もう一つは、ポートフォワーディング又は静的ＮＡＴ（Network Address Translation）と呼ばれる手法である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２７２７７１号公報
【非特許文献】
【０００５】
【非特許文献１】「PacketiX VPN 入門 - PacketiXVPN の特徴」ソフトイーサ株式会社［２０１０年３月２５日検索］、インターネット＜URL:http://www.softether.co.jp/jp/vpn2/introduction/about_vpn.aspx＞
【非特許文献２】「特集 ： ブロードバンド・ルータ徹底攻略ガイド」アイティメディア株式会社［２０１０年３月２５日検索］、インターネット＜URL:http://www.atmarkit.co.jp/fpc/special/bbrouter_desc/portforward_dmz.html＞
【非特許文献３】「インターネットごしにsshでサーバ管理をしてみよう  −＠IT」アイティメディア株式会社［２０１０年３月２５日検索］、インターネット＜URL:http://www.atmarkit.co.jp/fnetwork/rensai/tcp27/01.html＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
先ず、前者の、ＬＡＮの外に存在する端末にＬＡＮのサブネットに属するＩＰアドレスを付与する手法について説明する。これは非特許文献１に開示される技術である。
殆どの企業内ＬＡＮはＩＰｖ４のプライベートアドレスを用いている。そこで、ＬＡＮの外、つまりインターネットに接続されている端末にも企業内ＬＡＮのサブネットに属するプライベートアドレスを付与する。しかし、端末に備えられているネットワークインターフェースカード（Network Interface Card：以下「ＮＩＣ」）には、既にインターネットサービスプロバイダ（Internet Service Provider：以下「ＩＳＰ」）によってグローバルＩＰアドレスが付与されている。そこで、仮想的なＮＩＣをソフトウェアで実現し、これに企業内ＬＡＮのサブネットに属するＩＰアドレスを付与する。そして、この仮想ＮＩＣに対する通信は暗号化してファイアウォールを通過させる。
【０００７】
この手法の問題点は、当該端末はＬＡＮのサブネットに属していながらファイアウォールで守られていない、インターネットに直に接続している、という点である。つまり、セキュリティ面で非常に問題がある。当該端末は、コンピュータウィルスやワーム、またＤｏＳと呼ばれるサービス不能攻撃等の脅威に晒される。また、情報漏洩の可能性も高い。
更に、ＩＳＰが付与するＩＰアドレスがプライベートアドレスである場合、ＩＳＰが付与するＩＰアドレスと、ＶＰＮが付与するＩＰアドレスが衝突する可能性がある。現在でもケーブルテレビ系列のＩＳＰやネットカフェ等の公衆インターネット接続拠点では、端末にプライベートアドレスを付与している。またこれに留まらず、今後ＩＰｖ４アドレスの枯渇に伴って普及が予測される「キャリアグレードＮＡＴ」（http://itpro.nikkeibp.co.jp/article/COLUMN/20080625/309452/）が広く実施されると、ＩＰアドレスの衝突の可能性は飛躍的に高まることが予想できる。
【０００８】
次に、後者のポートフォワーディング又は静的ＮＡＴと呼ばれる手法について説明する。これは非特許文献２及び非特許文献３に開示される技術である。
例えば、ある家庭に１９２．１６８．０．０／２４というプライベートネットワークが構築されているとする。この家庭内ＬＡＮ内にｗｅｂサーバを構築し、ブロードバンドルータを介してインターネットに公開したい場合、ブロードバンドルータに「ポートフォワード設定」或は「静的ＮＡＴ設定」と呼ばれる、特定のポート番号のパケットをＬＡＮ内の特定のマシン（サーバ）に振り向ける設定を施す。
【０００９】
今、ブロードバンドルータには家庭内ＬＡＮのＩＰアドレスとしてデフォルトゲートウェイの「１９２．１６８．１０．１」が付与されていると共に、ＩＳＰによって付与された動的グローバルＩＰアドレスが「２０３．１７８．８３．１９４」であったとする。ブロードバンドルータには、この「２０３．１７８．８３．１９４」のポート８０番に来るパケットを、家庭内ＬＡＮの別のＩＰアドレス「１９２．１６８．１０．２」が付与されているマシンのポート８０番へ転送する設定を施す。ブロードバンドルータは、パケットの送信先ＩＰアドレスを、「２０３．１７８．８３．１９４」から「１９２．１６８．１０．２」に書き換えて、当該サーバに転送する。こうして、ＬＡＮ内のサーバは外部（インターネット）に対してｗｅｂサーバとしてサービスを提供することが可能になる。これが、非特許文献２に開示されている技術である。なお、パケットに対して書き換える対象は、ＩＰアドレスだけでなく、ポート番号も書き換えることができる。
このような静的ＮＡＴと呼ばれる技術は、Ｌｉｎｕｘ（登録商標）等のＰＯＳＩＸ系ＯＳのカーネルの機能（ドライバ）として実装されていることが多い。
【００１０】
ブロードバンドルータは単にインターネットから来るパケットをＬＡＮ内に振り向けることしかしないので、セキュリティ面に問題がある。そこで、通信経路の暗号化と認証を伴ってセキュリティの向上を図った手法が、ＳＳＨ（Ｓｅｃｕｒｅ  ＳＨｅｌｌ）の一種であるＯｐｅｎＳＳＨ（http://www.openssh.com/ja/）等のアプリケーションである。これは非特許文献３に開示されている。
しかし、ＯｐｅｎＳＳＨは、接続するユーザ毎に公開鍵を生成して配布する手間が生じると共に、クライアントである端末にＳＳＨクライアントと公開鍵をインストールする必要がある。また、ＯｐｅｎＳＳＨのような技術は潜在的なセキュリティのリスクを完全に払拭できてはいない。つまり、ＯｐｅｎＳＳＨ自身のセキュリティ面の脆弱性の大小に依存する。そして、ＯｐｅｎＳＳＨのサーバであるｓｓｈｄは、既定値ではポート２２番を開放するので、ポート２２番に対するＤｏＳ攻撃等のリスクも存在する。更に、ＯｐｅｎＳＳＨはクライアントである端末自体のセキュリティについては何もしないので、別途端末のセキュリティ面を考慮して対策を施す必要がある。
【００１１】
以上に述べたＶＰＮの手法は、いずれも「インターネットからＬＡＮ内のサーバに繋げる」という目的にのみ特化して構築されている。また、その接続の技術も設定項目が多く面倒であったり、接続不能になる可能性が払拭できない等、完全ではない。そして、セキュリティ面の対策は別途考慮して対策を施さなければならない。
【００１２】
以上のような技術背景に鑑み、発明者は上述した従来のＶＰＮの問題点を解消し、極めて軽量なソフトウェア及びハードウェアの追加で、柔軟な運用性且つ強固なセキュリティを実現する、新規なネットワークシステム、静的ＮＡＴ形成装置及びリバースプロキシサーバを発明し、出願した（特願２０１０−８９８７３、以下「特許出願１」）。
【００１３】
特許出願１では、ＩＰ接続可能性（IP Reachability）を妨げている単一のファイアウォールを越えて、端末とサーバを接続するために、端末とサーバとの間に静的ＮＡＴ形成装置とリバースプロキシサーバが一つずつ介在し、リバースプロキシサーバの制御に従って、ポートフォワード（静的ＮＡＴ）とリバースプロキシという、二段階のＩＰアドレス変換処理を経て、端末とサーバが仮想的な接続を実現する。
【００１４】
しかしながら、市場に存在するネットワークの構成はこのような単純なものだけではない。接続対象であるサーバに到達するまで、ＩＰ接続可能性を阻害する要因が複数存在し、幾つものゲートウェイを通過しなければ接続ができない、というようなネットワーク構成も存在する。
例えば、ある企業Ａと企業Ｂが合併したとする。合併によって、企業Ａの社内ＬＡＮと企業Ｂの社内ＬＡＮとの間に、相互接続を実現するためのゲートウェイサーバを設けることが考えられる。しかし、企業Ａと企業Ｂの相互接続を実現するには、相互の社内ＬＡＮのセキュリティポリシに影響が生じるため、安易な接続は推奨されない。更に、企業Ａと企業Ｂは、予め合併することを前提に社内ＬＡＮを構築していた訳ではないのだから、夫々のＬＡＮで使用するプライベートＩＰアドレスが重複する可能性も十分考えられる。経路上のどこかでサブネットやＩＰアドレスが重複している場合、通常、ＩＰリーチャブル（IP reachable：ＩＰパケットが到達可能であること）な環境を構築することは不可能である。
【００１５】
本発明はかかる課題を解決し、上述した従来のＶＰＮの問題点を解消し、極めて軽量なソフトウェア及びハードウェアの追加で、ＩＰリーチャブルでない環境に存在するサーバにも接続ができる、新規なネットワークシステム及び仮想プライベート接続形成方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記課題を解決するために、本発明のネットワークシステムは、第一のネットワークと、端末と、端末の内部に設けられ、端末のアプリケーションプログラムが仮想ＩＰアドレスに対してアクセスすべく制御するアプリケーション起動制御部と、端末の内部に設けられるか、又は端末と第一のネットワークとの間に設けられ、アプリケーションプログラムが発する仮想ＩＰアドレスに対するアクセス要求に対して静的ＮＡＴを行う静的ＮＡＴ形成装置と、端末とはＩＰリーチャブルでない第二のネットワークと、第二のネットワークに配置されるサーバと、静的ＮＡＴ形成装置とサーバとの間に一つ以上設けられ、サーバとＩＰリーチャブルである場合はアプリケーションプログラムから静的ＮＡＴ形成装置を通じて転送されるパケットを対応するリバースプロキシを稼働させてサーバへ転送し、サーバとＩＰリーチャブルでない場合はアプリケーションプログラムから静的ＮＡＴ形成装置を通じて転送されるパケットをＩＰリーチャブルな他の装置へ静的ＮＡＴにて転送するリバースプロキシサーバと、アプリケーション起動制御部と、静的ＮＡＴ形成装置と通信を行い、一以上のリバースプロキシサーバによって形成される経路情報を静的ＮＡＴ形成装置に提供する仮想接続制御装置とよりなる。
【００１７】
静的ＮＡＴ形成装置がコントロールセッションを通じて認証を実行した後、端末がリバースプロキシサーバの先に存在するプライベートネットワーク内のサーバに対する接続を要求したら、静的ＮＡＴ形成装置は静的ＮＡＴを、リバースプロキシサーバはリバースプロキシを設定して、端末とサーバとの間にデータセッションを形成する。このようにネットワークシステムを構築することで、プライベートアドレスの衝突のない、仮想的な接続形態で、ファイアウォールを越えた端末のサーバに対する接続が実現できる。
【発明の効果】
【００１８】
本発明により、極めて軽量なソフトウェア及びハードウェアの追加で、柔軟な運用性且つ強固なセキュリティを実現する、新規なネットワークシステム及び仮想プライベート接続形成方法を提供できる。
【図面の簡単な説明】
【００１９】
【図１】本実施形態のネットワークシステムの概略図である。
【図２】第一端末に注目したネットワークシステムの概略図である。
【図３】第二端末に注目したネットワークシステムの概略図である。
【図４】ローカルマスタＢＯＸの外観斜視図である。
【図５】ローカルマスタＢＯＸのハードウェア構成を示すブロック図である。
【図６】ローカルマスタＢＯＸの機能ブロック図である。
【図７】ソフトローカルマスタの機能ブロック図である。
【図８】ＲＴＡの機能ブロック図である。
【図９】ステッピングノードの機能ブロック図である。
【図１０】ステッピングノードの機能ブロック図である。
【図１１】コンダクタの機能ブロック図である。
【図１２】コンダクタに含まれるテーブルの構成を示す図である。
【図１３】本実施形態のネットワークシステムの、全体的な動作の流れを示すタイムチャートである。
【図１４】機器特定ＩＤ認証シーケンスのタイムチャートである。
【図１５】ユーザ認証シーケンスとメニュー取得シーケンスのタイムチャートである。
【図１６】メニュー取得シーケンスのタイムチャートである。
【図１７】ＶＰＣ確立シーケンスのタイムチャートである。
【図１８】ＶＰＣ確立シーケンスとＶＰＣデータ転送状態のタイムチャートである。
【図１９】ＶＰＣ確立シーケンスに流れるパケット及びＶＰＣ確立要求コマンドの概要を示す概略図である。
【図２０】ＶＰＣトンネルを通過する通信のプロトコルがコネクション型の通信である場合における、ＶＰＣ切断シーケンスを示すタイムチャートである。
【図２１】ユーザログアウトシーケンス及びローカルマスタシャットダウンを示すタイムチャートである。
【発明を実施するための形態】
【００２０】
［実施形態の概要］
本実施形態の概略を説明する。
本発明は、特許出願１に開示した技術内容を発展させた技術内容である。これより説明するネットワークシステムは、大企業の広域プライベートネットワークシステムにおいて、リモートオフィスサービスを実現する仕組みを提供する。従業員が、遠隔地の事業所或は出向先等から企業内の端末を操作して、本来所属している部門に存在する自らの端末のデスクトップ環境を、出向先の端末で実現する。リモートデスクトップ環境を提供するサーバは、出向先から直接的にＩＰリーチャブルではないサブネットのサーバに存在する。本実施形態のネットワークシステムは、直接的にＩＰリーチャブルでないサーバの資源に対し、後述するローカルマスタとステッピングノードを用いて、仮想プライベート接続（Virtual Private Connect：以下「ＶＰＣ」と略）を実現する。
なお、本実施形態においてリモートデスクトップとは、リモートデスクトッププロトコル（ＲＤＰ：Remote Desktop Protocol）という、Ｗｉｎｄｏｗｓ（登録商標）にて実装されている実装形態を指すが、勿論、これに限定されない。周知且つ広く普及しているＶＮＣ（Virtual Network Computing）や、Ｘ  Ｗｉｎｄｏｗ  Ｓｙｓｔｅｍであってもよい。
【００２１】
ＶＰＣは、直接的にＩＰリーチャブルでない端末とサーバとの間にＩＰリーチャブルな経路（トンネル）を形成する。これ以降、ＶＰＣによって形成される経路をＶＰＣトンネルと呼ぶ。ＶＰＣトンネルは、端末とローカルマスタ、ローカルマスタとステッピングノード、ステッピングノード同士及びステッピングノードとサーバの、ＩＰリーチャブルな機器同士を「データセッション」にて接続し、ローカルマスタ及び各ステッピングノードでは静的ＮＡＴを設定し、サーバに直近のステッピングノードではリバースプロキシを稼働させる。
このＶＰＣを実現するために、以下の装置及びプログラムを新たに設ける。これより説明する四種類の装置及びプログラムは、全て従来のネットワーク技術には同等の機能を提供する装置等が存在しないので、発明者及び出願人が独自に名称を付している。各々の装置及びプログラムは、データセッションを形成するために、相互に制御用の通信路である「コントロールセッション」を形成する。
【００２２】
・ステッピングノード（Stepping Node）
リバースプロキシサーバとも呼べるステッピングノードは、ネットワークの各所に設けられ、二つの動作を行う。
一つは、後述するローカルマスタ或は他のステッピングノードとの間で、静的ＮＡＴにてデータセッションを形成し、仮想的にＩＰリーチャブルな状態を形成する動作である。
もう一つは、後述するローカルマスタ或は他のステッピングノードと、ＩＰリーチャブルなサーバとの間で、リバースプロキシを起動してデータセッションを形成し、端末とサーバとの間を仮想的にＩＰリーチャブルな状態を形成する動作である。
一見すると、ステッピングノードはリバースプロキシサーバ或は静的ＮＡＴが稼働するゲートウェイであるように見えるが、端末から接続要求があった時だけリバースプロキシのプロセスを起動し、或は静的ＮＡＴを設定する。特に、リバースプロキシのプロセスを起動する際には、後述するコンダクタと認証を行う。
したがって、ステッピングノードは通常のサーバとは異なり、不必要にポートを開けないので、セキュリティ面で有利である。
【００２３】
・ローカルマスタ（Local Master）
静的ＮＡＴ形成装置とも呼べるローカルマスタは、自身がステッピングノードに接続できる資格を有する装置であることを示す機器特定ＩＤを内包しており、後述するコンダクタに対して機器認証（個体認証）を実行する。
機器認証が完遂すると、ローカルマスタは端末とコンダクタとの間に、制御用通信路であるコントロールセッションを形成する。端末にインストールされている、後述するプレイヤは、このコントロールセッションを用いてコンダクタと制御情報の通信を実行する。次に、プレイヤが、ユーザが接続可能なサーバに関する情報と、端末に対して様々な制御を行うための情報である制限設定情報をコンダクタに要求すると、コンダクタから受信するこれら情報を同時に取得し、端末が遠隔地のサーバにＶＰＣ接続するためのデータセッションを形成する準備を行う。
また、必要に応じ、制限設定情報に基づいて、セキュリティ確保のためにパケットフィルタも設定する。
データセッションは静的ＮＡＴ（ポートフォワーディング）にて形成する。
【００２４】
パケットフィルタは、端末の動作をサーバとの接続にのみ制限し、不用意にインターネット上の任意のサーバに接続する等の事故発生要因を排除するために設定する。コンダクタから送信される制限設定情報には、送受信を禁止される（又は送受信を許可される）ＩＰアドレスの範囲が列挙され、この制限設定情報に従ってパケットフィルタは設定される。
静的ＮＡＴによって、リバースプロキシであるステッピングノードを介して送受信するサーバとのパケットは、端末のローカル側に位置するＮＩＣに対するパケットとして、相手側を示すアドレスが、また必要に応じてポート番号も書き換えられる。端末はあたかもローカルのＮＩＣと通信しているような状態で、ＬＡＮ内のサーバと通信することができる。
【００２５】
ローカルマスタは、端末に接続されるハードウェアとして構成されるもの（以下「ローカルマスタＢＯＸ」）と、端末内にインストールされるソフトウェアとして構成されるもの（以下「ソフトローカルマスタ」）と、二通りの形態がある。いずれも、提供する機能は同じである。違いは、ローカルマスタＢＯＸは内蔵するローカル側ＮＩＣに静的ＮＡＴをする一方、ソフトローカルマスタはネットワークＯＳが標準で内蔵するループバック仮想ＮＩＣに静的ＮＡＴを設定する、という点である。
ローカルマスタは、発明者が過去に発明して出願した特許文献１に開示される技術を基に、更に機能の整理と改良を施した装置及びプログラムである。
これ以降、単に「ローカルマスタ」と記す場合は、ローカルマスタＢＯＸとソフトローカルマスタの両者を指す単語であると定義する。また、「ローカルマスタの暗号化通信処理部６０６」と記述する場合は、ローカルマスタＢＯＸとソフトローカルマスタの両者に共通する機能ブロックを指す表記である。
【００２６】
・プレイヤ（Player）
端末がインターネットに接続された状態で、更にローカルマスタとステッピングノードを通じてＬＡＮ内のサーバに接続すると、様々なセキュリティ面の懸念が生じる。そこで、端末の動作を強力に制限するために、端末にはこのプレイヤをインストールしておく。
挙動制限部とも呼べるプレイヤはローカルマスタと通信を行い、個人認証のためのユーザインターフェースを提供すると共に、ローカルマスタとステッピングノードとの通信が成立すると、ＯＳの幾つかのアプリケーションプログラムインターフェース（Application Program Interface：以下「ＡＰＩ」）をフックする。
ステッピングノードから送信され、ローカルマスタを通じて与えられる制限設定情報には、実行を禁止される（又は実行を許可される）アプリケーションプログラムや、閲覧、編集、移動又は削除を禁止されるファイル等が列挙されている。プレイヤはこの制限設定情報に従ってフックしたＡＰＩを監視し、端末の挙動を強力に制限する。
【００２７】
また、プレイヤは個人認証の機能を提供する。周知のログイン画面を端末に表示し、キーボードやＩＣカードリーダ、或は指紋認証機器等の認証手段を通じて、ユーザの個人認証情報を取得し、コントロールセッションを通じてコンダクタに送信する。個人認証が成功したら、 プレイヤはユーザが接続可能なサーバに関する情報と、端末に対して様々な制御を行うための情報である制限設定情報をコンダクタに要求する。
【００２８】
更に、プレイヤはシェルとしての機能も提供する。個人認証が正常に終了すると、プレイヤはユーザが接続可能なサーバに関する情報と、端末に対して様々な制御を行うための情報である制限設定情報をコンダクタに要求する。ユーザが接続可能なサーバに関する情報を受信すると、プレイヤは端末の画面にウィンドウを表示し、そのウィンドウの中にアイコンを表示する。アイコンはアプリケーションの起動パラメータ（コマンドライン）を内包しており、実行を許可するアプリケーション名と、アクセスを許可するサーバのサーバ名がアプリケーションの引数として指定されている。プレイヤの子プロセスとしてアプリケーションが起動されるので、プレイヤはアプリケーションの挙動を容易に把握できる。
【００２９】
プレイヤはウィルスチェッカやマルウェア等のＡＰＩフックの技術を応用している。プレイヤはステッピングノードの制御下にあるので、フックしたＡＰＩで異常な挙動を検出したら、直ちに実行を停止してステッピングノードに報告することもできる。この技術を高度に応用すると、未知のウィルスに対しても防御が可能になるので、昨今問題になっている「ゼロデイ攻撃」（プログラムのセキュリティホールが発表され、当該プログラムのセキュリティホールを修正するパッチが提供されるよりも以前の時点で、悪意ある者によって実際に当該セキュリティホールを突いた攻撃が行われたり、当該セキュリティホールを悪用する不正プログラムが出現すること）にも対応が可能になる。また、端末に誤ってウィルスが混入してしまっても、一旦プレイヤが起動してステッピングノードと接続されると、ＡＰＩフックの結果から不審な挙動が直ちに判明するので、ステッピングノードは当該端末の接続を強制切断する等の緊急措置を瞬時に実行することができる。
【００３０】
・コンダクタ（Conductor）
端末はサーバにＶＰＣで接続するに際し、複数のステッピングノードを経由する。端末がサーバとＶＰＣによる接続を確立する（端末がサーバに辿り着く）ためには、適切なステッピングノードを経由しなければならない。コンダクタは、このＶＰＣトンネルを形成するための経路情報をローカルマスタに提供する。コンダクタは、本実施形態のネットワークシステムにおいて、ＶＰＣトンネルを形成するためにステッピングノードに対して制御情報を提供する「指揮者」の役割を果たす。
また、コンダクタは前述の通り、ローカルマスタに対する機器認証、端末を操作するユーザに対する個人認証を実行する。そして、機器認証及び個人認証を完遂した端末に対し、当該ユーザが接続を許可されているサーバの情報を提供する。
【００３１】
以上、四つの装置及びプログラムで、ネットワーク上に存在する端末は、ローカルマスタ及び途中経路上のステッピングノードによる静的ＮＡＴと、サーバの直近に存在するステッピングノードによるリバースプロキシを通じて、ユーザが接続したいサーバに接続することができる。その際、端末の挙動はプレイヤによってサーバに対する通信のみ許可され、それ以外の挙動は大幅に制限される。
この接続形態では、静的ＮＡＴとリバースプロキシのそれぞれにおいて、パケットに付されるＩＰアドレスは多数書き換えられる。その結果、端末は非特許文献１に開示されるような、ＬＡＮ内のＩＰアドレスを付与されるような状態にはならず、非特許文献３に開示される静的ＮＡＴの接続形態に近い状態になる。
【００３２】
［全体構成］
図１は、本実施形態のネットワークシステムの概略図である。
ある企業のＬＡＮ１０２は、多くの従業員が勤務している関係で、セキュリティの都合上、容易にサブネットを越えたアクセスができない構成になっている。このようなＬＡＮ１０２で、リモートデスクトップ環境を導入し、従業員が企業内のどの場所に移動しても、移動先の端末で同一のデスクトップ環境を実現しようとしている。
既存のＬＡＮ１０２のセキュリティポリシを変更せずに、最小限の追加投資でリモートデスクトップ環境を実現させるため、発明者はＬＡＮ１０２内の各所にステッピングノードを配置し、端末が直近のＩＰリーチャブルなステッピングノードからＩＰリーチャブルなステッピングノードを辿って、目的のサーバに接続する環境を構築した。
【００３３】
図１では、第一端末１０５及び第二端末１０６と、二つの端末を示している。これは、どちらも等しくサーバ１０３に接続することができることを示すために記載している。
第一端末１０５及び第二端末１０６は周知のノートパソコン或は小型パソコンであり、ＯＳとして周知のＬｉｎｕｘ（登録商標）がインストールされている。なお、ＯＳは一般的なマルチタスクのネットワークＯＳであり、Ｌｉｎｕｘ（登録商標）に限定されず、例えばＷｉｎｄｏｗｓ（登録商標）等であってもよい。端末は周知のシンクライアント（Thin Client：ハードウェア資源を最小限に抑え、画面表示と操作入力等の最低限の機能だけを提供し、多くのアプリケーションプログラムはサーバで実行する、軽量端末。）を構成する。
【００３４】
第一端末１０５及び第二端末１０６には個人認証のためのＩＣカードリーダ１０４が接続されている。
第一端末１０５及び第二端末１０６はＬＡＮ１０２に接続する際、ローカルマスタを伴う。
第一端末１０５には、ハードウェアで構成されたローカルマスタであるローカルマスタＢＯＸ１０９が接続されている。ローカルマスタＢＯＸ１０９は、ＬＡＮ１０２と第一端末１０５との間に介在する。
第二端末１０６には、ソフトウェアで構成されたローカルマスタであるソフトローカルマスタ１１３がインストールされている。第二端末１０６はソフトローカルマスタ１１３がインストールされ、稼働することで、ソフトローカルマスタ１１３を経由してＬＡＮ１０２に接続する。
【００３５】
ローカルマスタＢＯＸ１０９又はソフトローカルマスタ１１３は、第一端末１０５及び第二端末１０６で稼働するプログラムが形成するネットワーク接続を、静的ＮＡＴで直近の第一のステッピングノードである第一ＳＮ１０７まで接続する。
つまり、第一端末１０５のアプリケーションは直接的に第一ＳＮ１０７のＩＰアドレスに接続せず、ローカルマスタＢＯＸ１０９が提供する仮想ＩＰアドレスに対して接続を行う。すると、ローカルマスタＢＯＸ１０９は第一端末１０５のアプリケーションが発するパケットのＩＰヘッダを静的ＮＡＴにて書き換える。具体的には、送信元ＩＰアドレスを第一端末１０５のＩＰアドレスからローカルマスタＢＯＸ１０９のＩＰアドレスへ、宛先ＩＰアドレスをローカルマスタＢＯＸ１０９のＩＰアドレスから第一ＳＮ１０７のＩＰアドレスへ、書き換える。
【００３６】
ローカルマスタＢＯＸ１０９及びソフトローカルマスタ１１３には、第一ＳＮ１０７が接続されている。第一ＳＮ１０７はローカルマスタＢＯＸ１０９及びソフトローカルマスタ１１３が形成するネットワーク接続を、静的ＮＡＴでＩＰリーチャブルな直近の第二のステッピングノードである第二ＳＮまで接続する。
第一ＳＮ１０７はローカルマスタＢＯＸ１０９又はソフトローカルマスタ１１３が発するパケットのＩＰヘッダを静的ＮＡＴにて書き換える。具体的には、送信元ＩＰアドレスをローカルマスタＢＯＸ１０９又はソフトローカルマスタ１１３のＩＰアドレスから第一ＳＮ１０７のＩＰアドレスへ、宛先ＩＰアドレスを第一ＳＮ１０７のＩＰアドレスから第二ＳＮのＩＰアドレスへ、書き換える。
【００３７】
第一ＳＮ１０７には、第二ＳＮ１０８が接続されている。第二ＳＮ１０８は第一ＳＮ１０７が形成するネットワーク接続を、静的ＮＡＴで直近の第三のステッピングノードである第三ＳＮ１１２まで接続する。
第二ＳＮ１０８は第一ＳＮ１０７が発するパケットのＩＰヘッダを静的ＮＡＴにて書き換える。具体的には、送信元ＩＰアドレスを第一ＳＮ１０７のＩＰアドレスから第二ＳＮ１０８のＩＰアドレスへ、宛先ＩＰアドレスを第二ＳＮ１０８のＩＰアドレスから第三ＳＮ１１２のＩＰアドレスへ、書き換える。
【００３８】
第二ＳＮ１０８には、第三ＳＮ１１２が接続されている。第三ＳＮ１１２は第二ＳＮ１０８が形成するネットワーク接続を、静的ＮＡＴで直近の第四のステッピングノードである第四ＳＮ１１４まで接続する。
第三ＳＮ１１２は第二ＳＮ１０８が発するパケットのＩＰヘッダを静的ＮＡＴにて書き換える。具体的には、送信元ＩＰアドレスを第二ＳＮ１０８のＩＰアドレスから第三ＳＮ１１２のＩＰアドレスへ、宛先ＩＰアドレスを第三ＳＮ１１２のＩＰアドレスから第四ＳＮ１１４のＩＰアドレスへ、書き換える。
【００３９】
第三ＳＮ１１２には、第四ＳＮ１１４が接続されている。第四ＳＮ１１４は第三ＳＮ１１２が形成するネットワーク接続を、リバースプロキシで直近のサーバ１０３まで接続する。
第四ＳＮ１１４は第三ＳＮ１１２が発するパケットのＩＰヘッダをリバースプロキシにて書き換える。具体的には、送信元ＩＰアドレスを第三ＳＮ１１２のＩＰアドレスから第四ＳＮ１１４のＩＰアドレスへ、宛先ＩＰアドレスを第四ＳＮ１１４のＩＰアドレスからサーバ１０３のＩＰアドレスへ、書き換える。
【００４０】
以上、端末から、ローカルマスタ、第一ＳＮ１０７、第二ＳＮ１０８、第三ＳＮ１１２そして第四ＳＮ１１４を通じてサーバ１０３まで、静的ＮＡＴとリバースプロキシを伴って接続する接続形態を、ＶＰＣと呼ぶ。そして、図１の点線で示す、端末とサーバ１０３との間にＶＰＣによって形成される、静的ＮＡＴとリバースプロキシで構成された接続経路を、ＶＰＣトンネルと呼ぶ。
ＶＰＣトンネルの特徴は、端末（第一端末１０５及び第二端末１０６）はサーバ１０３の本当のＩＰアドレスを知らず、またサーバ１０３も接続してきた端末の本当のＩＰアドレスを知らない、という点である。端末はローカルマスタが提供する仮想ＩＰアドレスに対して通信を行い、サーバ１０３は第四ＳＮ１１４と通信を行う。端末にとってサーバ１０３はローカルマスタが提供する仮想ＩＰアドレスが割り振られているように見え、サーバ１０３にとって端末は第四ＳＮ１１４であるように見える。
【００４１】
第二ＳＮ１０８と第三ＳＮ１１２には、更にコンダクタ１１５が接続されている。仮想接続制御装置ともいえるコンダクタ１１５は端末及びローカルマスタの認証を実行すると共に、ローカルマスタの要求に応じて、ＶＰＣトンネルを形成するための経路情報をローカルマスタに提供する。
図１には図示されていないが、ステッピングノードは図１に示される第一ＳＮ１０７、第二ＳＮ１０８、第三ＳＮ１１２及び第四ＳＮ１１４以外にも存在し得る。そのような状況の中で、端末がサーバ１０３にＶＰＣで接続する為に辿るステッピングノードの情報が、経路情報である。
経路情報の詳細については後述する。
【００４２】
端末はローカルマスタＢＯＸ１０９又はソフトローカルマスタ１１３を介在することで、ＬＡＮ１０２に接続することが許される。
ローカルマスタは第一ＳＮ１０７とはＩＰリーチャブルであるが、第二ＳＮ１０８、第三ＳＮ１１２及び第四ＳＮ１１４、そしてサーバ１０３とはＩＰリーチャブルではない。また、コンダクタ１１５ともＩＰリーチャブルではない。
図１において、第一ＳＮ１０７、ローカルマスタＢＯＸ１０９及び第二端末１０６が接続されている、相互にＩＰリーチャブルなサブネットは、第一のネットワークともいえる。
【００４３】
第一ＳＮ１０７はローカルマスタ及び第二ＳＮ１０８とはＩＰリーチャブルであるが、端末、第三ＳＮ１１２及び第四ＳＮ１１４、そしてサーバ１０３とはＩＰリーチャブルではない。また、コンダクタ１１５ともＩＰリーチャブルではない。
第二ＳＮ１０８は第一ＳＮ１０７、第三ＳＮ１１２及びコンダクタ１１５とはＩＰリーチャブルであるが、端末、第一ＳＮ１０７及び第四ＳＮ１１４、そしてサーバ１０３とはＩＰリーチャブルではない。
第三ＳＮ１１２は第二ＳＮ１０８、第四ＳＮ１１４及びコンダクタ１１５とはＩＰリーチャブルであるが、端末、第一ＳＮ１０７、そしてサーバ１０３とはＩＰリーチャブルではない。
【００４４】
第四ＳＮ１１４は第三ＳＮ１１２及びサーバ１０３とはＩＰリーチャブルであるが、端末、第一ＳＮ１０７、第二ＳＮ１０８とはＩＰリーチャブルではない。また、コンダクタ１１５ともＩＰリーチャブルではない。
図１において、第四ＳＮ１１４及びサーバ１０３が接続されている、相互にＩＰリーチャブルなサブネットは、第一のネットワークからはＩＰリーチャブルでない、第二のネットワークともいえる。
【００４５】
このように、本実施形態のネットワークシステム１０１は、端末とサーバ１０３との間のＩＰリーチャブルではない環境で、ＩＰリーチャブルな箇所にステッピングノードを配置し、ステッピングノードが静的ＮＡＴ或はリバースプロキシでＩＰリーチャブルな接続相手同士を接続することで、ＩＰリーチャブルではない機器同士を仮想的にＩＰリーチャブルにする。
【００４６】
図２は第一端末１０５に注目したネットワークシステム１０１の概略図である。紙面の都合上、図２及び後述する図３では第三ＳＮ１１２の表記は省略している。
第一端末１０５にはＯＳ２０１がインストールされており、ＯＳ２０１の一部であるシェル２０２を通じて第三アプリケーション２０３等のアプリケーションプログラムが実行される。第一端末１０５にはこの他にプレイヤ１１１がインストールされており、所定の操作によって実行される。
ＯＳ２０１は第一端末１０５のハードウェアである、ハードディスク等のストレージ２０４、キーボード及びマウス等の操作部２０５、液晶ディスプレイ等の表示部２０６、そして内蔵ＵＳＢインターフェース２０７とのデータの入出力を掌握し、アプリケーションがこれらのハードウェアを容易に利用できるためのＡＰＩを提供する。
【００４７】
プレイヤ１１１は個人認証を完遂すると、ＯＳ２０１の幾つかのＡＰＩをフックして、第一端末１０５全体の挙動を大幅に制限する。また、異常を検出したらその際の発生状況等をローカルマスタＢＯＸ１０９、第一ＳＮ１０７及び第二ＳＮ１０８を通じてコンダクタ１１５に報告する。
【００４８】
更に、プレイヤ１１１はアプリケーション起動制御部ともいえるシェルとしての機能も提供する。ユーザがサーバ１０３に接続するために、プレイヤ１１１が提供するユーザインターフェースが、専用シェル２０８である。個人認証が正常に終了すると、プレイヤ１１１の専用シェル２０８は第一端末１０５の画面にウィンドウを表示し、そのウィンドウの中にアイコンを表示する。アイコンはアプリケーションの起動パラメータ（コマンドライン）を内包しており、実行を許可するアプリケーション名と、アクセスを許可するサーバ１０３のサーバ名或はローカルマスタＢＯＸが提供する仮想ＩＰアドレス等が、アプリケーションの引数として指定されている。このようにして、プレイヤ１１１の子プロセスとして起動されたアプリケーションプログラムが、図２の第一アプリケーション２０９及び第二アプリケーション２１０である。プレイヤ１１１の子プロセスとしてアプリケーションが起動されるので、プレイヤ１１１はアプリケーションの挙動を容易に把握できる。
【００４９】
図２では、専用シェル２０８から起動された第一アプリケーション２０９及び第二アプリケーション２１０が表示されている。一方、第一端末１０５が個人認証を完了するまでに既に実行されているＯＳ２０１のシェル２０２と第三アプリケーション２０３が、別途起動された状態である。これらはプレイヤ１１１の専用シェル２０８の子プロセスとして起動されたアプリケーションではないので、プレイヤ１１１のＡＰＩフック機能でその挙動が大幅に制限される。また、実行を禁じられているアプリケーション、「ファイルを開く」動作が禁じられているファイルに対するアプリケーションの起動はプレイヤ１１１によって阻害され、実行できなくなる。
【００５０】
第一端末１０５の内蔵ＵＳＢインターフェース２０７には、ローカルマスタＢＯＸ１０９が接続されている。ローカルマスタＢＯＸ１０９には後述するＤＨＣＰクライアントが内蔵されており、ＤＨＣＰサーバ１１０によってＬＡＮ１０２に接続し、第一ＳＮ１０７等のＩＰリーチャブルな機器と通信ができるようになる。
【００５１】
図３は第二端末１０６に注目したネットワークシステム１０１の概略図である。
第二端末１０６の、第一端末１０５との相違点は、第二端末１０６にはローカルマスタＢＯＸ１０９の代わりにソフトローカルマスタ１１３がインストールされており、ＯＳ２０１とプレイヤ１１１との間に介在している点と、第二端末１０６はＬＡＮ１０２と内蔵ＮＩＣ３０１で接続される点である。したがって、第一端末１０５ではＤＨＣＰサーバ１１０がローカルマスタＢＯＸ１０９に動的ＩＰアドレスを付与していたが、第二端末１０６ではＤＨＣＰサーバ１１０が、第二端末１０６に内蔵されている内蔵ＮＩＣ３０１に直接、動的ＩＰアドレスを付与することとなる。ソフトローカルマスタ１１３は第二端末１０６内にインストールされているので、第一端末１０５とローカルマスタＢＯＸ１０９の場合のように、ＩＰネットワーク経由で所定の制御情報の送受信を行わずとも、メッセージパッシング、共有メモリ或は名前付きパイプ等、一般的なプロセス間通信の仕組みが利用可能である。
【００５２】
［ローカルマスタＢＯＸ１０９］
図４は、ローカルマスタＢＯＸ１０９の外観斜視図である。ローカルマスタＢＯＸ１０９の裏面にはＵＳＢ−Ｂコネクタ４０３が一つと、ネットワークコネクタ４０４が一つ設けられている。ＵＳＢ−Ｂコネクタ４０３は、図示しないＵＳＢ−Ｂケーブルを通じて端末が接続される。ネットワークコネクタ４０４にはＬＡＮケーブルが接続され、その先にはＤＨＣＰサーバ１１０が接続される。
【００５３】
図５はローカルマスタＢＯＸ１０９のハードウェア構成を示すブロック図である。
マイクロコンピュータよりなるローカルマスタＢＯＸ１０９は、ＣＰＵ５０２、ＲＡＭ５０３、ＲＯＭを兼用する不揮発性ストレージとしてのフラッシュメモリ５０４、ＵＳＢインターフェース５０５、そして第一ＮＩＣ５０７が、バス５０８に接続されている。
フラッシュメモリ５０４にはＯＳ２０１のカーネルやライブラリ、そして管理用コマンド等の主要部分が格納されている。ＯＳ２０１は例えばＬｉｎｕｘ（登録商標）である。
ローカルマスタＢＯＸ１０９はパソコンである第一端末１０５からＵＳＢケーブルを通じて電源供給を受ける。つまり、ローカルマスタＢＯＸ１０９はバスパワードデバイスである。
図６にて後述する、図５に記されていない第二ＮＩＣ６０１は、フラッシュメモリ５０４内に格納されているＯＳ２０１及びアプリケーションプログラムによって仮想的に作成される。
【００５４】
図６はローカルマスタＢＯＸ１０９の機能ブロック図である。
ローカルマスタＢＯＸ１０９は、二つのネットワークインターフェースを具備する。
第一ＮＩＣ５０７は、図５で図示したようにハードウェアとして構成されるＮＩＣであり、ＬＡＮ１０２に接続されることで、第一ＳＮ１０７とＩＰリーチャブルになる。
第二ＮＩＣ６０１は、図５では図示されていないが、フラッシュメモリ５０４内に格納されているＯＳ及びアプリケーションプログラムによって仮想的に作成される。第一端末１０５から見ると、第二ＮＩＣ６０１はＵＳＢ接続される外付けＮＩＣとして認識される。つまり、第二ＮＩＣ６０１は第一端末１０５のネットワークシステム１０１が構成するサブネットに含まれ、第一端末１０５から直接的にアクセスが可能なデバイスである。
【００５５】
ローカルマスタＢＯＸ１０９の第一ＮＩＣ５０７がＬＡＮ１０２に接続されると、ＤＨＣＰクライアント６０２は、ＤＨＣＰサーバ１１０から、ＩＰアドレス、ネットマスク、（ＩＰネットワークにおける）デフォルトゲートウェイ、ネームリゾルバ等のネットワーク構成情報を受信し、第一ＮＩＣ５０７がＬＡＮ１０２上の機器とＩＰリーチャブルな状態になるように、第一ＮＩＣ５０７を設定する。
【００５６】
次に、アドレス重複回避部６０３は、ＤＨＣＰクライアント６０２が取得したネットワーク構成情報を参照して、第二ＮＩＣ６０１に付与しようとするＩＰアドレスが第一ＮＩＣ５０７のサブネットに属する場合には、第二ＮＩＣ６０１が第一ＮＩＣ５０７とは異なるサブネットのネットワークに属するようにするために、ＤＨＣＰサーバ６０４の起動パラメータを調整する。具体的には、第一ＮＩＣ５０７にグローバルＩＰアドレスが付与される場合は、第二ＮＩＣ６０１には既定値として、ネットワークアドレス１９２．１６８．０．０／２４に属するＩＰアドレスである１９２．１６８．０．１を付与するが、もしも第一ＮＩＣ５０７のネットワークアドレスが１９２．１６８．０．０／２４であった場合は、１９２．１６８．１．０／２４のＩＰアドレスである１９２．１６８．１．１を付与する。
【００５７】
ローカルマスタＢＯＸ１０９の第一ＮＩＣ５０７がＤＨＣＰサーバ１１０によって設定され、第二ＮＩＣ６０１にもＤＨＣＰサーバ６０４によってプライベートＩＰアドレスが付与された状態では、ＮＡＴ設定部６０５は一般的な動的ＮＡＴを構成する。これにより、第一ＮＩＣ５０７と第二ＮＩＣ６０１との間は支障なくネットワーク接続が成立する。なお、この時点では、暗号化通信処理部６０６は第二ＮＩＣ６０１と第一ＮＩＣ５０７との間を流れるパケットのペイロード部分の暗号化処理及び復号化処理は行わない。
【００５８】
一方、コントロールセッション管理部６０９は、第一ＮＩＣ５０７がネットワークに接続したことを知ると、直ちにコンダクタ１１５に対して機器認証を試みる。コンダクタ１１５へ送信する機器特定ＩＤ６０８は、デフォルトゲートウェイアドレス６１２に記述されているステッピングノードへ送信される。本実施形態では図１に示したように、第一ＳＮ１０７である。
機器認証に用いる機器特定ＩＤ６０８は、暗号化通信処理部６０６によって暗号化されて、第一ＳＮ１０７及び第二ＳＮ１０８を通じてコンダクタ１１５に送信される。コンダクタ１１５から暗号化通信処理部６０６を通じて機器認証の成功の通知及びセッションＩＤ（以下「ＳＳＩＤ」）を受信すると、コントロールセッション管理部はＳＳＩＤをＳＳＩＤメモリ６１３に記憶する。
この時点で、ローカルマスタＢＯＸ１０９と第一ＳＮ１０７、第二ＳＮ１０８及びコンダクタ１１５との間にはコントロールセッションが形成される。
なお、本実施形態で記す「デフォルトゲートウェイ」は、一般的なＩＰネットワークのデフォルトゲートウェイとは異なる意味であり、コンダクタ１１５に繋ぐ為に辿る、ＩＰリーチャブルな機器のＩＰアドレス又はホスト名を指す。
【００５９】
コントロールセッションは、コネクション型のＴＣＰの一種であり、ペイロードが暗号化通信処理部６０６によって暗号化されている。発明者が独自に開発したプロトコルであり、ＳＳＬ−ＴＥＬＮＥＴ（ＳＳＬによって暗号化されたＴＥＬＮＥＴプロトコル）に類似する。ＳＳＬ−ＴＥＬＮＥＴとの相違点は、画面制御を行わない点である。コマンドとデータの送受信だけが実現できればよいので、ＶＴ端末等のエスケープシーケンスを用いた画面制御の機能を持たない。
ローカルマスタとコンダクタ１１５との間のコントロールセッションの形成は、ＴＥＬＮＥＴの多重接続に類似する。つまり、ローカルマスタから第一ＳＮ１０７にＴＥＬＮＥＴログインした後、第一ＳＮ１０７を踏み台にして第二ＳＮ１０８にＴＥＬＮＥＴログインし、更に第二ＳＮ１０８を踏み台にしてコンダクタ１１５にＴＥＬＮＥＴログインする、という接続形態である。
【００６０】
第一端末１０５のプレイヤ１１１は、起動すると、接続されているローカルマスタＢＯＸ１０９に対し、コントロールセッションを通じてＳＳＩＤを要求する。この動作は、ローカルマスタＢＯＸ１０９がＳＳＩＤを返信するまで繰り返される。つまり、プレイヤ１１１はＳＳＩＤの要求をポーリングする。
コントロールセッション管理部６０９は、プレイヤ１１１からＳＳＩＤの要求を受けると、ＳＳＩＤメモリ６１３にＳＳＩＤが格納されていればこれを返信する。そうでない場合、つまりコンダクタ１１５に対する機器認証が完遂しておらず、コンダクタ１１５からＳＳＩＤを受け取っていない時点では、プレイヤ１１１に対しエラーを返信する。
プレイヤ１１１は、ローカルマスタＢＯＸ１０９からＳＳＩＤを受信すると、ローカルマスタＢＯＸ１０９が機器認証を成功したことを認識する。受信したＳＳＩＤを図示しないＲＡＭに記憶すると、プレイヤ１１１は次に第一端末１０５の表示部２０６にログイン画面を表示する。
ユーザは第一端末１０５のＩＣカードリーダ１０４或は操作部２０５等を用いてユーザの個人認証を実行する。ユーザが入力する個人認証の情報はプレイヤ１１１によってコントロールセッションを通じてローカルマスタＢＯＸ１０９に送信される。なお、個人認証の情報は、様々である。操作部２０５を用いる場合は、一般的なユーザＩＤとパスワードである。この他、指紋認証機器やＩＣカードリーダ１０４等の、個人認証を実現する機器から得られる個人認証に用いる情報を利用する方法もある。これ以降、これらの端末を使用するユーザを認証するための情報を個人認証情報と総括して呼ぶ。
【００６１】
個人認証情報は、コントロールセッション管理部６０９を通じて制御される暗号化通信処理部６０６によって暗号化されて、コンダクタ１１５に送信される。コンダクタ１１５から返信される個人認証の成功の通知は、第一端末１０５に到達する。
プレイヤ１１１はコンダクタ１１５から個人認証の成功の通知を受信すると、ユーザが利用可能なサービスに関する情報をコンダクタ１１５に要求する。コンダクタ１１５はこれに呼応して、ユーザが享受できるサービスに関する情報と、第一端末１０５及びローカルマスタＢＯＸ１０９の挙動を制限するための情報を送信する。
ユーザが享受できるサービスに関する情報はサービスメニュー情報６１４として、プレイヤ１１１に記憶されると共に、ローカルマスタＢＯＸ１０９も転送する際にサービスメニュー情報６１４を記憶する。
第一端末１０５及びローカルマスタＢＯＸ１０９の挙動を制限するための情報は制限設定情報６１０として、プレイヤ１１１に記憶されると共に、ローカルマスタＢＯＸ１０９も転送する際に制限設定情報６１０を記憶する。
【００６２】
ローカルマスタＢＯＸ１０９のコントロールセッション管理部６０９は、コンダクタ１１５から受信した制限設定情報６１０に記述されているパケットフィルタリングの設定情報を読み出して、パケットフィルタ設定部６１１を制御する。パケットフィルタ設定部６１１は、コントロールセッション管理部６０９から与えられたパケットフィルタリングの設定情報に従って、パケットフィルタを構成する。
【００６３】
次に、ローカルマスタＢＯＸ１０９のコントロールセッション管理部６０９は、記憶したサービスメニュー情報６１４に基づいて、データセッションを形成するポート番号を監視するように、パケット監視部６１５を設定する。
パケット監視部６１５は、第二ＮＩＣ６０１に割り当てられたＩＰアドレスの、データセッションの対象となるポート番号に、ＴＣＰ  ＳＹＮパケットが来たら、これをコントロールセッション管理部６０９に報告する。コントロールセッション管理部６０９は、この報告を受けて、データセッションを形成するための通信を開始する。
【００６４】
また、パケット監視部６１５は、設定されるデータセッションがコネクション型の通信である場合は、ＴＣＰ  ＦＩＮパケットも監視する。ＲＤＰやＳＳＨのような、クライアントの終了によって初めてＴＣＰ  ＦＩＮパケットが送信されるプロトコルの場合は、ＴＣＰ  ＦＩＮパケットの入来を検出することで、直ちにデータセッションを終了（クローズ）させることができる。
逆に、設定されるデータセッションがＨＴＴＰのようなコネクションレス型のプロトコルの場合は、一つのデータストリームが送信される度にＴＣＰ  ＦＩＮパケットが送信される。従って、コネクションレス型プロトコルの場合は、ＴＣＰ  ＦＩＮパケットをデータセッションをクローズさせるきっかけとしてはならない。つまり、ＨＴＴＰを通すＶＰＣトンネルはＴＣＰ  ＦＩＮパケットも正しく転送しなければならない。この場合は、端末がコントロールセッションを通じて、当該データセッションの終了を明示的に通知する。
【００６５】
［ソフトローカルマスタ１１３］
図７は、ソフトローカルマスタ１１３の機能ブロック図である。
ソフトローカルマスタ１１３は、二つのネットワークインターフェースを具備する。
内蔵ＮＩＣ３０１は、第二端末１０６にハードウェアとして内蔵されるＮＩＣであり、ＬＡＮ１０２に接続される。
ループバック仮想ＮＩＣ７０１は、第二端末１０６にインストールされている、ＩＰｖ４プロトコルのネットワークＯＳ２０１には標準として備わっている、周知のループバックインターフェースである。仮に端末にＮＩＣが装備されていなくても、ＯＳ２０１がＩＰｖ４プロトコルをサポートする限り、必ず１２７．０．０．１というＩＰアドレスが付与されているループバックインターフェースがＯＳ２０１内に構成される。特別な設定を施していない限り、ループバックインターフェース宛に送信したパケットは、端末自身のパケット受信対象に送付される。つまり、「loop back」、送信したパケットが輪を描くように出発点、つまり端末自身に戻る。
【００６６】
ローカルマスタＢＯＸ１０９の場合は、第一ＮＩＣ５０７は第一端末１０５から直接的にアクセスが可能なデバイスでは無かった。しかし、ソフトローカルマスタ１１３の場合、内蔵ＮＩＣ３０１もループバック仮想ＮＩＣ７０１も、第二端末１０６のＯＳ２０１及びアプリケーションから等しくアクセスが可能なデバイスである。
【００６７】
ソフトローカルマスタ１１３の内蔵ＮＩＣ３０１がＬＡＮ１０２に接続されると、ＯＳ２０１が内蔵するＤＨＣＰクライアント７０２は、内蔵ＮＩＣ３０１を通じてＤＨＣＰサーバ１１０から、ＩＰアドレス、ネットマスク、デフォルトゲートウェイ、ネームリゾルバ等のネットワーク構成情報を受信し、内蔵ＮＩＣ３０１がネットワークに接続できるように内蔵ＮＩＣ３０１を設定する。
【００６８】
ローカルマスタＢＯＸ１０９の場合は、この手順の次に、第一ＮＩＣ５０７と第二ＮＩＣ６０１のサブネットが重複しないための処理が必要だったが、ループバック仮想ＮＩＣ７０１は、グローバル或はプライベートのＩＰアドレスが付与される内蔵ＮＩＣ３０１とは必ずネットワークセグメントが重複しないので、アドレス重複回避部６０３を設ける必要はない。また、ループバックアドレスは固定であるので、ＤＨＣＰサーバ６０４も不要である。
【００６９】
ソフトローカルマスタ１１３の内蔵ＮＩＣ３０１がＬＡＮ１０２に接続された状態では、ＮＡＴ設定部７０５は何もしない。また、パケットフィルタ設定部７０６も何もしない。これにより、ＯＳ２０１及びアプリケーションは内蔵ＮＩＣ３０１を通じて支障なくネットワークに接続できる。なお、この時点では、暗号化通信処理部６０６はループバック仮想ＮＩＣ７０１と内蔵ＮＩＣ３０１との間を流れるパケットの暗号化処理及び復号化処理は行わない。
【００７０】
一方、コントロールセッション管理部６０９は、内蔵ＮＩＣ３０１がネットワークに接続したことを知ると、直ちにコンダクタ１１５に対して機器認証を試みる。コンダクタ１１５へ送信する機器特定ＩＤ６０８は、デフォルトゲートウェイアドレス６１２に記述されているステッピングノードへ送信される。本実施形態では図１に示したように、第一ＳＮ１０７である。
機器認証に用いる機器特定ＩＤ６０８は、暗号化通信処理部６０６によって暗号化されて、第一ＳＮ１０７及び第二ＳＮ１０８を通じてコンダクタ１１５に送信される。コンダクタ１１５から暗号化通信処理部６０６を通じて機器認証の成功の通知及びセッションＩＤ（以下「ＳＳＩＤ」）を受信すると、コントロールセッション管理部６０９はＳＳＩＤをＳＳＩＤメモリ６１３に記憶する。
この時点で、ソフトローカルマスタ１１３と第一ＳＮ１０７、第二ＳＮ１０８及びコンダクタ１１５との間にはコントロールセッションが形成される。
【００７１】
第一端末１０５のプレイヤ１１１は、起動すると、接続されているローカルマスタＢＯＸ１０９に対し、コントロールセッションを通じてＳＳＩＤを要求する。この動作は、ローカルマスタＢＯＸ１０９がＳＳＩＤを返信するまで繰り返される。つまり、プレイヤ１１１はＳＳＩＤの要求をポーリングする。
コントロールセッション管理部６０９は、プレイヤ１１１からＳＳＩＤの要求を受けると、ＳＳＩＤメモリ６１３にＳＳＩＤが格納されていればこれを返信する。そうでない場合、つまりコンダクタ１１５に対する機器認証が完遂しておらず、コンダクタ１１５からＳＳＩＤを受け取っていない時点では、プレイヤ１１１に対しエラーを返信する。
プレイヤ１１１は、ソフトローカルマスタ１１３からＳＳＩＤを受信すると、ソフトローカルマスタ１１３が機器認証を成功したことを認識する。受信したＳＳＩＤを図示しないＲＡＭに記憶すると、プレイヤ１１１は次に第一端末１０５の表示部２０６にログイン画面を表示する。
ユーザは第一端末１０５のＩＣカードリーダ１０４或は操作部２０５等を用いて個人認証を実行する。個人認証情報はプレイヤ１１１によってコントロールセッションを通じてローカルマスタＢＯＸ１０９に送信される。
【００７２】
個人認証情報は、コントロールセッション管理部６０９を通じて制御される暗号化通信処理部６０６によって暗号化されて、コンダクタ１１５に送信される。コンダクタ１１５から返信される個人認証の成功の通知は、第一端末１０５に転送される。
プレイヤ１１１はコンダクタ１１５から個人認証の成功の通知を受信すると、ユーザが利用可能なサービスに関する情報をコンダクタ１１５に要求する。コンダクタ１１５はこれに呼応して、ユーザが享受できるサービスに関する情報と、第一端末１０５及びローカルマスタＢＯＸ１０９の挙動を制限するための情報を送信する。
ユーザが享受できるサービスに関する情報はサービスメニュー情報として、プレイヤ１１１に記憶される。このサービスメニュー情報はソフトローカルマスタ１１３も利用する。
第一端末１０５及びローカルマスタＢＯＸ１０９の挙動を制限するための情報は制限設定情報６１０として、プレイヤ１１１に記憶される。この制限設定情報６１０はソフトローカルマスタ１１３も利用する。
【００７３】
ローカルマスタＢＯＸ１０９の場合、プレイヤ１１１に転送される制限設定情報６１０及びサービスメニュー情報６１４を、プレイヤ１１１に転送する際にローカルマスタＢＯＸ１０９も取得して記憶する手順を踏むが、ソフトローカルマスタ１１３の場合、ソフトローカルマスタ１１３とプレイヤ１１１が第二端末１０６内に共存しているので、コンダクタ１１５から受信した制限設定情報６１０は直ちにプレイヤ１１１も参照可能である。したがって、ソフトローカルマスタ１１３が制限設定情報６１０を第二端末１０６のプレイヤ１１１に送信する手順は、本質的に生じ得ない。
【００７４】
ソフトローカルマスタ１１３のコントロールセッション管理部６０９は、コンダクタ１１５から受信した制限設定情報６１０に記述されているパケットフィルタリングの設定情報を読み出して、パケットフィルタ設定部７０６を制御する。パケットフィルタ設定部７０６は、コントロールセッション管理部６０９から与えられたパケットフィルタリングの設定情報に従って、パケットフィルタを構成する。
【００７５】
次に、ソフトローカルマスタ１１３のコントロールセッション管理部６０９は、記憶したサービスメニュー情報に基づいて、データセッションを形成するポート番号を監視するように、パケット監視部６１５を設定する。
パケット監視部６１５は、第二ＮＩＣ６０１に割り当てられたＩＰアドレスの、データセッションの対象となるポート番号に、ＴＣＰ  ＳＹＮパケットが来たら、これをコントロールセッション管理部６０９に報告する。コントロールセッション管理部６０９は、この報告を受けて、データセッションを形成するための通信を開始する。
【００７６】
また、パケット監視部６１５は、設定されるデータセッションがコネクション型の通信である場合は、ＴＣＰ  ＦＩＮパケットも監視する。ＲＤＰ（Remote Desktop Protocol）やＳＳＨのような、クライアントの終了によって初めてＴＣＰ  ＦＩＮパケットが送信されるプロトコルの場合は、ＴＣＰ  ＦＩＮパケットの入来を検出することで、直ちにデータセッションを終了（クローズ）させることができる。
逆に、設定されるデータセッションがＨＴＴＰのようなコネクションレス型のプロトコルの場合は、一つのデータストリームが送信される度にＴＣＰ  ＦＩＮパケットが送信される。従って、コネクションレス型プロトコルの場合は、ＴＣＰ  ＦＩＮパケットをデータセッションをクローズさせるきっかけとしてはならない。つまり、ＨＴＴＰを通すＶＰＣトンネルはＴＣＰ  ＦＩＮパケットも正しく転送しなければならない。この場合は、端末がコントロールセッションを通じて、当該データセッションの終了を明示的に通知する。
【００７７】
以上、ローカルマスタＢＯＸ１０９とソフトローカルマスタ１１３を説明した。
これまでの説明で明らかなように、ローカルマスタはコンダクタ１１５の指示、具体的にはコンダクタ１１５が作成する制限設定情報６１０に基づいて、端末で稼働するＯＳ２０１或はそのＯＳ２０１を通じて動作するアプリケーションから発生する通信に対し、パケットフィルタで制限を加える。そして、ユーザが許可されたサーバ１０３に対する仮想的な接続を実現するために、直近のステッピングノードに対する静的ＮＡＴを設定する。
静的ＮＡＴを行うことで、端末はあたかもＬＡＮ１０２内のサーバ１０３に接続する時と同等の状態で、インターネット１０７及びファイアウォールを介したサーバ１０３に接続することができる。
【００７８】
［プレイヤ１１１］
図８は、プレイヤ１１１の機能ブロック図である。
プレイヤ１１１は、コンダクタ１１５の指示、具体的にはコンダクタ１１５から送信される制限設定情報６１０に基づいて、端末で起動するアプリケーションと、アプリケーションの動作に連れて使用されるデバイスに対して監視を行い、必要に応じて動作を制限する等の制御を行い、ログ記録等の管理を行う。このような機能を実現するために、プレイヤ１１１はＯＳ２０１に備わっているＡＰＩをフックして、アプリケーション及びＯＳ２０１の挙動を常時監視する。そして、ＡＰＩが制限設定情報６１０に記述されている制限条件に合致した場合、プレイヤ１１１は当該ＡＰＩの起動を阻止し、ローカルマスタを通じてコンダクタ１１５に報告する。
【００７９】
図８では、プレイヤ１１１を説明する際に必要不可欠な、ＯＳ２０１とアプリケーションについても機能ブロックとして表記している。
ＯＳ２０１には様々な機能が含まれているが、本実施形態を説明するに際し、ＯＳ２０１はハードウェアをアプリケーションから扱い易くするためのデバイスドライバの集合体と考えることができる。そして、デバイスドライバはＡＰＩの集合体ともいえる。図８では、主にこれらハードウェアとデバイスドライバに着目して、機能ブロックを記述した。
【００８０】
端末に備わっている主要なハードウェアとしては、キーボード及びマウス等のポインティングデバイスである操作部２０５、液晶ディスプレイ等の表示部２０６、ハードディスク等のストレージ２０４、そしてＮＩＣが挙げられる。但し、前述の第一端末１０５の場合は、ＮＩＣはローカルマスタＢＯＸ１０９の内部に、第二ＮＩＣ６０１として仮想的に設けられた。何れの場合においても、ネットワークに接続する以上、ＮＩＣは存在する。
操作ドライバ８０１は、操作部２０５が発する操作情報及びＩＣカードリーダ１０４が出力する個人認証情報を、アプリケーションやシェル２０２やコントロールセッション管理部８０７等に引き渡す。
表示制御部８０２は、アプリケーションやシェル２０２等から発生する画面描画指示情報を実際の画面描画情報に変換して表示部２０６に引き渡す。
【００８１】
ファイルシステム８０３は、ストレージ２０４にファイル及びディレクトリを構成し、アプリケーションやシェル２０２の指示に従ってファイル及びディレクトリを操作する。
プロセス制御部８０４は、アプリケーションやシェル２０２等を通じてストレージ２０４内に存在するアプリケーションやライブラリ等の実行及び終了を制御する。
クリップボードバッファ８０５は、アプリケーションやシェル２０２同士でデータオブジェクトの複写、移動、削除等の一時バッファとして機能する。
ＴＣＰ／ＩＰプロトコルスタックとも呼べるネットワークドライバ８０６は、アプリケーションやシェル２０２とネットワークとの間で通信ができる環境を構築し、その通信を制御する。
【００８２】
ネットワークドライバ８０６はＤＨＣＰクライアント７０２も含む。
ローカルマスタＢＯＸ１０９を利用する場合、ローカルマスタＢＯＸ１０９内のＤＨＣＰクライアント６０２は、ローカルマスタＢＯＸ１０９内の第一ＮＩＣ５０７に、ＬＡＮ１０２のＤＨＣＰサーバ１１０から受信するネットワーク構成情報に基づいて動的ＩＰアドレスを与える。また、ネットワークドライバ８０６の一機能であるＤＨＣＰクライアント７０２は、ローカルマスタＢＯＸ１０９内の第二ＮＩＣ６０１に、ローカルマスタＢＯＸ１０９内のＤＨＣＰサーバ６０４から受信するネットワーク構成情報に基づいて動的ＩＰアドレスを与える。
ソフトローカルマスタ１１３を利用する場合、ネットワークドライバ８０６の一機能であるＤＨＣＰクライアント７０２は、内蔵ＮＩＣ３０１に、ＬＡＮ１０２のＤＨＣＰサーバ１１０から受信するネットワーク構成情報に基づいて動的ＩＰアドレスを与える。
【００８３】
プレイヤ１１１は、ＯＳ２０１の初期起動プロセスやシェル２０２を通じたユーザの操作、或はＵＳＢメモリ内に格納された状態でＵＳＢメモリを端末に接続して自動実行される等で起動されると、最初にコントロールセッション管理部８０７がローカルマスタＢＯＸ１０９又はソフトローカルマスタ１１３に対してＳＳＩＤを要求する。
ローカルマスタＢＯＸ１０９又はソフトローカルマスタ１１３からＳＳＩＤの取得に成功すると、コントロールセッション管理部８０７は次に個人認証を実行する。コントロールセッション管理部８０７は、ＩＣカードリーダ１０４或は操作部２０５等で取得した個人認証情報をコンダクタ１１５に送信し、個人認証の結果を待つ。
【００８４】
コンダクタ１１５からローカルマスタＢＯＸ１０９又はソフトローカルマスタ１１３を通じて個人認証が成功した旨の報告を受けたら、コントロールセッション管理部８０７は次にコンダクタ１１５に対して制限設定情報６１０及びサービスメニュー情報６１４を要求する。
ソフトローカルマスタ１１３を使用している場合、個人認証が成功した後、プレイヤ１１１がコンダクタ１１５から制限設定情報６１０及びサービスメニュー情報６１４をダウンロードして、端末の図示しないＲＡＭ内に制限設定情報６１０を保持する。保持した制限設定情報６１０及びサービスメニュー情報６１４はソフトローカルマスタ１１３と共用することとなる。
【００８５】
ローカルマスタＢＯＸ１０９を使用している場合、個人認証が成功した後、プレイヤ１１１がコンダクタ１１５から制限設定情報６１０及びサービスメニュー情報６１４をダウンロードして、端末の図示しないＲＡＭ内に制限設定情報６１０を保持する際、ローカルマスタＢＯＸ１０９は端末とは別個のハードウェアで構成されているので、ローカルマスタＢＯＸ１０９は別途制限設定情報６１０及びサービスメニュー情報６１４を取得する必要がある。このため、本実施形態ではプレイヤ１１１とコンダクタ１１５との通信の間に介在して、制限設定情報６１０及びサービスメニュー情報６１４をプレイヤ１１１が受信する寸前に、一旦ローカルマスタＢＯＸ１０９が保持してから、プレイヤ１１１に送信する、という方法で取得している。勿論、この方法に限られず、プレイヤ１１１が受信した制限設定情報６１０及びサービスメニュー情報６１４を明示的にローカルマスタＢＯＸ１０９に送信する方法でも良い。
【００８６】
コンダクタ１１５から制限設定情報６１０を得ると、プレイヤ１１１のコントロールセッション管理部８０７は、制限設定情報６１０に従って、操作情報取得部８０８、画面キャプチャ処理部８０９、ファイルシステム監視部８１０、プロセス監視部８１１、クリップボード監視部８１２、そしてＡＰＩフック処理部８１３に設定を行う。
【００８７】
ファイルシステム監視部８１０は、制限設定情報６１０で指定された特定のファイルやディレクトリに対する挙動として、コピー、移動、削除、名称変更を監視する。
プロセス監視部８１１は、制限設定情報６１０で指定された特定のアプリケーション等のプロセスの起動及び自己プロセス隠蔽行為を監視する。
クリップボード監視部８１２は、制限設定情報６１０で指定された特定のアプリケーション等が、クリップボードバッファ８０５に対する、データオブジェクトの複写、移動、削除等の操作を監視する。
【００８８】
ＡＰＩフック処理部８１３は、ファイルシステム監視部８１０がファイルシステム８０３に対するＡＰＩフック処理を、プロセス監視部８１１がプロセス制御部８０４に対するＡＰＩフック処理を、クリップボード監視部８１２がクリップボードバッファ８０５に対するＡＰＩフック処理を、それぞれ実現する。ＡＰＩフック処理部８１３によって、シェル２０２やアプリケーションがファイルやプロセスに対して何らかの動作を起こそうとすると、ファイルシステム監視部８１０やプロセス監視部８１１がその都度呼び出されて、対応するＡＰＩを実行すべきか否かが判定される。
【００８９】
操作情報取得部８０８は、制限設定情報６１０に記述されている情報に従って、当該情報に記されている条件に合致したら、操作ドライバ８０１から得られる操作情報を、ローカルマスタＢＯＸ１０９又はソフトローカルマスタ１１３を通じてコンダクタ１１５へ報告する。
画面キャプチャ処理部８０９は、制限設定情報６１０に記述されている情報に従って、当該情報に記されている条件に合致したら、表示制御部８０２から得られるビットマップ画面情報を、ローカルマスタＢＯＸ１０９又はソフトローカルマスタ１１３を通じてコンダクタ１１５へ報告する。
【００９０】
専用シェル２０８は、制限設定情報６１０の記述に従って、ユーザが実行を許可されるアプリケーションのアプリケーションプログラム名と、ユーザがアクセスを許可されるサーバ１０３のリソース名（resource：「情報資源」の意）を含むアイコンを作成する。アイコンの中身はコマンドライン文字列であり、実行するアプリケーションプログラム名と、その引数としてサーバ１０３のリソース名が記述される。また、アプリケーションプログラムによっては、起動時に必要な種々のオプションスイッチも含まれる。このアイコンをマウス等のポインティングデバイス等でクリックすることで起動したアプリケーションプログラムが、図８の第一アプリケーション２０９及び第二アプリケーション２１０である。第一アプリケーション２０９及び第二アプリケーション２１０は専用シェル２０８の子プロセスとして起動されるので、第一アプリケーション２０９及び第二アプリケーション２１０の挙動は専用シェル２０８を通じて完全に把握可能である。
【００９１】
一方、ＯＳ２０１には標準で備わっているシェル２０２が存在する。また、そのシェル２０２から起動するアプリケーションプログラムも当然存在する。プロセス監視部８１１はこれら専用シェル２０８を経由しないシェル２０２及びアプリケーション（図８では第三アプリケーション２０３がこれに該当する。）については、ファイルシステム監視部８１０、プロセス監視部８１１及びクリップボード監視部８１２が厳しくその挙動を監視し、サーバ１０３に対するセキュリティ面の脅威となる可能性のある操作は直ちに中止する。また、起動自体が禁じられているアプリケーションプログラムについては、プロセス監視部８１１によって強制終了させられる。
【００９２】
［ステッピングノード］
ステッピングノードは、ファイアウォールを伴わない形式の装置と、ファイアウォールを伴う形式の装置との、二種類が存在する。以下、それぞれの機能を説明する。
図９は、ステッピングノードの機能ブロック図である。図９に開示するステッピングノードは、ファイアウォールを伴わない形式の装置である。
ステッピングノード９０１はネットワークＯＳが稼働するコンピュータである。ＯＳは一例としてはＬｉｎｕｘ（登録商標）等の、ＰＯＳＩＸ系ＯＳが好ましい。
本実施形態のステッピングノード９０１は、ＬＡＮ１０２の要所に配置され、ＩＰリーチャブルなステッピングノード同士或はサーバとのゲートウェイに特化している。
ＬＡＮ１０２に接続される第五ＮＩＣ９０２には固定のＩＰアドレスが付与されている。
【００９３】
第五ＮＩＣ９０２に接続されている暗号化通信処理部９０４は、ローカルマスタＢＯＸ１０９及びソフトローカルマスタ１１３に設けられている暗号化通信処理部６０６と対をなす。つまり、プレイヤ１１１及びローカルマスタと認証情報の送受信と、コントロールセッション及びデータセッションの暗号化を施す。
【００９４】
コントロールセッション管理部９０９は、ローカルマスタＢＯＸ１０９及びソフトローカルマスタ１１３に設けられているコントロールセッション管理部６０９、及びプレイヤ１１１に設けられているコントロールセッション管理部８０７と対をなす。つまり、ローカルマスタとの間にコントロールセッションを形成し、ローカルマスタ或はプレイヤ１１１と様々な制御情報の送受信を行う。このために、デフォルトゲートウェイアドレス６１２或はコンダクタアドレス９０８が記憶されている。
【００９５】
データセッション管理部９１０は、コントロールセッション管理部９０９を通じて、ローカルマスタから来たサーバ１０３に対する接続要求に応じて、当該サーバ１０３に対応するリバースプロキシを起動するか、又は静的ＮＡＴを設定して、ＩＰリーチャブルなローカルマスタ、他のステッピングノード或はサーバ１０３との間にデータセッションを形成する。
データセッション管理部９１０によって起動されるリバースプロキシのプロセスは、図９に示すように、第一リバースプロキシ９１１、第二リバースプロキシ９１２、…と、端末との間に形成されるデータセッションの数に応じて増減する。
同様に、データセッション管理部９１０によって設定される静的ＮＡＴの設定は、図９に示すように、第一ＮＡＴ９１４、図示しない第二ＮＡＴ、…と、端末との間に形成されるデータセッションの数に応じて増減する。
【００９６】
データセッションは、端末から形成される数に応じて増減すると共に、端末の数、ひいてはその端末を使用するユーザの人数によっても増減する。例えば、ユーザＡのＨＴＴＰデータセッションと、ユーザＡのＲＤＰデータセッションは独立である。ユーザＢのＨＴＴＰデータセッションと、ユーザＢのＲＤＰデータセッションも独立である。これらデータセッションは全て独立して形成される。特に、ＳＳＨのようなプロトコルの場合は、接続しようとするＳＳＨサーバの数に応じて、一人のユーザで複数のデータセッションが形成される。それらデータセッションにおいて、ステッピングノードが終端であればリバースプロキシのプロセスが起動され、終端でなければ静的ＮＡＴが設定される。
なお、「静的ＮＡＴの設定」とは、ステッピングノードのＯＳの機能に対して設定を行って静的ＮＡＴを設定する場合を想定して言及している。例えばＬｉｎｕｘ（登録商標）の場合は、カーネルのＮｅｔｆｉｌｔｅｒドライバに対してｉｐｔａｂｌｅｓユーティリティを用いて静的ＮＡＴを設定する作業を指す。もし、静的ＮＡＴも独立したプログラムで構成し、且つデータセッションの数に応じて多重起動するのであれば、その場合は「静的ＮＡＴプログラムの起動」となる。つまり、静的ＮＡＴを実現する方法に応じて表現は変わる。
【００９７】
データセッション管理部９１０は、ローカルマスタと他のステッピングノード、又はステッピングノード同士との接続には、静的ＮＡＴを設定する。パケットのペイロード部分の暗号化を解く必要がなく、パケットのＩＰヘッダ部分に記述されているＩＰアドレス及びポート番号の書き換えだけで済むからである。
これに対して、データセッション管理部９１０は、ローカルマスタ又は他のステッピングノードとサーバ１０３との接続には、リバースプロキシを設定する。サーバ１０３との通信にはパケットのペイロード部分の暗号化を解く必要があり、またＴＣＰ／ＩＰ第四層（アプリケーション）に従う処理が要求される場合があるからである。一例としては、ＨＴＴＰのエラー処理として、サーバ１０３に代わって、ＵＲＬの呼び出し方法や構文に誤りがある場合にｗｅｂサーバが返す「４００  Ｂａｄ  Ｒｅｑｕｅｓｔ」を返送することで、サーバ１０３の負荷を軽減する、等の機能が考えられる。
【００９８】
パケットモニタ９０５は、データセッションに入来するＴＣＰ  ＡＣＫ＋ＳＹＮパケットを監視する。
ＶＰＣトンネルは、端末が発したＴＣＰ  ＳＹＮパケットに呼応してローカルマスタが送信したＶＰＣ確立要求コマンドに従って、静的ＮＡＴ或はリバースプロキシで形成するが、サーバ１０３が何らかの障害等で端末の要求に応えられない場合は、設定したＶＰＣトンネルを破棄しなければならない。そこで、ローカルマスタが送信したＶＰＣ確立要求コマンドに従って仮に設定した静的ＮＡＴ或はリバースプロキシは、タイマを用いて制限時間を設けている。図９では、データセッション管理部９１０は第一リバースプロキシ９１１を起動する際に、同時に第一タイマ９０６も起動する。同様に、データセッション管理部９１０は第二リバースプロキシ９１２を起動する際に、同時に第二タイマ９０７も起動し、第一ＮＡＴ９１４を設定する際に、同時に第三タイマ９１３も起動する。
これらタイマは、仮に起動したリバースプロキシ、或は仮に設定した静的ＮＡＴをそのまま維持して良いか否かを判断するために用いられる。
リバースプロキシ或は静的ＮＡＴにて設けられたＶＰＣトンネルに、サーバ１０３からＴＣＰ  ＡＣＫ＋ＳＹＮパケットが入来したら、サーバ１０３は端末と通信が可能な状態にあることが判る。そこで、パケットモニタ９０５はこのＴＣＰ  ＡＣＫ＋ＳＹＮパケットの入来を監視し、ＴＣＰ  ＡＣＫ＋ＳＹＮパケットが来たら、対応するリバースプロキシ或は静的ＮＡＴに連動して動作しているタイマの計時動作を停止する。
もし、タイマに設定された時間内にＴＣＰ  ＡＣＫ＋ＳＹＮパケットが来ないと、タイマは所定の時間を計時した後、該当するリバースプロキシ或は静的ＮＡＴを停止する。つまり、仮に設定したＶＰＣトンネルは時間切れで破棄される。
【００９９】
図示しないリバースプロキシサーバプログラムは、サーバ１０３にアクセスする際に利用するプロトコルに応じて用意される。ＨＴＴＰであれば、プロキシモードのリザルトコードを実装する。ＣＩＦＳ（Common Internet File System：Ｗｉｎｄｏｗｓ（登録商標）のファイル共有サービスのプロトコル（ＳＭＢ：Server Message Block）が拡張されたプロトコル）やＲＤＰの場合は、ＩＰアドレスの書き換えのみ行う。
【０１００】
コントロールセッション管理部９０９には、ステッピングノードを一意に識別するための情報であるＳＮＩＤ９１５が接続されている。ＳＮＩＤ９１５は、本実施形態で説明するＶＰＣトンネルを形成する手順において、リバースプロキシを設定するために用いる情報であると共に、後述するコンダクタ１１５が経路情報を作成する際に用いる情報として重要である。
【０１０１】
図１０は、ステッピングノードの機能ブロック図である。図１０に開示するステッピングノード１００１は、図９のステッピングノード９０１とは異なり、ファイアウォールを伴う形式の装置である。
本実施形態のステッピングノード１００１は、ＬＡＮ１０２のうち、隣接する異なるサブネットの間に配置され、ＩＰリーチャブルなステッピングノード１００１同士或はサーバ１０３とのゲートウェイを兼用する。
【０１０２】
ＬＡＮ１０２に接続される第三ＮＩＣ１００２には固定のＩＰアドレスが付与されている。
ＬＡＮ１０２に接続される第四ＮＩＣ１００３には、第三ＮＩＣ１００２とは異なる固定のＩＰアドレスが付与されている。
【０１０３】
第三ＮＩＣ１００２と第四ＮＩＣ１００３との間には、ＬＡＮ１０２に接続されている端末が第四ＮＩＣ１００３側のサブネットに接続されているホスト（端末やサーバ１０３等）が第三ＮＩＣ１００２側のサブネットに接続するための動的ＮＡＴの機能と、ネットワークのセキュリティ上の脅威から第四ＮＩＣ１００３側のホストを保護するためのパケットフィルタリングの機能を備えたファイアウォール１００４が設けられている。
【０１０４】
図１０のステッピングノード１００１は、特に社内ＬＡＮがインターネットに接続するためのファイアウォールとして設置する際に好適である。この場合、第三ＮＩＣ１００２側のネットワークがインターネットであり、第四ＮＩＣ１００３側のネットワークが社内ＬＡＮになる。そして、第四ＮＩＣ１００３のＩＰアドレスは社内ＬＡＮのゲートウェイアドレスとなる。
図１０のステッピングノード１００１は、ファイアウォール１００４と第四ＮＩＣ１００３の存在以外は図９のステッピングノード１００１と動作は同じである。第一リバースプロキシ９１１或は第二リバースプロキシ９１２等の、データセッション管理部９１０から起動されるリバースプロキシは、第四ＮＩＣ１００３側に配置されるサーバ１０３と、第三ＮＩＣ１００２側に配置されるローカルマスタ或はステッピングノード１００１との通信を実現する。第一ＮＡＴ９１４等の、データセッション管理部９１０によって設定される静的ＮＡＴは、第三ＮＩＣ１００２側に配置されるローカルマスタとステッピングノード１００１、或はステッピングノード１００１同士の通信を実現する。
【０１０５】
端末が、単にファイアウォール１００４の向こう側に存在するサーバ１０３に対して接続を行うのであれば、ＬＡＮ１０２のゲートウェイ或はＬＡＮ１０２とインターネット１０７との境界に配置される機器に、リバースプロキシを設定すればよい。しかし、この場合、端末はリバースプロキシが稼働するマシンのＩＰアドレスに対して接続を行うこととなる。このような接続形態は、アプリケーションに元々から備わっているセキュリティ設定によって様々な悪影響を生じる虞がある。
【０１０６】
具体的には、例えばマイクロソフト社のＷｉｎｄｏｗｓ（登録商標）に標準的に備わっているｗｅｂブラウザ「インターネットエクスプローラ」（以下「ＩＥ」と略す）では、接続しようとするｗｅｂサーバのＩＰアドレス、ＦＱＤＮ（Full Qualified Domain Name：完全修飾ドメイン名）或はドメイン名を含まないホスト名に応じて、ＨＴＭＬ（Hyper Text Markup Language）文書内に埋め込まれたスクリプトや外部アプリケーション等を実行するか否か等のセキュリティ設定を変更する機能が備わっている。ＬＡＮ１０２内のｗｅｂサーバはＬＡＮ１０２内の端末からアクセスされることを前提にｗｅｂアプリケーションが構築されており、インターネット１０７上のｗｅｂサーバでは危険で実行が許されないようなスクリプト等も、利便性を優先してＨＴＭＬ文書内に含まれている。つまり、リバースプロキシだけでは、インターネット１０７からＬＡＮ１０２内のサーバ１０３に接続しても、ＩＥを始めとする所望のアプリケーションが正常に動作することが保証できないどころか、異常終了する等の弊害を生じる可能性が高い。
【０１０７】
この問題を解決するためには、ＩＥ等の端末上で動作するアプリケーションに対して、「あたかもＬＡＮ内のサーバに接続していると錯覚させる」仕組みが必要である。このための解決策が、静的ＮＡＴである。静的ＮＡＴを通じてサーバ１０３に接続する、ということは、ローカルマスタＢＯＸ１０９の場合では端末と同一サブネットのプライベートアドレスに対して、ソフトローカルマスタ１１３の場合ではループバックアドレスに対して、接続する、ということとなる。何れの場合も、ＩＥから見ると、パケットに付される宛先ＩＰアドレスはアプリケーションのセキュリティ設定を低い状態にできる「ローカルイントラネット」に属する。こうして、端末はインターネット１０７を越えてファイアウォール１００４の向こう側にあるサーバ１０３に対し、制限のない「ローカルイントラネット」としてのアクセスを実現する。
【０１０８】
ＩＰアドレスを変換するメリットは、上述の例に限られない。
企業が合併したり、企業や団体が業務提携をする等の事情で、相互のＬＡＮ同士を接続したい場合がある。この場合、夫々の企業は、予め合併することを前提に社内ＬＡＮを構築していた訳ではないのだから、夫々のＬＡＮで使用するプライベートＩＰアドレスが重複する可能性が十分考えられる。
また、複数の企業や団体に対してネットワークサービスを提供する業者の場合、サービスを提供しようとする企業や団体のＬＡＮのＩＰアドレスが重複する可能性は飛躍的に高くなる。ＩＰアドレスの重複を避けるために、保守サービスの度にネットワークの繋ぎ換えを行うことは非効率的である。
本実施形態のネットワークシステムを用いて、静的ＮＡＴ及びリバースプロキシを用いてＩＰアドレスを変換し、ネットワーク接続を仮想化することで、複数のネットワークを接続する際に、ＩＰアドレスの重複に悩む必要がなくなる。
【０１０９】
［コンダクタ１１５］
図１１はコンダクタ１１５の機能ブロック図である。
図１２はコンダクタ１１５に含まれるテーブルのフィールド構成を示す図である。
本実施形態のコンダクタ１１５は、コントロールセッションを通じた、端末のプレイヤ１１１及びローカルマスタとの通信に特化している。ステッピングノードとは異なり、データセッションは形成しない。
コンダクタ１１５はネットワークＯＳが稼働するコンピュータである。ＯＳは一例としてはＬｉｎｕｘ（登録商標）等の、ＰＯＳＩＸ系ＯＳが好ましい。
ＬＡＮ１０２に接続される第六ＮＩＣ１１０１には固定のＩＰアドレスが付与されている。
【０１１０】
第六ＮＩＣ１１０１に接続されている暗号化通信処理部１１０２は、ローカルマスタＢＯＸ１０９及びソフトローカルマスタ１１３に設けられている暗号化通信処理部６０６と対をなす。つまり、ローカルマスタと認証情報の送受信と、コントロールセッションの暗号化を施す。
認証処理部１１０３は、機器特定ＩＤマスタ１１０５及びユーザマスタ１１０６を参照して、機器認証及び個人認証を遂行する。認証処理部１１０３は更に、機器認証が成功したローカルマスタに対してはＳＳＩＤという、機器特定ＩＤに代わりセッション毎に変化する認証情報を生成し、機器特定ＩＤとＳＳＩＤの組をＳＳＩＤテーブル１１１３に書き出す。そして、個人認証が成功したプレイヤ１１１に対しては、ＳＳＩＤとユーザＩＤの組をＳＳＩＤテーブル１１１３に書き出す。つまり、機器認証と個人認証が正常に完遂した場合、ＳＳＩＤテーブル１１１３には機器特定ＩＤ、ＳＳＩＤ及びユーザＩＤの組のレコードが形成され、機器特定ＩＤ、ＳＳＩＤ及びユーザＩＤが紐付けられる。そして、ＳＳＩＤ認証を行うことで、機器認証及び個人認証を代行することができる。
【０１１１】
経路設定部１１０４は、ＳＮサーバマスタ１１１０、ＳＮマップマスタ１１１１及びＬＭ・ＳＮマスタ１１１２を用いて経路情報を作成し、経路テーブル１１１４に記録する。また、機器特定ＩＤマスタ１１０５を参照して、経路テーブル１１１４に仮想ＩＰアドレスを記述する。
【０１１２】
機器特定ＩＤマスタ１１０５は、コンダクタ１１５が接続を許可するローカルマスタの機器特定ＩＤと、仮想ＩＰアドレス範囲が列挙されているテーブルである。
仮想ＩＰアドレス範囲は、端末のアプリケーションプログラムがサーバ１０３にアクセスしようとする際に、アプリケーションプログラムがアクセスを試みようとする対象のＩＰアドレスである。
【０１１３】
本実施形態のネットワークシステム１０１は、ＩＰリーチャブルでない端末とサーバを、ＶＰＣトンネルで仮想的に接続する。
アプリケーションプログラムがサーバ１０３にアクセスする際、アプリケーションプログラムは、サーバ１０３に付されている本来のＩＰアドレスではない、仮想ＩＰアドレスに対してアクセスを行う。この仮想ＩＰアドレスは、端末からＩＰリーチャブルであるローカルマスタに付されるように構成する。
図６のローカルマスタＢＯＸ１０９の場合、仮想ＩＰアドレスは第二ＮＩＣ６０１のサブネットに属する。例えば、第二ＮＩＣ６０１のサブネットが１９２．１６８．１．０／２４で、第二ＮＩＣ６０１のＩＰアドレスが１９２．１６８．１．２である場合、仮想ＩＰアドレスは１９２．１６８．１．１から１９２．１６８．１．２５４迄のＩＰアドレスが用いられる。
図７のソフトローカルマスタ１１３の場合、仮想ＩＰアドレスはループバック仮想ＮＩＣ７０１のサブネットに属する。殆どのネットワークＯＳの場合、ループバック仮想ＮＩＣ７０１には１２７．０．０．１が付与され、サブネットは１２７．０．０．０／８であるので、仮想ＩＰアドレスは１２７．０．０．１から１２７．２５５．２５５．２５４迄のＩＰアドレスを用いることができる。
【０１１４】
機器特定ＩＤマスタ１１０５の仮想ＩＰアドレス範囲フィールドは、ローカルマスタの構成に基づいて、最適な仮想ＩＰアドレスをローカルマスタ、ひいては端末に提供できるように設けている。ユーザにサービスメニュー情報６１４を送信する際、仮想ＩＰアドレスの設定はこの仮想ＩＰアドレス範囲フィールドに記されている範囲から記述される。
【０１１５】
ユーザマスタ１１０６は、コンダクタ１１５が接続を許可するユーザのユーザＩＤ及びパスワード等の個人認証情報と、当該ユーザの制限設定情報が格納されている。
【０１１６】
サーバマスタ１１０７は、仮想サーバＩＤＸと、サーバ名又はサーバのＩＰアドレスと、当該サーバ１０３のアクセスに用いられるプロトコル種別と、ポート番号と、端末用リソース文字列等が格納されている。
仮想サーバＩＤＸとは、サーバマスタ１１０７のレコードを一意に識別するための情報である。これは、異なる拠点に同じサブネットが存在し、そのサブネット上に同じＩＰアドレス及び同じサービスを提供するサーバがそれぞれ存在する可能性を考慮して、サーバ名等に代わり、サーバを一意に識別するための索引情報を設けている。
また、仮想サーバＩＤＸは、サービスメニュー情報６１４に含まれる情報であり、端末のアプリケーションがサーバ１０３に対して接続要求を送信することに呼応して開始するＶＰＣ確立シーケンスにおいて、ローカルマスタがコンダクタ１１５にＶＰＣトンネルの作成を要求するコマンドの中に含まれる。
【０１１７】
サーバ名又はサーバのＩＰアドレスは、ポート番号と共にサーバに直近のステッピングノードがサーバにＩＰ接続する際に必要な情報である。当該ステッピングノードにおいて名前解決ができるなら、サーバ名が用いられる。名前解決ができるなら、サーバ名はＦＱＤＮであっても、ホスト名だけであってもよい。そうでない場合は、ＩＰアドレスが用いられる。
プロトコル種別は、例えばＲＤＰ、ＨＴＴＰ、ＳＳＨ等の、周知のプロトコルの名称、或はこれに準じる識別情報が格納される。
ポート番号は、当該サーバのアクセスに用いられるポート番号である。ＨＴＴＰであれば８０番、ＲＤＰであれば３３８９番、ＳＳＨであれば２２番、ＶＮＣであれば５９００番から５９０６番迄等と、多くの場合、プロトコル毎に決められている。但し、サーバの設定によっては意図的にポート番号をずらす等の設定変更を行うこともあるので、その際はサーバの設定に合わせる。
【０１１８】
端末用リソース文字列は、端末がサーバにアクセスする際に用いる、端末のアプリケーションプログラムが接続相手の情報資源を特定する文字列であり、プレイヤ１１１の専用シェルが設けるアイコンに埋め込まれる、アプリケーションの引数でもある。例えばＨＴＴＰであればＵＲＬであり、ＣＩＦＳであればサーバがリソースを提供するルートを示すリソース名称である。
多くの場合、端末用リソース文字列はその全て或は一部に、サーバ名又はサーバのＩＰアドレスが含まれる。したがって、端末用リソース文字列は、プロトコルによってはその全て或は一部が仮想ＩＰアドレスによって置換される場合がある。
【０１１９】
例えば、ＲＤＰやＳＳＨの場合、端末用リソース文字列はサーバ名又はサーバのＩＰアドレスと一致する。したがって、このようなプロトコルの場合、端末用リソース文字列は仮想ＩＰアドレスによって全部置換される。
ＣＩＦＳの場合、端末用リソース文字列の一部はサーバ名又はサーバのＩＰアドレスと一致する場合がある。したがって、このようなプロトコルの場合、端末用リソース文字列は仮想ＩＰアドレスによって一部置換される。
ＨＴＴＰの場合、ｗｅｂブラウザは一つのｈｔｍｌ文書に埋め込まれているハイパーリンクに基づいて、不特定多数のｗｅｂサーバに接続する可能性が高いので、ｗｅｂブラウザのプロキシサーバの設定に、ＶＰＣトンネルの仮想ＩＰアドレスを設定する。このようにｗｅｂブラウザを設定すると、ｗｅｂブラウザ自身は全く名前解決を行わず、端末用リソース文字列をそのままプロキシサーバであるＶＰＣトンネルに送信する。実際のｗｅｂコンテンツを取得する動作は、ｗｅｂサーバ直近のステッピングノードにて稼働するリバースプロキシが実行する。したがって、このようなプロトコルの場合、端末用リソース文字列は仮想ＩＰアドレスによって置換されない。
【０１２０】
ユーザサーバマスタ１１０８は、ユーザＩＤと、当該ユーザＩＤのユーザが利用できるサーバ１０３の仮想サーバＩＤＸの組が格納されている。したがって、ユーザサーバマスタ１１０８をユーザＩＤで絞り込み、得られた仮想サーバＩＤＸをキーにしてサーバマスタ１１０７を検索して得られたレコードが、当該ユーザが利用可能なサーバ１０３と、そのサーバ１０３を利用するために必要な情報を含むこととなる。
【０１２１】
ＳＮマスタ１１０９は、ステッピングノードを一意に識別するためのＳＮＩＤと、ステッピングノードのホスト名（ＳＮホスト名）又はＩＰアドレスの組と、当該ステッピングノードのＩＰリーチャブルな範囲にサーバが存在するか否かを示す終端フラグよりなるテーブルである。
経路設定部１１０４は、後述するＳＮサーバマスタ１１１０、ＳＮマップマスタ１１１１及びＬＭ・ＳＮマスタ１１１２を用いて経路情報を作成する際、ＳＮＩＤで経路情報の元データを作成する。そして、最後にＳＮＩＤをＳＮホスト名又はＩＰアドレスに変換して、経路情報を完成し、ローカルマスタに送信する。
【０１２２】
ＳＮサーバマスタ１１１０は、サーバ直近のステッピングノードのＳＮＩＤと、仮想サーバＩＤＸの組よりなるテーブルである。
サーバ直近のステッピングノードとは、前述のＳＮマスタ１１０９の終端フラグフィールドの値が論理の「真」であるステッピングノードである。
【０１２３】
一つのサーバに対して、ＩＰリーチャブルなステッピングノードは一つだけとは限らない。つまり、あるサーバに対して接続可能なステッピングノードは、複数存在し得る。また、一つのステッピングノードに対して、ＩＰリーチャブルなサーバは一つだけとは限らない。つまり、あるステッピングノードから接続可能なサーバは、複数存在し得る。つまり、あるローカルマスタからあるサーバへ到達するための経路は、複数存在し得る。
このようなネットワークにおいて、最適な経路をどのように選択すべきかを判断する要素は、ネットワークの距離もさることながら、ネットワークのトラフィックが重要な位置を占める。
そこで、本実施形態のネットワークシステム１０１は、あるサーバに対してＩＰリーチャブルなステッピングノードが複数存在し得るように設計した。この、サーバとＩＰリーチャブルなステッピングノードとの関係を記述するテーブルが、ＳＮサーバマスタ１１１０である。
あるサーバに接続できるステッピングノードの負荷が増大しているとき、別のステッピングノードから当該サーバに接続するようにＶＰＣトンネルを切り替えることが出来れば、ネットワーク上の負荷を瞬時且つ適切に分散させることができる。
【０１２４】
ＳＮマップマスタ１１１１は、ステッピングノードのＳＮＩＤと、当該ステッピングノードに隣接するステッピングノードのＳＮＩＤの組よりなるテーブルである。
ＳＮマップマスタ１１１１をＳＮＩＤで検索すると、あるステッピングノードに隣接する全てのステッピングノードのＳＮＩＤが得られる。
【０１２５】
ＬＭ・ＳＮマスタ１１１２は、ローカルマスタの機器特定ＩＤと、当該ローカルマスタに隣接するステッピングノードのＳＮＩＤの組よりなるテーブルである。
ＬＭ・ＳＮマスタ１１１２をＳＮＩＤで検索すると、あるローカルマスタに隣接する全てのステッピングノードのＳＮＩＤが得られる。
【０１２６】
経路設定部１１０４は、ダイクストラ法等の周知の経路探索アルゴリズムを用いて、ローカルマスタからサーバに到達するための経路情報を作成する。その際、ＬＭ・ＳＮマスタ１１１２を用いて、発信元のローカルマスタに至る全てのステッピングノードのＳＮＩＤを得る。同様に、ＳＮサーバマスタ１１１０を用いて、目的のサーバに至る全てのステッピングノードのＳＮＩＤ、そしてそれに対応する仮想サーバＩＤＸを得る。それら複数の始点と終点の組み合わせを作成した後、夫々の組み合わせにおいて最適な経路情報を作成する。そして、別途ステッピングノードから報告されるトラフィック情報等に基づいて、最適な経路情報を選択する。
なお、構成が単純なＬＡＮにおいては、複数の経路情報を予め作成しておき、ローカルマスタから経路情報の要求があった時に、最適な経路情報を読み出して返信する、という方法もある。
【０１２７】
経路テーブル１１１４は、ＳＳＩＤと、仮想サーバＩＤＸと、仮想ＩＰアドレスと、サーバ名又はサーバのＩＰアドレスと、プロトコル種別と、ポート番号と、経路情報の組よりなるテーブルである。
【０１２８】
端末が個人認証を完遂した後、サービスメニュー情報６１４を要求すると、認証処理部１１０３は、端末から送信されたＳＳＩＤでＳＳＩＤテーブル１１１３を検索し、対応するユーザＩＤを取得する。次に、認証処理部１１０３はこのユーザＩＤでユーザサーバマスタ１１０８を検索し、当該ユーザが利用可能なサーバ１０３の仮想サーバＩＤＸの一覧を作成する。そして、この仮想サーバＩＤＸの一覧情報を検索キーとしてサーバマスタ１１０７を検索し、当該ユーザが利用可能なサーバ１０３を利用するために必要な情報を形成する。更に、経路設定部１１０４に問い合わせて、現時点で最適な経路情報を算出し、サーバマスタ１１０７の検索結果に追加する。これがサービスメニュー情報６１４である。
【０１２９】
図１１及び図１２では図示していないが、サービスメニュー情報６１４は、ＳＳＩＤと、仮想サーバＩＤＸと、仮想ＩＰアドレスと、サーバ名又はサーバのＩＰアドレスと、プロトコル種別と、ポート番号と、端末用リソース文字列の組よりなるテーブルである。
【０１３０】
コンダクタ１１５は、端末（プレイヤ１１１）のサービスメニュー情報取得要求に呼応して、サービスメニュー情報６１４を形成する。形成したサービスメニュー情報６１４は、一旦経路テーブル１１１４に記憶する。この時、経路情報は空欄のままにする。そして、要求元の端末にサービスメニュー情報６１４を返信する。
次に、コンダクタ１１５は、ローカルマスタの経路情報取得要求に呼応して、経路設定部１１０４を稼働させ、経路情報を作成する。ローカルマスタはＳＳＩＤと仮想サーバＩＤＸを送信してくるので、この仮想サーバＩＤＸを検索キーとして当該サーバに隣接するステッピングノードを検索すると共に、ＳＳＩＤを検索キーとしてＳＳＩＤテーブル１１１３を検索して機器特定ＩＤ６０８を取得し、機器特定ＩＤ６０８を検索キーとしてＬＭ・ＳＮマスタ１１１２を検索してローカルマスタに隣接するステッピングノードを検索する。ＳＮマップマスタ１１１１を用いて、最適な経路情報を算出したら、経路テーブル１１１４の経路情報フィールドに当該経路情報を書き込むと共に、ローカルマスタに返信する。
【０１３１】
ローカルマスタがＶＰＣトンネルの作成を要求するコマンドを送信すると、当該コマンドに含まれている経路情報に基づいて、当該経路情報に存在するステッピングノードに静的ＮＡＴが設定される。そして、当該コマンドがサーバ直近のステッピングノードに到達したら、当該ステッピングノードはコンダクタ１１５に対して再度の認証と、サーバの諸元を示す情報を要求する。コンダクタ１１５は当該ステッピングノードがリバースプロキシを設定するために必要な情報である、サーバのホスト名又はＩＰアドレス、プロトコル種別、ポート番号を返信する。
なお、コンダクタ１１５は、ローカルマスタが発する問い合わせと、サーバ直近のステッピングノードが発する問い合わせとを区別するため、当該問い合わせの中にＳＮＩＤが含まれているか否かを確認する。
問い合わせにＳＮＩＤがなければローカルマスタが発する問い合わせであるので、経路情報を返信する。
問い合わせにＳＮＩＤがあればサーバ直近のステッピングノードが発する問い合わせであるので、サーバのホスト名又はＩＰアドレス、プロトコル種別、ポート番号を返信する。
【０１３２】
これまでの説明で明らかなように、コンダクタ１１５は、ローカルマスタに対して機器認証と個人認証の二重の認証を行い、ローカルマスタとの間にコントロールセッションを形成する。そして、端末を操作するユーザにサーバ１０３との接続を実現するために、端末の要求に応じて、ローカルマスタから適切なステッピングノードを経由して目的のサーバ１０３に到達するための経路情報を形成し、ローカルマスタに送信する。
また、ＶＰＣトンネルを形成する手順においては、ＶＰＣトンネルの始端であるローカルマスタと、終端に位置するステッピングノードに、それぞれＳＳＩＤ認証を行う。ローカルマスタのＳＳＩＤ認証が成功したら、経路情報をローカルマスタに送信する。ステッピングノードのＳＳＩＤ認証が成功したら、リバースプロキシを設定してサーバ１０３に接続するための、サーバ１０３の情報をステッピングノードに送信する。
【０１３３】
［動作の概略］
図１３以降、図１９を除いて図２１迄は、本実施形態のネットワークシステム１０１において、端末がネットワーク的に遠隔に配置されるサーバ１０３に接続して、サーバ１０３の資源が利用可能になり、その後サービスを終了する迄の動作の流れを示すタイムチャートである。
先ず、動作の流れの概要を説明する。
図１３は、本実施形態のネットワークシステム１０１の、全体的な動作の流れを示すタイムチャートである。
ローカルマスタは、起動すると、直ちにコンダクタ１１５に対してコントロールセッションを通じて機器特定ＩＤ６０８の認証を試みる。これが機器特定ＩＤ認証シーケンス（Ｓ１３０１）である。
端末のプレイヤ１１１は、ローカルマスタが機器特定ＩＤ認証シーケンスで機器特定ＩＤ６０８の認証に成功すると、ログイン画面を表示部２０６に表示する。ユーザはこの状態から、個人認証を実行する。個人認証情報はコントロールセッションを通じてコンダクタ１１５に送信され、認証結果が端末のプレイヤ１１１に返送される。これが個人認証シーケンス（Ｓ１３０２）である。
個人認証シーケンスが正常終了すると、プレイヤ１１１は直ちにサービスメニュー情報６１４を取得すべく、コントロールセッションを通じてコンダクタ１１５に要求する。コンダクタ１１５は、サービスメニュー情報６１４と制限設定情報６１０をプレイヤ１１１に返信する。これがメニュー取得シーケンス（Ｓ１３０３）である。
【０１３４】
ユーザが端末の画面に表示されているアイコンをクリックする等の操作を実行すると、アイコンに埋め込まれているコマンドライン文字列に記述されているアプリケーションプログラムが実行される。アプリケーションプログラムは、ローカルマスタに接続要求パケット（ＴＣＰ  ＳＹＮパケット）を送信する。ローカルマスタはこの接続要求パケットを確認すると、コントロールセッションを通じてコンダクタ１１５に対して経路情報を要求する。コンダクタ１１５は経路情報をローカルマスタに返信する。コンダクタ１１５は受信した経路情報を含むＶＰＣ確立要求コマンドを作成し、コントロールセッションを通じて経路情報に従ってステッピングノードに送信する。最後のステッピングノードを除く、経路情報に記述されているステッピングノードはＶＰＣ確立要求コマンドを転送すると共に、ＶＰＣ、つまりデータセッションを形成するための静的ＮＡＴを設定する。経路情報に記述されている最後のステッピングノードは、自らが経路情報の最後に位置するステッピングノードであることを認識すると、コンダクタに対して接続するサーバに関する情報を問い合わせて、コンダクタからサーバのＩＰアドレス、ポート番号、プロトコル種別を取得する。そして、これら情報に基づいて、適切なリバースプロキシを実行する。そして、端末が発した接続要求パケットが経路情報に記述されている最後のステッピングノードによってサーバ１０３に到達する。サーバ１０３が返信する応答パケットは、仮に形成されたＶＰＣトンネルを確定させて、端末に到達する。これがＶＰＣ確立シーケンス（Ｓ１３０４）である。
ＶＰＣ確立シーケンスが遂行された後は、形成されたＶＰＣトンネルを用いて端末とサーバ１０３が仮想的な接続状態の中で通信を実行する。これがＶＰＣデータ転送状態（Ｓ１３０５）である。
【０１３５】
ＶＰＣトンネルの破棄は、基本的に端末の能動的な終了を示す情報の送信によって行われる。これがＶＰＣ切断シーケンス（Ｓ１３０６）である。
ユーザが端末の使用を停止したい場合は、ログアウトを宣言する。ログアウトの宣言はコントロールセッションを通じてコンダクタ１１５に送信され、端末に返送される。これがユーザログアウトシーケンス（Ｓ１３０７）である。
端末を通じてローカルマスタＢＯＸ１０９の電源を落とすか、ソフトローカルマスタ１１３がインストールされている端末をシャットダウンする等でローカルマスタの動作を終了させると、その情報はコンダクタ１１５に通知される。これがローカルマスタシャットダウン（Ｓ１３０８）である。
【０１３６】
［機器特定ＩＤ認証シーケンス］
図１４は、機器特定ＩＤ認証シーケンスのタイムチャートである。図１３のステップＳ１３０１の詳細である。
ローカルマスタは、起動して（Ｓ１４０１）、ＬＡＮ１０２と接続されてＩＰリーチャブルになったことを認識すると、直ちにコンダクタ１１５に対してコントロールセッションを通じて機器特定ＩＤ６０８の認証要求を送信する（Ｓ１４０２）。
ローカルマスタは、コンダクタ１１５のアドレスを直接的には知らない。しかし、コンダクタ１１５に通信を行う際、どのＩＰリーチャブルなステッピングノードに通信を試みればよいのかを示す、「デフォルトゲートウェイ」のホスト名或はＩＰアドレスを内部に保持している。本実施形態では、デフォルトゲートウェイは第一ＳＮ１０７である。そこで、ローカルマスタは第一ＳＮ１０７にコンダクタ１１５に対する機器認証要求を、コントロールセッションを通じて送信する。
【０１３７】
第一ＳＮ１０７はローカルマスタから機器特定ＩＤ６０８の認証要求を受信すると、それがコンダクタ１１５に対する要求であることをコントロールセッション管理部６０９が認識する。そして、デフォルトゲートウェイアドレス６１２に記されているステッピングノード（本実施形態では第二ＳＮ１０８）に、機器特定ＩＤ６０８の認証要求を転送する（Ｓ１４０３）。
【０１３８】
第二ＳＮ１０８は、コンダクタ１１５とＩＰリーチャブルである。このため、ローカルマスタＢＯＸ１０９や第一ＳＮ１０７とは異なり、「デフォルトゲートウェイ」の代わりに、コンダクタアドレス９０８にコンダクタ１１５のホスト名或はＩＰアドレスを保持している。
第二ＳＮ１０８も第一ＳＮ１０７と同様に、第一ＳＮ１０７から機器特定ＩＤ６０８の認証要求を受信すると、コンダクタアドレス９０８に記されているコンダクタ１１５に、機器特定ＩＤ６０８の認証要求を転送する（Ｓ１４０４）。こうして、コンダクタ１１５はローカルマスタが送信した機器特定ＩＤ６０８の認証要求を受信する。
【０１３９】
コンダクタ１１５は、第二ＳＮ１０８から受信したローカルマスタの機器特定ＩＤ６０８で機器特定ＩＤマスタ１１０５を検索し、当該機器特定ＩＤ６０８が正規のローカルマスタを示す情報であるか否か、確認する（Ｓ１４０５）。検索結果（機器特定ＩＤ認証結果）は直前に受信した相手、つまり第二ＳＮ１０８へ返信する（Ｓ１４０６）。
第二ＳＮ１０８のコントロールセッション管理部６０９は、コンダクタ１１５から受信した機器特定ＩＤ認証結果を第一ＳＮ１０７に転送する（Ｓ１４０７）。
第一ＳＮ１０７のコントロールセッション管理部６０９は、第二ＳＮ１０８から受信した機器特定ＩＤ認証結果をローカルマスタに転送する（Ｓ１４０８）。
ローカルマスタは、第一ＳＮ１０７から受信した機器特定ＩＤ認証結果を見て、正常に認証が行われたか否かを確認する（Ｓ１４０９）。正常に認証できなかった場合（Ｓ１４０９のＮＯ）は異常終了となり、以降の操作は不可能になる（Ｓ１４１０）。正常に認証できた場合（Ｓ１４０９のＹＥＳ）は、ローカルマスタのコントロールセッション管理部６０９は、機器特定ＩＤ認証結果に含まれているＳＳＩＤをＳＳＩＤメモリ６１３に記憶する（Ｓ１４１１）。
【０１４０】
一方、端末のプレイヤ１１１は起動すると（Ｓ１４１２）、ローカルマスタに対してＳＳＩＤの転送を要求する。
ローカルマスタがＳＳＩＤをコンダクタ１１５から取得して記憶していない状態では、ＳＳＩＤの転送要求は失敗する（Ｓ１４１３）が、ローカルマスタがＳＳＩＤをコンダクタ１１５から取得して記憶した以降では、ＳＳＩＤの転送要求（Ｓ１４１４）に対して、ローカルマスタはＳＳＩＤメモリ６１３に格納されているＳＳＩＤを読み出して（Ｓ１４１５）、端末に応答する（Ｓ１４１６）ので、プレイヤ１１１はＳＳＩＤを受信し（Ｓ１４１７）、これを記憶する（Ｓ１４１８）。
なお、ソフトローカルマスタ１１３の場合、ＳＳＩＤメモリ６１３はプレイヤ１１１と共用することとなるので、ステップＳ１４１７及びＳ１４１８は省略される。
プレイヤ１１１は、ＳＳＩＤの取得が正常に終了できたことに呼応して、表示部２０６にログイン画面を表示する（Ｓ１４１９）。
以上が、機器特定ＩＤ認証シーケンスである。
【０１４１】
機器特定ＩＤ認証シーケンスが正常終了すると、これ以降はローカルマスタが機器特定ＩＤ６０８を送信する代わりに、ＳＳＩＤでローカルマスタを特定することができる。機器特定ＩＤ６０８は固定であるが、ＳＳＩＤはローカルマスタが起動する度に変化するので、セキュリティの向上に寄与する。
【０１４２】
［個人認証シーケンス及びメニュー取得シーケンス］
図１５（ａ）及び（ｂ）は、個人認証シーケンスとメニュー取得シーケンスのタイムチャートである。図１６は、メニュー取得シーケンスのタイムチャートである。図１３のステップＳ１３０２とステップＳ１３０３の詳細である。
図１５（ａ）は、個人認証シーケンスを示す。
ユーザは端末のＩＣカードリーダ１０４或はキーボード等を操作して、ユーザＩＤ及びパスワード等の、個人認証情報を入力する。個人認証情報はＳＳＩＤを伴って、プレイヤ１１１によってコントロールセッションを通じてローカルマスタに転送される（Ｓ１５０１）。
プレイヤ１１１から個人認証情報及びＳＳＩＤを受信したローカルマスタは、デフォルトゲートウェイアドレス６１２に従って第一ＳＮ１０７に転送する（Ｓ１５０２）。
ローカルマスタから個人認証情報及びＳＳＩＤを受信した第一ＳＮ１０７は、デフォルトゲートウェイアドレス６１２に従って第二ＳＮ１０８に転送する（Ｓ１５０３）。
第一ＳＮ１０７から個人認証情報及びＳＳＩＤを受信した第二ＳＮ１０８は、コンダクタアドレス９０８に従ってコンダクタ１１５に転送する（Ｓ１５０４）。
【０１４３】
第二ＳＮ１０８から個人認証情報及びＳＳＩＤを受信したコンダクタ１１５は、個人認証情報でユーザマスタ１１０６を検索し（Ｓ１５０５）、検索結果（ユーザＩＤ認証結果）を直前に受信した相手、つまり第二ＳＮ１０８へ返信する（Ｓ１５０６）。そして、ユーザＩＤ認証結果が正常であれば、ＳＳＩＤテーブル１１１３にユーザＩＤを記述する（Ｓ１５０７）。
第二ＳＮ１０８は、コンダクタ１１５から受信したユーザＩＤ認証結果を第一ＳＮ１０７に転送する（Ｓ１５０８）。
第一ＳＮ１０７は、第二ＳＮ１０８から受信したユーザＩＤ認証結果をローカルマスタに転送する（Ｓ１５０９）。
ローカルマスタは、第一ＳＮ１０７から受信したユーザＩＤ認証結果を端末に転送する（Ｓ１５１０）。
【０１４４】
端末のプレイヤ１１１は、ローカルマスタから受信したユーザＩＤ認証結果を見て、正常に認証が行われたか否かを確認する（Ｓ１５１１）。正常に認証できなかった場合（Ｓ１５１１のＮＯ）は表示部２０６にエラーメッセージを表示した（Ｓ１５１２）後、再びログイン画面を表示する（図１４のＳ１４１９）。
正常に認証できた場合（Ｓ１５１１のＹＥＳ）は、メニュー取得シーケンスに移行する。
以上が、個人認証シーケンスである。
【０１４５】
個人認証シーケンスが正常終了すると、これ以降は（ステップＳ１５０７において）ユーザＩＤとＳＳＩＤの紐付けが行われたこと、つまり「誰がどの端末を使用しているのか」が明らかになったことを意味する。したがって、ＳＳＩＤの認証を行うと、機器の特定と個人認証も同時に実行出来ることとなる。個人認証情報は固定であるが、ＳＳＩＤはローカルマスタが起動する度に変化するので、セキュリティの向上に寄与する。
【０１４６】
図１５（ｂ）及び図１６は、メニュー取得シーケンスを示す。
端末のプレイヤ１１１は、ローカルマスタから受信したユーザＩＤ認証結果を見て、正常に認証が行われたか否かを確認した結果（Ｓ１５１１）、正常に認証できた場合（Ｓ１５１１のＹＥＳ）は、最初にコンダクタ１１５に対してコントロールセッションを通じてＳＳＩＤの認証を要求する（Ｓ１５１３）。
ＳＳＩＤ認証要求は、ローカルマスタ（Ｓ１５１４）、第一ＳＮ１０７（Ｓ１５１５）、第二ＳＮ１０８（Ｓ１５１６）と転送されて、コンダクタ１１５に到達する。コンダクタ１１５は受信したＳＳＩＤでＳＳＩＤテーブル１１１３を検索し（Ｓ１５１７）、検索結果（ＳＳＩＤ認証結果）を直前に受信した相手、つまり第二ＳＮ１０８へ返信する（Ｓ１５１８）。
コンダクタ１１５から返信されるＳＳＩＤ認証結果は、第二ＳＮ１０８（Ｓ１５１９）、第一ＳＮ１０７（Ｓ１５２０）、ローカルマスタ（Ｓ１５２１）と転送されて、端末のプレイヤ１１１に戻される。
端末のプレイヤ１１１は、ローカルマスタから受信したＳＳＩＤ認証結果を見て、正常に認証が行われたか否かを確認する（Ｓ１５２２）。正常に認証できなかった場合（Ｓ１５２２のＮＯ）は表示部２０６にエラーメッセージを表示した（Ｓ１５２３）後、再びログイン画面を表示する（図１４のＳ１４１９）。
【０１４７】
図１６を参照して、メニュー取得シーケンスの説明を続ける。
ステップＳ１５１１で、正常に認証できた場合（Ｓ１５１１のＹＥＳ）は、プレイヤ１１１はコンダクタ１１５に対してサービスメニュー情報６１４の送信を要求する（Ｓ１６２４）。
プレイヤ１１１が送信するサービスメニュー情報要求は、ローカルマスタ（Ｓ１６２５）、第一ＳＮ１０７（Ｓ１６２６）、第二ＳＮ１０８（Ｓ１６２７）と転送されて、コンダクタ１１５に到達する。コンダクタ１１５はＳＳＩＤテーブル１１１３とユーザサーバマスタ１１０８とサーバマスタ１１０７を検索し（Ｓ１６２８）、検索結果（サービスメニュー情報６１４）を直前に受信した相手、つまり第二ＳＮ１０８へ返信する（Ｓ１６２９）。なお、この時、ユーザマスタ１１０６から制限設定情報６１０も読み出して、サービスメニュー情報６１４と共に返信する。
コンダクタ１１５から返信されるサービスメニュー情報６１４と制限設定情報６１０は、第二ＳＮ１０８（Ｓ１６３０）、第一ＳＮ１０７（Ｓ１６３１）と転送される。
【０１４８】
ローカルマスタは、第一ＳＮ１０７からサービスメニュー情報６１４と制限設定情報６１０を受信すると、内部に記憶して、端末に転送する（Ｓ１６３２）。そして、サービスメニュー情報６１４と制限設定情報６１０に基づいて種々の設定を行う（Ｓ１６３３）。
端末のプレイヤ１１１は、ローカルマスタからサービスメニュー情報６１４と制限設定情報６１０を受信すると、内部に記憶する（Ｓ１６３４）。そして、サービスメニュー情報６１４と制限設定情報６１０に基づいて種々の設定を行う（Ｓ１６３５）。
【０１４９】
ステップＳ１６２４からステップＳ１６３５迄の動作（Ｐ１６３６）は、サービスに対応するプロトコル毎に繰り返して実行される（Ｐ１６３７）。例えば、ユーザが利用可能なプロトコルがＲＤＰとＨＴＴＰである場合は、先ずＲＤＰについて手順Ｐ１６３６が実行された後、次にＨＴＴＰについて手順Ｐ１６３６が実行される。
ユーザが享受できる全てのサービスに対応するサービスメニュー情報６１４の取得が完遂すると、端末はメニューを表示部２０６に表示する（Ｓ１６３８）。
以上が、メニュー取得シーケンスである。
【０１５０】
［ＶＰＣ確立シーケンス及びＶＰＣデータ転送状態］
図１７は、ＶＰＣ確立シーケンスのタイムチャートである。図１８は、ＶＰＣ確立シーケンスとＶＰＣデータ転送状態のタイムチャートである。図１３のステップＳ１３０４とステップＳ１３０５の詳細である。
ユーザは端末のプレイヤ１１１の専用シェル２０８によって形成され、表示部２０６に表示されているアイコンを操作して、アプリケーションプログラムを起動すると、アプリケーションプログラムからＴＣＰ  ＳＹＮパケットが発生する（Ｓ１７０１）。ローカルマスタのパケット監視部６１５は、ＴＣＰ  ＳＹＮパケットを捕捉すると、ＴＣＰ  ＳＹＮパケットの宛先ＩＰアドレス及びポート番号から、アプリケーションプログラムが要求するサーバ１０３とプロトコルを判別する。そして、コンダクタ１１５に対して経路情報の取得を要求する。但し、経路情報の取得に先立って、認証が必要であるので、先ずはコンダクタ１１５に対し、ＳＳＩＤ認証を要求する（Ｓ１７０２）。
【０１５１】
ステップＳ１７０２において、ローカルマスタのパケット監視部６１５は、ＴＣＰ  ＳＹＮパケットの宛先ＩＰアドレス及びポート番号から、アプリケーションプログラムが要求するサーバ１０３とプロトコルを判別する必要がある。したがって、サービスメニュー情報６１４に列挙されるサービスの各レコードは、宛先ＩＰアドレス及びポート番号の組み合わせにおいて一意でなければならない。ある一つのプロトコルで複数のサーバが提供するサービスをユーザに提供する場合は、仮想ＩＰアドレスを異ならせるか、可能であればポート番号を異ならせることによって、サービスメニュー情報６１４の各レコードの一意性を確保する。
【０１５２】
ローカルマスタから発されるＳＳＩＤ認証要求は、第一ＳＮ１０７（Ｓ１７０３)、第二ＳＮ１０８（Ｓ１７０４）と転送され、コンダクタ１１５に到達する。コンダクタ１１５はＳＳＩＤテーブル１１１３を検索し（Ｓ１７０５）、ＳＳＩＤ認証結果を返信する（Ｓ１７０６）。ＳＳＩＤ認証結果は、第二ＳＮ１０８（Ｓ１７０７）、第一ＳＮ１０７（Ｓ１７０８）と転送され、ローカルマスタに到達する。
ローカルマスタは、ＳＳＩＤ認証結果が異常値であれば（Ｓ１７０９のＮＯ）、端末にその旨を報告する。この場合、端末は表示部２０６にエラーを表示する（Ｓ１７１０）。
ＳＳＩＤ認証結果が正常値であれば（Ｓ１７０９のＹＥＳ）、ステップＳ１７０２から始まったＳＳＩＤ認証シーケンスは終了する。
【０１５３】
ローカルマスタは、ＳＳＩＤ認証シーケンスが正常終了したことを認識すると、次にコンダクタ１１５に対して目的とするサーバ１０３への経路情報の取得を要求する（Ｓ１７１１）。
ローカルマスタから発される経路情報取得要求は、第一ＳＮ１０７（Ｓ１７１２)、第二ＳＮ１０８（Ｓ１７１３）と転送され、コンダクタ１１５に到達する。
コンダクタ１１５の経路設定部１１０４は、ダイクストラ法等の周知の経路探索アルゴリズムを用いて、ローカルマスタからサーバに到達するための経路情報を作成し、返信する（Ｓ１７１５）。経路情報は、第二ＳＮ１０８（Ｓ１７１６）、第一ＳＮ１０７（Ｓ１７１７）と転送され、ローカルマスタに到達する。ローカルマスタは、受信した経路情報を一旦ＲＡＭに記憶する（Ｓ１７１８）。この時点で、ステップＳ１７１１から始まった経路情報取得シーケンスは終了する。
【０１５４】
図１８を参照して、ＶＰＣ確立シーケンスの説明を続ける。
ローカルマスタは、コンダクタ１１５から受信した経路情報を基に、ＶＰＣ確立要求コマンドを作成し、経路情報に基づいて最初のステッピングノードである第一ＳＮ１０７に送信する（Ｓ１８１９）。
【０１５５】
第一ＳＮ１０７は、ローカルマスタからＶＰＣ確立要求コマンドを受信すると、自らが経路情報の最後であるか否かを確認する。経路情報の最後のステッピングノードでないことが判ったら、ローカルマスタと経路情報の隣に位置する第二ＳＮ１０８との間に静的ＮＡＴを設定する。そして、経路情報に基づいて最初のステッピングノードである第二ＳＮ１０８に送信する（Ｓ１８２０）。
【０１５６】
第二ＳＮ１０８は、第一ＳＮ１０７からＶＰＣ確立要求コマンドを受信すると、自らが経路情報の最後であるか否かを確認する。経路情報の最後のステッピングノードでないことが判ったら、第一ＳＮ１０７と経路情報の隣に位置する第三ＳＮ１１２との間に静的ＮＡＴを設定する。そして、経路情報に基づいて最初のステッピングノードである第三ＳＮ１１２に送信する（Ｓ１８２１）。
【０１５７】
第三ＳＮ１１２は、第二ＳＮ１０８からＶＰＣ確立要求コマンドを受信すると、自らが経路情報の最後であるか否かを確認する。経路情報の最後のステッピングノードでないことが判ったら、第二ＳＮ１０８と経路情報の隣に位置する第四ＳＮ１１４との間に静的ＮＡＴを設定する。そして、経路情報に基づいて最初のステッピングノードである第四ＳＮ１１４に送信する（Ｓ１８２２）。
【０１５８】
第四ＳＮ１１４は、第三ＳＮ１１２からＶＰＣ確立要求コマンドを受信すると、自らが経路情報の最後であるか否かを確認する。経路情報の最後のステッピングノードであることが判ったら（Ｓ１８２３）、ＶＰＣ確立要求コマンドに含まれているＳＳＩＤを用いて、コンダクタ１１５に対し、ＳＳＩＤ認証を要求する（Ｓ１８２４）。
【０１５９】
第四ＳＮ１１４から発されるＳＳＩＤ認証要求は、第三ＳＮ１１２（Ｓ１８２５)によって転送され、コンダクタ１１５に到達する。コンダクタ１１５はＳＳＩＤテーブル１１１３を検索し（Ｓ１８２６）、ＳＳＩＤ認証結果を返信する（Ｓ１８２７）。ＳＳＩＤ認証結果は、第三ＳＮ１１２（Ｓ１８２８）によって転送され、第四ＳＮ１１４に到達する。
第四ＳＮ１１４は、ＳＳＩＤ認証結果が異常値であれば（Ｓ１８２９のＮＯ）、異常終了する（Ｓ１８３０）。この場合、ステップＳ１８２０において第一ＳＮ１０７が、ステップＳ１８２１において第二ＳＮ１０８が、そしてステップＳ１８２２において第三ＳＮ１１２が設定したＮＡＴ設定は、ＮＡＴ設定の際に同時に設定したタイマがタイムアウトを計時することによって消滅する。
ＳＳＩＤ認証結果が正常値であれば（Ｓ１８２９のＹＥＳ）、次にコンダクタ１１５に対して、目的とするサーバ１０３に対してリバースプロキシを設定するために必要な情報である、サーバ１０３のＩＰアドレス、ポート番号及びプロトコル種別を要求する（Ｓ１８３１）。
第四ＳＮ１１４から発されるサーバ情報要求は、第三ＳＮ１１２（Ｓ１８３２)によって転送され、コンダクタ１１５に到達する。
コンダクタ１１５の経路設定部１１０４は、サーバ情報要求を受信すると、サーバ情報要求に含まれている仮想サーバＩＤＸを用いて経路テーブル１１１４を検索して、サーバ１０３のＩＰアドレス、ポート番号及びプロトコル種別を第四ＳＮ１１４へ返信する（Ｓ１８３４）。
コンダクタ１１５が送信するサーバ情報は、第三ＳＮ１１２（Ｓ１８３５)によって転送され、第四ＳＮ１１４に到達する。
第四ＳＮ１１４は、サーバ１０３のＩＰアドレス、ポート番号及びプロトコル種別を用いて、第三ＳＮ１１２とサーバ１０３との間にリバースプロキシを設定する（Ｓ１８３６）。そして、サーバ１０３のホスト名又はＩＰアドレス、そしてポート番号に対し、ＴＣＰ  ＳＹＮパケットを送信する（Ｓ１８３７）。
こうして、図１７のステップＳ１７０１において端末のアプリケーションプログラムが発したＴＣＰ  ＳＹＮパケットは、ステップＳ１８３８にてサーバ１０３に到達する。
【０１６０】
第四ＳＮ１１４からＴＣＰ  ＳＹＮパケットを受信したサーバ１０３は、ＶＰＣ等とは一切関係なく、周知のＴＣＰの３ウェイハンドシェイクに則り、ＴＣＰ  ＡＣＫ＋ＳＹＮパケットを、第四ＳＮ１１４へ返信する（Ｓ１８２６）。ＴＣＰ  ＡＣＫ＋ＳＹＮパケットは、第四ＳＮ１１４、第三ＳＮ１１２、第二ＳＮ１０８、第一ＳＮ１０７及びローカルマスタに仮に設定されている、データセッション（ＶＰＣトンネル）を通過する（Ｓ１８３９からＳ１８４５へ）。
【０１６１】
第四ＳＮ１１４のパケットモニタ９０５は、データセッションを通過するＴＣＰ  ＡＣＫ＋ＳＹＮパケットを検出すると、その旨をデータセッション管理部９１０に報告する。データセッション管理部９１０は、該当するリバースプロキシに設定されているタイマを停止し、ステップＳ１８３６にて仮に実行したリバースプロキシを確定させる（Ｓ１８４０）。
【０１６２】
第三ＳＮ１１２のパケットモニタ９０５は、データセッションを通過するＴＣＰ  ＡＣＫ＋ＳＹＮパケットを検出すると、その旨をデータセッション管理部９１０に報告する。データセッション管理部９１０は、該当する静的ＮＡＴに設定されているタイマを停止し、ステップＳ１８２２にて仮に実行した静的ＮＡＴを確定させる（Ｓ１８４１）。
【０１６３】
第二ＳＮ１０８のパケットモニタ９０５は、データセッションを通過するＴＣＰ  ＡＣＫ＋ＳＹＮパケットを検出すると、その旨をデータセッション管理部９１０に報告する。データセッション管理部９１０は、該当する静的ＮＡＴに設定されているタイマを停止し、ステップＳ１８２１にて仮に実行した静的ＮＡＴを確定させる（Ｓ１８４２）。
【０１６４】
第一ＳＮ１０７のパケットモニタ９０５は、データセッションを通過するＴＣＰ  ＡＣＫ＋ＳＹＮパケットを検出すると、その旨をデータセッション管理部９１０に報告する。データセッション管理部９１０は、該当する静的ＮＡＴに設定されているタイマを停止し、ステップＳ１８２０にて仮に実行した静的ＮＡＴを確定させる（Ｓ１８４３）。
【０１６５】
ローカルマスタのパケット監視部６１５は、データセッションを通過するＴＣＰ  ＡＣＫ＋ＳＹＮパケットを検出すると、その旨をコントロールセッション管理部６０９に報告する。コントロールセッション管理部６０９は、該当する静的ＮＡＴを確定させる（Ｓ１８４４）。
この時点で、端末とサーバ１０３の間に存在する、ローカルマスタ、第一ＳＮ１０７、第二ＳＮ１０８、第三ＳＮ１１２及び第四ＳＮ１１４が形成するＶＰＣトンネルが確定する（Ｓ１８４６）。
【０１６６】
端末は、サーバ１０３からＶＰＣトンネルを介して返信されたＴＣＰ  ＡＣＫ＋ＳＹＮパケットを受信すると、周知のＴＣＰの３ウェイハンドシェイクに則り、ＴＣＰ  ＡＣＫパケットを、ＶＰＣトンネルを介してサーバ１０３へ返信する（Ｓ１８４５）。これ以降は、端末はＴＣＰ／ＩＰ第四層（アプリケーション）に従う処理でＶＰＣトンネルを介してサーバ１０３にアクセスし（Ｓ１８４７）、サーバ１０３も同様にクライアントのアクセスに応答する（Ｓ１８４８）。
【０１６７】
図１９は、ＶＰＣ確立シーケンスに流れるパケット及びＶＰＣ確立要求コマンドの概要を示す概略図である。
第一端末１０５から送信されるＴＣＰ  ＳＹＮパケットは、データセッションで送信される。
ローカルマスタＢＯＸ１０９は、ＴＣＰ  ＳＹＮパケットを受信すると、ＶＰＣ確立要求コマンドを作成して、コントロールセッションを通じて第一ＳＮ１０７に送信する。
ＶＰＣ確立要求コマンドに含まれている経路情報は、ステッピングノードのホスト名又はＩＰアドレスで構成される。
ＶＰＣトンネルを形成するステッピングノードの最終地点である第四ＳＮ１１４は、コントロールセッションで受信したＶＰＣ確立要求コマンドを受けると、データセッションからサーバ１０３に向けてＴＣＰ  ＳＹＮパケットを送信する。
ＴＣＰ  ＳＹＮパケットを受信すると、サーバ１０３はデータセッションを通じてＴＣＰ  ＡＣＫ＋ＳＹＮパケットを返信する。このＴＣＰ  ＡＣＫ＋ＳＹＮパケットは、各ステッピングノードに既に仮に形成されているリバースプロキシ及び静的ＮＡＴで成り立つデータセッション、つまりＶＰＣトンネルを通過して、第一端末１０５に到達する。そして、このＴＣＰ  ＡＣＫ＋ＳＹＮパケットが、仮設定状態である各ステッピングノードのリバースプロキシ又は静的ＮＡＴを確定させる。
【０１６８】
図１７、図１８及び図１９を見て判るように、本実施形態のネットワークシステムは、周知のＴＣＰの３ウェイハンドシェイクの、最初のＴＣＰ  ＳＹＮパケットの転送に介在する。
ローカルマスタがＴＣＰ  ＳＹＮパケットを検出すると（Ｓ１７０２）、ＳＳＩＤ認証シーケンス（Ｓ１７０２からＳ１７０９まで）の後、コンダクタ１１５に経路情報を要求する（Ｓ１７１１）。
すると、コンダクタ１１５はその時点で最良の経路情報を作成し（Ｓ１７１４）、ローカルマスタに送信する（Ｓ１７１５）。
ローカルマスタは経路情報を含んだＶＰＣ確立コマンドを、経路情報の最初に記述されているステッピングノードに送信する（Ｓ１８１９）。
ＶＰＣ確立コマンドを受信した、経路情報の最後でないステッピングノードは、コマンドに含まれている経路情報に従って、当該コマンドを次のステッピングノードに転送すると共に、データセッションに静的ＮＡＴを設定する（Ｓ１８２０、Ｓ１８２１、Ｓ１８２２）。
ＶＰＣ確立コマンドを受信した、経路情報の最後に位置するステッピングノードは、自らが経路情報の最後であることを認識すると（Ｓ１８２３）、ＶＰＣ確立コマンドに含まれているＳＳＩＤを用いてＳＳＩＤ認証シーケンス（Ｓ１８２４からＳ１８２９まで）を実行した後、コンダクタ１１５にサーバ情報を要求する（Ｓ１８３１）。すると、コンダクタ１１５はサーバ情報を検索し（Ｓ１８３３）、経路情報の最後に位置するステッピングノードに送信する（Ｓ１８３４）。
経路情報の最後に位置するステッピングノードはサーバ情報に基づいてリバースプロキシを設定して（Ｓ１８３６）、当該サーバにＴＣＰ  ＳＹＮパケットを送信する（Ｓ１８３７）。
【０１６９】
従来技術のＶＰＮ製品では、アプリケーションプログラムに介在する形式で、ユーザ認証を行い、ＶＰＮのトンネルを形成する。このため、ＶＰＮ接続したいアプリケーションプログラムが増えれば、そのプログラムに対応する個人認証のためのプログラム等を別途用意する必要がある。
しかし、本実施形態のネットワークシステムでは、機器認証及び個人認証と、ＶＰＣトンネルを形成する手順が完全に分離している。最初の認証手順で機器認証及び個人認証が成功すれば、その後はサービスメニュー情報６１４に列挙されているサーバに接続するアプリケーションプログラムは、何ら特別なプログラムを伴う必要もなく、単に指定されたコマンドライン文字列に記述されているリソースに対してアクセスを行えばよい。ＶＰＣ確立シーケンスではＳＳＩＤを用いた認証が、ＶＰＣトンネルの始端であるローカルマスタと、終端に位置するステッピングノードで実行されるが、ユーザもアプリケーションプログラムも全くこれを意識する必要はない。
【０１７０】
［ＶＰＣ切断シーケンス］
図２０は、ＶＰＣトンネルを通過する通信のプロトコルがコネクション型の通信である場合における、ＶＰＣ切断シーケンスを示すタイムチャートである。図１３のステップＳ１３０６の詳細である。
ＶＰＣトンネルを通過させる通信のプロトコルが、ＨＴＴＰのようなコネクションレス型の場合は、ＴＣＰ  ＦＩＮパケットも含めて全てのパケットを滞り無く転送させる必要があるが、ＲＤＰやＳＳＨのようなコネクション型の場合は、ＴＣＰ  ＦＩＮパケットが送信されるとアプリケーションプログラムが終了したことを意味する。つまり、切断のための専用のコマンドをコントロールセッションを通じて送らずとも、通常のＴＣＰにおける通信終了の手続きをモニタして、ＶＰＣトンネルの終了のきっかけにすることができる。
ユーザが端末のアプリケーションプログラムを操作して通信を終了させると、アプリケーションプログラムは周知のＴＣＰにおける通信終了の手続きを行う（Ｓ２００１）。この時にアプリケーションプログラムが送信するＴＣＰ  ＦＩＮパケットがローカルマスタに到達すると、ローカルマスタもＴＣＰにおける通信終了の手続きを行う（Ｓ２００２）。ローカルマスタは、ＴＣＰの通信終了の手続きを終えると、ＶＰＣトンネルを形成していた静的ＮＡＴの設定を解除する（Ｓ２００３）。
【０１７１】
ローカルマスタは、第一ＳＮ１０７に対してもＴＣＰにおける通信終了の手続きを行う。この時にローカルマスタが送信するＴＣＰ  ＦＩＮパケットが第一ＳＮ１０７に到達すると、第一ＳＮ１０７もＴＣＰにおける通信終了の手続きを行う（Ｓ２００４）。第一ＳＮ１０７は、ＴＣＰの通信終了の手続きを終えると、ＶＰＣトンネルを形成していた静的ＮＡＴの設定を解除する（Ｓ２００５）。
【０１７２】
第一ＳＮ１０７は、第二ＳＮ１０８に対してもＴＣＰにおける通信終了の手続きを行う。この時に第一ＳＮ１０７が送信するＴＣＰ  ＦＩＮパケットが第二ＳＮ１０８に到達すると、第二ＳＮ１０８もＴＣＰにおける通信終了の手続きを行う（Ｓ２００６）。第二ＳＮ１０８は、ＴＣＰの通信終了の手続きを終えると、ＶＰＣトンネルを形成していた静的ＮＡＴの設定を解除する（Ｓ２００７）。
【０１７３】
第二ＳＮ１０８は、第三ＳＮ１１２に対してもＴＣＰにおける通信終了の手続きを行う。この時に第二ＳＮ１０８が送信するＴＣＰ  ＦＩＮパケットが第三ＳＮ１１２に到達すると、第三ＳＮ１１２もＴＣＰにおける通信終了の手続きを行う（Ｓ２００８）。第三ＳＮ１１２は、ＴＣＰの通信終了の手続きを終えると、ＶＰＣトンネルを形成していた静的ＮＡＴの設定を解除する（Ｓ２００９）。
【０１７４】
第三ＳＮ１１２は、第四ＳＮ１１４に対してもＴＣＰにおける通信終了の手続きを行う。この時に第三ＳＮ１１２が送信するＴＣＰ  ＦＩＮパケットが第四ＳＮ１１４に到達すると、第四ＳＮ１１４もＴＣＰにおける通信終了の手続きを行う（Ｓ２０１０）。第四ＳＮ１１４は、ＴＣＰの通信終了の手続きを終えると、ＶＰＣトンネルを形成していたリバースプロキシの設定を解除する（Ｓ２０１１）。
サーバ１０３は、第四ＳＮ１１４が送信するＴＣＰ  ＦＩＮパケットに呼応して、通信の終了の手続きを行う（Ｓ２０１２）。
【０１７５】
［ユーザログアウトシーケンス及びローカルマスタシャットダウン］
図２１（ａ）及び（ｂ）は、ユーザログアウトシーケンス及びローカルマスタシャットダウンを示すタイムチャートである。図１３のステップＳ１３０７及びステップＳ１３０８の詳細である。
ユーザが端末の使用を停止したい場合は、ユーザは端末の専用シェル２０８を操作して、ログアウトを宣言する（Ｓ２１０１）。ログアウトの宣言はコントロールセッションを通じてコンダクタ１１５に送信され（Ｓ２１０２）、第一ＳＮ１０７（Ｓ２１０３）及び第二ＳＮ１０８（Ｓ２１０４）にて転送された後、端末に到達する（Ｓ２１０５）。コンダクタ１１５は、ユーザログアウト処理として、ＳＳＩＤテーブル１１１３に記述されている当該ユーザのユーザＩＤを抹消する（Ｓ２１０５）。つまり、ＳＳＩＤとユーザＩＤとの紐付けが解除される。ログアウト処理の完遂報告は、コンダクタ１１５から送信され（Ｓ２１０６）、第二ＳＮ１０８（Ｓ２１０７）、第一ＳＮ１０７（Ｓ２１０８）、ローカルマスタ（Ｓ２１０９）を経て、端末に到達する（Ｓ２１１１）。
この時、ローカルマスタではユーザログアウトを受けてサービスメニュー情報６１４及び制限設定情報６１０を破棄する（Ｓ２１１０）。
同様に、端末のプレイヤ１１１はユーザログアウトを受けてサービスメニュー情報６１４及び制限設定情報６１０を破棄する（Ｓ２１１２）。
【０１７６】
端末を通じてローカルマスタＢＯＸ１０９の電源を落とすか、ソフトローカルマスタ１１３がインストールされている端末をシャットダウンする等でローカルマスタの動作を終了させると（Ｓ２１１３）、その情報は第一ＳＮ１０７（Ｓ２１１４）及び第二ＳＮ１０８（Ｓ２１１５）を通じてコンダクタ１１５に通知される。コンダクタ１１５は、この通知を受けて、ＳＳＩＤテーブル１１１３のＳＳＩＤを抹消する（Ｓ２１１６）。
【０１７７】
以上の説明から解るように、本実施形態のネットワークシステム１０１では、端末のアプリケーションプログラムがサーバ１０３へ接続しようとすると、初めてコントロールセッションとは異なるポートでデータセッションを形成する。端末が接続しようとするサーバが異なれば、その都度異なるデータセッションが形成される。コンダクタ１１５がユーザ毎に利用できるサーバ１０３の資源を経路テーブル１１１４で管理しているので、データセッションの重複等の事故を引き起こすことなく、多数のユーザに対して容易に仮想接続サービスを提供することができる。
【０１７８】
本実施形態は、以下のような応用例が可能である。
（１）コンダクタ１１５の機器特定ＩＤマスタ１１０５及びユーザマスタ１１０６は、コンダクタ１１５とは異なるサーバ１０３に置いて、ネットワークを通じて認証処理部１１０３が参照してもよい。
【０１７９】
（２）ローカルマスタが複数のコンダクタ１１５に対して同時にアクセスすることもできる。この場合、ローカルマスタは後から接続するステッピングノードに対して、個人認証を完了した直後に、既に先に接続済みのステッピングノードで割り当て済みの端末用ターゲットアドレスを報告し、それぞれのステッピングノードで端末用ターゲットアドレスが重複しないように調停する必要がある。
【０１８０】
（３）ソフトローカルマスタ１１３の機能構成を、ローカルマスタＢＯＸ１０９と同等の構成にすることができる。
図７のソフトローカルマスタ１１３は、ループバック仮想ＮＩＣ７０１をＶＰＣを用いたアクセスに用いていたが、ループバック仮想ＮＩＣ７０１の代わりに、図６のローカルマスタＢＯＸ１０９の第二ＮＩＣ６０１のように、ソフトウェアで構成するＮＩＣに代えることができる。このようなソフトウェアのＮＩＣは、Ｗｉｎｄｏｗｓ（登録商標）の場合、非特許文献１に開示されているソフトウェア製品の他、ＴＡＰ−Ｗｉｎ３２（http://cipe-win32.sourceforge.net/）等、公知のプログラムが幾つか存在する。Ｌｉｎｕｘ（登録商標）の場合、カーネルのドライバに「Ｕｎｉｖｅｒｓａｌ  ＴＵＮ／ＴＡＰ  ｄｅｖｉｃｅ  ｄｒｉｖｅｒ」という名称で備わっている。
【０１８１】
（４）端末が据え置き型であり、ＬＡＮ１０２から移動する可能性が極めて低い場合は、プレイヤ１１１のＡＰＩフック処理部８１３を稼働させて、端末の挙動を制限しなくても良い。この場合、ネットワークシステム１０１にとって、プレイヤ１１１は、サービスメニュー情報６１４を保持し、専用シェル２０８を起動する機能が求められる。
【０１８２】
（５）ステッピングノードは、自身が接続されているネットワーク上にＩＰリーチャブルなサーバが存在しない場合は、リバースプロキシを起動する機能を持たなくても良い。
【０１８３】
本実施形態では、ネットワークドライバ８０６と、これに使用する静的ＮＡＴ形成装置（ローカルマスタＢＯＸ１０９、ソフトローカルマスタ１１３）、端末管理装置（プレイヤ１１１）、リバースプロキシサーバ（ステッピングノード）、仮想ネットワーク接続制御装置（コンダクタ１１５）を開示した。
ローカルマスタＢＯＸ１０９或はソフトローカルマスタ１１３とステッピングノードがコントロールセッションを通じて機器認証及び個人認証を実行した後、端末のアプリケーションプログラムがコンダクタ１１５の先に存在するプライベートネットワーク内のサーバ１０３に対する接続を要求したら、ローカルマスタＢＯＸ１０９或はソフトローカルマスタ１１３及び経路途中のステッピングノードは静的ＮＡＴを、サーバ１０３直近のステッピングノードはリバースプロキシを設定して、端末とサーバ１０３との間にデータセッションを形成する。このようにネットワークシステム１０１を構築することで、プライベートアドレスの衝突のない、仮想的な接続形態で、直接的にはＩＰリーチャブルでない端末とサーバ１０３との接続が実現できる。更に、接続の際にはプレイヤ１１１が端末の挙動を強力に制限するので、セキュリティ面の脆弱性を保護できる。
【０１８４】
一般的に、サーバを構成する際のＢＳＤソケットプログラミングの作法は、クライアントの接続を待機するポートを開けて、クライアントが接続してきたら、次のクライアントの接続を待つために再度ポートを開ける、という作法である。つまり、サーバは常時特定のポートが開いていることとなる。ポートが開けっ放しである、ということは、悪意ある第三者がそのポートを通じて当該サーバプログラムの脆弱性を探査するきっかけになり得る。
【０１８５】
発明者は、ステッピングノードが擁する複数のプロトコルに対応する複数のリバースプロキシプログラムに存在するかもしれない脆弱性を、第三者から突かれる可能性を排除するために、常時開けるポートと実際に端末とデータとを接続するポートを別にした。ステッピングノードが形成するデータセッションは、本来のＢＳＤソケットプログラミングにおけるサーバの作法とは異なり、データセッションが確立しても同じデータセッションに該当するポートは開かない。あくまでも端末から接続要求がない限り、データセッションは形成されないし、そのためのポートも開くことはない。第三者がステッピングノードをポートスキャンすると、コントロールセッションのためのポートしか開いていないように見える。
【０１８６】
更に、本実施形態に係るネットワークシステム１０１に接続されるローカルマスタには、各ローカルマスタを一意に識別するための機器特定ＩＤ６０８が与えられている。この機器特定ＩＤ６０８は、ＩＰアドレスとは別であり、コントロールセッションで認証情報としてのみ使用される。
ここで翻って、本実施形態のネットワークシステム１０１のデータセッションに流れるパケットについて考察し、説明する。
【０１８７】
端末から発されるパケットは、ソフトローカルマスタ１１３の場合、送信元ＩＰアドレスはループバックアドレス（１２７．０．０．１）であり、送信先ＩＰアドレスはループバックアドレスが属するクラスＣのサブネットに含まれるアドレス（１２７．０．０．ｘ）である。ローカルマスタＢＯＸ１０９の場合、送信元ＩＰアドレスはプライベートアドレス（一例として１９２．１６８．０．１）であり、送信先ＩＰアドレスはプライベートアドレスが属するクラスＣのサブネットに含まれるアドレス（１９２．１６８．０．ｘ）である。
これらパケットは、ソフトローカルマスタ１１３又はローカルマスタＢＯＸ１０９で、静的ＮＡＴによって送信元ＩＰアドレス及び送信先ＩＰアドレス（と、必要であればポート番号も）が書き換えられる。送信元ＩＰアドレスはＤＨＣＰサーバからソフトローカルマスタ１１３又はローカルマスタＢＯＸ１０９に付与されたＩＰアドレスが、送信先ＩＰアドレスとポート番号は、直近のステッピングノードのＩＰアドレスとデータセッションのためのポート番号に、それぞれ書き換えられる。
【０１８８】
更に、これらパケットは、複数のステッピングノードを通過する。パケットは、ＶＰＣトンネルを構成するステッピングノードが設定する静的ＮＡＴ或はリバースプロキシによって、送信元ＩＰアドレス及び送信先ＩＰアドレス（と、必要であればポート番号も）が次々と書き換えられる。最終的にサーバ１０３に到達するパケットは、送信元ＩＰアドレスはサーバ１０３に直近のステッピングノードのＩＰアドレスが、送信先ＩＰアドレスとポート番号は、サーバ１０３のプライベートアドレスとポート番号に、それぞれ書き換えられる。
このように、通信路を通過するパケットのＩＰアドレスが拠点を通過する度に次々に書き換えられる状況において、端末の一意性を保証する情報である機器特定ＩＤ６０８は何のために使用されなければならないのかを考えると、機器特定ＩＤ６０８は「端末が当該サーバ１０３に接続する資格を有する」ことを示す情報である、ということが判る。そして、この情報は必ずしも端末にサービスを提供するサーバ１０３が抱えていなければならないものではなく、所定の認証を実行できる機器（コンダクタ１１５）が存在していればよいのである。
【０１８９】
周知の通り、ＩＰｖ４はアドレスが枯渇しつつある、という喫緊の問題に直面している。では何故アドレスが枯渇しつつあるのか。一見すれば、ＩＰアドレスのビット数が足りないから、と、普通なら考えるだろう。しかし、もっと根源的な問題は、通信路を行き交うパケットの行き先を決めるＩＰアドレスに、端末の一意性を求めようとしたことである。ＩＰアドレスはプロトコルとして定められ、パケットに必ず付されるビット列であるから、固定長でなければならず、容易にそのビット列を拡大させるようなことはできない。これがそもそもの間違いの元だった、と、発明者は考えた。
【０１９０】
端末の一意性を求める情報は、端末の一意性を求める状況、つまり認証行為にのみ使用すればよく、パケットの行き先を定める情報とは明確に区別するべきである。この技術思想に立脚して、発明者は、ＩＰアドレスから端末の一意性を求めることを否定し、ＩＰアドレスはパケットの行き先にのみ使用される情報と割り切って、通信路の仮想化と、認証行為を基に、ネットワークシステムの再構築を試みた。これが、本実施形態である。
【０１９１】
本実施形態のローカルマスタに含まれる機器特定ＩＤ６０８は、プロトコルとして定められ、パケットのヘッダとして組み込まれているＩＰアドレスではなく、認証にのみ使用されるデータである。したがって、ネットワークドライバ８０６の規模や必要に応じて、幾らでもビット列を拡大させたり、フォーマットを変更する等の行為をしても、パケットのフォーマットは変わらないので、全く問題は発生しない。本実施形態において、発明者は試作品を作成した際、機器特定ＩＤ６０８に１２バイトを割り当てたが、勿論、もっと長大なビット列にしてもよい。
【０１９２】
図１を見て判るように、本実施形態のネットワークシステム１０１は、ＩＰリーチャブルでないサブネット間を、ステッピングノードを辿ることで安全に越える事ができる。この技術を応用すると、隣り合ってさえいなければ、複数の同じサブネットが経路上に存在していても、本実施形態のネットワークシステム１０１は成立する。つまり、原理的にはプライベートＩＰアドレスだけでほぼ無限大に広大なネットワークを構築することができる。
以上のように、本実施形態のネットワークシステム１０１は、ＩＰｖ４プロトコルの可能性を拡大する技術としての一面も備えている。
【０１９３】
以上、本発明の実施形態例について説明したが、本発明は上記実施形態例に限定されるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りにおいて、他の変形例、応用例を含む。
【符号の説明】
【０１９４】
１０１…ネットワークシステム、１０２…ＬＡＮ、１０３…サーバ、１０４…ＩＣカードリーダ、１０５…第一端末、１０６…第二端末、１０７…インターネット、１０９…ローカルマスタＢＯＸ、１１０…ＤＨＣＰサーバ、１１１…プレイヤ、１１３…ソフトローカルマスタ、１１５…コンダクタ、２０１…ネットワークＯＳ、２０２…シェル、２０３…第三アプリケーション、２０４…ストレージ、２０５…操作部、２０６…表示部、２０７…内蔵ＵＳＢインターフェース、２０８…専用シェル、２０９…第一アプリケーション、２１０…第二アプリケーション、３０１…内蔵ＮＩＣ、４０３…ＵＳＢ−Ｂコネクタ、４０４…ネットワークコネクタ、５０２…ＣＰＵ、５０３…ＲＡＭ、５０４…フラッシュメモリ、５０５…ＵＳＢインターフェース、５０７…第一ＮＩＣ、５０８…バス、６０１…第二ＮＩＣ、６０２…ＤＨＣＰクライアント、６０３…アドレス重複回避部、６０４…ＤＨＣＰサーバ、６０５…ＮＡＴ設定部、６０６…暗号化通信処理部、６０８…機器特定ＩＤ、６０９…コントロールセッション管理部、６１０…制限設定情報、６１１…パケットフィルタ設定部、６１２…デフォルトゲートウェイアドレス、６１３…ＳＳＩＤメモリ、６１４…サービスメニュー情報、６１５…パケット監視部、７０１…ループバック仮想ＮＩＣ、７０２…ＤＨＣＰクライアント、７０５…ＮＡＴ設定部、７０６…パケットフィルタ設定部、８０１…操作ドライバ、８０２…表示制御部、８０３…ファイルシステム、８０４…プロセス制御部、８０５…クリップボードバッファ、８０６…ネットワークドライバ、８０７…コントロールセッション管理部、８０８…操作情報取得部、８０９…画面キャプチャ処理部、８１０…ファイルシステム監視部、８１１…プロセス監視部、８１２…クリップボード監視部、８１３…ＡＰＩフック処理部、９０１…ステッピングノード、９０２…第五ＮＩＣ、９０４…暗号化通信処理部、９０５…パケットモニタ、９０６…第一タイマ、９０７…第二タイマ、９０８…コンダクタアドレス、９０９…コントロールセッション管理部、９１０…データセッション管理部、９１１…第一リバースプロキシ、９１２…第二リバースプロキシ、９１３…第三タイマ、９１４…第一ＮＡＴ、９１５…ＳＮＩＤ、１００１…ステッピングノード、１００２…第三ＮＩＣ、１００３…第四ＮＩＣ、１００４…ファイアウォール、１１０１…第六ＮＩＣ、１１０２…暗号化通信処理部、１１０３…認証処理部、１１０４…経路設定部、１１０５…機器特定ＩＤマスタ、１１０６…ユーザマスタ、１１０７…サーバマスタ、１１０８…ユーザサーバマスタ、１１０９…ＳＮマスタ、１１１０…ＳＮサーバマスタ、１１１１…ＳＮマップマスタ、１１１２…ＬＭ・ＳＮマスタ、１１１３…ＳＳＩＤテーブル、１１１４…経路テーブル
【要約】
【課題】従来のＶＰＮの問題点を解消し、極めて軽量なソフトウェア及びハードウェアの追加で、柔軟な運用性且つ強固なセキュリティを実現する、新規なネットワークシステム、ネットワーク接続装置及びリバースプロキシ装置を提供する。
【解決手段】静的ＮＡＴ形成装置がコントロールセッションを通じてコンダクタに対して認証を実行した後、端末がリバースプロキシサーバの先に存在するネットワーク内のサーバに対する接続を要求したら、静的ＮＡＴ形成装置及びステッピングノードは静的ＮＡＴを、リバースプロキシサーバはリバースプロキシを設定して、端末とサーバとの間にデータセッションを形成する。このようにネットワークシステムを構築することで、プライベートアドレスの衝突のない、仮想的な接続形態で、ファイアウォールを越えた端末のサーバに対する接続が実現できる。
【選択図】図１【図１】
0004802295.tif 000002
【図２】
0004802295.tif 000003
【図３】
0004802295.tif 000004
【図４】
0004802295.tif 000005
【図５】
0004802295.tif 000006
【図６】
0004802295.tif 000007
【図７】
0004802295.tif 000008
【図８】
0004802295.tif 000009
【図９】
0004802295.tif 000010
【図１０】
0004802295.tif 000011
【図１１】
0004802295.tif 000012
【図１２】
0004802295.tif 000013
【図１３】
0004802295.tif 000014
【図１４】
0004802295.tif 000015
【図１５】
0004802295.tif 000016
【図１６】
0004802295.tif 000017
【図１７】
0004802295.tif 000018
【図１８】
0004802295.tif 000019
【図１９】
0004802295.tif 000020
【図２０】
0004802295.tif 000021
【図２１】
0004802295.tif 000022