特許法第30条第2項適用 〔ウェブサイトの掲載日〕平成30年12月7日 〔ウェブサイトのアドレス〕https://vpp.itunes.apple.com/jp/app/isgc-assist/id1444988433 〔ウェブサイトの掲載日〕平成31年4月15日 〔ウェブサイトのアドレス〕https://itunes.apple.com/jp/app/isgc-assist/id1444988433
以下、本発明の実施形態について、図面を参照しながら説明する。なお、以下の実施形態は好ましい例示であり、本発明はこの例示に限定されるものではない。
図1は、通信制御プログラム100が動作する環境の構成図である。
通信制御プログラム100は、デバイス10の内部で発生した通信要求の宛先を制御するプログラムであり、デバイス10にインストールされている。デバイス10は、例えば、スマートフォンやタブレット型端末、利用可能な機能がウェブブラウザ等のアプリケーションに限定されたノート型PC等のモバイルデバイスであり、インターネット20を介した通信が可能である。インターネット20には、デバイス10が通信しようとする通信要求先のウェブサーバ(以下、「目的サーバDS」と称する。)が存在する。また、インターネット20にはその他に、フィルタリングサーバ30、通信規制用サーバ40、設定管理サーバ50が配置されている。
フィルタリングサーバ30は、デバイス10から送出された通信要求の宛先に関する判定を行い(以下、この動作を「フィルタリング」と称する。)、判定結果に基づいて通信要求を目的サーバDS又は通信規制用サーバ40のいずれかに転送する。具体的には、通信許可の判定がなされた場合には、通信要求は目的サーバDSに転送され、その結果デバイス10には目的サーバDSのコンテンツが表示される。これに対し、通信規制の判定がなされた場合には、通信要求は通信規制用サーバ40に転送され、その結果デバイス10には通信を規制する旨を表す画面が表示される。
デバイス10において目的サーバDSへの通信要求が発生すると、目的サーバDSへの通信が許可されているか不許可とされているかに基づいて、通信制御プログラム100により通信要求の宛先が制御される。これにより、デバイス10で発生した通信要求は、目的サーバDSに対し直接送信される第1ルート(図中の実線矢印)、フィルタリングサーバ30を経由して目的サーバDS又は通信規制用サーバ40に送信される第2ルート(図中の長破線矢印)、デバイス10内で中断される第3ルート(図中の短破線矢印)の、3つのルートのうちいずれかを経て処理される。
設定管理サーバ50は、フィルタリングサーバ30の利用に関するユーザ(例えば、企業や学校等)毎の設定を管理するためのサーバであり、通信制御プログラム100を利用する上で必要となる設定ファイル(プログラム設定ファイル)を配布する役割を担っている。設定管理サーバ50から配布されたプログラム設定ファイルがデバイス10にインストールされると、通信制御プログラム100の利用が開始されることとなる。
なお、通信制御プログラム100による制御の具体的な方法については、別の図面を参照しながら詳しく後述する。また、これ以降の説明においては、フィルタリングサーバ30のユーザである企業や学校等を総括して「ユーザ組織」と称し、ユーザ組織内における通信制御プログラム100のユーザである企業の社員や学校の生徒等を総括して「ユーザ組織の構成員」と称することとする。
図2は、デバイス10内の機能構成を示すブロック図である。説明の便宜のため、通信制御プログラム100以外に関する機能構成は、デバイス10の内部で発生した通信要求の受け渡しに関連するもののみを示している。
デバイス10には、予めオペレーティングシステム200がインストールされており、その上に、通信制御プログラム100や各種アプリ300がデバイス10のユーザにより個別にインストールされている。ここで、オペレーティングシステム200とは、デバイス10のオペレーションを司るシステムソフトウェアであり、例えば、iOSやAndroid等がこれに該当する。また、各種アプリ300とは、オペレーティングシステム200上で動作する様々な用途のアプリケーション(以下、「アプリ」と略称する場合がある。)のことであり、例えば、ウェブブラウジング用のアプリケーションや動画再生用のアプリケーション等がこれに該当する。
各種アプリ300がデバイス10の外部に対する通信要求を行うと、通信要求はオペレーティングシステム200により受信される。オペレーティングシステム200の制約により、各種アプリ300からの通信要求を通信制御プログラム100が直接取得することはできないため(いわゆる「サンドボックス」)、通信制御プログラム100による通信要求の制御はオペレーティングシステム200を介してなされることとなる。
オペレーティングシステム200は、デバイス10の内部で発生した通信要求の受け渡しに関連する機能構成として、例えば、関連設定記憶部210、通信要求受信部220、宛先制御部230、通信要求送出部240及びその他制御部250を備えている。
関連設定記憶部210は、オペレーティングシステム200の基本動作に関わる設定や、オペレーティングシステム200上にインストールされた様々なプログラムやアプリケーションに関連する設定を記憶している。関連設定記憶部210の実体は、例えば、XML形式で記載された設定ファイルである。関連設定記憶部210は、通信制御プログラム100に関連する設定として、通信制御設定ファイル(図中の「C1」)を記憶しており、オペレーティングシステム200の基本動作に関わる設定として、少なくとも宛先制御設定ファイル(図中の「C2」)を記憶している。また、図示していないが、関連設定記憶部210は、これらの設定の他にも各種アプリ300に関連する設定を適宜記憶している。
通信要求受信部220は、先ず、各種アプリ300から送信された通信要求を受信し、通信要求の送信元の各種アプリ300が宛先制御部230を利用するアプリであるか否かを関連設定記憶部210に記憶されている設定に基づいて確認する。そして、各種アプリ300が宛先制御部230を利用するアプリである場合には通信要求を宛先制御部230に振り分ける一方、宛先制御部230を利用しないアプリである場合には通信要求をその他制御部250に振り分ける。
宛先制御部230は、関連設定記憶部210に記憶されている宛先制御設定ファイルの設定を確認し、動的設定を利用する設定がなされていない場合、すなわち固定設定とされている場合には、宛先制御設定ファイルの設定に基づいて通信要求の宛先を制御する一方、そうでない場合、すなわち動的設定とされている場合には、宛先動的設定ファイルの設定に基づいて通信要求の宛先を制御する。このとき、宛先動的設定ファイルが未だ取得されていない(関連設定記憶部210に記憶されていない)場合には、宛先制御部230は、通信制御プログラム100に対して宛先動的設定ファイルの配布を要求し、通信制御プログラム100から配布される宛先動的設定ファイルを関連設定記憶部210に記憶させる。
宛先制御部230は、このようにして通信要求受信部220から振り分けられる通信要求の宛先を、後述する通信制御プログラム100の通信制御部130に制御し、通信要求を通信制御部130に受け渡す。これにより、通信制御部130がローカルプロキシとして機能し、通信要求の宛先(次の受け渡し先)を制御することとなる。また、通信制御部130への通信要求の受け渡しが正常になされない場合であって、動的設定とされている場合には、宛先制御部230は、例外的に宛先動的設定ファイルの設定に基づいて通信要求の宛先を制御する。
通信要求送出部240は、宛先が制御された通信要求を最終的にデバイス10の外部に送出する。具体的には、通信要求送出部240は、通信制御プログラム100により宛先が制御された通信要求や、例外的に宛先制御部230により宛先が制御された通信要求を、そのままデバイス10の外部に送出する。
その他制御部250は、宛先制御部230を利用しないアプリを送信元とする通信要求を制御するか否かを、関連設定記憶部210に記憶されている通信制御設定ファイルの設定内容に基づいて決定する。通信制御設定ファイルにおいて通信制御プログラム100に通信内容の制御を委譲する設定がなされている場合には、その他制御部250は、通信要求の制御を通信制御プログラムに委譲する。さらに、その他制御部250は、通信制御プログラム100から指示に応じて、通信要求の送信元の各種アプリ300に対し通信を中断する旨の応答を行う。
続いて、通信制御プログラム100の機能構成を説明する。
通信制御プログラム100は、少なくとも、プログラム設定記憶部110、動的設定配布部120、通信制御部130及び通信禁止制御部140を備えている。
プログラム設定記憶部110は、通信制御プログラム100の動作に必要な設定を記憶している。プログラム設定記憶部110の実体は、例えば、XML形式で記載された設定ファイルである。プログラム設定記憶部110は、通信制御プログラム100の利用開始前に上述した設定管理サーバ50から配布されインストールされるプログラム設定ファイル(図中の「P」)を記憶している。
動的設定配布部120は、オペレーティングシステム200からの要求に応じて宛先動的設定ファイル(図中の「D」)を生成し、オペレーティングシステム200に配布する。このとき、動的設定配布部120は、通信制御設定ファイルの設定内容に基づいて、宛先動的設定ファイルを生成する。
通信制御部130は、オペレーティングシステム200から受け渡された通信要求の宛先を制御する。具体的には、通信制御部130は、通信制御設定ファイルの設定内容に基づいて通信要求の宛先に関する判定を行って通信要求の次の受け渡し先を決定し、その結果に応じて必要があれば通信要求の宛先を書き換える。そして、宛先を書き換えた又は元のまま維持した通信要求を送信する。
通信禁止制御部140は、オペレーティングシステム200(その他制御部250)から制御を委譲された通信要求に関し、通信を中断する旨の応答を行うようオペレーティングシステム200(その他制御部250)に対して指示を行う。また、通信禁止制御部140は、プログラム設定ファイルの存在を適宜確認し、プログラム設定ファイルが存在しない場合には、意図しない動作により通信が許容されるのを未然に回避するため、全ての通信を中断させる。
なお、制御の過程で用いられるプログラム設定ファイル、通信制御設定ファイル、宛先制御設定ファイル及び宛先動的設定ファイルの具体的な内容については、別の図面を参照しながら詳しく後述する。
図3は、通信制御プログラム100に関連して配置されたフィルタリングサーバ30,通信規制用サーバ40及び設定管理サーバ50内の機能構成を示すブロック図である。
先ず、フィルタリングサーバ30の機能構成を説明する。
フィルタリングサーバ30は、少なくとも、設定記憶部31、データ記憶部32、要求受信部33、判定部34及び要求転送部35を備えている。
設定記憶部31は、フィルタリングサーバ30を利用するユーザ組織毎のフィルタリングに関する設定を記憶している。設定記憶部31の実体は、例えば、データベースである。設定記憶部31は、具体的には、ユーザ組織に対し付与されるユーザアカウント及びそれに対するパスワード、ユーザ組織においてアクセスを許可又は規制するコンテンツのカテゴリ、ドメインやURL等の設定を、ユーザ組織単位で記憶している。
データ記憶部32は、フィルタリングを行う上で必要となるインターネット上のウェブサイトに関して分析されたデータを記憶している。データ記憶部32の実体は、例えば、データベースである。データ記憶部32は、例えば、インターネット上のウェブサイトに関するカテゴリ、URL、プロトコル、ポート、ドメイン階層、パス階層、ウェブサイト内でヒットしたキーワード等のデータ項目に対応する膨大なデータを蓄積して記憶している。
要求受信部33は、デバイス10から送出された通信要求を受信する。
判定部34は、要求受信部33により受信された通信要求に指定された宛先に関し、現在のユーザ(フィルタリングサーバ30への通信時に指定されたユーザアカウントにより識別されるユーザ組織)のフィルタリングに関する設定に基づいて、宛先への通信を許可するか否かを判定する。
要求転送部35は、判定部34による判定結果に応じて通信要求の転送を行う。具体的には、要求転送部35は、通信許可の判定がなされた場合には、通信要求を目的サーバDSに転送する一方、通信規制の判定がなされた場合には、通信要求を通信規制用サーバ40に転送する。
次に、通信規制用サーバ40の機能構成を説明する。
通信規制用サーバ40は、少なくとも、規制画面出力部41を備えている。
規制画面出力部41は、目的サーバDSへの通信が規制されたことを表す画面を要求送信元であるデバイス10に表示させるための出力を行う。
続いて、設定管理サーバ50の機能構成を説明する。
設定管理サーバ50は、少なくとも、設定管理部51及びプログラム設定配布部52を備えている。また、設定管理サーバ50は、フィルタリングサーバ30の設定記憶部31との間でインターネット20とは別のネットワークを介した通信が可能である。
設定管理部51は、フィルタリングサーバ30を利用するユーザ組織毎のフィルタリングに関する設定を管理するためのメニューを提供する。ユーザ組織の管理者は、設定管理部51により提供される管理メニュー上で、フィルタリングに関する設定の登録や更新を行う。なお、管理メニュー上で登録や更新がなされた設定は、ネットワークを介してフィルタリングサーバ30の設定記憶部31に記憶される。
プログラム設定配布部52は、フィルタリングサーバ30のユーザ組織の構成員が通信制御プログラム100を利用する上で必要となるプログラム設定ファイル(図中の「P」)を、インターネット20を介してユーザ組織の構成員が利用するデバイス10に配布する。
図4及び図5は、通信制御プログラム100に関連して利用される設定ファイルの構成を示す図である。なお、これ以降の図に示される設定ファイルを表す各アイコン(図中の「P」、「C1」、「C2」及び「D」)は、それぞれ図2及び図3のブロック図において示した各アイコンに対応している。
先ず、プログラム設定ファイル(図中の「P」)には、フィルタリングサーバ30と通信を行う上で必要となる情報が設定されている。具体的には、フィルタリングサーバ30のユーザ組織に付与されたユーザアカウント及びそれに対するパスワード、フィルタリングサーバ30のドメイン名、フィルタリングサーバ30の待ち受けポート番号、フィルタリングサーバ30に対する通信を暗号化するか否かが設定されている。プログラム設定ファイルは、通信制御部130により通信要求の次の受け渡し先がフィルタリングサーバ30であると決定された際に利用される。
また、プログラム設定ファイルは、設定管理サーバ50から配布されるファイルをデバイス10のユーザ、すなわちユーザ組織の構成員がインストールすることによりデバイス10に導入され、通信制御プログラム100の一部としてプログラム設定記憶部110に記憶される。
次に、通信制御設定ファイル(図中の「C1」)には、通信要求の次の受け渡し先を判定する上で必要となる情報等が設定されている。具体的には、フィルタリングサーバ30を経由することなく通信を許可するドメイン(以下、「許可ドメイン」と略称する場合がある。)のリスト、フィルタリングサーバ30を経由することなく通信を不許可とするドメイン(以下、「不許可ドメイン」と略称する場合がある。)のリスト、通信制御プログラム100に通信内容の制御を委譲するか否かが設定されている。通信制御設定ファイルは、動的設定配布部120が宛先動的設定ファイルを生成する際や、通信制御部130が通信要求の宛先に関する判定を行う際等に利用される。
また、通信制御設定ファイルは、通信制御プログラム100専用に作成されるものであり、フィルタリングサーバ30のユーザ組織の管理者により作成された後に、メールやMDM(Mobile Device Management)のツール等を利用して配布されるファイルを、ユーザ組織の構成員が利用するデバイス10にインストールすることにより、デバイス10に導入される。通信制御設定ファイルは、オペレーティングシステム200の制約により、オペレーティングシステム200の一部として関連設定記憶部210に記憶される。
続いて、宛先制御設定ファイル(図中の「C2」)には、宛先制御部230が通信要求の宛先を制御する上で必要となる情報が設定されている。具体的には、宛先制御部230において動的設定を利用するか否か、ローカルプロキシとしての通信制御部130のIPアドレス及び待ち受けポート番号が設定されている。宛先制御設定ファイルは、オペレーティングシステム200(宛先制御部230)用に作成されるものであり、通信制御設定ファイルと同様に、フィルタリングサーバ30のユーザ組織の管理者により作成された後に、メールやMDMのツール等を利用して配布されるファイルを、ユーザ組織の構成員が利用するデバイス10のユーザがインストールすることにより、デバイス10に導入される。宛先制御設定ファイルもまた、オペレーティングシステム200の制約により、オペレーティングシステム200の一部として関連設定記憶部210に記憶される。
そして、宛先動的設定ファイル(図中の「C3」)には、宛先制御部230が動的設定を利用する上で必要となる情報が設定されている。具体的には、ローカルプロキシとしての通信制御部130のIPアドレス及び待ち受けポート番号、フィルタリングサーバ30を経由することなく通信を許可するドメイン(許可ドメイン)に関するドメイン毎の宛先判定条件、フィルタリングサーバ30を経由することなく通信を不許可とするドメイン(不許可ドメイン)に関するドメイン毎の宛先判定条件が設定されている。宛先動的設定ファイルは、宛先制御部230からの要求に応じて、動的設定配布部120により通信制御設定ファイルの設定内容に基づいて生成され、オペレーティングシステム200の一部として関連設定記憶部210に記憶される。
このように、通信制御プログラム100に関連して4つの設定ファイルがデバイス10に導入されうる。また、これらのうち、プログラム設定ファイルは、設定管理サーバ50からフィルタリングサーバ30のユーザ組織の構成員に対し配布されるものであり、その他の3つのファイルは、ユーザ組織の管理者により作成されてユーザ組織の構成員に配布されるもの(通信制御設定ファイル、宛先制御設定ファイル)、又はそれに基づいて作成されるもの(宛先動的設定ファイル)である。したがって、これらの設定ファイルが配布されてデバイス10に導入されることにより、ユーザ組織の構成員はユーザ組織における共通の設定で通信制御プログラム100を利用することが可能となる。
図6は、デバイス10の内部で発生した通信要求が外部に送出されるか内部で中断されるまでの間に、複数の主体により実行される全体としての手順の流れを示すフローチャートである。
発明の理解を容易とするために、図6においては、通信制御プログラム100により実行されるステップ群を100番台のステップ番号で示し、オペレーティングシステム200により実行されるステップ群を200番台のステップ番号で示し、各種アプリ300により実行されるステップ群を300番台のステップ番号で示すこととする。なお、図6においては、手順を簡略化して示しており、全体としての流れに影響しない微細な手順や例外的な手順の図示を省略している。また、図6に示される手順は飽くまで一例であり、これに限定されるものではない。
ステップS301:各種アプリ300は、目的サーバDSへの通信要求を送信する。
ステップS201:オペレーティングシステム200は、各種アプリ300からの通信要求を受信し、各種アプリ300に関して関連設定記憶部210に記憶されている設定を確認する。
ステップS203:ステップS201での確認の結果、各種アプリ300が宛先制御部230を利用するアプリである場合には(ステップS203:Yes)、オペレーティングシステム200は、次にステップS205を実行する。一方、各種アプリ300が宛先制御部230を利用しないアプリである場合には(ステップS203:No)、オペレーティングシステム200は、次にステップS221を実行する。
ステップS205:オペレーティングシステム200は、宛先制御設定ファイルや宛先動的設定ファイルの設定に基づいて、受信した通信要求を通信制御プログラム100(ローカルプロキシとしての通信制御部130)に受け渡す。
ステップS101:通信制御プログラム100(通信制御部130)は、通信制御設定ファイルの設定内容に基づいて、オペレーティングシステム200から受け渡された通信要求の宛先に関する判定を行う。
ステップS103:ステップS101での判定において、通信要求の宛先として指定された目的サーバDSが許可ドメインである場合には(ステップS103:Yes)、通信制御プログラム100(通信制御部130)は、次にステップS105を実行する。一方、目的サーバDSが許可ドメインでない場合には(ステップS103:No)、通信制御プログラム100(通信制御部130)は、次にステップS111を実行する。
ステップS105:通信制御プログラム100(通信制御部130)は、通信要求の次の受け渡し先を目的サーバDSに決定する。通信要求の宛先には、元より目的サーバDSが指定されているため、通信制御プログラム100(通信制御部130)は、宛先を書き換えることなく元のまま維持した通信要求を送信する。
ステップS211:オペレーティングシステム200は、通信制御プログラム100から送信された通信要求をデバイス10の外部に送出する。これにより、通信要求は目的サーバDSに送信される。
ステップS111:ステップS101での判定において、通信要求先として指定された目的サーバDSが不許可ドメインである場合には(ステップS111:Yes)、通信制御プログラム100(通信制御部130)は、次にステップS113を実行する。一方、目的サーバDSが不許可ドメインでない場合には(ステップS111:No)、通信制御プログラム100(通信制御部130)は、次にステップS121を実行する。
ステップS113:通信制御プログラム100(通信制御部130)は、通信要求の次の受け渡し先をその他制御部250、すなわち通信を禁止すべきであると決定し、次にステップS115を実行する。
ステップS121:通信制御プログラム100(通信制御部130)は、通信要求の次の受け渡し先をフィルタリングサーバ30に決定し、その決定に応じて通信要求の宛先を書き換えるとともに、フィルタリングサーバ30への通信に必要となる資格情報等をセットした上で、通信要求を送信する。
ステップS241:オペレーティングシステム200は、通信制御プログラム100から送信された通信要求をデバイス10の外部に送出する。これにより、通信要求はフィルタリングサーバ30に送信される。
ステップS221:通信要求の送信元の各種アプリ300が宛先制御部230を利用しないアプリである場合には(ステップS203:No)、オペレーティングシステム200は、通信制御設定ファイルを参照し、通信制御プログラム100に通信内容の制御を委譲する設定がなされているか否かを確認する。確認の結果、通信制御プログラム100に通信内容の制御を委譲する設定がなされている場合には(ステップS221:Yes)、オペレーティングシステム200は、通信要求の制御を通信制御プログラム100に委譲する。一方、通信制御プログラム100に通信内容の制御を委譲する設定がなされていない場合には(ステップS221:No)、オペレーティングシステム200は、通信要求の制御を通信制御プログラム100に委譲することなく、別の手段で制御を行う。なお、これ以降の制御は通信制御プログラム100には何ら関係しないため、その記載を省略する。
ステップS115:通信制御プログラム100(通信禁止制御部140)は、通信を中断する旨の応答を行うようオペレーティングシステム200(その他制御部250)に対して指示する。
ステップS231:オペレーティングシステム200は、通信制御プログラム100(通信禁止制御部140)からの指示に応じ、通信要求の送信元の各種アプリ300に対して通信を中断する旨の応答を行う。
ステップS311:各種アプリ300は、オペレーティングシステム200からの応答結果に応じた画面を表示する。
このようにして、各種アプリ300から送信された通信要求は、オペレーティングシステム200から通信制御プログラム100に受け渡された後、通信制御プログラム100により、宛先に関する判定に基づいて、通信要求の次の受け渡し先が目的サーバDS、フィルタリングサーバ30又はその他制御部250の3つのうちいずれかに決定され、判定結果に応じて通信要求の宛先が適宜書き換えられる。そして、次の受け渡し先が目的サーバDS又はフィルタリングサーバ30に決定された場合には、通信要求がこれらのサーバに対して送信されるのに対し、その他制御部250に決定された場合には、通信要求はデバイス10の外部に送出されることなくデバイス10の内部で通信が中断され、その旨の応答が通信要求の送信元の各種アプリ300に対してなされることとなる。
図7は、許可ドメインに対する通信要求がなされた場合の動作例を示すシーケンス図である。この動作例においては、通信要求を送信する各種アプリ300が宛先制御部230を利用するアプリであるものとする。なお、コンピュータ間でパケットを送受信する際に事前に行われるプロトコルのネゴシエーションやセッション確立に相当するステップについては、一般的事項であるため記載を省略する(図8以降においても同様)。以下、動作例に沿って説明する。
ステップS11:各種アプリ300が目的サーバDSへの通信要求を送信する。
ステップS13,S15:オペレーティングシステム200が通信要求を受信し、送信元の各種アプリ300に関する設定から宛先制御部230を利用するアプリであることを確認すると(ステップS13)、その通信要求を通信制御プログラム100に受け渡す(ステップS15)。
ステップS16~S19:通信制御プログラム100が、受け渡された通信要求の宛先に指定された目的サーバDSは許可ドメインであると判定する(ステップS16)。そして、この判定結果に応じて、通信要求の次の受け渡し先を目的サーバDSに決定し(ステップS17)、宛先を元のまま維持した通信要求を送信する(ステップS19)。
ステップS21:オペレーティングシステム200が、通信制御プログラム100から送信された通信要求を、その宛先に沿って目的サーバDSに送出する。
このように、目的サーバDSが許可ドメインである場合には、フィルタリングサーバ30を経由することなく目的サーバDSとの間で直接的に通信がなされる。
図8は、不許可ドメインに対する通信要求がなされた場合の動作例を示すシーケンス図である。この動作例においても、通信要求を送信する各種アプリ300が宛先制御部230を利用するアプリであるものとする。以下、動作例に沿って説明する。
ステップS31:各種アプリ300が、目的サーバDSへの通信要求を送信する。
ステップS33,S35:オペレーティングシステム200が通信要求を受信し、送信元の各種アプリ300に関する設定から宛先制御部230を利用するアプリであることを確認すると(ステップS33)、その通信要求を通信制御プログラム100に受け渡す(ステップS55)。
ステップS36~S39:通信制御プログラム100が、受け渡された通信要求の宛先に指定された目的サーバDSは不許可ドメインであると判定する(ステップS36)。そして、この判定結果に応じて、通信要求の次の受け渡し先をその他制御部250、すなわち通信を禁止すべきものであると決定し(ステップS37)、通信を中断する旨の応答を行うようオペレーティングシステム200(その他制御部250)に対して指示する(ステップS39)。
ステップS41:オペレーティングシステム200は、通信要求の送信元の各種アプリ300に対し、通信を中断する旨の応答を行う。
ステップS43:各種アプリ300は、オペレーティングシステム200からの応答結果に応じた画面を適宜表示する。
このように、目的サーバDSが不許可ドメインである場合には、通信要求はデバイス10の外部に送出されることなく、デバイス10の内部で通信が中断される。
図9は、許可ドメイン/不許可ドメインのいずれにも該当しないドメインに対する通信要求がなされた場合の動作例を示すシーケンス図である。この動作例においても、通信要求を送信する各種アプリ300が宛先制御部230を利用するアプリであるものとする。以下、動作例に沿って説明する。
ステップS51:各種アプリ300が目的サーバDSへの通信要求を送信する。
ステップS53,S55:オペレーティングシステム200が通信要求を受信し、送信元の各種アプリ300に関する設定から宛先制御部230を利用するアプリであることを確認すると(ステップS53)、その通信要求を通信制御プログラム100に受け渡す(ステップS55)。
ステップS56~S59:通信制御プログラム100が、受け渡された通信要求の宛先に指定された目的サーバDSは許可ドメインでも不許可ドメインでもないと判定する(ステップS56)。そして、この判定結果に応じて、通信要求の次の受け渡し先をフィルタリングサーバ30に決定し、宛先をフィルタリングサーバ30に書き換えるとともにフィルタリングサーバ30への通信に必要となる資格情報等をセットした上で(ステップS57)、宛先を書き換えた通信要求を送信する(ステップS59)。
ステップS61:オペレーティングシステム200が、通信制御プログラム100から送信された通信要求を、その宛先に沿ってフィルタリングサーバ30に送出する。
ステップS63,S65:フィルタリングサーバ30が通信要求を受信し、資格情報に指定されたユーザアカウントに対応するユーザ組織のフィルタリングに関する設定に基づいて、通信要求を許可するか否かを判定する(ステップS63)。通信許可との判定がなされると、フィルタリングサーバ30は、通信要求を目的サーバDSに転送する(ステップS65)。なお、ここで通信規制との判定がなされた場合には、通信要求は通信規制用サーバ40に転送されることとなる。
このように、目的サーバDSが許可ドメイン/不許可ドメインのいずれにも該当しない場合には、通信要求はフィルタリングサーバ30を経由し、フィルタリングサーバ30でなされる判定の結果に基づいて、目的サーバDSまたは通信規制用サーバ40のいずれかに転送される。
図10は、宛先制御部230を利用しないアプリケーションにより通信要求がなされた場合の動作例を示すシーケンス図である。この動作例においては、通信要求を送信する各種アプリ300が宛先制御部230を利用しないアプリケーションであり、通信制御設定ファイルには通信制御プログラム100に通信内容の制御を委譲する設定がなされているものとする。以下、動作例に沿って説明する。
ステップS71:各種アプリ300が、目的サーバDSへの通信要求を送信する。
ステップS73,S75:オペレーティングシステム200が通信要求を受信し、送信元の各種アプリ300に関する設定から宛先制御部230を利用しないアプリであること、また、通信制御プログラム100に通信要求の制御を委譲する設定がなされていることを確認すると(ステップS73)、その通信要求を通信制御プログラム100に受け渡す(ステップS75)。
ステップS77,S79:通信制御プログラム100が、プログラム設定ファイルが存在していることを確認した上で(ステップS77)、通信を中断する旨の応答を行うようオペレーティングシステム200(その他制御部250)に対して指示する(ステップS79)。
ステップS81:オペレーティングシステム200は、通信要求の送信元の各種アプリ300に対し、通信を中断する旨の応答を行う。
ステップS83:各種アプリ300は、オペレーティングシステム200からの応答結果に応じた画面を適宜表示する。
このように、宛先制御部230を利用しないアプリにより通信要求がなされた場合には、目的サーバDSが不許可ドメインである場合と同様に、通信要求はデバイス10の外部に送出されることなく、デバイス10の内部で通信が中断される。
図11は、デバイス10の内部で通信が中断された場合に表示される各種アプリ300の画面の一例を示す図である。
各種アプリ300がウェブブラウジング用のアプリケーション(ウェブブラウザ)である場合には、例えば、「このサイトは、○○○のアプリケーションにより制御されているため、閲覧できません。」とのメッセージが画面に表示される。ここで、「○○○のアプリケーション」とは、通信制御プログラム100のことを指し、「○○○」には具体的な名称が入る。これまでの説明においては、通信要求を行う各種アプリ300との混同を避けるため、通信制御プログラム100の説明にはアプリケーション(アプリ)との語を敢えて用いなかったが、デバイス10のユーザから見れば、通信制御プログラム100もアプリケーションに該当する。そこで、通信(閲覧)を制御したのが通信制御プログラム100であることをデバイス10のユーザが認識できるよう、画面上には「通信制御プログラム」ではなく「○○○のアプリケーション」との表示がなされる。
ところで、上述したように、デバイス10の内部で通信が中断される場合には、通信制御プログラム100からオペレーティングシステム200に対し通信を中断する旨の応答指示がなされ、その指示に応じてオペレーティングシステム200により通信を中断する旨の応答内容が出力される。図示されたウェブブラウザに示されているのは、通信制御プログラム100からの指示に応じてオペレーティングシステム200により出力されたHTMLコンテンツである。
これに対し、各種アプリ300がウェブブラウザ以外のアプリケーションである場合、例えば、動画再生用のアプリケーションやファイル管理用のアプリケーション等である場合には、表示される画面はアプリケーションの仕様によって様々に異なるものとなる。例えば、アプリケーションがオフライン用の画面に切り替わったり、アプリケーション上にポップアップのメッセージが表示されたり、画面の一部エリアにその旨を示すメッセージが表示されたりする。或いは、何らメッセージが出力されないアプリケーションや、通信を待ち続けるアプリケーションも存在しうる。
いずれにしても、こうした表示は通信要求を行った各種アプリ300の仕様による動作であり、デバイス10の内部で通信が中断された場合に表示されるウェブブラウザ以外のアプリケーションの画面の態様には、通信制御プログラム100は一切関与しない。
〔実施形態の優位性〕
以上に述べたように、上述した通信制御プログラム100によれば、通信制御部130がデバイス10におけるローカルプロキシとして機能し、各種アプリ300からの目的サーバDSへの通信要求をオペレーティングシステム200の宛先制御部230から受け渡されると、通信制御部130は、予めインストールされた通信制御設定ファイルの設定内容に基づいて通信要求の宛先に関する判定を行い、判定結果に応じて通信要求の宛先を制御する。具体的には、通信制御部130は、目的サーバDSが許可ドメインに該当する場合には通信要求の次の受け渡し先を目的サーバDSに決定し、不許可ドメインに該当する場合には通信禁止と決定し、許可ドメイン/不許可ドメインのいずれにも該当しない場合には通信要求の次の受け渡し先をフィルタリングサーバ30に決定し、決定された結果に応じて必要があれば通信要求の宛先を書き換える。
通信要求の宛先がこのように制御されることにより、許可ドメインに対してはフィルタリングサーバ30を経由することなく直接通信させることができ、また、不許可ドメインに対する通信はフィルタリングサーバ30を経由することなくデバイス10の内部で中断させることができる。そして、許可ドメイン/不許可ドメインのいずれにも該当しない場合にのみ、フィルタリングサーバ30を経由させて通信の許可/規制の制御をフィルタリングサーバ30に委ねることができる。
したがって、通信制御プログラム100によれば、デバイス10で生じる通信要求のうちフィルタリングサーバ30を経由させる数を最小限に抑制し、デバイス10から目的サーバDSへの通信を効率よく行わせることができる。その結果、各種アプリ300により通信要求がなされてから最終的に応答結果が各種アプリ300に返されるまでに要する応答時間を短縮して応答速度を向上させることが可能となる。これらの点から、上述した実施形態の顕著な優位性は明らかである。
本発明は、上述した実施形態に制約されることなく、種々に変更して実施することが可能である。また、実施形態に関連して提示した具体例はあくまで一例であり、上述した内容に限定されるものではない。
上述した実施形態においては、通信制御プログラム100に関連して導入されうる設定ファイルとして、プログラム設定ファイル、通信制御設定ファイル及び宛先制御設定ファイル、宛先動的設定ファイルの4つを挙げ、各設定ファイルにおける設定項目を図4に示しているが、設定ファイルの種類や各設定ファイルにおける設定項目はこれに限定されず、各設定ファイルにおいてその他の設定項目に関する設定をさらに行ってもよいし、その他の設定ファイルをさらに導入してもよい。
上述した実施形態においては、フィルタリングサーバ30、通信規制用サーバ40及び設定管理サーバ50がそれぞれ別体として設けられているが、これら3つのサーバのうち2つ以上を同一のサーバに同居させる構成としてもよい。また、設定管理部51が設定管理サーバ50に設けられているが、これに代えて設定管理部51をフィルタリングサーバ30に設ける構成とすることも可能である。さらには、設定記憶部31やデータ記憶部32の実体(データベース等)は、必ずしもフィルタリングサーバ30上に設けられている必要はなく、ネットワークを介して接続可能な別のサーバ上に設けられたデータベース等のリソースを利用してもよいし、USBやSCSI等の各種ポートを介してフィルタリングサーバ30に接続される外付けのハードディスクドライブ(HDD)等の外部記憶媒体に実装されていてもよい。
上述した実施形態においては、フィルタリングサーバ30のユーザとして企業や学校等の組織を想定しているが、利用形態はこれに限定されない。例えば、通信キャリアがフィルタリングサーバ30のユーザとなり、通信キャリアの顧客がそれぞれ所有するデバイス10に通信キャリアにおける共通の設定を適用した上で通信制御プログラム100を利用してもよい。或いは、個人ユーザがフィルタリングサーバ30のユーザとなり、個人ユーザ自らが設定した許可ドメイン/不許可ドメインやフィルタリングの設定に基づいて通信制御プログラム100を利用することも可能である。
上述した実施形態においては、オペレーティングシステム200の制約により、各種アプリ300からの通信要求がオペレーティングシステム200を介して通信制御プログラム100に受け渡されるが、そのような制約がないオペレーティングシステム(例えば、Windows等)においては、通信制御プログラム内の一部の機能構成を変更することにより、通信制御プログラムを動作させることが可能である。具体的には、例えば、上述した実施形態における通信制御プログラム100が備える各機能構成に加えて、各種アプリ300からの通信要求をオペレーティングシステム200を介することなく直接受信する機能構成に設け、この機能構成が各種アプリ300からの通信要求を受信して通信制御部に受け渡し、通信制御部が受け渡された通信要求の宛先を制御するように、通信制御プログラムを実装すればよい。