説明

情報処理装置、通信制御方法および通信制御用プログラム

【課題】 情報処理装置が1つのタスクを実行するために複数のネットワークを利用すると情報漏洩の危険がある。
【解決手段】 コンピュータは、相互に異なるネットワークに対応する複数の通信インタフェース手段(2013〜2015)と、通信の宛先と該通信に使用すべき通信インタフェース手段との関連が規定されたルーティング表(2009)からタスクによる通信要求に対応する通信インタフェース手段を選定するルーティング手段(2010)と、タスクと該タスクによる最初の通信に使用する通信インタフェース手段との組み合わせをタスク表(2007)へ記録し、タスクの終了時に該タスクに関する記録をタスク表から削除するタスク表更新手段(2011)と、ルーティング手段による選定がタスク表に対応するとき当該通信を許可し、また、対応しないとき当該通信を遮断する通信インタフェース制限手段(2012)とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、通信制御方法および通信制御用プログラムに関し、特に、複数の通信インタフェースを備えた情報処理装置において情報漏洩の防止に用いる技術に関する。
【背景技術】
【0002】
近年のインターネット・社内ネットワークなどに代表される情報ネットワークの普及に伴い、情報ネットワークに、社会のインフラストラクチャーとしての信頼性が求められている。特に、個人情報保護などのセキュリティの観点からは、情報漏洩を防止し得る通信制御技術の必要性が高まりつつある。
【0003】
また、近年の情報ネットワークの接続方法の多様化に伴い、複数の情報ネットワークに接続するという通信形式をとる機器が増加している。従来の情報ネットワークにおいては、複数の情報ネットワークに接続する機器は交換機やルータといった中継機器に限られており、これらの機器は情報ネットワーク管理者の管理下におかれていたためセキュリティ上の問題は生じ難かった。
【0004】
しかし、近年の情報ネットワークにおいては、エンドユーザの機器が、エンドユーザ独自の判断により複数の情報ネットワークに接続される。一例を挙げると、エンドユーザのパーソナルコンピュータが、LANによる社内網に接続される一方で、携帯電話網のような公衆無線網を通じてインターネットに接続し、さらにはインターネット上に仮想私設網(VPN:Virtual Private Network)を構築することにより外部のLANに接続されるという状況である。
【0005】
従来の通信制御システムの例が後述の特許文献1乃至3に記載されている。特許文献1に記載のシステムは、情報セキュリティポリシー管理・監査支援装置と、サーバやルータやファイアウォールなどの管理・監査対象計算機とが、情報ネットワークを介して接続された構成を有する。このシステムでは、情報ネットワーク管理者が選択した対象機器に対し、適用可能な情報ネットワークポリシーの集合を表示し、情報ネットワーク管理者が情報処理装置セキュリティポリシーを選択することにより、情報ネットワークのセキュリティを管理するというものである。
【0006】
特許文献2に記載のシステムは、情報ネットワークにおいて、電子計算機Aが、電子計算機Bを経由して電子計算機Cと通信する際、電子計算機Aおよび電子計算機Bの情報ネットワーク上でのアドレスを通信接続要求に添えて送ることにより、電子計算機Cは、電子計算機Aからの通信が電子計算機Bを経由して行われていることを知ることができる。電子計算機Cは、アクセス許可リストに従って通信接続の可否を決定するよう動作する。
【0007】
特許文献3に記載のシステムは、通信パケットを、情報ネットワーク内の戦略的な点に置かれたパケットフィルタモジュールによって検査することにより、通信パケットを受け入れる(パス)か排除(ドロップ)するよう制御するというものである。
【特許文献1】特開2002−247033号公報
【特許文献2】特開平4−235652号公報
【特許文献3】特開平8−44642号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
ところで、前述したような複数の外部ネットワークに接続可能である機器は、タスクの実行に複数の通信インタフェースを併用して複数のネットワークを利用することが可能であるが、複数のネットワークを利用するとデータが外部に流出しやすい。よって、情報漏洩を図るための通信制御技術を導入することが求められる。
【0009】
しかしながら、特許文献1に記載の発明は、単一の情報ネットワークを単一の管理者が管理する場合には有効であるが、エンドユーザの使用する機器が複数の情報ネットワークに接続する通信形態には有効でない可能性がある。なぜなら、情報ネットワークが異なる場合は管理者も異なるのが一般的であり、情報漏洩防止のために個々の情報セキュリティポリシーを調和させることは難しいからである。
【0010】
特許文献2に記載の発明は、電子計算機Bと電子計算機Cとが異なる情報ネットワークに属する場合には有効でない可能性がある。なぜなら、それぞれ別個の情報ネットワークに属する両計算機に対しては、同様の情報セキュリティ管理がなされない可能性があり、そうすると両者に当発明を確実に適用することが難しいからである。
【0011】
特許文献3に記載の発明は、特に、パケットフィルタモジュールが置かれた機器の上でアプリケーションタスクが動作している場合には、アプリケーションタスクにより通信が終端される。よって、アプリケーションタスクが複数のネットワークに接続していても、パケットフィルタモジュールがそれら複数の接続の関連性および情報漏洩の危険性を判断することは困難である。
【0012】
この他、タスクの実行に複数の通信インタフェースを併用することに対するセキュリティ上の問題点としては、タスクが使用しようとする通信インタフェースを予見するのが困難であることが挙げられる。
【0013】
その理由は、タスクの汎用性を高めるために、タスクに利用する通信インタフェースが、実際の通信開始時に動的に設定されるからである。また、前述のVPN技術を用いた場合、通信インタフェースが論理的に取り扱われることから、通信インタフェースの追加や削除が比較的容易である。そのため、タスクの実行中に通信インタフェースが頻繁に切り替えられることがあり、結果、通信インタフェースの予見が困難となる。
【0014】
本発明は、上記課題に鑑みてなされたものであり、複数のネットワークに接続可能な情報処理装置によるタスクの実行に際し、通信のセキュリティを確保し得る手法を提供することを目的とする。
【課題を解決するための手段】
【0015】
本発明に係る情報処理装置は、タスクを実行するコンピュータと、該コンピュータを複数のネットワークに接続する複数の通信インタフェース機構とを備え、前記コンピュータは、相互に異なるネットワークに対応し且つ対応するネットワークに対し当該通信インタフェース機構を介してデータを送受信する複数の通信インタフェース手段と、通信の宛先と該通信に使用すべき通信インタフェース手段との関連が規定されたルーティング表からタスクによる通信要求に対応する通信インタフェース手段を選定するルーティング手段と、タスクと該タスクによる最初の通信に使用する通信インタフェース手段との組み合わせをタスク表へ記録し、タスクの終了時に該タスクに関する記録を前記タスク表から削除するタスク表更新手段と、前記ルーティング手段による選定が前記タスク表に対応するとき当該通信を許可し且つ対応しないとき当該通信を遮断する通信インタフェース制限手段とを有する。
【0016】
かかる本発明の基本構想は、タスクの実行に利用する通信インタフェースとして、このタスクが最初に利用した通信インタフェースのみを有効とするよう制御することにある。よって、同タスクによる2回目以降の通信要求の際に、最初の通信のものとは別の通信インタフェースにより通信を試みても、その通信は遮断される。
【発明の効果】
【0017】
本発明によれば、1つのタスクが複数の通信インタフェースを併用することを禁止することができる。これにより、タスクが利用する通信インタフェースが固定化されることから、機密データの漏洩など、通信のセキュリティ上の問題を生じ難くすることができる。また、通信インタフェースの利用制限に関する設定がタスクの終了まで有効であることから、同一タスクの通信要求ごとに動的に通信インタフェースが割り当てられるプロトコルに対しても、上記の利用制限が有効に作用する。
【発明を実施するための最良の形態】
【0018】
本発明を実施するための最良の形態について図面を参照して詳細に説明する。図1を参照すると、本発明の第1の実施の形態は、演算処理を行うCPU1001及び記憶装置として機能するメモリー1002を具備するコンピュータ1003と、コンピュータ1003の周辺装置である複数の通信インタフェース(1004〜1006)とを備える情報処理装置1007である。図示の例では、通信インタフェースとして、通信インタフェース0番1004、通信インタフェース1番1005、及び、通信インタフェース2番1006の3つが設けられている。
【0019】
上記通信インタフェース(1004〜1006)は、コンピュータ1003を所定の通信形態によりネットワーク(1008〜1010)に接続する機構であり、具体的には、Ethernet(登録商標)のような有線LANの通信インタフェースカード、及び、無線LANの通信インタフェースカード等から構成される。
【0020】
図2に、情報処理装置1007がオペレーティングシステム及びミドルウェア等のソフトウェアを実行することにより実現される機能ブロックを示す。タスク2001は、何らかの処理に対応する単位プログラムである。タスク2001がその処理の途中で必要とする通信を制限するために以下の手段が設けられている。
【0021】
通信手段2002は、タスク2001が通信を行う際に利用する手段であり、コンピュータ1003上で動作するソフトウェアにより構成される。タスク2001が通信手段2002を利用する際、典型的には、オペレーティングシステムに用意されたAPIやシステムコール等の関数を通信要求の種類に応じて呼び出す。通信要求の種類としては、通信の開始(接続発信、接続待受、接続受入)、送信、受信、及び、通信終了がある。通信手段2002は、タスクからの通信要求に応じて通信データを送受信する。
【0022】
割り込み手段2003は、通信手段2002によるタスク2001の処理前に別の処理を割り込ませる手段であり、例えばフックコマンドのような、コンピュータ1003上で動作するソフトウェアにより構成される。本実施形態の割り込み手段2003は、コンピュータ1003のメモリー1002上に割り当てられた通信制御手段2004のアドレスへ、CPU1001の実行点をジャンプさせることで割り込みを行う。ジャンプ先である通信制御手段2004のアドレスは、メモリー1002上に関数テーブルとして保持され、オペレーティングシステムの起動時などに登録される。
【0023】
通信制御手段2004は、タスクの通信を制御する手段であり、コンピュータ1003上で動作するソフトウェアにより構成される。通信制御手段2004は、タスク同定手段2005、タスク表検索手段2006、ルーティングテーブル検索手段2008、タスク表更新手段2011および通信インタフェース制限手段2012を利用してタスクの通信を制御する。その動作の詳細については後述する。
【0024】
タスク同定手段2005は、タスク識別子を取得する手段であり、コンピュータ1003上で動作するソフトウェアにより構成される。タスク識別子としては、典型的には、オペレーティングシステムが管理するプロセスIDを用いる。オペレーティングシステムは、最新の通信要求に対応するプロセスIDを現在動作中のタスクのプロセスIDとして管理する。タスク同定手段2005は、この現在動作中のタスクのプロセスIDを取得する。
【0025】
オペレーティングシステムがタスクにタスク識別子を付与して管理するのは、マルチタスクをサポートするオペレーティングシステムに典型的な動作である。シングルタスクのオペレーティングシステムの場合、タスク同定手段2005は、常に同じタスク識別子を取得するように構成される。
【0026】
タスク表2007は、タスクと、このタスクによる最初の通信に使用したネットワークとの関連を記録したものであり、具体的には、タスク識別子と通信インタフェースの識別子との組み合わせが記録される。マルチタスクによる通信の際には、対応する複数のタスク識別子が記録される。このタスク表2007に記録されたタスクは、通信インタフェースの割り当てが済んでいるものと見なされる。タスク表2007は、典型的にはコンピュータ1003のメモリー1002上に保持されるが、フラッシュメモリーカードのような着脱可能な外部記憶媒体上に保持してもよい。
【0027】
タスク表検索手段2006は、タスク識別子をキーにして、前述のタスク表2007を検索する手段であり、コンピュータ1003上で動作するソフトウェアとして構成される。キーとなるタスク識別子がタスク表2007に登録されていれば、割り当てありとの応答を返し、登録されていない場合は未割当との応答を返す。
【0028】
ルーティングテーブル検索手段2008は、通信の宛先をキーにして、後述のルーティングテーブル2009を検索する手段であり、コンピュータ1003上で動作するソフトウェアにより構成される。通信の宛先アドレスは、通信プロトコルによって異なるが、例えばIP通信であれば、宛先のIPアドレスとなる。具体的な通信インタフェース識別子は、オペレーティングシステムや、通信インタフェースが扱う通信プロトコルによって異なるため、実例を挙げて説明する。
【0029】
例えば、UNIX(登録商標、以下略)系のオペレーティングシステムであるLinux上でIP通信を扱う通信インタフェースの識別子として、Ethernet(登録商標)のような有線LANでは「eth0」や「eth1」などがあり、無線LANでは「wlan0」や「wlan1」などがある。また、Microsoft社製のオペレーティングシステムであるWindows(登録商標)の場合は、通信インタフェースの識別子として「ローカルエリア接続1」や「ワイヤレスネットワーク接続2」などが該当する。
【0030】
ルーティングテーブル2009は、通信の宛先と、その通信に利用する通信インタフェースとの組み合わせの一覧表である。このルーティングテーブル2009は、典型的にはメモリー1002上に保持されるが、フラッシュメモリカードのような外部記憶媒体に保持してもよい。
【0031】
タスク表更新手段2011は、タスク表2007に対するタスク識別子の登録及び削除を実行する手段であり、コンピュータ1003上で動作するソフトウェアにより構成される。
【0032】
通信インタフェース制限手段2012は、各通信インタフェースの通信制限を制御する手段であり、通信インタフェースごとに通信データの通過または遮断を選択して通信インタフェースに指示する。通信インタフェースの指定には、その識別子を用いる。
【0033】
本実施形態において通信インタフェース制限手段2012は、通信フィルタとして構成される。通信フィルタは、通信の宛先及び送信元などの情報をもとに通信データの通過または遮断を判定するものであり、いわゆるファイアウォールと呼ばれることもある。なお、上記機能は、多くの既存の通信フィルタが備えるものであり、当業者にとって既知の技術である。通信フィルタは、コンピュータ1003上で動作する通信プロトコルスタックとしてのソフトウェアにより構成される。
【0034】
なお、VPN技術に代表される通信インタフェースの仮想化技術により、一つの通信インタフェースハードウェアに対し、ソフトウェアによる複数の通信インタフェース手段を構成することができるため、通信インタフェースのハードウェアおよびソフトウェアは数量が一致しない場合がある。
【0035】
図3のシーケンスおよび図4のフローチャートを参照して、本実施形態の全体的な動作について説明する。なお、以下の手順では、図2に示す構成要素の割り込み手段2003をフック手段2003Aとして説明する。
【0036】
まず、タスク2001が外部機器との通信を必要とする際、通信手段2002に通信要求を行う(図3:ステップA1)。この通信要求では、要求の種類および通信パラメータの2種類のデータを通信制御手段2004に通知する。通信パラメータの内容は、通信要求の種類によって異なり、例えば、通信開始時の接続発信であれば通信パラメータは宛先であり、通信開始時の接続待受の場合は保留中の接続のキューの最大長が通信パラメータとなる。また、通信要求の種類が通信開始時の接続受入または通信の終了の場合、通信パラメータとしてのデータは存在しない。さらに、通信要求が送信であれば通信パラメータは送信データであり、受信であれば受信データの格納先が通信パラメータとなる。
【0037】
通信手段3002がタスク2001からの通信要求を受けると、ルーティング手段3007に対しルーティングを要求するに先立ち、フック手段2003Aが以下の処理を割り込ませる(図4:ステップS1)。
【0038】
フック手段2003Aは、タスク2001から得た通信要求及び通信パラメータと、タスク識別子とを通信制御手段2004に通知する(図3:ステップA2)。このときフック手段2003Aは、通信制御手段2004へ通知すべきタスク識別子をタスク同定手段2005から取得する。
【0039】
また、通信制御手段2004へ通知すべき通信パラメータとしては、基本的にはタスク2001からのデータを用いるが、通信要求が通信開始時の接続受入である場合、それがIP通信であれば発信元IPアドレスを追加する。これは、タスク2001が接続受入を発行する時点では、通信相手に対し通信手段3002によりIPアドレスを自動的に割り当てるのが典型的な動作であることによる。
【0040】
通信制御手段2004は、フック手段2003Aから得たタスク識別子をタスク表検索手段2006へ通知し、タスク表2007の検索を要求する(図3:ステップA3)。タスク表検索手段2006は、通知されたタスク識別子をもとにタスク表2007を検索し(図4:ステップS2)、このタスク識別子に通信インタフェースが割り当てられているか否かを判定する。
【0041】
このとき、今回の通信が、通信確立後のデータ送信または受信のように、タスク2001による2回目以降の通信である場合は、タスク識別子と通信インタフェースとの組み合わせが既にタスク表2007に記録されていることから、割り当て済みと判定される(ステップS3:YES)。タスク表検索手段2006は、タスク識別子に割り当てられている通信インタフェースの識別子を通信制御手段2004へ通知する(図3:ステップA4)。
【0042】
通信制御手段2004は、この時点で割り込み処理を終了させ、通信インタフェースの制限を現状のものから変更することなく、従来と同様の手順にて通信を行うよう通信手段2002に指示する。すなわち、通信手段2002が、通信インタフェース識別子および通信データ等をルーティング手段2010に通知し(ステップA9)、ルーティング手段2010が、通知された識別子に対応する通信インタフェース手段(2013〜2015)にデータを渡すことにより通信を行う(ステップA10)。
【0043】
一方、今回の通信が、通信開始時のようにタスク2001による最初の通信である場合、タスク識別子には未だ通信インタフェースが割り当てられていない(図4:ステップS3:NO)。その場合、通信要求の種類に応じて以下の処理を行う。
【0044】
通信要求が通信開始時の接続発信または接続受入の場合(ステップS4:発信・受入)、通信制御手段2004は、通信の宛先(接続発信)または発信元アドレス(接続受入)をルーティングテーブル検索手段2008に通知し、ルーティングテーブル2009の検索を要求する(図3:ステップA5、図4:ステップS5)。ルーティングテーブル検索手段2008は、通信に使う通信インタフェースの識別子をルーティングテーブル2009から検索し、検索結果となる識別子を通信制御手段2004へ通知する(ステップA6)。
【0045】
通信制御手段2004は、ルーティングテーブル検索手段2008から得た通信インタフェースの識別子と、タスク識別子とをタスク表更新手段2011に通知し、タスク表2007の更新を要求する。タスク表更新手段2011は、通信制御手段2004から得たタスク識別子および通信インタフェース識別子の組み合わせをタスク表2007に追加することにより更新を行う(図3:ステップA7、図4:ステップS6)。
【0046】
さらに、通信制御手段2004は、通信に使う通信インタフェースの識別子を通信インタフェース制限手段2012に通知し、通信の制限を要求する(ステップA8)。通信インタフェース制限手段2012は、通信制御手段2004から得た識別子の通信インタフェース(1004〜1006)のみに通信許可を与えるよう設定を行う(図4:ステップS7)。
【0047】
通信制限の設定が更新されると、通信制御手段2004は、割り込み処理を完了させ、従来と同様の手順にて通信を行う。これにより、今回のタスク2001にて指定された通信インタフェースによる通信のみが許可され、他の通信インタフェースによる通信は遮断される。
【0048】
また、タスク2001の通信要求が通信開始時の接続待受である場合(ステップS5:待受)、通信制御手段2004は、ルーティングテーブル2009の検索に関する処理(図3:ステップA5、A6)、及び、タスク表2007の更新に関する処理(ステップA7)を行わず、現時点で通信インタフェースに対し設定されている制限を全て解除するよう通信インタフェース制限手段2012に要求する(図3:ステップA8、図4:ステップS8)。
【0049】
以上説明したような制御を行った後、タスク2001が完了するとき、コンピュータ1003が具備するタスク監視機能(図示略)により、タスク表更新手段2011にタスク識別子が通知され、タスク表更新手段2011が、このタスク識別子に関する情報をタスク表2007から消去する。
【0050】
このように本実施形態では、タスク2001の実行に利用する通信インタフェースとして、タスク2001が最初に利用した通信インタフェースのみを有効とするよう制御することから、タスク2001が2回目以降の通信に別の通信インタフェースの使用を試みても、その通信は遮断される。これにより、1つのタスク2001が複数の通信インタフェースを併用することを禁止することができ、結果、通信のセキュリティが確保される。
【0051】
また、本実施形態は、通信インタフェースの利用制限に関する設定がタスク2001の終了まで有効であることから、タスク2001の通信要求ごとに動的に通信インタフェースが割り当てられるプロトコルに対しても、上記の利用制限が有効に作用する。
【0052】
さらにまた、本実施形態は、従来と同様な通信手順に対する割り込みにより上記の制御手順を実行することから、タスク2001自体の改変は不要である。これは特に、通信インタフェースが動的に割り当てられるプロトコルを利用する際に、タスク2001のための通信インタフェースを固定化するようタスク2001を改変することが不要になるというメリットがある。
【0053】
次に、図1及び図2を参照して本発明の第2の実施形態について説明する。本実施形態は、通信インタフェース制限手段2012を、通信インタフェース0番1004、通信インタフェース1番1005及び通信インタフェース2番1006のドライバソフトウェアとしてコンピュータ1003に装備する。第2の実施形態において、通信インタフェース制限手段2012は、各通信インタフェース(1004〜1006)上の一部の回路への通電をON/OFFさせることにより、通信の可否を制御する。
【0054】
《具体例》
実施形態の動作について具体例を用いて詳細に説明する。本具体例は、図5に示すように、無線LAN環境が提供されるエリアであるホットスポット8002にPC8001を配置し、PC8001からホットスポット8002の公衆サーバ8006によりインターネット8003を通じて企業網8004の企業内サーバ8007に接続するという構成をとる。PC8001及び企業内サーバ8007間の通信には、ホットスポット8002やインターネット8003における情報漏えいを考慮してVPN8005を利用する。これにより、安全な通信路を確保する。
【0055】
本具体例では、PC8001が後述のアプリケーションプログラムを実行することにより、セキュリティ面で信頼できる企業内サーバ8007から企業の機密事項に属するデータを受信し、受信したデータを編集した上で企業内サーバ8007へ送信する。これにより、企業内サーバ8007上の機密データをPC8001により遠隔地にて更新する。
【0056】
図6に、図5のPC8001に対応する情報処理装置9005の主要なハードウェア構成を示す。情報処理装置9005は、CPU9001及びメモリー9002を具備するコンピュータ9003と、その周辺機器としての無線LANインタフェース9004とを備える。コンピュータ9003は、メモリー9002が保持するデータ編集用のアプリケーションプログラムをCPU9001により実行可能である。また、無線LANインタフェース9004により、ホットスポットのネットワーク9006に接続する。
【0057】
図7に、情報処理装置9005の機能構成を示す。図示の構成は、CPU9001がメモリー9002にあるオペレーティングシステム(10002、10003)及びデータ編集用アプリケーションプログラム(10001)を実行することにより実現される機能に対応する。データ編集用のアプリケーションプログラム10001は、企業内サーバ8007(図5)から受信した機密データを編集するためのプログラムである。
【0058】
本具体例のオペレーティングシステムは、UNIX系のものであるとする。UNIX系のオペレーティングシステムでは、一般に、個々のプログラムを識別するための情報としてPID(Process ID)が用いられる。以下に説明する手順では、アプリケーションプログラム10001のPIDとして「98765」なる番号が付与されているとする。
【0059】
オペレーティングシステム10002は、従来のオペレーティングシステムと同様の機能を果たすものであり、当業者にとって既知の技術で構成されている。本具体例のオペレーティングシステム10002は、前述したように、UNIX系のものであるが、これに代えて、既存の他のオペレーティングシステムであっても本発明を実施可能である。このオペレーティングシステム10002と、本発明を実施するための拡張部分である拡張オペレーティングシステム10003とにより、コンピュータ9003のオペレーティングシステムが構成される。
【0060】
TCP/IP通信機能部10004は、TCP/IP通信を実行する機能を備える。また、TCP/IP通信機能部10004は、アプリケーションプログラム10001がTCP/IPにより通信するためのインタフェースとなるシステムコール(10004a〜10004f)を備える。
【0061】
システムコールとしては、図7に示すように、通信開始時の接続発信を行うためのconnectシステムコール10004a、通信開始時の接続待受のためのlistenシステムコール10004b、通信開始時の接続受入のためのacceptシステムコール10004c、データ送信のためのsendシステムコール10004d、データ受信のためのrecvシステムコール10004e、及び、通信を終了させるためのcloseシステムコール10004fなどがある。これらのシステムコールは、本具体例のようなUNIX系のオペレーティングシステムでは一般的のものであるが、Microsoft社のWindows(登録商標)系の場合は、Winsock APIなるインタフェースが用意されている。
【0062】
システムコール10004a〜10004fには、それぞれフック10005a〜10005fが付与されている。フック10005a〜10005fは、対応するシステムコールが呼び出された際に、ルーティング機能部10014へのルーティング処理の要求に先立ち、通信制御機能部10006による後述の処理を割り込ませるよう動作する。
【0063】
また、フック10005a〜10005fは、対応するシステムコールが呼び出された際、その種類と、呼び出し時に与えられた宛先IPアドレス及びポート番号のような通信パラメータと、アプリケーションプログラム10001の識別子(PID)とを拡張オペレーティングシステム10003の通信制御機能部10006へ通知する。
【0064】
なお、本具体例のフック10005a〜10005fはオペレーティングシステム10002に標準装備されているものであるが、標準装備されていない場合は、本発明の実施のために、オペレーティングシステムに割り込み処理機能を追加する。追加の方法としては、システムコールの先頭に、割り込みにて通信制御機能部10006を呼び出す処理を追加すればよい。例えば、オペレーティングシステムがC言語で記述されている場合、C言語で記述されたシステムコールの先頭に、通信制御機能部10006の処理が記述された関数を呼び出す処理を追加する。
【0065】
拡張オペレーティングシステム10003は、図2の通信制御手段2004に対応する通信制御機能部10006と、タスク表2007に対応するPIDリスト10009と、タスク表検索手段2006に対応するPIDリスト検索機能部10007と、タスク表更新手段2011に対応するPIDリスト更新機能部10008と、ルーティングテーブル検索手段2008に対応するルーティングテーブル検索機能部10010と、通信インタフェース制限手段2012に対応するファイアウォール設定機能部10012とを備える。
【0066】
通信制御機能部10006は、次の機能を果たす。PIDリスト検索機能部10007に対しては、何れかのフック(10005a〜10005f)から得たPIDを通知し、このPIDに通信インタフェースが割り当てられているか否かを問い合わせる。PIDリスト更新機能部10008に対しては、PIDに対する通信インタフェースの割り当て又は解除を指示する。ルーティングテーブル検索機能部10010に対しては、何れかのフック(10005a〜10005f)から得た通信パラメータを通知、この通信パラメータに対応する通信インタフェースの識別子を問い合わせる。
【0067】
さらに、通信制御機能部10006は、何れかのフック(10005a〜10005f)から得た通信要求の種類と、PIDリスト検索機能部10007から得た検索結果と、ルーティングテーブル検索機能部10010から得た検索結果とに基づき、ファイアウォール10013の通信設定を決定する。そして、その決定内容および通信インタフェースの識別子をファイアウォール設定機能部10012に通知し、ファイアウォール10013に対する通信設定を行うよう要求する。
【0068】
PIDリスト10009は、PIDと、そのPIDに割り当てられた通信インタフェースとの関連を一覧にしたものであり、メモリー9002に記録される。
【0069】
PIDリスト検索機能部10007は、通信制御機能部10006から通知されたPIDをキーにしてPIDリスト10009を検索し、そのPIDがPIDリスト10009に存在するならば、対象のアプリケーションプログラム10001が何れかの通信インタフェースに割り当てられている旨を通信制御機能部10006へ返す。また、キーのPIDがPIDリスト10009に存在しない場合は、対象のアプリケーションプログラム10001に通信インタフェースが割り当てられていない旨を通信制御機能部10006に返す。
【0070】
PIDリスト更新機能部10008は、PIDに対する通信インタフェースの割り当てに関し通信制御機能部10006から通知された指示に従ってPIDリスト10009を更新する。新たな割り当てを指示された場合には、対象のPID及び通信インタフェースの組み合わせをPIDリスト10009に追加し、また、割り当ての解除を指示された場合は、対象の組み合わせをPIDリスト10009から削除する。
【0071】
ルーティングテーブル10011は、IPネットワークにおける経路の一覧である。ルーティングテーブル10011は、通信の宛先が与えられた際に、その宛先に適した経路に対応する通信インタフェースを決定する情報を含む。さらに、ルーティングテーブル10011は、通信インタフェースの動的な追加あるいは削除に応じて、図示せぬ更新部により随時更新される。
【0072】
ルーティングテーブル検索機能部10010は、通信制御機能部10006から通知された通信インタフェースをキーにしてルーティングテーブル10011を検索し、今回の通信に使用する通信インタフェースの識別子を通信制御機能部10006に応答する。ルーティングテーブル10011に対する検索処理は、UNIX系のオペレーティングシステムの場合、例えばrouteコマンドを用いることにより、ルーティングテーブル10011からテキスト形式で取り出すことができる。
【0073】
ルーティング機能部10014は、ルーティングテーブル10011を参照し、通信の宛先(IPアドレス)に応じて所定の経路を選択する。
【0074】
ファイアウォール設定機能部10012は、通信制御機能部10006から通知された通信インタフェースの割り当てに関する指示および通信インタフェースの識別子に基づいて、ファイアウォール10013の通信フィルタに設定を施す。
【0075】
無線LANインタフェース10015は、物理的な無線LANインタフェース9004に対応する論理的な通信インタフェースであり、無線LANインタフェース9004をホットスポットのネットワーク9006に接続する。本具体例では、無線LANインタフェース10015に対し「wlan0」なる通信インタフェース識別子が与えられているとする。
【0076】
VPNインタフェース10016は、物理的には無線LANインタフェース9004に対応するが、論理的には、暗号技術により仮想的に確保される通信路であるVPN8005に対応する通信インタフェースである。VPNインタフェース10016による通信は、物理的な無線LANインタフェース9004によりホットスポット8002に接続し、さらにインターネット8003を経由して企業網8004へ接続する。本具体例では、VPNインタフェース10016に対し「vpn0」なる通信インタフェース識別子が与えられているとする。
【0077】
図8及び図9に示すシーケンスを参照して、本具体例の動作手順を説明する。まず、PC8001にてデータ編集用のアプリケーションプログラム10001が起動すると、アプリケーションプログラム10001は、編集すべきデータを企業網8004の企業内サーバ8007から取得するために、TCP/IP通信機能部10004に対し、企業内サーバ8007への接続要求を行う(ステップB1)。このときTCP/IP通信機能部10004にconnect要求及び宛先IPアドレス「10.0.0.1」が通知される。
【0078】
TCP/IP通信機能部10004は、アプリケーションプログラム10001からの通信要求を受けると、connectシステムコール10004aの起動に先立ち、フック10005aによりconnect要求、宛先IPアドレス「10.0.0.1」、及び、アプリケーションプログラム10001のPID「98765」を通信制御機能部10006へ通知する(ステップB2)。
【0079】
通信制御機能部10006は、TCP/IP通信機能部10004から通知されたPID「98765」をPIDリスト検索機能部10007に通知し、PIDリスト10009の検索を要求する(ステップB3)。この時点では、アプリケーションプログラム10001による通信は未だ実施されていないことから、PID「98765」には何れの通信インタフェースも割り当てられておらず、よって、PIDリスト10009においてPID「98765」に関する記録は無い。PIDリスト検索機能部10007は、通信制御機能部10006に対し「未割当」との応答を返す(ステップB4)。
【0080】
「未割当」との応答を受けた通信制御機能部10006は、宛先IPアドレス「dest=10.0.0.1」をルーティングテーブル検索機能部10010に通知し、ルーティングテーブル10011の検索を要求する(ステップB5)。ルーティングテーブル検索機能部10010は、「dest=10.0.0.1」をキーにしてルーティングテーブル10011を検索する。ここで、ルーティングテーブル10011には、図7に示すように、セキュリティが確保されるVPN8005を利用して企業内サーバ8007と交信すべくVPNインタフェース10016を選択することが設定されているとする(「10.0.0.1:vpn0」)。ルーティングテーブル検索機能部10010は、検索結果である通信インタフェース識別子「IFID=vpn0」を通信制御機能部10006へ応答する(ステップB6)。
【0081】
通信制御機能部10006は、ルーティングテーブル検索機能部10010から検索結果を受けると、その通信インタフェース識別子「IFID=vpn0」と、アプリケーションプログラム10001の「PID=98765」とをPIDリスト更新機能部10008に通知し、PIDリスト10009の更新を要求する(ステップB7)。PIDリスト更新機能部10008は、この要求に従い、PIDリスト10009に「PID=98765」のエントリを追加する。
【0082】
次に、通信制御機能部10006は、ファイアウォール設定機能部10012に対し、「IFID=vpn0」に対応するVPNインタフェース10016による通信を許可し、且つ、他の通信インタフェースによる通信を遮断する設定をファイアウォール10013に施すよう要求する(ステップB8)。
【0083】
以上の処理を終えた通信制御機能部10006は、従来と同様にして通信を開始するようTCP/IP通信機能部10004に通知する。通知を受けたTCP/IP通信機能部10004は、フック10005aによる割り込み処理を終了させ、connectシステムコール10004aを起動し、アプリケーションプログラム10001から通知されたconnect要求と宛先「dest=10.0.0.1」とをルーティング機能部10014に通知する(ステップB9)。ルーティング機能部10014は、ルーティングテーブル10011を参照し、宛先が「dest=10.0.0.1」である通信には「IFID=vpn0」のVPNインタフェース10016を利用することを認識し、このVPNインタフェース10016に対し通信要求を行う(ステップB10)。
【0084】
そして、VPNインタフェース10016が、VPN8005により、企業網8004における宛先「dest=10.0.0.1」の企業内サーバ8007に対し接続要求を発信し通信を確立すると、アプリケーションプログラム10001は、企業内サーバ8007から企業機密に属するデータを取得する(ステップB11)。
【0085】
次に、図9のシーケンスを参照して、アプリケーションプログラム10001により編集された機密データを企業内サーバ8007へ送信する際に、図8により説明した通信制限の設定がどのように作用するのかにつき説明する。
【0086】
アプリケーションプログラム10001は、編集したデータを企業内サーバ8007へ送信すべくTCP/IP通信機能部10004に対し通信要求を行う(ステップB21)。このとき、通信の宛先としては、本来ならば企業内サーバ8007(IPアドレス:10.0.0.1)が指定されるべきところを、PC8001における操作ミスやアプリケーションプログラム10001のバグなどにより、通信の宛先として、セキュリティが保障されないホットスポット8002の公衆サーバ8006(IPアドレス:192.168.0.1)が指定されたとする。
【0087】
アプリケーションプログラム10001からのconnect要求を受けたTCP/IP通信機能部10004は、connectシステムコール10004aの起動に先立ち、フック10005aによりconnect要求と、アプリケーションプログラム10001のPID「98765」と、宛先IPアドレス「192.168.0.1」とを通信制御機能部10006へ通知する(ステップB22)。
【0088】
通信制御機能部10006は、PIDリスト検索機能部10007に対し、PIDをキーとしたPIDリスト10009の検索を要求する(ステップB23)。この時点では既に、アプリケーションプログラム10001が外部との通信を実行済み、すなわち図8の手順により過去に通信を実行したことから、PIDリスト10009には、アプリケーションプログラム10001のPIDが記録されている。よって、PIDリスト検索機能部10007は、通信制御機能部10006に対し「割当済み」との応答を返す(ステップB24)。
【0089】
「割当済み」の応答を受けた通信制御機能部10006は、ファイアウォール10013の通信設定を変更しないことを認識し、従来と同様にして通信を開始するようTCP/IP通信機能部10004に通知する。通知を受けたTCP/IP通信機能部10004は、フック10005aによる割り込み処理を終了させ、connectシステムコール10004aを起動する。そして、ルーティング機能部10014に対し、アプリケーションプログラム10001からのconnect要求と、宛先IPアドレス「dest=192.168.0.1」とを通知する(ステップB9)。
【0090】
ルーティング機能部10014は、ルーティングテーブル10011を参照し、宛先IPアドレス「dest=192.168.0.1」に関連付けられた通信インタフェース識別子が「IFID=wlan0」であると認識する。ルーティング機能部10014は、「IFID=wlan0」に対応する無線LANインタフェース10015へconnect要求を行う(ステップB26)。
【0091】
ここで、既に、ファイアウォール設定機能部10012がファイアウォール10013に対し、無線LANインタフェース10015を利用した通信を遮断するよう設定していることから、今回の通信要求は遮断される(ステップB27)。その後、通信要求の失敗の旨がルーティング機能部10014からTCP/IP通信機能部10004を経てアプリケーションプログラム10001へ通知される。
【0092】
以上説明した動作により、アプリケーションプログラム10001が機密データを企業内サーバ8007へ送信する際に、VPN8005以外の通信手段が使用されることを防止できる。これにより、ホットスポット8002における機密データの漏洩を回避することができる。
【産業上の利用可能性】
【0093】
本発明は、通信装置により取り扱うデータの漏洩防止を図る用途に好適である。通信機能を具備するパーソナルコンピュータや、高機能電話端末である所謂スマートフォン等に本発明を適用することにより、有益なセキュリティ対策を講じることができる。
【図面の簡単な説明】
【0094】
【図1】本発明による実施形態のハードウェア構成を示すブロック図である。
【図2】実施形態の情報処理装置の機能構成を示すブロック図である。
【図3】実施形態の動作手順を示すシーケンス図である。
【図4】実施形態の動作手順を説明するためのフローチャートである。
【図5】実施形態の具体例を説明するための説明図である。
【図6】具体例の情報処理装置のハードウェア構成を示すブロック図である。
【図7】具体例の情報処理装置の機能構成を示すブロック図である。
【図8】具体例の動作手順を示すシーケンス図(その1)である。
【図9】具体例の動作手順を示すシーケンス図(その2)である。
【符号の説明】
【0095】
1001 CPU
1002 メモリー
1003 コンピュータ
1004〜1006 通信インタフェース
1007 情報処理装置
1008〜1010 ネットワーク
2001 タスク
2002 通信手段
2003 割り込み手段
2004 通信制御手段
2005 タスク同定手段
2006 タスク表検索手段
2007 タスク表
2008 ルーティングテーブル検索手段
2009 ルーティングテーブル
2010 ルーティング手段
2011 タスク表更新手段
2012 通信インタフェース制限手段
2013〜2015 通信インタフェース手段

