(57)【特許請求の範囲】
【請求項１】
タスクを実行するコンピュータと、該コンピュータを複数のネットワークに接続する複数の通信インタフェース機構とを備え、
前記コンピュータは、
相互に異なるネットワークに対応し且つ対応するネットワークに対し当該通信インタフェース機構を介してデータを送受信する複数の通信インタフェース手段と、
通信の宛先と該通信に使用すべき通信インタフェース手段との関連が規定されたルーティング表からタスクによる通信要求に対応する通信インタフェース手段を選定するルーティング手段と、
タスクと該タスクによる最初の通信に使用する通信インタフェース手段との組み合わせをタスク表へ記録し、タスクの終了時に該タスクに関する記録を前記タスク表から削除するタスク表更新手段と、
前記ルーティング手段による選定が前記タスク表に対応するとき当該通信を許可し且つ対応しないとき当該通信を遮断する通信インタフェース制限手段とを有することを特徴とする情報処理装置。
【請求項２】
前記コンピュータは、
通信要求を発したタスクに関する記録が前記タスク表に存在しないとき、前記ルーティング表における前記通信要求に対応する通信インタフェース手段と前記タスクとの組み合わせを前記タスク表更新手段により前記タスク表へ記録することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記コンピュータは、
前記複数の通信インタフェース手段として、前記コンピュータを仮想的な通信路に接続するための手段を含むことを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
前記コンピュータは、
前記各通信インタフェース手段による通信の可否を当該通信インタフェース機構に対する通電制御により行うことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
タスクを実行し且つ複数のネットワークに接続するための複数の通信インタフェース機構に接続されたコンピュータを、
相互に異なるネットワークに対応し且つ対応するネットワークに対し当該通信インタフェース機構を介してデータを送受信する複数の通信インタフェース手段、
通信の宛先と該通信に使用すべき通信インタフェース手段との関連が規定されたルーティング表からタスクによる通信要求に対応する通信インタフェース手段を選定するルーティング手段、
タスクと該タスクによる最初の通信に使用した通信インタフェース手段との組み合わせをタスク表へ記録し、タスクの終了時に該タスクに関する記録を前記タスク表から削除するタスク表更新手段、および、
前記ルーティング手段による選定が前記タスク表に対応するとき当該通信を許可し且つ対応しないとき当該通信を遮断する通信インタフェース制限手段
として機能させることを特徴とする通信制御用プログラム。
【請求項６】
通信要求を発したタスクに関する記録が前記タスク表に存在しないとき、前記ルーティング表における前記通信要求に対応する通信インタフェース手段と前記タスクとの組み合わせを前記タスク表更新手段により前記タスク表へ記録することを前記コンピュータに実行させることを特徴とする請求項５記載の通信制御用プログラム。
【請求項７】
前記複数の通信インタフェース手段として、前記コンピュータを仮想的な通信路に接続するための手段を含むことを特徴とする請求項５又は６記載の通信制御用プログラム。
【請求項８】
前記各通信インタフェース手段による通信の可否を当該通信インタフェース機構に対する通電制御により行うことを前記コンピュータに実行させることを特徴とする請求項５乃至７のいずれか１項に記載の通信制御用プログラム。
【請求項９】
タスクを実行し且つ複数のネットワークに接続するための複数の通信インタフェース機構に接続されたコンピュータに、相互に異なるネットワークに対応し且つ対応するネットワークに対し当該通信インタフェース機構を介してデータを送受信する複数の通信インタフェース手段を備え、
前記コンピュータが、
タスクと該タスクによる最初の通信に使用した通信インタフェース手段との組み合わせをタスク表へ記録し、タスクの終了時に該タスクに関する記録を前記タスク表から削除するステップと、
通信の宛先と該通信に使用すべき通信インタフェース手段との関連が規定されたルーティング表からタスクによる通信要求に対応する通信インタフェース手段を選定するステップと、
前記ルーティング手段による選定が前記タスク表に対応するとき当該通信を許可し且つ対応しないとき当該通信を遮断するステップとを実行することを特徴とする通信制御方法。
【請求項１０】
前記コンピュータが、
通信要求を発したタスクに関する記録が前記タスク表に存在しないとき、前記ルーティング表における前記通信要求に対応する通信インタフェース手段と前記タスクとの組み合わせを前記タスク表へ記録することを特徴とする請求項９記載の通信制御方法。
【請求項１１】
前記コンピュータに備えるべき前記複数の通信インタフェース手段として、前記コンピュータを仮想的な通信路に接続するための手段を含むことを特徴とする請求項９又は１０記載の通信制御方法。
【請求項１２】
前記コンピュータが、
前記各通信インタフェース手段による通信の可否を当該通信インタフェース機構に対する通電制御により行うことを特徴とする請求項９乃至１１のいずれか１項に記載の通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、通信制御方法および通信制御用プログラムに関し、特に、複数の通信インタフェースを備えた情報処理装置において情報漏洩の防止に用いる技術に関する。
【背景技術】
【０００２】
近年のインターネット・社内ネットワークなどに代表される情報ネットワークの普及に伴い、情報ネットワークに、社会のインフラストラクチャーとしての信頼性が求められている。特に、個人情報保護などのセキュリティの観点からは、情報漏洩を防止し得る通信制御技術の必要性が高まりつつある。
【０００３】
また、近年の情報ネットワークの接続方法の多様化に伴い、複数の情報ネットワークに接続するという通信形式をとる機器が増加している。従来の情報ネットワークにおいては、複数の情報ネットワークに接続する機器は交換機やルータといった中継機器に限られており、これらの機器は情報ネットワーク管理者の管理下におかれていたためセキュリティ上の問題は生じ難かった。
【０００４】
しかし、近年の情報ネットワークにおいては、エンドユーザの機器が、エンドユーザ独自の判断により複数の情報ネットワークに接続される。一例を挙げると、エンドユーザのパーソナルコンピュータが、ＬＡＮによる社内網に接続される一方で、携帯電話網のような公衆無線網を通じてインターネットに接続し、さらにはインターネット上に仮想私設網（VPN：Virtual Private Network）を構築することにより外部のＬＡＮに接続されるという状況である。
【０００５】
従来の通信制御システムの例が後述の特許文献１乃至３に記載されている。特許文献１に記載のシステムは、情報セキュリティポリシー管理・監査支援装置と、サーバやルータやファイアウォールなどの管理・監査対象計算機とが、情報ネットワークを介して接続された構成を有する。このシステムでは、情報ネットワーク管理者が選択した対象機器に対し、適用可能な情報ネットワークポリシーの集合を表示し、情報ネットワーク管理者が情報処理装置セキュリティポリシーを選択することにより、情報ネットワークのセキュリティを管理するというものである。
【０００６】
特許文献２に記載のシステムは、情報ネットワークにおいて、電子計算機Ａが、電子計算機Ｂを経由して電子計算機Ｃと通信する際、電子計算機Ａおよび電子計算機Ｂの情報ネットワーク上でのアドレスを通信接続要求に添えて送ることにより、電子計算機Ｃは、電子計算機Ａからの通信が電子計算機Ｂを経由して行われていることを知ることができる。電子計算機Ｃは、アクセス許可リストに従って通信接続の可否を決定するよう動作する。
【０００７】
特許文献３に記載のシステムは、通信パケットを、情報ネットワーク内の戦略的な点に置かれたパケットフィルタモジュールによって検査することにより、通信パケットを受け入れる（パス）か排除（ドロップ）するよう制御するというものである。
【特許文献１】特開２００２−２４７０３３号公報
【特許文献２】特開平４−２３５６５２号公報
【特許文献３】特開平８−４４６４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、前述したような複数の外部ネットワークに接続可能である機器は、タスクの実行に複数の通信インタフェースを併用して複数のネットワークを利用することが可能であるが、複数のネットワークを利用するとデータが外部に流出しやすい。よって、情報漏洩を図るための通信制御技術を導入することが求められる。
【０００９】
しかしながら、特許文献１に記載の発明は、単一の情報ネットワークを単一の管理者が管理する場合には有効であるが、エンドユーザの使用する機器が複数の情報ネットワークに接続する通信形態には有効でない可能性がある。なぜなら、情報ネットワークが異なる場合は管理者も異なるのが一般的であり、情報漏洩防止のために個々の情報セキュリティポリシーを調和させることは難しいからである。
【００１０】
特許文献２に記載の発明は、電子計算機Ｂと電子計算機Ｃとが異なる情報ネットワークに属する場合には有効でない可能性がある。なぜなら、それぞれ別個の情報ネットワークに属する両計算機に対しては、同様の情報セキュリティ管理がなされない可能性があり、そうすると両者に当発明を確実に適用することが難しいからである。
【００１１】
特許文献３に記載の発明は、特に、パケットフィルタモジュールが置かれた機器の上でアプリケーションタスクが動作している場合には、アプリケーションタスクにより通信が終端される。よって、アプリケーションタスクが複数のネットワークに接続していても、パケットフィルタモジュールがそれら複数の接続の関連性および情報漏洩の危険性を判断することは困難である。
【００１２】
この他、タスクの実行に複数の通信インタフェースを併用することに対するセキュリティ上の問題点としては、タスクが使用しようとする通信インタフェースを予見するのが困難であることが挙げられる。
【００１３】
その理由は、タスクの汎用性を高めるために、タスクに利用する通信インタフェースが、実際の通信開始時に動的に設定されるからである。また、前述のVPN技術を用いた場合、通信インタフェースが論理的に取り扱われることから、通信インタフェースの追加や削除が比較的容易である。そのため、タスクの実行中に通信インタフェースが頻繁に切り替えられることがあり、結果、通信インタフェースの予見が困難となる。
【００１４】
本発明は、上記課題に鑑みてなされたものであり、複数のネットワークに接続可能な情報処理装置によるタスクの実行に際し、通信のセキュリティを確保し得る手法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明に係る情報処理装置は、タスクを実行するコンピュータと、該コンピュータを複数のネットワークに接続する複数の通信インタフェース機構とを備え、前記コンピュータは、相互に異なるネットワークに対応し且つ対応するネットワークに対し当該通信インタフェース機構を介してデータを送受信する複数の通信インタフェース手段と、通信の宛先と該通信に使用すべき通信インタフェース手段との関連が規定されたルーティング表からタスクによる通信要求に対応する通信インタフェース手段を選定するルーティング手段と、タスクと該タスクによる最初の通信に使用する通信インタフェース手段との組み合わせをタスク表へ記録し、タスクの終了時に該タスクに関する記録を前記タスク表から削除するタスク表更新手段と、前記ルーティング手段による選定が前記タスク表に対応するとき当該通信を許可し且つ対応しないとき当該通信を遮断する通信インタフェース制限手段とを有する。
【００１６】
かかる本発明の基本構想は、タスクの実行に利用する通信インタフェースとして、このタスクが最初に利用した通信インタフェースのみを有効とするよう制御することにある。よって、同タスクによる２回目以降の通信要求の際に、最初の通信のものとは別の通信インタフェースにより通信を試みても、その通信は遮断される。
【発明の効果】
【００１７】
本発明によれば、１つのタスクが複数の通信インタフェースを併用することを禁止することができる。これにより、タスクが利用する通信インタフェースが固定化されることから、機密データの漏洩など、通信のセキュリティ上の問題を生じ難くすることができる。また、通信インタフェースの利用制限に関する設定がタスクの終了まで有効であることから、同一タスクの通信要求ごとに動的に通信インタフェースが割り当てられるプロトコルに対しても、上記の利用制限が有効に作用する。
【発明を実施するための最良の形態】
【００１８】
本発明を実施するための最良の形態について図面を参照して詳細に説明する。図１を参照すると、本発明の第１の実施の形態は、演算処理を行うＣＰＵ1001及び記憶装置として機能するメモリー1002を具備するコンピュータ1003と、コンピュータ1003の周辺装置である複数の通信インタフェース（1004〜1006）とを備える情報処理装置1007である。図示の例では、通信インタフェースとして、通信インタフェース０番1004、通信インタフェース１番1005、及び、通信インタフェース２番1006の３つが設けられている。
【００１９】
上記通信インタフェース（1004〜1006）は、コンピュータ1003を所定の通信形態によりネットワーク（1008〜1010）に接続する機構であり、具体的には、Ethernet（登録商標）のような有線ＬＡＮの通信インタフェースカード、及び、無線ＬＡＮの通信インタフェースカード等から構成される。
【００２０】
図２に、情報処理装置1007がオペレーティングシステム及びミドルウェア等のソフトウェアを実行することにより実現される機能ブロックを示す。タスク2001は、何らかの処理に対応する単位プログラムである。タスク2001がその処理の途中で必要とする通信を制限するために以下の手段が設けられている。
【００２１】
通信手段2002は、タスク2001が通信を行う際に利用する手段であり、コンピュータ1003上で動作するソフトウェアにより構成される。タスク2001が通信手段2002を利用する際、典型的には、オペレーティングシステムに用意されたＡＰＩやシステムコール等の関数を通信要求の種類に応じて呼び出す。通信要求の種類としては、通信の開始（接続発信、接続待受、接続受入）、送信、受信、及び、通信終了がある。通信手段2002は、タスクからの通信要求に応じて通信データを送受信する。
【００２２】
割り込み手段2003は、通信手段2002によるタスク2001の処理前に別の処理を割り込ませる手段であり、例えばフックコマンドのような、コンピュータ1003上で動作するソフトウェアにより構成される。本実施形態の割り込み手段2003は、コンピュータ1003のメモリー1002上に割り当てられた通信制御手段2004のアドレスへ、ＣＰＵ1001の実行点をジャンプさせることで割り込みを行う。ジャンプ先である通信制御手段2004のアドレスは、メモリー1002上に関数テーブルとして保持され、オペレーティングシステムの起動時などに登録される。
【００２３】
通信制御手段2004は、タスクの通信を制御する手段であり、コンピュータ1003上で動作するソフトウェアにより構成される。通信制御手段2004は、タスク同定手段2005、タスク表検索手段2006、ルーティングテーブル検索手段2008、タスク表更新手段2011および通信インタフェース制限手段2012を利用してタスクの通信を制御する。その動作の詳細については後述する。
【００２４】
タスク同定手段2005は、タスク識別子を取得する手段であり、コンピュータ1003上で動作するソフトウェアにより構成される。タスク識別子としては、典型的には、オペレーティングシステムが管理するプロセスＩＤを用いる。オペレーティングシステムは、最新の通信要求に対応するプロセスＩＤを現在動作中のタスクのプロセスＩＤとして管理する。タスク同定手段2005は、この現在動作中のタスクのプロセスＩＤを取得する。
【００２５】
オペレーティングシステムがタスクにタスク識別子を付与して管理するのは、マルチタスクをサポートするオペレーティングシステムに典型的な動作である。シングルタスクのオペレーティングシステムの場合、タスク同定手段2005は、常に同じタスク識別子を取得するように構成される。
【００２６】
タスク表2007は、タスクと、このタスクによる最初の通信に使用したネットワークとの関連を記録したものであり、具体的には、タスク識別子と通信インタフェースの識別子との組み合わせが記録される。マルチタスクによる通信の際には、対応する複数のタスク識別子が記録される。このタスク表2007に記録されたタスクは、通信インタフェースの割り当てが済んでいるものと見なされる。タスク表2007は、典型的にはコンピュータ1003のメモリー1002上に保持されるが、フラッシュメモリーカードのような着脱可能な外部記憶媒体上に保持してもよい。
【００２７】
タスク表検索手段2006は、タスク識別子をキーにして、前述のタスク表2007を検索する手段であり、コンピュータ1003上で動作するソフトウェアとして構成される。キーとなるタスク識別子がタスク表2007に登録されていれば、割り当てありとの応答を返し、登録されていない場合は未割当との応答を返す。
【００２８】
ルーティングテーブル検索手段2008は、通信の宛先をキーにして、後述のルーティングテーブル2009を検索する手段であり、コンピュータ1003上で動作するソフトウェアにより構成される。通信の宛先アドレスは、通信プロトコルによって異なるが、例えばＩＰ通信であれば、宛先のＩＰアドレスとなる。具体的な通信インタフェース識別子は、オペレーティングシステムや、通信インタフェースが扱う通信プロトコルによって異なるため、実例を挙げて説明する。
【００２９】
例えば、UNIX（登録商標、以下略）系のオペレーティングシステムであるLinux上でＩＰ通信を扱う通信インタフェースの識別子として、Ethernet（登録商標）のような有線ＬＡＮでは「eth0」や「eth1」などがあり、無線ＬＡＮでは「wlan0」や「wlan1」などがある。また、Microsoft社製のオペレーティングシステムであるWindows（登録商標）の場合は、通信インタフェースの識別子として「ローカルエリア接続１」や「ワイヤレスネットワーク接続２」などが該当する。
【００３０】
ルーティングテーブル2009は、通信の宛先と、その通信に利用する通信インタフェースとの組み合わせの一覧表である。このルーティングテーブル2009は、典型的にはメモリー1002上に保持されるが、フラッシュメモリカードのような外部記憶媒体に保持してもよい。
【００３１】
タスク表更新手段2011は、タスク表2007に対するタスク識別子の登録及び削除を実行する手段であり、コンピュータ1003上で動作するソフトウェアにより構成される。
【００３２】
通信インタフェース制限手段2012は、各通信インタフェースの通信制限を制御する手段であり、通信インタフェースごとに通信データの通過または遮断を選択して通信インタフェースに指示する。通信インタフェースの指定には、その識別子を用いる。
【００３３】
本実施形態において通信インタフェース制限手段2012は、通信フィルタとして構成される。通信フィルタは、通信の宛先及び送信元などの情報をもとに通信データの通過または遮断を判定するものであり、いわゆるファイアウォールと呼ばれることもある。なお、上記機能は、多くの既存の通信フィルタが備えるものであり、当業者にとって既知の技術である。通信フィルタは、コンピュータ1003上で動作する通信プロトコルスタックとしてのソフトウェアにより構成される。
【００３４】
なお、VPN技術に代表される通信インタフェースの仮想化技術により、一つの通信インタフェースハードウェアに対し、ソフトウェアによる複数の通信インタフェース手段を構成することができるため、通信インタフェースのハードウェアおよびソフトウェアは数量が一致しない場合がある。
【００３５】
図３のシーケンスおよび図４のフローチャートを参照して、本実施形態の全体的な動作について説明する。なお、以下の手順では、図２に示す構成要素の割り込み手段2003をフック手段2003Aとして説明する。
【００３６】
まず、タスク2001が外部機器との通信を必要とする際、通信手段2002に通信要求を行う（図３：ステップＡ１）。この通信要求では、要求の種類および通信パラメータの２種類のデータを通信制御手段2004に通知する。通信パラメータの内容は、通信要求の種類によって異なり、例えば、通信開始時の接続発信であれば通信パラメータは宛先であり、通信開始時の接続待受の場合は保留中の接続のキューの最大長が通信パラメータとなる。また、通信要求の種類が通信開始時の接続受入または通信の終了の場合、通信パラメータとしてのデータは存在しない。さらに、通信要求が送信であれば通信パラメータは送信データであり、受信であれば受信データの格納先が通信パラメータとなる。
【００３７】
通信手段3002がタスク2001からの通信要求を受けると、ルーティング手段3007に対しルーティングを要求するに先立ち、フック手段2003Aが以下の処理を割り込ませる（図４：ステップＳ１）。
【００３８】
フック手段2003Aは、タスク2001から得た通信要求及び通信パラメータと、タスク識別子とを通信制御手段2004に通知する（図３：ステップＡ２）。このときフック手段2003Aは、通信制御手段2004へ通知すべきタスク識別子をタスク同定手段2005から取得する。
【００３９】
また、通信制御手段2004へ通知すべき通信パラメータとしては、基本的にはタスク2001からのデータを用いるが、通信要求が通信開始時の接続受入である場合、それがＩＰ通信であれば発信元ＩＰアドレスを追加する。これは、タスク2001が接続受入を発行する時点では、通信相手に対し通信手段3002によりＩＰアドレスを自動的に割り当てるのが典型的な動作であることによる。
【００４０】
通信制御手段2004は、フック手段2003Aから得たタスク識別子をタスク表検索手段2006へ通知し、タスク表2007の検索を要求する（図３：ステップＡ３）。タスク表検索手段2006は、通知されたタスク識別子をもとにタスク表2007を検索し（図４：ステップＳ２）、このタスク識別子に通信インタフェースが割り当てられているか否かを判定する。
【００４１】
このとき、今回の通信が、通信確立後のデータ送信または受信のように、タスク2001による２回目以降の通信である場合は、タスク識別子と通信インタフェースとの組み合わせが既にタスク表2007に記録されていることから、割り当て済みと判定される（ステップＳ３：YES）。タスク表検索手段2006は、タスク識別子に割り当てられている通信インタフェースの識別子を通信制御手段2004へ通知する（図３：ステップＡ４）。
【００４２】
通信制御手段2004は、この時点で割り込み処理を終了させ、通信インタフェースの制限を現状のものから変更することなく、従来と同様の手順にて通信を行うよう通信手段2002に指示する。すなわち、通信手段2002が、通信インタフェース識別子および通信データ等をルーティング手段2010に通知し（ステップＡ９）、ルーティング手段2010が、通知された識別子に対応する通信インタフェース手段（2013〜2015）にデータを渡すことにより通信を行う（ステップＡ１０）。
【００４３】
一方、今回の通信が、通信開始時のようにタスク2001による最初の通信である場合、タスク識別子には未だ通信インタフェースが割り当てられていない（図４：ステップＳ３：NO）。その場合、通信要求の種類に応じて以下の処理を行う。
【００４４】
通信要求が通信開始時の接続発信または接続受入の場合（ステップＳ４：発信・受入）、通信制御手段2004は、通信の宛先（接続発信）または発信元アドレス（接続受入）をルーティングテーブル検索手段2008に通知し、ルーティングテーブル2009の検索を要求する（図３：ステップＡ５、図４：ステップＳ５）。ルーティングテーブル検索手段2008は、通信に使う通信インタフェースの識別子をルーティングテーブル2009から検索し、検索結果となる識別子を通信制御手段2004へ通知する（ステップＡ６）。
【００４５】
通信制御手段2004は、ルーティングテーブル検索手段2008から得た通信インタフェースの識別子と、タスク識別子とをタスク表更新手段2011に通知し、タスク表2007の更新を要求する。タスク表更新手段2011は、通信制御手段2004から得たタスク識別子および通信インタフェース識別子の組み合わせをタスク表2007に追加することにより更新を行う（図３：ステップＡ７、図４：ステップＳ６）。
【００４６】
さらに、通信制御手段2004は、通信に使う通信インタフェースの識別子を通信インタフェース制限手段2012に通知し、通信の制限を要求する（ステップＡ８）。通信インタフェース制限手段2012は、通信制御手段2004から得た識別子の通信インタフェース（1004〜1006）のみに通信許可を与えるよう設定を行う（図４：ステップＳ７）。
【００４７】
通信制限の設定が更新されると、通信制御手段2004は、割り込み処理を完了させ、従来と同様の手順にて通信を行う。これにより、今回のタスク2001にて指定された通信インタフェースによる通信のみが許可され、他の通信インタフェースによる通信は遮断される。
【００４８】
また、タスク2001の通信要求が通信開始時の接続待受である場合（ステップＳ５：待受）、通信制御手段2004は、ルーティングテーブル2009の検索に関する処理（図３：ステップＡ５、Ａ６）、及び、タスク表2007の更新に関する処理（ステップＡ７）を行わず、現時点で通信インタフェースに対し設定されている制限を全て解除するよう通信インタフェース制限手段2012に要求する（図３：ステップＡ８、図４：ステップＳ８）。
【００４９】
以上説明したような制御を行った後、タスク2001が完了するとき、コンピュータ1003が具備するタスク監視機能（図示略）により、タスク表更新手段2011にタスク識別子が通知され、タスク表更新手段2011が、このタスク識別子に関する情報をタスク表2007から消去する。
【００５０】
このように本実施形態では、タスク2001の実行に利用する通信インタフェースとして、タスク2001が最初に利用した通信インタフェースのみを有効とするよう制御することから、タスク2001が２回目以降の通信に別の通信インタフェースの使用を試みても、その通信は遮断される。これにより、１つのタスク2001が複数の通信インタフェースを併用することを禁止することができ、結果、通信のセキュリティが確保される。
【００５１】
また、本実施形態は、通信インタフェースの利用制限に関する設定がタスク2001の終了まで有効であることから、タスク2001の通信要求ごとに動的に通信インタフェースが割り当てられるプロトコルに対しても、上記の利用制限が有効に作用する。
【００５２】
さらにまた、本実施形態は、従来と同様な通信手順に対する割り込みにより上記の制御手順を実行することから、タスク2001自体の改変は不要である。これは特に、通信インタフェースが動的に割り当てられるプロトコルを利用する際に、タスク2001のための通信インタフェースを固定化するようタスク2001を改変することが不要になるというメリットがある。
【００５３】
次に、図１及び図２を参照して本発明の第２の実施形態について説明する。本実施形態は、通信インタフェース制限手段2012を、通信インタフェース０番1004、通信インタフェース１番1005及び通信インタフェース２番1006のドライバソフトウェアとしてコンピュータ1003に装備する。第２の実施形態において、通信インタフェース制限手段2012は、各通信インタフェース（1004〜1006）上の一部の回路への通電をON／OFFさせることにより、通信の可否を制御する。
【００５４】
《具体例》
実施形態の動作について具体例を用いて詳細に説明する。本具体例は、図５に示すように、無線ＬＡＮ環境が提供されるエリアであるホットスポット8002にＰＣ8001を配置し、ＰＣ8001からホットスポット8002の公衆サーバ8006によりインターネット8003を通じて企業網8004の企業内サーバ8007に接続するという構成をとる。ＰＣ8001及び企業内サーバ8007間の通信には、ホットスポット8002やインターネット8003における情報漏えいを考慮してＶＰＮ8005を利用する。これにより、安全な通信路を確保する。
【００５５】
本具体例では、ＰＣ8001が後述のアプリケーションプログラムを実行することにより、セキュリティ面で信頼できる企業内サーバ8007から企業の機密事項に属するデータを受信し、受信したデータを編集した上で企業内サーバ8007へ送信する。これにより、企業内サーバ8007上の機密データをＰＣ8001により遠隔地にて更新する。
【００５６】
図６に、図５のＰＣ8001に対応する情報処理装置9005の主要なハードウェア構成を示す。情報処理装置9005は、ＣＰＵ9001及びメモリー9002を具備するコンピュータ9003と、その周辺機器としての無線ＬＡＮインタフェース9004とを備える。コンピュータ9003は、メモリー9002が保持するデータ編集用のアプリケーションプログラムをＣＰＵ9001により実行可能である。また、無線ＬＡＮインタフェース9004により、ホットスポットのネットワーク9006に接続する。
【００５７】
図７に、情報処理装置9005の機能構成を示す。図示の構成は、ＣＰＵ9001がメモリー9002にあるオペレーティングシステム（10002、10003）及びデータ編集用アプリケーションプログラム（10001）を実行することにより実現される機能に対応する。データ編集用のアプリケーションプログラム10001は、企業内サーバ8007（図５）から受信した機密データを編集するためのプログラムである。
【００５８】
本具体例のオペレーティングシステムは、UNIX系のものであるとする。UNIX系のオペレーティングシステムでは、一般に、個々のプログラムを識別するための情報としてＰＩＤ（Process ID）が用いられる。以下に説明する手順では、アプリケーションプログラム10001のＰＩＤとして「98765」なる番号が付与されているとする。
【００５９】
オペレーティングシステム10002は、従来のオペレーティングシステムと同様の機能を果たすものであり、当業者にとって既知の技術で構成されている。本具体例のオペレーティングシステム10002は、前述したように、UNIX系のものであるが、これに代えて、既存の他のオペレーティングシステムであっても本発明を実施可能である。このオペレーティングシステム10002と、本発明を実施するための拡張部分である拡張オペレーティングシステム10003とにより、コンピュータ9003のオペレーティングシステムが構成される。
【００６０】
TCP/IP通信機能部10004は、TCP/IP通信を実行する機能を備える。また、TCP/IP通信機能部10004は、アプリケーションプログラム10001がTCP/IPにより通信するためのインタフェースとなるシステムコール（10004a〜10004f）を備える。
【００６１】
システムコールとしては、図７に示すように、通信開始時の接続発信を行うためのconnectシステムコール10004a、通信開始時の接続待受のためのlistenシステムコール10004b、通信開始時の接続受入のためのacceptシステムコール10004c、データ送信のためのsendシステムコール10004d、データ受信のためのrecvシステムコール10004e、及び、通信を終了させるためのcloseシステムコール10004fなどがある。これらのシステムコールは、本具体例のようなUNIX系のオペレーティングシステムでは一般的のものであるが、Microsoft社のWindows（登録商標）系の場合は、Winsock APIなるインタフェースが用意されている。
【００６２】
システムコール10004a〜10004fには、それぞれフック10005a〜10005fが付与されている。フック10005a〜10005fは、対応するシステムコールが呼び出された際に、ルーティング機能部10014へのルーティング処理の要求に先立ち、通信制御機能部10006による後述の処理を割り込ませるよう動作する。
【００６３】
また、フック10005a〜10005fは、対応するシステムコールが呼び出された際、その種類と、呼び出し時に与えられた宛先ＩＰアドレス及びポート番号のような通信パラメータと、アプリケーションプログラム10001の識別子（ＰＩＤ）とを拡張オペレーティングシステム10003の通信制御機能部10006へ通知する。
【００６４】
なお、本具体例のフック10005a〜10005fはオペレーティングシステム10002に標準装備されているものであるが、標準装備されていない場合は、本発明の実施のために、オペレーティングシステムに割り込み処理機能を追加する。追加の方法としては、システムコールの先頭に、割り込みにて通信制御機能部10006を呼び出す処理を追加すればよい。例えば、オペレーティングシステムがＣ言語で記述されている場合、Ｃ言語で記述されたシステムコールの先頭に、通信制御機能部10006の処理が記述された関数を呼び出す処理を追加する。
【００６５】
拡張オペレーティングシステム10003は、図２の通信制御手段2004に対応する通信制御機能部10006と、タスク表2007に対応するＰＩＤリスト10009と、タスク表検索手段2006に対応するＰＩＤリスト検索機能部10007と、タスク表更新手段2011に対応するＰＩＤリスト更新機能部10008と、ルーティングテーブル検索手段2008に対応するルーティングテーブル検索機能部10010と、通信インタフェース制限手段2012に対応するファイアウォール設定機能部10012とを備える。
【００６６】
通信制御機能部10006は、次の機能を果たす。ＰＩＤリスト検索機能部10007に対しては、何れかのフック（10005a〜10005f）から得たＰＩＤを通知し、このＰＩＤに通信インタフェースが割り当てられているか否かを問い合わせる。ＰＩＤリスト更新機能部10008に対しては、ＰＩＤに対する通信インタフェースの割り当て又は解除を指示する。ルーティングテーブル検索機能部10010に対しては、何れかのフック（10005a〜10005f）から得た通信パラメータを通知、この通信パラメータに対応する通信インタフェースの識別子を問い合わせる。
【００６７】
さらに、通信制御機能部10006は、何れかのフック（10005a〜10005f）から得た通信要求の種類と、ＰＩＤリスト検索機能部10007から得た検索結果と、ルーティングテーブル検索機能部10010から得た検索結果とに基づき、ファイアウォール10013の通信設定を決定する。そして、その決定内容および通信インタフェースの識別子をファイアウォール設定機能部10012に通知し、ファイアウォール10013に対する通信設定を行うよう要求する。
【００６８】
ＰＩＤリスト10009は、ＰＩＤと、そのＰＩＤに割り当てられた通信インタフェースとの関連を一覧にしたものであり、メモリー9002に記録される。
【００６９】
ＰＩＤリスト検索機能部10007は、通信制御機能部10006から通知されたＰＩＤをキーにしてＰＩＤリスト10009を検索し、そのＰＩＤがＰＩＤリスト10009に存在するならば、対象のアプリケーションプログラム10001が何れかの通信インタフェースに割り当てられている旨を通信制御機能部10006へ返す。また、キーのＰＩＤがＰＩＤリスト10009に存在しない場合は、対象のアプリケーションプログラム10001に通信インタフェースが割り当てられていない旨を通信制御機能部10006に返す。
【００７０】
ＰＩＤリスト更新機能部10008は、ＰＩＤに対する通信インタフェースの割り当てに関し通信制御機能部10006から通知された指示に従ってＰＩＤリスト10009を更新する。新たな割り当てを指示された場合には、対象のＰＩＤ及び通信インタフェースの組み合わせをＰＩＤリスト10009に追加し、また、割り当ての解除を指示された場合は、対象の組み合わせをＰＩＤリスト10009から削除する。
【００７１】
ルーティングテーブル10011は、ＩＰネットワークにおける経路の一覧である。ルーティングテーブル10011は、通信の宛先が与えられた際に、その宛先に適した経路に対応する通信インタフェースを決定する情報を含む。さらに、ルーティングテーブル10011は、通信インタフェースの動的な追加あるいは削除に応じて、図示せぬ更新部により随時更新される。
【００７２】
ルーティングテーブル検索機能部10010は、通信制御機能部10006から通知された通信インタフェースをキーにしてルーティングテーブル10011を検索し、今回の通信に使用する通信インタフェースの識別子を通信制御機能部10006に応答する。ルーティングテーブル10011に対する検索処理は、UNIX系のオペレーティングシステムの場合、例えばrouteコマンドを用いることにより、ルーティングテーブル10011からテキスト形式で取り出すことができる。
【００７３】
ルーティング機能部10014は、ルーティングテーブル10011を参照し、通信の宛先（ＩＰアドレス）に応じて所定の経路を選択する。
【００７４】
ファイアウォール設定機能部10012は、通信制御機能部10006から通知された通信インタフェースの割り当てに関する指示および通信インタフェースの識別子に基づいて、ファイアウォール10013の通信フィルタに設定を施す。
【００７５】
無線ＬＡＮインタフェース10015は、物理的な無線ＬＡＮインタフェース9004に対応する論理的な通信インタフェースであり、無線ＬＡＮインタフェース9004をホットスポットのネットワーク9006に接続する。本具体例では、無線ＬＡＮインタフェース10015に対し「wlan0」なる通信インタフェース識別子が与えられているとする。
【００７６】
ＶＰＮインタフェース10016は、物理的には無線ＬＡＮインタフェース9004に対応するが、論理的には、暗号技術により仮想的に確保される通信路であるＶＰＮ8005に対応する通信インタフェースである。ＶＰＮインタフェース10016による通信は、物理的な無線ＬＡＮインタフェース9004によりホットスポット8002に接続し、さらにインターネット8003を経由して企業網8004へ接続する。本具体例では、ＶＰＮインタフェース10016に対し「vpn0」なる通信インタフェース識別子が与えられているとする。
【００７７】
図８及び図９に示すシーケンスを参照して、本具体例の動作手順を説明する。まず、ＰＣ8001にてデータ編集用のアプリケーションプログラム10001が起動すると、アプリケーションプログラム10001は、編集すべきデータを企業網8004の企業内サーバ8007から取得するために、TCP/IP通信機能部10004に対し、企業内サーバ8007への接続要求を行う（ステップＢ１）。このときTCP/IP通信機能部10004にconnect要求及び宛先ＩＰアドレス「10.0.0.1」が通知される。
【００７８】
TCP/IP通信機能部10004は、アプリケーションプログラム10001からの通信要求を受けると、connectシステムコール10004aの起動に先立ち、フック10005aによりconnect要求、宛先ＩＰアドレス「10.0.0.1」、及び、アプリケーションプログラム10001のＰＩＤ「98765」を通信制御機能部10006へ通知する（ステップＢ２）。
【００７９】
通信制御機能部10006は、TCP/IP通信機能部10004から通知されたＰＩＤ「98765」をＰＩＤリスト検索機能部10007に通知し、ＰＩＤリスト10009の検索を要求する（ステップＢ３）。この時点では、アプリケーションプログラム10001による通信は未だ実施されていないことから、ＰＩＤ「98765」には何れの通信インタフェースも割り当てられておらず、よって、ＰＩＤリスト10009においてＰＩＤ「98765」に関する記録は無い。ＰＩＤリスト検索機能部10007は、通信制御機能部10006に対し「未割当」との応答を返す（ステップＢ４）。
【００８０】
「未割当」との応答を受けた通信制御機能部10006は、宛先ＩＰアドレス「dest＝10.0.0.1」をルーティングテーブル検索機能部10010に通知し、ルーティングテーブル10011の検索を要求する（ステップＢ５）。ルーティングテーブル検索機能部10010は、「dest＝10.0.0.1」をキーにしてルーティングテーブル10011を検索する。ここで、ルーティングテーブル10011には、図７に示すように、セキュリティが確保されるＶＰＮ8005を利用して企業内サーバ8007と交信すべくＶＰＮインタフェース10016を選択することが設定されているとする（「10.0.0.1：vpn0」）。ルーティングテーブル検索機能部10010は、検索結果である通信インタフェース識別子「IFID＝vpn0」を通信制御機能部10006へ応答する（ステップＢ６）。
【００８１】
通信制御機能部10006は、ルーティングテーブル検索機能部10010から検索結果を受けると、その通信インタフェース識別子「IFID＝vpn0」と、アプリケーションプログラム10001の「PID＝98765」とをＰＩＤリスト更新機能部10008に通知し、ＰＩＤリスト10009の更新を要求する（ステップＢ７）。ＰＩＤリスト更新機能部10008は、この要求に従い、ＰＩＤリスト10009に「PID＝98765」のエントリを追加する。
【００８２】
次に、通信制御機能部10006は、ファイアウォール設定機能部10012に対し、「IFID＝vpn0」に対応するＶＰＮインタフェース10016による通信を許可し、且つ、他の通信インタフェースによる通信を遮断する設定をファイアウォール10013に施すよう要求する（ステップＢ８）。
【００８３】
以上の処理を終えた通信制御機能部10006は、従来と同様にして通信を開始するようTCP/IP通信機能部10004に通知する。通知を受けたTCP/IP通信機能部10004は、フック10005aによる割り込み処理を終了させ、connectシステムコール10004aを起動し、アプリケーションプログラム10001から通知されたconnect要求と宛先「dest＝10.0.0.1」とをルーティング機能部10014に通知する（ステップＢ９）。ルーティング機能部10014は、ルーティングテーブル10011を参照し、宛先が「dest＝10.0.0.1」である通信には「IFID＝vpn0」のＶＰＮインタフェース10016を利用することを認識し、このＶＰＮインタフェース10016に対し通信要求を行う（ステップＢ１０）。
【００８４】
そして、ＶＰＮインタフェース10016が、ＶＰＮ8005により、企業網8004における宛先「dest＝10.0.0.1」の企業内サーバ8007に対し接続要求を発信し通信を確立すると、アプリケーションプログラム10001は、企業内サーバ8007から企業機密に属するデータを取得する（ステップＢ１１）。
【００８５】
次に、図９のシーケンスを参照して、アプリケーションプログラム10001により編集された機密データを企業内サーバ8007へ送信する際に、図８により説明した通信制限の設定がどのように作用するのかにつき説明する。
【００８６】
アプリケーションプログラム10001は、編集したデータを企業内サーバ8007へ送信すべくTCP/IP通信機能部10004に対し通信要求を行う（ステップＢ２１）。このとき、通信の宛先としては、本来ならば企業内サーバ8007（ＩＰアドレス：10.0.0.1）が指定されるべきところを、ＰＣ8001における操作ミスやアプリケーションプログラム10001のバグなどにより、通信の宛先として、セキュリティが保障されないホットスポット8002の公衆サーバ8006（ＩＰアドレス：192.168.0.1）が指定されたとする。
【００８７】
アプリケーションプログラム10001からのconnect要求を受けたTCP/IP通信機能部10004は、connectシステムコール10004aの起動に先立ち、フック10005aによりconnect要求と、アプリケーションプログラム10001のＰＩＤ「98765」と、宛先ＩＰアドレス「192.168.0.1」とを通信制御機能部10006へ通知する（ステップＢ２２）。
【００８８】
通信制御機能部10006は、ＰＩＤリスト検索機能部10007に対し、ＰＩＤをキーとしたＰＩＤリスト10009の検索を要求する（ステップＢ２３）。この時点では既に、アプリケーションプログラム10001が外部との通信を実行済み、すなわち図８の手順により過去に通信を実行したことから、ＰＩＤリスト10009には、アプリケーションプログラム10001のＰＩＤが記録されている。よって、ＰＩＤリスト検索機能部10007は、通信制御機能部10006に対し「割当済み」との応答を返す（ステップＢ２４）。
【００８９】
「割当済み」の応答を受けた通信制御機能部10006は、ファイアウォール10013の通信設定を変更しないことを認識し、従来と同様にして通信を開始するようTCP/IP通信機能部10004に通知する。通知を受けたTCP/IP通信機能部10004は、フック10005aによる割り込み処理を終了させ、connectシステムコール10004aを起動する。そして、ルーティング機能部10014に対し、アプリケーションプログラム10001からのconnect要求と、宛先ＩＰアドレス「dest＝192.168.0.1」とを通知する（ステップＢ９）。
【００９０】
ルーティング機能部10014は、ルーティングテーブル10011を参照し、宛先ＩＰアドレス「dest＝192.168.0.1」に関連付けられた通信インタフェース識別子が「IFID＝wlan0」であると認識する。ルーティング機能部10014は、「IFID＝wlan0」に対応する無線ＬＡＮインタフェース10015へconnect要求を行う（ステップＢ２６）。
【００９１】
ここで、既に、ファイアウォール設定機能部10012がファイアウォール10013に対し、無線ＬＡＮインタフェース10015を利用した通信を遮断するよう設定していることから、今回の通信要求は遮断される（ステップＢ２７）。その後、通信要求の失敗の旨がルーティング機能部10014からTCP/IP通信機能部10004を経てアプリケーションプログラム10001へ通知される。
【００９２】
以上説明した動作により、アプリケーションプログラム10001が機密データを企業内サーバ8007へ送信する際に、ＶＰＮ8005以外の通信手段が使用されることを防止できる。これにより、ホットスポット8002における機密データの漏洩を回避することができる。
【産業上の利用可能性】
【００９３】
本発明は、通信装置により取り扱うデータの漏洩防止を図る用途に好適である。通信機能を具備するパーソナルコンピュータや、高機能電話端末である所謂スマートフォン等に本発明を適用することにより、有益なセキュリティ対策を講じることができる。
【図面の簡単な説明】
【００９４】
【図１】本発明による実施形態のハードウェア構成を示すブロック図である。
【図２】実施形態の情報処理装置の機能構成を示すブロック図である。
【図３】実施形態の動作手順を示すシーケンス図である。
【図４】実施形態の動作手順を説明するためのフローチャートである。
【図５】実施形態の具体例を説明するための説明図である。
【図６】具体例の情報処理装置のハードウェア構成を示すブロック図である。
【図７】具体例の情報処理装置の機能構成を示すブロック図である。
【図８】具体例の動作手順を示すシーケンス図（その１）である。
【図９】具体例の動作手順を示すシーケンス図（その２）である。
【符号の説明】
【００９５】
１００１  ＣＰＵ
１００２  メモリー
１００３  コンピュータ
１００４〜１００６  通信インタフェース
１００７  情報処理装置
１００８〜１０１０  ネットワーク
２００１  タスク
２００２  通信手段
２００３  割り込み手段
２００４  通信制御手段
２００５  タスク同定手段
２００６  タスク表検索手段
２００７  タスク表
２００８  ルーティングテーブル検索手段
２００９  ルーティングテーブル
２０１０  ルーティング手段
２０１１  タスク表更新手段
２０１２  通信インタフェース制限手段
２０１３〜２０１５  通信インタフェース手段
【図１】
0004507104.tif 000002
【図２】
0004507104.tif 000003
【図３】
0004507104.tif 000004
【図４】
0004507104.tif 000005
【図５】
0004507104.tif 000006
【図６】
0004507104.tif 000007
【図７】
0004507104.tif 000008
【図８】
0004507104.tif 000009
【図９】
0004507104.tif 000010