【特許請求の範囲】
【請求項1】
タスクを実行するコンピュータと、該コンピュータを複数のネットワークに接続する複数の通信インタフェース機構とを備え、
前記コンピュータは、
相互に異なるネットワークに対応し且つ対応するネットワークに対し当該通信インタフェース機構を介してデータを送受信する複数の通信インタフェース手段と、
通信の宛先と該通信に使用すべき通信インタフェース手段との関連が規定されたルーティング表からタスクによる通信要求に対応する通信インタフェース手段を選定するルーティング手段と、
タスクと該タスクによる最初の通信に使用する通信インタフェース手段との組み合わせをタスク表へ記録し、タスクの終了時に該タスクに関する記録を前記タスク表から削除するタスク表更新手段と、
前記ルーティング手段による選定が前記タスク表に対応するとき当該通信を許可し且つ対応しないとき当該通信を遮断する通信インタフェース制限手段とを有することを特徴とする情報処理装置。
【請求項2】
前記コンピュータは、
通信要求を発したタスクに関する記録が前記タスク表に存在しないとき、前記ルーティング表における前記通信要求に対応する通信インタフェース手段と前記タスクとの組み合わせを前記タスク表更新手段により前記タスク表へ記録することを特徴とする請求項1記載の情報処理装置。
【請求項3】
前記コンピュータは、
前記複数の通信インタフェース手段として、前記コンピュータを仮想的な通信路に接続するための手段を含むことを特徴とする請求項1又は2記載の情報処理装置。
【請求項4】
前記コンピュータは、
前記各通信インタフェース手段による通信の可否を当該通信インタフェース機構に対する通電制御により行うことを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
【請求項5】
タスクを実行し且つ複数のネットワークに接続するための複数の通信インタフェース機構に接続されたコンピュータを、
相互に異なるネットワークに対応し且つ対応するネットワークに対し当該通信インタフェース機構を介してデータを送受信する複数の通信インタフェース手段、
通信の宛先と該通信に使用すべき通信インタフェース手段との関連が規定されたルーティング表からタスクによる通信要求に対応する通信インタフェース手段を選定するルーティング手段、
タスクと該タスクによる最初の通信に使用した通信インタフェース手段との組み合わせをタスク表へ記録し、タスクの終了時に該タスクに関する記録を前記タスク表から削除するタスク表更新手段、および、
前記ルーティング手段による選定が前記タスク表に対応するとき当該通信を許可し且つ対応しないとき当該通信を遮断する通信インタフェース制限手段
として機能させることを特徴とする通信制御用プログラム。
【請求項6】
通信要求を発したタスクに関する記録が前記タスク表に存在しないとき、前記ルーティング表における前記通信要求に対応する通信インタフェース手段と前記タスクとの組み合わせを前記タスク表更新手段により前記タスク表へ記録することを前記コンピュータに実行させることを特徴とする請求項5記載の通信制御用プログラム。
【請求項7】
前記複数の通信インタフェース手段として、前記コンピュータを仮想的な通信路に接続するための手段を含むことを特徴とする請求項5又は6記載の通信制御用プログラム。
【請求項8】
前記各通信インタフェース手段による通信の可否を当該通信インタフェース機構に対する通電制御により行うことを前記コンピュータに実行させることを特徴とする請求項5乃至7のいずれか1項に記載の通信制御用プログラム。
【請求項9】
タスクを実行し且つ複数のネットワークに接続するための複数の通信インタフェース機構に接続されたコンピュータに、相互に異なるネットワークに対応し且つ対応するネットワークに対し当該通信インタフェース機構を介してデータを送受信する複数の通信インタフェース手段を備え、
前記コンピュータが、
タスクと該タスクによる最初の通信に使用した通信インタフェース手段との組み合わせをタスク表へ記録し、タスクの終了時に該タスクに関する記録を前記タスク表から削除するステップと、
通信の宛先と該通信に使用すべき通信インタフェース手段との関連が規定されたルーティング表からタスクによる通信要求に対応する通信インタフェース手段を選定するステップと、
前記ルーティング手段による選定が前記タスク表に対応するとき当該通信を許可し且つ対応しないとき当該通信を遮断するステップとを実行することを特徴とする通信制御方法。
【請求項10】
前記コンピュータが、
通信要求を発したタスクに関する記録が前記タスク表に存在しないとき、前記ルーティング表における前記通信要求に対応する通信インタフェース手段と前記タスクとの組み合わせを前記タスク表へ記録することを特徴とする請求項9記載の通信制御方法。
【請求項11】
前記コンピュータに備えるべき前記複数の通信インタフェース手段として、前記コンピュータを仮想的な通信路に接続するための手段を含むことを特徴とする請求項9又は10記載の通信制御方法。
【請求項12】
前記コンピュータが、
前記各通信インタフェース手段による通信の可否を当該通信インタフェース機構に対する通電制御により行うことを特徴とする請求項9乃至11のいずれか1項に記載の通信制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2007−43483(P2007−43483A)
【公開日】平成19年2月15日(2007.2.15)
【国際特許分類】
【出願番号】特願2005−225461(P2005−225461)
【出願日】平成17年8月3日(2005.8.3)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】