以下、添付図面を参照して、本発明を実施するための最良の形態について詳細に説明する。
図1は、本発明の実施形態に係る情報処理システムの概略構成の一例を示す図である。
図1に示すように、本実施形態に係る情報処理システム1は、イントラネット120と、広域ネットワーク網140と、HTTPSウェブサーバ150と、HTTPウェブサーバ160を有して構成されている。
また、イントラネット120の内部には、クライアント端末装置100、中継サーバ110、管理者用端末装置130、並びに、クライアント端末装置100と中継サーバ110とを通信可能に接続する接続セッション121及び制御セッション122の通信経路が構成されている。また、クライアント端末装置100は、エージェントプログラム101、キーロガー102、及び、ウェブブラウザ103を有して構成されている。また、中継サーバ110は、中継サーバプログラム111を有して構成されている。以下、本実施形態に係る情報処理システム1の各構成について説明する。
クライアント端末装置100は、暗号化通信サーバであるHTTPSウェブサーバ150と暗号化通信が可能に構成されており、更に、非暗号化通信サーバであるHTTPウェブサーバ160と非暗号化通信が可能に構成されている。
クライアント端末装置100のエージェントプログラム101は、クライアント端末装置100にインストールされるソフトウェアである。このエージェントプログラム101は、クライアント端末装置100を監視し、暗号化通信等を実行するアプリケーション(例えば、ウェブブラウザ103)への入力を監視し、中継サーバ110(中継サーバプログラム111)と連携を取りながら暗号化通信等の検査、監視を実施するためのものである。また、エージェントプログラム101は、キーロガー102を起動する処理も行う。このエージェントプログラム101により行われる処理については詳しく後述する。
クライアント端末装置100のキーロガー102は、前記暗号化通信等を実行するアプリケーション(例えば、ウェブブラウザ103)へのキー入力を記録するためのものである。
クライアント端末装置100のウェブブラウザ103は、接続セッション121を介して中継サーバ110に接続し、広域ネットワーク網140を経由してHTTPSウェブサーバ150へアクセスし、HTTPSウェブサーバ150が提供する各種のウェブページ等のうち、所望のウェブページを暗号化通信を介して閲覧するために用いられるものである。
また、ウェブブラウザ103は、接続セッション121を介して中継サーバ110に接続し、広域ネットワーク網140を経由してHTTPウェブサーバ160へアクセスし、HTTPウェブサーバ160が提供する各種のウェブページ等のうち、所望のウェブページを閲覧するためにも用いられる。
管理者用端末装置130は、中継サーバ110にアクセスして中継サーバ110が行う制御の操作や設定を行うために用いられる。さらに、管理者用端末装置130は、クライアント端末装置100から送信され、中継サーバ110を介してHTTPSウェブサーバ150(或いはHTTPウェブサーバ160)へ中継されるHTTPSメッセージ(或いはHTTPメッセージ)を、管理者が閲覧できるように、設定や閲覧の操作を行うために用いられる。
中継サーバ110は、例えばプロシキサーバに相当するものであり、クライアント端末装置100とHTTPSウェブサーバ150(或いはHTTPウェブサーバ160)との間の暗号化データ通信(或いは非暗号化データ通信)を中継するためのものである。例えば、クライアント端末装置100が、HTTPSウェブサーバ150で提供するウェブページに対してアクセスし、このウェブページ上で情報の閲覧や各種サービスの登録、或いは、電子メール(ウェブメール)の作成や受信、送信などの操作指示を入力した場合、中継サーバ110は、この操作指示を受け付け、受け付けた操作指示を暗号化通信を介してHTTPSウェブサーバ150へ中継送信する処理を実行する。この中継サーバ110が行う処理については詳しく後述する。
中継サーバ110の中継サーバプログラム111は、中継サーバ110にインストールされるソフトウェアである。この中継サーバプログラム111は、例えば、クライアント端末装置100で起動した暗号化通信を行うアプリケーション(例えば、ウェブブラウザ103)からのHTTPSウェブサーバ150への接続要求を、接続セッション121を介して受け付ける。そして、この場合、中継サーバプログラム111は、エージェントプログラム101と制御セッション122を介して連携を取りながら暗号化通信の検査及び監視を実施し、問題がなければ、広域ネットワーク網140を介してHTTPSウェブサーバ150へ中継する処理を行う。また、同様に、中継サーバプログラム111は、非暗号化通信を行う場合には、非暗号化通信の検査及び監視を実施し、問題がなければ、広域ネットワーク網140を介してHTTPウェブサーバ160へ中継する処理を行う。この中継サーバプログラム111により行われる処理については詳しく後述する。
接続セッション121は、クライアント端末装置100のウェブブラウザ103と、中継サーバ110(中継サーバプログラム111)とを通信可能に接続する通信経路である。
制御セッション122は、クライアント端末装置100のエージェントプログラム101と、中継サーバ110(中継サーバプログラム111)とを通信可能に接続する通信経路である。この制御セッション122を介して、エージェントプログラム101と中継サーバプログラム111は、相互にデータ通信を行い、連携して各制御処理を実行する。この制御セッション122を介した連携処理については詳しく後述する。
イントラネット120は、例えば、LANなどのネットワークにより構成されるものである。広域ネットワーク網140は、インターネットに代表されるネットワークである。
HTTPSウェブサーバ150は、一般のプロバイダに設けられているウェブサーバと同様の動作を行うものであり、中継サーバ110及び広域ネットワーク網140を経由してアクセスしてきたクライアント端末装置100に対して、要求に応じたウェブページを暗号化通信を介して提供するものである。
HTTPウェブサーバ160は、一般のプロバイダに設けられているウェブサーバと同様の動作を行うものであり、中継サーバ110及び広域ネットワーク網140を経由してアクセスしてきたクライアント端末装置100に対して、要求に応じたウェブページを提供するものである。
図2は、図1に示すクライアント端末装置100及び中継サーバ110のハードウェア構成の一例を示すブロック図である。
図2において、CPU201は、RAM202やROM203に格納されているプログラムやデータを用いて当該装置の全体の制御を行うと共に、当該装置(クライアント端末装置100或いは中継サーバ110)が行う後述する各種の処理を実行する。
RAM202は、HDD(ハードディスクドライブ)204や記憶媒体ドライブ206からロードされたプログラムやデータ、或いは、ネットワークI/F(インターフェース)205を介して外部から受信したプログラムやデータなどを一時的に記憶するためのエリアや、CPU201が各種の処理を実行する際に用いるワークエリアなど、各種のエリアを適宜提供する。
ROM203は、当該装置(クライアント端末装置100或いは中継サーバ110)の設定データや、ブートプログラムなどを格納する。
HDD204は、OS(オペレーティングシステム)や、当該装置(クライアント端末装置100或いは中継サーバ110)が行う後述の各種の処理をCPU201に実行させるためのプログラム(エージェントプログラム101或いは中継サーバプログラム111など)や、各種のデータ、各種のファイルなどを保存するためのものであり、これらは、CPU201による制御に従って適宜RAM202にロードされ、CPU201による処理対象となる。
ネットワークI/F205は、当該装置(クライアント端末装置100或いは中継サーバ110)をイントラネット120及び広域ネットワーク網140に接続するためのものである。クライアント端末装置100或いは中継サーバ110は、このネットワークI/F205を介して、イントラネット120及び広域ネットワーク網140に接続されている各装置とデータ通信を行うことができる。
記憶媒体ドライブ206は、CD−ROM、CD−R/RW、DVD−ROM、DVD−R/RW、DVD−RAM等の記憶媒体に記録されているプログラムやデータを読み出し、RAM202やHDD204に出力する。なお、RAM202やHDD204が保持している情報のうちの一部をこの記憶媒体に記録させておいてもよい。
キーボード207、及び、マウスやジョイスティック等により構成されているポインティングデバイス208は、当該装置の操作者が操作することで、各種の指示をCPU201に対して入力する。
表示部209は、CRTや液晶画面等により構成されており、CPU201による処理結果を画像や文字等をもって表示する。
外部機器接続I/F210は、外部機器(周辺機器)を当該装置に接続させるためのインターフェースである。クライアント端末装置100或いは中継サーバ110は、この外部機器接続I/F210を介して、外部機器(周辺機器)とのデータ送受信を行う。例えば、この外部機器接続I/F210は、USBやIEEE1394等により構成されており、通常、複数の外部機器接続I/Fを有する。なお、この外部機器接続I/F210による外部機器(周辺機器)との接続形態は、有線/無線を問わない。
バス211は、上述した各部(201〜210)を通信可能に接続するものである。
なお、以下の説明では、クライアント端末装置100及び中継サーバ110は、図2に示すハードウェア構成を有するものとして説明を行うが、必ずしも、図2に示す構成を有することに限定されるわけではない。例えば、クライアント端末装置100或いは中継サーバ110が行う後述の処理が実行可能であれば、適宜、その構成を変更してもよい。
また、その他の管理者用端末装置130、HTTPSウェブサーバ150及びHTTPウェブサーバ160のハードウェア構成についても、これらには一般のコンピュータを適用するので、周知の如く、概ね図2に示した構成を有する。
次に、クライアント端末装置100が、中継サーバ110及び広域ネットワーク網140を介して、HTTPSウェブサーバ150が提供するウェブメールページに暗号化通信を用いてアクセスし、当該ウェブメールページ上においてウェブメールの作成や保存、送信等を指示した場合の処理について説明する。
なお、中継サーバ110において、上述した処理を自装置のCPU201に実行させるためのプログラム(中継サーバプログラム111)や各種のデータは、自装置のHDD204に保存されているものとする。そして、中継サーバ110では、CPU201による制御に従って当該HDD204に保存されているプログラムや各種のデータをRAM202にロードし、RAM202にロードしたプログラムや各種のデータを用いてCPU201が処理を行うことで、後述する中継サーバ110の各種の処理が実行される。
また、クライアント端末装置100において、上述した処理を自装置のCPU201に実行させるためのプログラム(エージェントプログラム101、キーロガー102に係るプログラム、ウェブブラウザ103に係るプログラム)や各種のデータは、中継サーバ110と同様に、自装置のHDD204に保存されているものとする。そして、クライアント端末装置100では、CPU201による制御に従って当該HDD204に保存されているプログラムや各種のデータをRAM202にロードし、RAM202にロードしたプログラムやデータを用いてCPU201が処理を行うことで、後述するクライアント端末装置100の各種の処理が実行される。
まず、クライアント端末装置100におけるエージェントプログラム101を用いた起動時の処理について説明を行う。
図3は、クライアント端末装置100におけるエージェントプログラム101を用いた起動時の処理の一例を示すフローチャートである。エージェントプログラム101は、クライアント端末装置100上でOSが起動したと同時に起動されるソフトウェアであり、図3の処理は、クライアント端末装置100のCPU201がエージェントプログラム101を実行することにより行われる。
まず、ステップS301において、クライアント端末装置100のCPU201は、エージェントプログラム101を実行し、起動時に自装置のHDD204に保存されている設定ファイルを読み込んで中継サーバ110のIPアドレス或いはホスト名等のアクセス情報を取得し、当該アクセス情報に基づいて中継サーバ110の検出を行う。
より具体的に、クライアント端末装置100のCPU201は、アクセス情報(IPアドレス或いはホスト名等)に対応する中継サーバ110に対して、イントラネット120を介して、予め指定した特定のポート番号(P1)を用いてアクセスし、当該中継サーバ110が正常に稼働中であること検知して、中継サーバ110の検出を行う。
続いて、ステップS302において、クライアント端末装置100のCPU201は、ステップS301で行われた中継サーバ110の検出が成功したか否かを判断する。
ステップS302で中継サーバ110の検出に成功したと判断された場合には(S302/YES)、ステップS303に進む。ステップS303に進むと、クライアント端末装置100のCPU201は、キーロガー102の起動を行う。
キーロガー102は、クライアント端末装置100のキーボード207(更には、ポインティングデバイス208)から入力されたキー入力を記録するためのものである。このキーロガー102によるキー入力の記録方法としては、第1の方法として、入力先となるアクティブなアプリケーションのプロセスに紐付けて記録する方法があり、第2の方法として、予め登録したアプリケーションのプロセスに紐付けて記録する方法(ブラックリスト方式)があり、第3の方法として、予め登録したアプリケーション以外のプロセスについて記録する方法(ホワイトリスト方式)等がある。この際、上述した第1〜第3の方法をそれぞれ単独で使用してもよいし、複数の方法を同時に使用してもよい。
また、キーロガー102による処理をクライアント端末装置100のポインティングデバイス208の入力と同期させることで、例えば、クライアント端末装置100で稼働中のOSにおける入力先のアクティブウィンドウの切り替えを検知することができ、有効な入力値の範囲を正確に把握することができる。
なお、キーロガー102は、エージェントプログラム101からしか呼び出せないようにするために、例えば、アプリケーション認証の仕組みを持ってもよい。この場合、キーロガー102は、認証できないアプリケーションからの呼び出しには、一切返答することはできない。これにより、クライアント端末装置100において、例えば、悪意を持った利用者や広域ネットワーク網140を介して侵入してきた第三者等が、キーロガー102を許可なく利用したり、正規の利用者に気づかれることなく秘密情報を入手したりすること回避することができる。
キーロガー102が起動された後、続いて、ステップS304において、クライアント端末装置100のCPU201は、アプリケーションの監視を開始する。
ここで、アプリケーションの監視方法としては、第1の方法として、クライアント端末装置100のネットワークI/F205を監視し、外部へのデータ送信を検出した場合に、そのデータ送信をしようとしたアプリケーションをポート番号から特定して当該アプリケーションの外部へのデータ送信を監視する方法がある。また、第2の方法として、予め登録したアプリケーションのみを監視する方法(ブラックリスト方式)があり、さらに、第3の方法として、予め登録したアプリケーション以外のアプリケーションにおける外部へのデータ送信を監視する方法(ホワイトリスト方式)等がある。この際、上述した第1〜第3の方法をそれぞれ単独で使用してもよいし、複数の方法を組み合わせて使用してもよい。
続いて、ステップS305において、クライアント端末装置100のCPU201は、ステップS304のアプリケーションの監視の開始と同時に、中継サーバプログラム111による制御セッション122の受け入れ準備を行う。
具体的に、この制御セッション122の受け入れ準備は、クライアント端末装置100のネットワークI/F205に、予め指定した特定のポート番号(P2)での通信の受け入れを準備するものである。この制御セッション122の受け入れ準備は、エージェントプログラム101による処理においては並列処理となり、受信待機状態となる。
ステップS304でアプリケーションの監視が開始され、また、ステップS305で制御セッション122の受け入れ準備が整うと、続いて、クライアント端末装置100のCPU201は、図4に示す中継サーバ連携処理(S401、S413)を実行する。この中継サーバ連携処理については、図4を用いて詳しく後述する。
一方、ステップS302で中継サーバ110の検出に失敗したと判断された場合には(S302/NO)、ステップS306に進む。ステップS306に進むと、クライアント端末装置100のCPU201は、以後、当該クライアント端末装置100から外部へデータ送信を実施するアプリケーション(例えば、ウェブブラウザ103)について、そのデータ送信を制限する処理(アプリケーション制限処理)を行う。
このアプリケーション制限処理の方法としては、第1の方法として、クライアント端末装置100のネットワークI/F205を監視し、外部へのデータ送信を検出した場合に、そのデータ送信をしようとしたアプリケーションのプロセスをポート番号から特定し、当該アプリケーションの外部へのデータ送信を制限する方法がある。また、第2の方法として、予め登録したアプリケーションのみを制限する方法(ブラックリスト方式)があり、さらに、第3の方法として、予め登録したアプリケーション以外のアプリケーションにおける外部へのデータ送信を制限する方法(ホワイトリスト方式)等がある。この際、上述した第1〜第3の方法をそれぞれ単独で使用してもよいし、複数の方法を組み合わせて使用してもよい。
続いて、ステップS307において、クライアント端末装置100のCPU201は、アプリケーションの制限は永久的に実施されるべきものではないため、予め定められた一定時間を経過したか否かを判断する。このステップS307で一定時間を経過していないと判断された場合には(S307/NO)、ステップS306に戻る。そして、ステップS307で一定時間が経過したと判断されるまで、ステップS306の処理を行う。
一方、ステップS307で一定時間を経過したと判断された場合には(S307/YES)、ステップS301に戻り、再び、中継サーバ110の検出処理を行う。
このように、エージェントプログラム101を用いた起動時の処理では、中継サーバ110が正常に検出されるまで、クライアント端末装置100におけるアプリケーションの制限は継続されることになる。
次に、図3に示す中継サーバ連携処理(S401、S413)について説明する。
図4は、クライアント端末装置100におけるエージェントプログラム101を用いた中継サーバ連携処理の一例を示すフローチャートである。この図4の処理は、クライアント端末装置100のCPU201がエージェントプログラム101を実行することにより行われる。
また、図4に示す中継サーバ連携処理では、エージェントプログラム101を用いた処理を行うクライアント端末装置100と中継サーバプログラム111を用いた処理を行う中継サーバ110とが、相互に制御セッション122を介してデータ通信を行うため、図5も用いながら、図4に示す中継サーバ連携処理について詳しく説明する。
図5は、中継サーバ110における中継サーバプログラム111を用いたエージェント連携処理の一例を示すフローチャートである。この図5の処理は、中継サーバ110のCPU201が中継サーバプログラム111を実行することにより行われる。
上述したように、図3のステップS304でアプリケーションの監視が開始され、図3のステップS305で制御セッション122の受け入れ準備が整うと、続いて、図4のステップS401において、クライアント端末装置100のCPU201は、中継サーバ連携処理を開始する。
この際、本実施形態では、アプリケーションの監視方法として、上述した第1の方法、即ち、クライアント端末装置100のネットワークI/F205を監視し、外部へのデータ送信を検出した場合に、そのデータ送信をしようとしたアプリケーションをポート番号から特定して当該アプリケーションの外部へのデータ送信を監視する方法を採用しているものとする。
続いて、ステップS402において、クライアント端末装置100のCPU201は、自装置のネットワークI/F205を監視(即ちネットワークポートを監視)し、外部へのデータ送信を監視する。
続いて、ステップS403において、クライアント端末装置100のCPU201は、SSL(Secure Socket Layer)のポート番号への接続要求があったか否か、即ち暗号化通信が開始されたか否かを判断する。このステップS403でSSLのポート番号への接続要求がないと判断された場合には(S403/NO)、ステップS402に戻る。そして、ステップ403でSSLのポート番号への接続要求があったと判断されるまで、ステップS402の処理を行う。
一方、ステップS403でSSLのポート番号への接続要求があったと判断された場合には(S403/YES)、ウェブブラウザ103からHTTPSウェブサーバ150へのHTTPS接続要求があったと判定し、ステップS404に進む。
ステップS404に進むと、クライアント端末装置100のCPU201は、中継サーバ110へ接続セッション121を介して接続しようとするクライアント端末装置100のネットワークI/F205におけるポート番号(P3)を特定し、そのポート番号を保持しているアプリケーション(例えば、ウェブブラウザ103)の検出を行う。この際、クライアント端末装置100のCPU201は、例えば、OS(オペレーティングシステム)を介してアプリケーションの検出を行う。
ここで、図5の説明に移る。
このとき、中継サーバ110のCPU201は、クライアント端末装置100からのデータ(接続要求を含む)をいつでも受信できるように待機状態にある。この待機状態で、クライアント端末装置100から接続要求を受信すると、図5のステップS501において、中継サーバ110のCPU201は、当該接続要求が暗号化通信接続の要求であるか否かの判断を行う。
ステップS501で、クライアント端末装置100からの接続要求が暗号化通信接続の要求でない(即ち非暗号化通信接続の要求である)と判断された場合には(S501/NO)、ステップS506に進み、中継サーバ110のCPU201は、非暗号化通信検査処理を行う。この非暗号化通信検査処理については、図22を用いて詳しく後述する。
一方、ステップS501で、クライアント端末装置100からの接続要求が暗号化通信接続の要求であると判断された場合には(S501/YES)、ステップS502に進む。例えば、クライアント端末装置100において、ウェブブラウザ103からHTTPSウェブサーバ150へのHTTPS接続要求が発生した場合(S403/YES)、接続セッション121を介して、中継サーバ110のCPU201は、クライアント端末装置100から暗号化通信の開始を表すCONNECT接続要求を受信する。そして、ステップS501では、このCONNECT接続要求があった場合に、クライアント端末装置100から暗号化通信接続の要求があったと判断されることになる。
続いて、ステップS502において、中継サーバ110のCPU201は、ステップS501で受信した暗号化通信接続の要求(CONNECT接続要求)におけるパケットから、接続元であるクライアント端末装置100のIPアドレスと接続元のポート番号(P4)を検出する。
続いて、ステップS503において、中継サーバ110のCPU201は、クライアント端末装置100との間に、既に制御セッション122が存在するか否かを判断する。この時点では、クライアント端末装置100との間に、制御セッション122が存在していないため、ステップS503では否定判断され(S503/NO)、ステップS507に進むことになる。
続いて、ステップS507において、中継サーバ110のCPU201は、ステップS502で検出したクライアント端末装置100のIPアドレスに対して、新規な制御セッション122の生成を行う。この新規な制御セッション122の生成では、特定のポート番号(P2)を予め設定しておき、クライアント端末装置100の対応するポート番号(P2)に向けて、中継サーバ110のCPU201が接続要求のパケットを送信する(通信A)。
ここで、図4の説明に戻る。
このとき、クライアント端末装置100は、制御セッション122を持っていないため(S405/NO)、図4のステップS408に進み、中継サーバ110からの制御セッション122における接続リクエストを待っている状態となっている(通信A)。そして、一定時間内に接続リクエストを受信すると、クライアント端末装置100のCPU201は、中継サーバ110(中継サーバプログラム111)との間に、制御セッション122を生成することになる。
そして、ステップS409において、クライアント端末装置100のCPU201は、制御セッション122が生成できたか否かを判断する。この判断の結果、制御セッション122が生成できていない場合には(S409/NO)、ステップS410に進む。
ステップS410に進むと、クライアント端末装置100のCPU201は、一定時間が経過してタイムアウトしたか否かを判断する。この判断の結果、一定時間が経過しておらずタイムアウトしていない場合には(S410/NO)、ステップS408に戻る。
一方、ステップS410で、一定時間が経過してタイムアウトしたと判断された場合には(S410/YES)、即ち、一定時間内に接続リクエストが受信できずに制御セッション122が生成されなかった場合には、ステップS412に進む。ステップS412に進むと、クライアント端末装置100のCPU201は、当該クライアント端末装置100から外部へデータ送信を実施するアプリケーション(例えば、ウェブブラウザ103)について、そのデータ送信を制限する処理(アプリケーション制限処理)を行う。
また、一定時間内に接続リクエストを受信して中継サーバ110(中継サーバプログラム111)との間に制御セッション122が生成されると、ステップS409で肯定判断されて(S409/YES)、ステップS406に進むことになる。
ここで、図5の説明に戻る。
一方、中継サーバ110のCPU201は、クライアント端末装置100のIPアドレスに対して新規な制御セッション122の生成を行うと(S507)、続いて、ステップS508において、クライアント端末装置100(エージェントプログラム101)との間で、正常に制御セッション122が生成できたか否かを判断する。この判断の結果、正常に制御セッション122が生成できなかった場合には(S508/NO)、ステップS509に進む。
ステップS509に進むと、中継サーバ110のCPU201は、一定時間が経過してタイムアウトしたか否かを判断する。この判断の結果、一定時間が経過しておらずタイムアウトしていない場合には(S509/NO)、ステップS507に戻る。
一方、ステップS509で、一定時間が経過してタイムアウトしたと判断された場合には(S509/YES)、即ち、一定時間内に正常な制御セッション122が生成できなかった場合には、ステップS511に進む。ステップS511に進むと、中継サーバ110のCPU201は、ウェブブラウザ103からのHTTPSデータ送信に対して、中継を拒否する処理を行う。
また、一定時間内にクライアント端末装置100(エージェントプログラム101)との間で制御セッション122が生成されると、ステップS508で肯定判断されて(S508/YES)、ステップS504に進むことになる。
ステップS504に進むと、中継サーバ110のCPU201は、生成した制御セッション122を介して、検査基準ルールのハッシュ値と時間情報をクライアント端末装置100に送信する(通信B)。
検査基準ルールについては、詳しく後述するが、そのハッシュ値は、ルールの変更を検出するためのものであり、例えば、MD5(Message Digest 5)のようなハッシュ関数を用いて検査基準ルールのハッシュ値に利用したり、或いは、単調増加関数を用いてバージョン番号のような増進的な数値をハッシュ値として利用したりすることができる。
また、検査基準ルールの時間情報は、中継サーバ110を基準にした時間情報である。この時間情報をクライアント端末装置100に送信する理由としては、例えば、複数のクライアント端末装置ごとに時間情報が異なっていることは自明であり、ログ情報を統一するためや、後述する時間情報による検査において一定の評価を行うためにシステム全体の統一的な時間情報として利用するためである。
ここで、図4の説明に戻る。
一方、クライアント端末装置100のCPU201では、ステップS406において、中継サーバ110から制御セッション122を介して送信される検査基準ルールのハッシュ値と時間情報の受信を待つ待機状態となっている(通信B)。
そして、ステップS407において、クライアント端末装置100のCPU201は、中継サーバ110から制御セッション122を介して検査基準ルールのハッシュ値と時間情報を正常に受信したか否かの判断を行う。この判断の結果、中継サーバ110から検査基準ルールのハッシュ値と時間情報を正常に受信できなかった場合には(S407/NO)、ステップS411に進む。
ステップS411に進むと、クライアント端末装置100のCPU201は、一定時間が経過してタイムアウトしたか否かを判断する。この判断の結果、一定時間が経過しておらずタイムアウトしていない場合には(S411/NO)、ステップS406に戻る。
一方、ステップS411で、一定時間が経過してタイムアウトしたと判断された場合には(S411/YES)、即ち、一定時間内に中継サーバ110から検査基準ルールのハッシュ値と時間情報を正常に受信できなかった場合には、ステップS412に進む。ステップS412に進むと、クライアント端末装置100のCPU201は、当該クライアント端末装置100から外部へデータ送信を実施するアプリケーション(例えば、ウェブブラウザ103)について、そのデータ送信を制限する処理(アプリケーション制限処理)を行う。
また、一定時間内に中継サーバ110から検査基準ルールのハッシュ値と時間情報を正常に受信すると、制御セッション122による接続が成功であると判断でき、ステップS407で肯定判断されて(S407/YES)、図7に示す制御セッション成功処理(S701)が実行される。この制御セッション成功処理については、図7を用いて詳しく後述する。
ここで、図5の説明に戻る。
検査基準ルールのハッシュ値と時間情報をクライアント端末装置100に送信すると(S504)、続いて、中継サーバ110のCPU201は、当該検査基準ルールのハッシュ値と時間情報の送信が成功したか否かを判断する。この判断の結果、例えば、クライアント端末装置100(エージェントプログラム101)から何ら返信が無く、クライアント端末装置100に対する検査基準ルールのハッシュ値と時間情報の送信が失敗である場合には(S505/NO)、ステップS510に進む。
ステップS510に進むと、中継サーバ110のCPU201は、一定時間が経過してタイムアウトしたか否かを判断する。この判断の結果、一定時間が経過しておらずタイムアウトしていない場合には(S510/NO)、ステップS504に戻る。
一方、ステップS510で、一定時間が経過してタイムアウトしたと判断された場合には(S510/YES)、即ち、一定時間内にクライアント端末装置100から検査基準ルールのハッシュ値と時間情報の送信に係る返信が無かった場合には、ステップS511に進む。ステップS511に進むと、中継サーバ110のCPU201は、ウェブブラウザ103からのHTTPSデータ送信に対して、中継を拒否する処理を行う。
また、一定時間内にクライアント端末装置100から検査基準ルールのハッシュ値と時間情報の送信に係る返信がされると、ステップS505で肯定判断されて(S505/YES)、図6に示すアプリケーション捕捉処理(S601)が実行される。このアプリケーション捕捉処理については、図6を用いて詳しく後述する。
なお、上述した図4の説明では、ステップS402でクライアント端末装置100のネットワークI/F205におけるネットワークポートを監視する形態であったが、例えば、当該ネットワークポートの監視で検出されないアプリケーションが暗号化通信を行う他の形態も適用可能である。この場合について、以下に説明を行う。
クライアント端末装置100のCPU201は、エージェントプログラム101を用いた処理において、ネットワークポートの監視で検出されないアプリケーションが暗号化通信を行った場合、例えば、アプリケーションの監視でブラックリスト方式を実施しており、且つブラックリストに掲載されていないアプリケーションが暗号化通信を行うような場合、上述した図4の説明に係る形態では、ステップS402において当該アプリケーションを検出できないまま待機状態となっている。
しかしながら、クライアント端末装置100は、プロシキサーバである中継サーバ110を中継しないと、広域ネットワーク網140を介して外部のHTTPSウェブサーバ150へアクセスできない。言い換えれば、中継サーバ110は、図5のステップS501において、暗号化通信の開始を検知することができる。このとき、中継サーバ110は、ステップS502において接続元を検出でき、接続元のクライアント端末装置100(エージェントプログラム101)に対して制御セッション122の生成を実施するか、或いは、既存の制御セッション122があればそれを利用してクライアント端末装置100(エージェントプログラム101)に暗号化通信の開始があったことを通知することができる(図4のS413)。
そして、クライアント端末装置100のCPU201は、ネットワークポートの監視で検出できなかったアプリケーションの暗号化通信の開始を、プロシキサーバである中継サーバ110からの通知により検出することができる。具体的に、クライアント端末装置100のCPU201は、中継サーバ110から通知された接続元のポート番号から該当ポート番号を利用しているアプリケーションのプロセスを取得することができ、当該アプリケーションを監視対象に追加することができる。この中継サーバ110からの通知によりアプリケーションの暗号化通信の開始を検出した場合には、ステップS406に移行し、その後の処理が行われる。
なお、図4のステップS408〜S410において、制御セッション122の新規生成処理をフローチャートに内包しているが、中継サーバ110(中継サーバプログラム111)からの接続リクエストに対して常時待機する必要がある場合は、この図4の限りではなく、独立したプロセスとしてもよいことは言うまでもない。
次に、監視するアプリケーションの捕捉の同期について、図6及び図7を用いて、詳しく説明する。
図6は、中継サーバ110における中継サーバプログラム111を用いたアプリケーション捕捉処理の一例を示すフローチャートである。この図6の処理は、中継サーバ110のCPU201が中継サーバプログラム111を実行することにより行われる。
図7は、クライアント端末装置100におけるエージェントプログラム101を用いた制御セッション成功処理の一例を示すフローチャートである。この図7の処理は、クライアント端末装置100のCPU201がエージェントプログラム101を実行することにより行われる。
まず、図7の説明を行う。
図4のステップS406で中継サーバ110から検査基準ルールのハッシュ値と時間情報を正常に受信すると(S407/YES)、図7のステップS701に移行して制御セッション成功処理が開始される。そして、ステップS702において、クライアント端末装置100のCPU201は、中継サーバ110から受信した検査基準ルールのハッシュ値が自装置のHDD204(或いはRAM202)に保存されている検査基準ルールのハッシュ値と一致するか否かを判断する。
ステップS702の判断の結果、中継サーバ110から受信した検査基準ルールのハッシュ値が自装置の検査基準ルールのハッシュ値と一致する場合には(S702/YES)、現在、クライアント端末装置100に保存されている検査基準ルールに変更がなかったものとして、当該検査基準ルールをそのまま利用するように設定して、ステップS703に進む。
一方、ステップS702の判断の結果、中継サーバ110から受信した検査基準ルールのハッシュ値が自装置の検査基準ルールのハッシュ値と一致しない場合には(S702/NO)、ステップS708に進む。ステップS708に進むと、クライアント端末装置100のCPU201は、中継サーバ110に対して、ステップS406で受信したハッシュ値を持つ検査基準ルールの取得要求を行い、中継サーバ110から最新の検査基準ルールを取得する。この際、中継サーバ110は、制御セッション122を介して、クライアント端末装置100から検査基準ルールの取得要求を受信した場合には、制御セッション122を介して、新しい検査基準ルールを返信する。そして、クライアント端末装置100のCPU201は、中継サーバ110から取得した最新の検査基準ルールに基づいて、自装置のHDD204に記憶されている検査基準ルールを更新する。これにより、クライアント端末装置100のHDD204には、最新の検査基準ルールが記憶される。
ステップS709において、クライアント端末装置100のCPU201は、ステップS708における検査基準ルールの取得が成功したか否かを判断する。
ステップS709の判断の結果、ステップS708における検査基準ルールの取得が失敗した場合には(S709/NO)、ステップS714に進む。そして、ステップS714に進むと、クライアント端末装置100のCPU201は、上述したアプリケーション制限処理を実施する。
一方、ステップS709の判断の結果、ステップS708における検査基準ルールの取得が成功した場合には(S709/YES)、ステップS703に進む。ステップS703に進むと、クライアント端末装置100のCPU201は、中継サーバ110からのアプリケーション捕捉指令待ちの状態となる。このステップS703の状態では、クライアント端末装置100は、最新の検査基準ルールを保持している状態となっている。
ここで、図6の説明に移る。
中継サーバ110のCPU201は、図5のステップS503またはステップS508で、既に、制御セッション122が正常に生成されたことを確認しているので、図6のステップS601において、アプリケーション捕捉処理を開始する。そして、ステップS602において、中継サーバ110のCPU201は、クライアント端末装置100からHTTPS接続要求を送信してきたアプリケーションを捕捉するよう、制御セッション122を介して、クライアント端末装置100にアプリケーション捕捉指令を送信する(通信C)。この際、中継サーバ110のCPU201は、当該アプリケーション捕捉指令に、パケット情報から検出した接続元のポート番号(P4)を添付して送信する。
続いて、ステップS603において、中継サーバ110のCPU201は、ステップS602のアプリケーション捕捉指令の送信が成功したか否かを判断する。この判断の結果、ステップS602のアプリケーション捕捉指令の送信が失敗した場合には(S603/NO)、ステップS606に進む。ステップS606に進むと、中継サーバ110のCPU201は、一定時間が経過してタイムアウトしたか否かを判断する。
ステップS606の判断の結果、一定時間が経過しておらずタイムアウトしていない場合には(S606/NO)、ステップS602に戻る。一方、ステップS606の判断の結果、一定時間が経過してタイムアウトした場合には(S606/YES)、ステップS608に進み、中継サーバ110のCPU201は、ウェブブラウザ103からのHTTPSデータ送信に対して、中継を拒否する処理を行う。
また、ステップS603で、ステップS602のアプリケーション捕捉指令の送信が成功したと判断した場合には(S603/YES)、ステップS604に進み、中継サーバ110のCPU201は、クライアント端末装置100からのアプリケーション捕捉結果待ちの状態となる(通信D)。
ここで、図7の説明に戻る。
クライアント端末装置100のCPU201では、ステップS702(或いは、ステップS708及びS709)の処理を経て、現在保持している検査基準ルールが最新のものであることが確認できているので、中継サーバ110からのアプリケーション捕捉指令の待機状態となっている(S703)。
続いて、ステップS704において、クライアント端末装置100のCPU201は、中継サーバ110からアプリケーション捕捉指令を受信したか否かを判断する。この判断の結果、中継サーバ110からアプリケーション捕捉指令を受信していない場合には(S704/NO)、ステップS710に進む。
ステップS710に進むと、クライアント端末装置100のCPU201は、一定時間が経過してタイムアウトしたか否かを判断する。この判断の結果、一定時間が経過しておらずタイムアウトしていない場合には(S710/NO)、ステップS703に戻る。
一方、ステップS710で、一定時間が経過してタイムアウトしたと判断された場合には(S710/YES)、即ち、一定時間内に中継サーバ110からアプリケーション捕捉指令を受信しなかった場合には、ステップS714に進む。そして、ステップS714に進むと、クライアント端末装置100のCPU201は、上述したアプリケーション制限処理を実施する。
また、ステップS704で、中継サーバ110からアプリケーション捕捉指令を受信したと判断された場合には(S704/YES)、ステップS705に進む。ステップS705に進むと、クライアント端末装置100のCPU201は、アプリケーション(例えば、ウェブブラウザ103)の検出ができているか否かの判断を行う。このステップS705では、図4のステップS404において、既に当該アプリケーションの検出が行われている場合には、肯定判断される。
ステップS705の判断の結果、アプリケーションの検出ができている場合には(S705/YES)、ステップS706に進む。ステップS706に進むと、クライアント端末装置100のCPU201は、ステップS404で検出したポート番号(P3)と、中継サーバ110から制御セッション122を介して送信されたアプリケーション捕捉指令に含まれているポート番号(P4)が一致するか否かを判断する。
ステップS706の判断の結果、ステップS404で検出したポート番号(P3)と、中継サーバ110から送信されたアプリケーション捕捉指令に含まれているポート番号(P4)が一致する場合には(S706/YES)、続いて、ステップS707において、クライアント端末装置100のCPU201は、中継サーバ110(中継サーバプログラム111)に対して、アプリケーションの捕捉成功通知を返信する(通信D)。その後、クライアント端末装置100のCPU201は、図9に示すエージェント検査処理(S901)を実行する。このエージェント検査処理については、図9を用いて詳しく後述する。
一方、ステップS706の判断の結果、ステップS404で検出したポート番号(P3)と、中継サーバ110から送信されたアプリケーション捕捉指令に含まれているポート番号(P4)が一致しない場合には(S706/NO)、続いて、ステップS713において、クライアント端末装置100のCPU201は、中継サーバ110(中継サーバプログラム111)に対して、アプリケーションの捕捉失敗通知を返信する(通信D)。その後、ステップS714において、クライアント端末装置100のCPU201は、上述したアプリケーション制限処理を実施する。
また、ステップS705の判断の結果、アプリケーションの検出ができていない場合には(S705/NO)、ステップS711に進む。このステップS705で否定判断される場合としては、例えば、図4のステップS404の処理が行われずに図4のステップS413を介して図7に示す制御セッション成功処理が開始された場合等である。ステップS711に進むと、クライアント端末装置100のCPU201は、制御セッション122を介して、中継サーバ110から送信されたアプリケーション捕捉指令に含まれるポート番号(P4)を開いているアプリケーションの検出を試みて、アプリケーションの捕捉処理を実施する。
続いて、ステップS712において、クライアント端末装置100のCPU201は、アプリケーションの捕捉が成功したか否かを判断する。このステップS712の判断は、例えば、アプリケーション捕捉指令に含まれるポート番号(P4)を開いているアプリケーションの検出ができたか否かに基づいて行われる。
ステップS712の判断の結果、アプリケーションの捕捉が成功した場合には(S712/YES)、ステップS707に進む。ステップS707に進むと、クライアント端末装置100のCPU201は、キーロガー102に対して当該アプリケーションを監視対象に加えるように指令を出した後、中継サーバ110(中継サーバプログラム111)に対して、アプリケーションの捕捉成功通知を返信する(通信D)。その後、クライアント端末装置100のCPU201は、図9に示すエージェント検査処理(S901)を実行する。このエージェント検査処理については、図9を用いて詳しく後述する。
一方、ステップS712の判断の結果、アプリケーションの捕捉が失敗した場合には(S712/NO)、ステップS713に進む。ステップS713に進むと、クライアント端末装置100のCPU201は、中継サーバ110(中継サーバプログラム111)に対して、アプリケーションの捕捉失敗通知を返信する(通信D)。その後、ステップS714において、クライアント端末装置100のCPU201は、上述したアプリケーション制限処理を実施する。
ここで、図6の説明に戻る。
中継サーバ110のCPU201では、ステップS604において、クライアント端末装置100からのアプリケーション捕捉結果待ちの待機状態となっている(通信D)。続いて、ステップS605において、中継サーバ110のCPU201は、通信Dの結果、クライアント端末装置100からアプリケーションの捕捉成功通知を受信したか否かを判断する。
ステップS605の判断の結果、クライアント端末装置100からアプリケーションの捕捉成功通知を受信していない場合には(S605/NO)、例えば、クライアント端末装置100からアプリケーションの捕捉に関する通知を受信していない場合(或いは、クライアント端末装置100からアプリケーションの捕捉失敗通知を受信した場合)には、ステップS607に進む。ステップS607に進むと、中継サーバ110のCPU201は、一定時間が経過してタイムアウトしたか否かを判断する。
ステップS607の判断の結果、一定時間が経過しておらずタイムアウトしていない場合には(S607/NO)、ステップS604に戻る。一方、ステップS607の判断の結果、一定時間が経過してタイムアウトした場合には(S607/YES)、ステップS608に進み、上述した中継を拒否する処理を行う。
また、ステップS605の判断の結果、クライアント端末装置100からアプリケーションの捕捉成功通知を受信した場合には(S605/YES)、その後、中継サーバ110のCPU201は、図8に示す中継サーバ検査処理(S801)を実行する。この中継サーバ検査処理については、図8を用いて詳しく後述する。
以上説明した図6及び図7の処理で、クライアント端末装置100のCPU201は、アプリケーションを捕捉し、中継サーバ110のCPU201は、クライアント端末装置100のエージェントプログラム101による処理と同期が取れている状態となる。
次に、中継サーバ110及びクライアント端末装置100において行われる、送信されるデータの検査処理について説明する。
図8は、中継サーバ110における中継サーバプログラム111を用いた中継サーバ検査処理の一例を示すフローチャートである。この図8の処理は、中継サーバ110のCPU201が中継サーバプログラム111を実行することにより行われる。
図9は、クライアント端末装置100におけるエージェントプログラム101を用いたエージェント検査処理の一例を示すフローチャートである。この図9の処理は、クライアント端末装置100のCPU201がエージェントプログラム101を実行することにより行われる。
なお、各検査処理の検査項目については、上述した検査基準ルールに検査設定が記録されており、これを基準にして各検査処理が実施される。
まず、図8を説明する。
中継サーバ110の中継サーバプログラム111による処理では、暗号化通信のデータを受信した時点で、暗号化通信のデータの復号は原則できない。中継サーバプログラム111による処理において、この時点で得られる情報は、接続先となるHTTPSウェブサーバ150のホスト名或いはIPアドレス、及び、時間情報である。したがって、中継サーバ110の中継サーバプログラム111を用いた検査では、送信先ホスト検査(S802)、及び、時間帯検査(S804)の2種類となる。
まず、中継サーバ110のCPU201は、ステップS801の中継サーバ検査処理を開始すると、ステップS802において、送信先ホストの検査処理を行う。
具体的に、ステップS802の送信先ホスト検査では、任意のホスト名或いはIPアドレスに対して、予め中継許可/中継禁止を設定した送信先設定リストを用意しておき、この送信先設定リストを中継サーバ110のHDD204に保存しておく。そして、中継サーバ110のCPU201は、ウェブブラウザ103から要求された接続先(送信先)であるHTTPSウェブサーバ150のホスト名或いはIPアドレスについて、当該送信先設定リストを参照して、中継許可または中継禁止を検出することで、送信先ホストの検査処理を行う。この場合、中継許可が検出された場合には送信先ホスト検査が成功となり、中継禁止が検出された場合には送信先ホスト検査が失敗となる。
また、送信先ホスト検査では、送信先設定リストに設定されていないホスト名或いはIPアドレスの送信先ホストについて予め初期値をHDD204に設定しておくこともできる。この初期値では、「すべて中継許可」或いは「すべて中継禁止」のいずれかを設定することが可能である。HTTPSウェブサーバ150のホスト名或いはIPアドレスが送信先設定リストに設定されていない場合には、初期値を参照し、「すべて中継許可」が設定されている場合には送信先ホスト検査が成功となり、「すべて中継禁止」が設定されている場合には送信先ホスト検査が失敗となる。
なお、上述した送信先設定リストが送信先ホストのIPアドレスに対して中継許可/中継禁止を設定したものである場合であって、送信先であるHTTPSウェブサーバ150のホスト名の情報が取得されている場合には、送信先設定リストを参照して中継許可/中継禁止の設定を検出することができないため、例えば、DNSサーバに問い合わせて当該ホスト名におけるIPアドレスを取得し、取得したIPアドレスに基づいて送信先設定リストを参照し、送信先ホスト検査を行う。この場合、取得したIPアドレスについて、送信先設定リストに中継許可が設定されている場合には送信先ホスト検査が成功となり、中継禁止が設定されている場合には送信先ホスト検査が失敗となる。
続いて、ステップS803において、中継サーバ110のCPU201は、ステップS802における送信先ホスト検査が成功したか否かを判断する。
ステップS803の結果、ステップS802における送信先ホスト検査が失敗した場合には(S803/NO)、ステップS812に進む。ステップS812に進むと、中継サーバ110のCPU201は、クライアント端末装置100(エージェントプログラム101)に検査の失敗通知を送信する(通信E)。その後、ステップS813において、中継サーバ110のCPU201は、ウェブブラウザ103からのHTTPSデータ送信に対して、中継を拒否する処理を行う。
一方、ステップS803の結果、ステップS802における送信先ホスト検査が成功した場合には(S803/YES)、ステップS804に進む。ステップS804に進むと、中継サーバ110のCPU201は、時間帯の検査処理を行う。
具体的に、ステップS804の時間帯検査では、任意の時間帯に対して、予め中継許可/中継禁止を設定した時間帯設定リストを用意しておき、この時間帯設定リストを中継サーバ110のHDD204に保存しておく。そして、中継サーバ110のCPU201は、ウェブブラウザ103から暗号化通信の接続要求を受信した時点(図5のS501)における中継サーバ110の時間T1に対して、当該時間帯設定リストを参照し、中継許可または中継禁止を検出することで、時間帯の検査処理を行う。この場合、中継許可が検出された場合には時間帯検査が成功となり、中継禁止が検出された場合には時間帯検査が失敗となる。
また、時間帯検査では、当該時間T1が時間帯設定リストに設定されていなかった場合、その時間帯について初期値をHDD204に設定しておくこともできる。この初期値では、「すべて中継許可」或いは「すべて中継禁止」のいずれかを設定することが可能である。当該時間T1が時間帯設定リストに設定されていない場合には、初期値を参照し、「すべて中継許可」が設定されている場合には時間帯検査が成功となり、「すべて中継禁止」が設定されている場合には時間帯検査が失敗となる。
なお、例えば、時間T1が時間帯設定リストの複数の設定項目に該当する場合を想定して、当該時間帯設定リストの設定項目ごとに予め優先順位を設定するようにしてもよい。この際、優先順位の付与方法は、例えば、時間帯設定リストの記述順にするなどしてもよい。この場合、時間T1に該当する時間帯設定リストの最上位の設定項目に中継許可が設定されている場合には時間帯検査が成功となり、当該最上位の設定項目に中継禁止が設定されている場合には時間帯検査が失敗となる。
続いて、ステップS805において、中継サーバ110のCPU201は、ステップS804における時間帯検査が成功したか否かを判断する。
ステップS805の結果、ステップS804における時間帯検査が失敗した場合には(S805/NO)、ステップS812に進む。ステップS812に進むと、中継サーバ110のCPU201は、クライアント端末装置100(エージェントプログラム101)に検査の失敗通知を送信する(通信E)。その後、ステップS813において、中継サーバ110のCPU201は、上述した中継拒否の処理を行う。
一方、ステップS805の結果、ステップS804における時間帯検査が成功した場合には(S805/YES)、ステップS806に進む。ステップS806に進むと、当該中継サーバ110側で行える送信先ホスト検査及び時間帯検査が終了したことから、中継サーバ110のCPU201は、クライアント端末装置100からのエージェント検査の結果待ちの状態となる(通信F)。
続いて、ステップS807において、中継サーバ110のCPU201は、クライアント端末装置100からエージェント検査の結果を受領したか否かを判断する。この判断の結果、クライアント端末装置100からエージェント検査の結果を受領していない場合には(S807/NO)、ステップS811に進む。ステップS811に進むと、中継サーバ110のCPU201は、一定時間が経過してタイムアウトしたか否かを判断する。
ステップS811の判断の結果、一定時間が経過しておらずタイムアウトしていない場合には(S811/NO)、ステップS806に戻る。一方、ステップS811の判断の結果、一定時間が経過してタイムアウトした場合には(S811/YES)、ステップS812に進む。ステップS812に進むと、中継サーバ110のCPU201は、クライアント端末装置100(エージェントプログラム101)に検査の失敗通知を送信する(通信E)。その後、ステップS813において、中継サーバ110のCPU201は、上述した中継拒否の処理を行う。なお、このとき、クライアント端末装置100と制御セッション122を介して正常に通信できない場合は、制御セッション122を切断することで検査の失敗を通知してもよい。
一方、ステップS807の判断の結果、クライアント端末装置100からエージェント検査の結果を受領した場合には(S807/YES)、ステップS808に進む。ステップS808に進むと、中継サーバ110のCPU201は、検査結果の同期を取るために、エージェント検査の結果を受領した旨の通知をクライアント端末装置100(エージェントプログラム101)に送信する(通信G)。
続いて、ステップS809において、中継サーバ110のCPU201は、ステップS807で受領したエージェント検査の結果が成功であるか否かを判断する。この判断の結果、ステップS807で受領したエージェント検査の結果が成功である場合には(S809/YES)、ステップS810に進む。ステップS810に進むと、中継サーバ110のCPU201は、クライアント端末装置100のウェブブラウザ103からのHTTPSウェブサーバ150に対する暗号化通信の接続要求における中継を許可し、当該暗号化通信の接続要求をHTTPSウェブサーバ150に中継する。
一方、ステップS809の判断の結果、ステップS807で受領したエージェント検査の結果が失敗である場合には(S809/NO)、ステップS812に進む。ステップS812に進むと、中継サーバ110のCPU201は、クライアント端末装置100(エージェントプログラム101)に検査の失敗通知を送信する(通信E)。その後、ステップS813において、中継サーバ110のCPU201は、上述した中継拒否の処理を行う。
次に、クライアント端末装置100のCPU201が行うエージェントプログラム101を用いたエージェント検査処理について、図9を用いて詳しく説明する。
エージェントプログラム101を用いた検査は、本来ならば、中継サーバ110の中継サーバプログラム111を用いた検査で実施すべき検査項目であるが、暗号化通信のために検査できない検査項目を補完する検査と、エージェントプログラム101を用いた検査でしか行えない検査との2種類の検査を実施する。ここでは、エージェントプログラム101を用いた検査項目の一例として、ユーザ認証名検査(S902)、送信先検査(S904)、アプリケーション指定検査(S906)、キーワード検査(S908)の4つの検査項目について詳しく説明する。図9には、エージェントプログラム101を用いたエージェント検査処理の全体のフローチャートを示し、また、図9に示す各検査項目については、それぞれ、図10〜図16を用いて詳細に説明を行う。
まず、クライアント端末装置100のCPU201は、ステップS901のエージェント検査処理を開始すると、ステップS902において、ユーザ認証名の検査処理を行う。
図10は、図9のステップS902のユーザ認証名検査処理における詳細な処理の一例を示すフローチャートである。以下、図10の説明を行う。
具体的に、ステップS902のユーザ認証名検査では、利用者がクライアント端末装置100にログインしたときに使用したログイン名(以下、「ユーザ認証名」とする)に対して、予め中継許可/中継禁止を設定したユーザ認証名リストを用意しておき、このユーザ認証名リストをクライアント端末装置100のHDD204に保存しておく。なお、このユーザ認証名リストは、LDAPを始めとするディレクトリサービスを参照する形式でもよい。また、このユーザ認証名リストは、上述した検査基準ルールに包含されており、最新のものは、中継サーバ110のHDD204に保存されている。
図10のステップS1001において、クライアント端末装置100のCPU201は、ユーザ認証名が自装置のHDD204に記憶されているユーザ認証名リストに存在するか否かを判断する(即ち、ユーザ認証名が検査基準ルールに一致するか否かを判断する)。この判断の結果、ユーザ認証名がユーザ認証名リストに存在しない場合には(S1001/NO)、クライアント端末装置100のCPU201は、ユーザ認証名検査が失敗と判断する。
一方、ステップS1001の判断の結果、ユーザ認証名がユーザ認証名リストに存在する場合には(S1001/YES)、ステップS1002に進む。ステップS1002に進むと、クライアント端末装置100のCPU201は、ユーザ認証名リストの当該ユーザ認証名の設定が中継許可となっているか否かを判断する。この判断の結果、ユーザ認証名リストの当該ユーザ認証名の設定が中継許可となっていない場合には(S1002/NO)、即ち、当該ユーザ認証名の設定が中継禁止等となっている場合には、クライアント端末装置100のCPU201は、ユーザ認証名検査が失敗と判断する。
一方、ステップS1002の判断の結果、ユーザ認証名リストの当該ユーザ認証名の設定が中継許可となっている場合には(S1002/YES)、クライアント端末装置100のCPU201は、ユーザ認証名検査が成功と判断する。
ここで、図9の説明に戻る。
ステップS902でユーザ認証名検査処理が行われると、続いて、ステップS903において、クライアント端末装置100のCPU201は、ステップS902におけるユーザ認証名検査が成功したか否かを判断する。
ステップS903の判断の結果、ステップS902におけるユーザ認証名検査が失敗した場合には(S903/NO)、ステップS914に進む。ステップS914に進むと、クライアント端末装置100のCPU201は、中継サーバ110(中継サーバプログラム111)に検査の失敗通知を送信する(通信F)。この際、クライアント端末装置100のCPU201は、制御セッション122を介して中継サーバ110に検査の失敗通知を送信する。
一方、ステップS903の判断の結果、ステップS902におけるユーザ認証名検査が成功した場合には(S903/YES)、ステップS904に進む。ステップS904に進むと、クライアント端末装置100のCPU201は、送信先の検査処理を行う。
図11は、図9のステップS904の送信先検査処理における詳細な処理の一例を示すフローチャートである。以下、図11の説明を行う。
具体的に、まず、図9のステップS904の送信先検査と、図8のステップS802における中継サーバ110で実施する送信先ホスト検査との違いについて説明する。
図8のステップS802の中継サーバプログラム111による検査では、暗号化された通信を対象とするものであるため、送信先情報については、ホスト名或いはIPアドレスしか検出できない。その一方、図9のステップS904の送信先検査では、エージェントプログラム101上で実施されるため、ホスト名或いはIPアドレスを含む送信先情報、例えば、URLのような、より詳細な送信先の情報に基づいて検査を行うことが可能である。
これにより、例えば、後述する送信先リストに金融機関等のウェブサイトを詳細に登録したりすることで、例えばクレジットカード番号をはじめとする非常に機密性の高い個人情報(機密情報)を必要以上に監視するといった過度の情報漏洩管理を抑制することができ、健全な情報管理を実現することができる。
具体的に、図9のステップS904における送信先検査では、送信先(例えば、URLなど)に対して、予め中継許可/中継禁止を設定したり、正規表現を利用して送信先を設定したりした送信先リストを用意しておき、この送信先リストをクライアント端末装置100のHDD204に保存しておく。なお、この送信先リストは、上述した検査基準ルールに包含されており、最新のものは、中継サーバ110のHDD204に保存されている。
図11のステップS1101において、クライアント端末装置100のCPU201は、ウェブブラウザ103から要求された送信先が自装置のHDD204に記憶されている送信先リストに存在するか否かを判断する(即ち、送信先が検査基準ルールに一致するか否かを判断する)。この判断の結果、当該送信先が送信先リストに存在しない場合には(S1101/NO)、クライアント端末装置100のCPU201は、送信先検査が失敗と判断する。
なお、図11に示す処理においては、当該送信先が送信先リストに存在しない場合に(S1101/NO)、送信先検査が失敗と処理するようにしているが、管理基準に応じて、この場合を送信先検査が成功として処理するようにしてもよい。
一方、ステップS1101の判断の結果、当該送信先が送信先リストに存在する場合には(S1101/YES)、ステップS1102に進む。ステップS1102に進むと、クライアント端末装置100のCPU201は、送信先リストの当該送信先の設定が中継許可となっているか否かを判断する。この判断の結果、送信先リストの当該送信先の設定が中継許可となっていない場合には(S1102/NO)、即ち、当該送信先の設定が中継禁止等となっている場合には、クライアント端末装置100のCPU201は、送信先検査が失敗と判断する。
一方、ステップS1102の判断の結果、送信先リストの当該送信先の設定が中継許可となっている場合には(S1102/YES)、クライアント端末装置100のCPU201は、送信先検査が成功と判断する。
ここで、図9の説明に戻る。
ステップS904で送信先検査処理が行われると、続いて、ステップS905において、クライアント端末装置100のCPU201は、ステップS904における送信先検査が成功したか否かを判断する。
ステップS905の判断の結果、ステップS904における送信先検査が失敗した場合には(S905/NO)、ステップS914に進む。ステップS914に進むと、クライアント端末装置100のCPU201は、中継サーバ110(中継サーバプログラム111)に検査の失敗通知を送信する(通信F)。
一方、ステップS905の判断の結果、ステップS904における送信先検査が成功した場合には(S905/YES)、ステップS906に進む。ステップS906に進むと、クライアント端末装置100のCPU201は、アプリケーション指定の検査処理を行う。
図12は、図9のステップS906のアプリケーション指定検査処理における詳細な処理の一例を示すフローチャートである。以下、図12の説明を行う。
具体的に、図9のステップS906のアプリケーション指定検査では、アプリケーションの情報、例えばファイル名やアプリケーション名等の情報に対して、予め中継許可/中継禁止を設定したアプリケーション指定リストを用意しておき、クライアント端末装置100のHDD204に保存しておく。なお、このアプリケーション指定リストは、上述した検査基準ルールに包含されており、最新のものは、中継サーバ110のHDD204に保存されている。
図12のステップS1201において、クライアント端末装置100のCPU201は、図4のステップS404或いは図7のステップS711で捕捉したアプリケーションについて、当該アプリケーションの情報が自装置のHDD204に記憶されているアプリケーション指定リストに存在するか否かを判断する(即ち、アプリケーションの情報が検査基準ルールに一致するか否かを判断する)。この判断の結果、アプリケーションの情報がアプリケーション指定リストに存在しない場合には(S1201/NO)、クライアント端末装置100のCPU201は、アプリケーション指定検査が失敗と判断する。
なお、図12に示す処理においては、アプリケーションの情報がアプリケーション指定リストに存在しない場合に(S1201/NO)、アプリケーション指定検査が失敗と処理するようにしているが、管理基準に応じて、この場合をアプリケーション指定検査が成功として処理するようにしてもよい。
また、アプリケーション指定リストに存在しない不明なアプリケーションの情報を検出した場合には、自動的に制御セッション122を介して中継サーバ110(中継サーバプログラム111)に当該不明なアプリケーションの情報を送信するようにしてもよい。これにより、例えば、当該不明なアプリケーションの情報を元にシステム管理者が管理者用端末装置130を操作して、上述した検査基準ルールを修正することが可能になる。
一方、ステップS1201の判断の結果、アプリケーションの情報がアプリケーション指定リストに存在する場合には(S1201/YES)、ステップS1202に進む。ステップS1202に進むと、クライアント端末装置100のCPU201は、アプリケーション指定リストの当該アプリケーションの情報の設定が中継許可となっているか否かを判断する。この判断の結果、アプリケーション指定リストの当該アプリケーションの情報の設定が中継許可となっていない場合には(S1202/NO)、即ち、当該アプリケーションの情報の設定が中継禁止等となっている場合には、クライアント端末装置100のCPU201は、アプリケーション指定検査が失敗と判断する。
一方、ステップS1202の判断の結果、アプリケーション指定リストの当該アプリケーションの情報の設定が中継許可となっている場合には(S1202/YES)、クライアント端末装置100のCPU201は、アプリケーション指定検査が成功と判断する。
ここで、図9の説明に戻る。
ステップS906でアプリケーション指定検査処理が行われると、続いて、ステップS907において、クライアント端末装置100のCPU201は、ステップS906におけるアプリケーション指定検査が成功したか否かを判断する。
ステップS907の判断の結果、ステップS906におけるアプリケーション指定検査が失敗した場合には(S907/NO)、ステップS914に進む。ステップS914に進むと、クライアント端末装置100のCPU201は、中継サーバ110(中継サーバプログラム111)に検査の失敗通知を送信する(通信F)。
一方、ステップS907の判断の結果、ステップS906におけるアプリケーション指定検査が成功した場合には(S907/YES)、ステップS908に進む。ステップS908に進むと、クライアント端末装置100のCPU201は、キーワードの検査処理を行う。このキーワード検査は、暗号化データ通信を行う前の状態におけるキーワードを検査するものである。
図13は、図9のステップS908のキーワード検査処理における詳細な処理の一例を示すフローチャートである。以下、図13の説明を行う。
具体的に、図9のステップS908のキーワード検査では、予め用意したキーワードに対して、中継許可/中継禁止を設定したキーワードリストを用意しておき、このキーワードリストをクライアント端末装置100のHDD204に保存しておく。なお、このキーワードリストは、上述した検査基準ルールに包含されており、最新のものは、中継サーバ110のHDD204に保存されている。
ここで、検査対象のキーワードとしては、単一キーワードから構成されるものや、複数のキーワードから構成されるものがある。複数のキーワードから構成されるものとしては、例えば、AND演算、OR演算、NOT演算等の各論理演算と、括弧記号を使った演算の優先順位指定を行うことができる。また、ダブルクォーテーション記号でキーワードを囲むことで、空白記号を含む複数単語から構成される単一キーワードを設定することもできる。
さらに、検査基準ルールに記述されている設定により、例えば、全角数字文字と半角数字文字、丸文字で囲まれた数字文字等の複数の書式形態を持つが同一の意味を持つ複数の文字を同一文字として扱うこともできる。例えば、数字の1を例にすると、「1」、「(1)」、「一」、「壱」等は、すべて「1」として扱うことができる。
図13のステップS1301において、クライアント端末装置100のCPU201は、テキスト抽出処理を行う。この際、クライアント端末装置100のCPU201は、例えばクレジットカード番号といった機密性の高い機密情報に係るデータは抽出しないようにする。このテキスト抽出処理は、当該アプリケーションからキーワード検査の対象となるテキスト文字列を抽出する処理である。このテキスト抽出処理については、詳しく後述する。
ステップS1301のテキスト抽出処理の対象となる領域は、複数個所に存在するため、ステップS1301で抽出された個々のテキストは、リスト形式でテキストリストとしてクライアント端末装置100のHDD204(或いはRAM202)に保存される。
ステップS1302において、クライアント端末装置100のCPU201は、テキストリストの中から1つのテキストを取り出す。
続いて、ステップS1303において、クライアント端末装置100のCPU201は、ステップS1302で取り出したテキストに対して、検査基準ルール(キーワードリスト)に基づくキーワード検査を行う。具体的に、このステップS1303のキーワード検査では、ステップS1302で取り出したテキストが上述したキーワードリストに存在するか否かや、存在する場合にキーワードリストの当該テキスト(キーワード)の設定が中継許可であるか否か等が検査される。
続いて、ステップS1304において、クライアント端末装置100のCPU201は、ステップS1302で取り出したテキストが自装置のHDD204に記憶されているキーワードリストに存在するか否かを判断する(即ち、ステップS1302で取り出したテキストが検査基準ルールに一致するか否かを判断する)。この判断の結果、ステップS1302で取り出したテキストがキーワードリストに存在しない場合には(S1304/NO)、ステップS1306に進む。
一方、ステップS1304の判断の結果、ステップS1302で取り出したテキストがキーワードリストに存在する場合には(S1304/YES)、ステップS1305に進む。ステップS1305に進むと、クライアント端末装置100のCPU201は、キーワードリストの当該テキスト(キーワード)の設定が中継許可となっているか否かを判断する。この判断の結果、キーワードリストの当該テキスト(キーワード)の設定が中継許可となっていない場合には(S1305/NO)、即ち、当該テキスト(キーワード)の設定が中継禁止となっている場合には、クライアント端末装置100のCPU201は、キーワード検査が失敗と判断する。
一方、ステップS1305の判断の結果、キーワードリストの当該テキスト(キーワード)の設定が中継許可となっている場合には(S1305/YES)、ステップS1306に進む。
ステップS1306に進むと、クライアント端末装置100のCPU201は、ステップS1301で抽出したテキストに基づくテキストリストのすべてのテキストについてキーワード検査を行ったか否かを判断する。この判断の結果、テキストリストのすべてのテキストについては未だキーワード検査を行っていない場合には(S1306/NO)、ステップS1302に戻り、ステップS1302において、キーワード検査を行っていないテキストをテキストリストから取り出して、ステップS1303以降の処理が行われる。
一方、ステップS1306の判断の結果、テキストリストのすべてのテキストについてキーワード検査を行った場合には(S1306/YES)、ステップS1301で検出されたすべてのテキストについて中継禁止の設定がされていないため、クライアント端末装置100のCPU201は、キーワード検査が成功と判断する。
ここで、図9の説明に戻る。
ステップS908でキーワード検査処理が行われると、続いて、ステップS909において、クライアント端末装置100のCPU201は、ステップS908におけるキーワード検査が成功したか否かを判断する。
ステップS909の判断の結果、ステップS908におけるキーワード検査が失敗した場合には(S909/NO)、ステップS914に進む。ステップS914に進むと、クライアント端末装置100のCPU201は、中継サーバ110(中継サーバプログラム111)に検査の失敗通知を送信する(通信F)。
一方、ステップS909の判断の結果、ステップS908におけるキーワード検査が成功した場合には(S909/YES)、ステップS910に進む。
ステップS910に進むと、クライアント端末装置100のCPU201は、クライアント端末装置100側で行うすべてのエージェント検査(S902のユーザ認証名検査、S904の送信先検査、S906のアプリケーション指定検査、及び、S908のキーワード検査)が成功しているため、中継サーバ110(中継サーバプログラム111)に検査の成功通知を送信する(通信F)。この際、クライアント端末装置100のCPU201は、制御セッション122を介して中継サーバ110に検査の成功通知を送信する。
ここまでの処理で、クライアント端末装置100のCPU201は、ステップS910で中継サーバ110(中継サーバプログラム111)に検査の成功通知を送信し、或いは、ステップS914で中継サーバ110(中継サーバプログラム111)に検査の失敗通知を送信している。
続いて、ステップS911において、クライアント端末装置100のCPU201は、中継サーバ110がエージェントプログラム101によるエージェント検査結果を受領しているか否かを確認するために、中継サーバ110からの検査結果受領の受信待ちの待機状態となる(通信G)。
続いて、ステップS912において、クライアント端末装置100のCPU201は、中継サーバ110から当該エージェント検査結果の受領を受信したか否かを判断する。この判断の結果、中継サーバ110から当該エージェント検査結果の受領を受信した場合には(S912/YES)、ステップS913に進み、クライアント端末装置100のCPU201は、検査終了の処理を行う。
一方、ステップS912の判断の結果、中継サーバ110から当該エージェント検査結果の受領を受信していない場合には(S912/NO)、ステップS915に進む。ステップS915に進むと、クライアント端末装置100のCPU201は、一定時間が経過してタイムアウトしたか否かを判断する。
ステップS915の判断の結果、一定時間が経過しておらずタイムアウトしていない場合には(S915/NO)、ステップS911に戻る。一方、ステップS915の判断の結果、一定時間が経過してタイムアウトした場合には(S915/YES)、ステップS919に進み、クライアント端末装置100のCPU201は、例え、エージェント検査が成功していたとしても、中継サーバ110(中継サーバプログラム111)との連携ができなったとして、検査失敗の処理を行う。
ステップS919の検査失敗の処理は、例えば、上述したアプリケーション制限処理のような処理であってもよい。好ましくは、クライアント端末装置100の利用者に検査結果の通知を行い、その暗号化されたデータ送信のみを制限するような処理の方がよい。このとき、中継サーバ110(中継サーバプログラム111)と正常に通信できていないとして、制御セッション122を切断することで中継サーバ110(中継サーバプログラム111)に検査結果の失敗を通知してもよい。
上述した説明では、ステップS910において、クライアント端末装置100のCPU201がエージェント検査の成功通知を中継サーバ110(中継サーバプログラム111)に送信している。この際、中継サーバ110(中継サーバプログラム111)では、中継サーバ検査の検査中であり、例えば、ステップS804の時間帯検査で失敗した場合などを例に、相互通信について、図8と図9を用いて更に詳しく説明する。
この場合、クライアント端末装置100のCPU201は、ステップS910で検査成功の通知を中継サーバ110に送信し(通信F)、ステップS911で中継サーバ110からの受領信号を待っている待機状態である。一方、中継サーバ110では、ステップS804の時間帯検査に失敗して、ステップS812でクライアント端末装置100(エージェントプログラム101)に検査の失敗通知を送信する状態である(通信E)。この場合、クライアント端末装置100のCPU201は、ステップS916で中継サーバプログラム111から検査の失敗通知を受信する。
そして、ステップS917において、クライアント端末装置100のCPU201は、エージェントプログラム101によるエージェント検査の結果を中継サーバ110(中継サーバプログラム111)に送信済みであるか否かを判断する。
この判断の結果、エージェント検査の結果を中継サーバ110(中継サーバプログラム111)に送信済みでない場合には(S917/NO)、ステップS918に進み、クライアント端末装置100のCPU201は、エージェント検査を中断する処理を行う。その後、ステップS919に進み、上述した検査失敗の処理が行われる。
一方、ステップS917の判断の結果、エージェント検査の結果を中継サーバ110(中継サーバプログラム111)に送信済みである場合には(S917/YES)、ステップS919に進み、上述した検査失敗の処理が行われる。
本例では、既に、エージェント検査の結果が中継サーバ110(中継サーバプログラム111)に送信済みであるため、ステップS917で肯定判断され、その後、ステップS919の検査失敗の処理が行われる。
次に、クライアント端末装置100のCPU201がエージェント検査の検査中に、中継サーバ110のCPU201が中継サーバ検査の失敗を判断した場合の相互通信について、図8と図9を用いて更に詳しく説明する。
例えば、前述した例と同じく、図8のステップS804の時間帯検査で失敗と判断された場合、中継サーバ110のCPU201は、ステップS812で検査の失敗通知をクライアント端末装置(エージェントプログラム101)に送信する(通信E)。その後、中継サーバ110のCPU201は、ステップS813において、上述した中断拒否の処理を行う。
このとき、クライアント端末装置100のCPU201は、図9のステップS902〜S908の各検査を実施中で検査結果が出ていない状態である。この状態で、通信Eを介して、クライアント端末装置100のCPU201は、ステップS916で中継サーバ110から検査の失敗通知を受信する。この場合、クライアント端末装置100では中継サーバ110に検査結果の通知は行っていないため、ステップS917で否定判断され、ステップS918において、実施中のエージェント検査の中断を実行する。エージェント検査を中断すると、ステップS919において、クライアント端末装置100のCPU201は、検査失敗の処理を行うことになる。
次に、図13のステップS1301に示すテキスト抽出処理の詳細について説明する。
図14〜図16は、図13のステップS1301のテキスト抽出処理における詳細な処理の一例を示すフローチャートである。このテキスト抽出処理は、暗号化データ通信を行う前の状態におけるテキストの情報を抽出するものである。以下、図14〜図16の説明を行う。
図13のステップS1301に示すテキスト抽出処理は、図9のステップS908に示すキーワード検査処理に関連した処理である。エージェントプログラム101を用いたエージェント検査におけるキーワード検査の対象となるものとしては、以下に示す第1の態様〜第3の態様のものが考えられる。
キーワード検査の対象となる第1の態様としては、クライアント端末装置100のCPU201が捕捉したアプリケーションを当該クライアント端末装置100の表示部209に表示している表示画面である。また、キーワード検査の対象となる第2の態様としては、当該アプリケーションへOSを介して入力される添付ファイルやクリップボード経由のテキストである。さらに、キーワード検査の対象となる第3の態様としては、クライアント端末装置100のキーボード207やポインティングデバイス208を介して入力される(即ち、キーロガー102の記録からの)テキストである。
まず、上述した第1の態様における、表示部209に表示されている表示画面からのテキスト抽出処理(S1301−1)について、図14を用いて詳しく説明する。
現在利用されているOSでは、一般的にウィンドウシステムが採用されていることから、クライアント端末装置100の表示部209に表示されているアプリケーションの表示画面は、各種のウィンドウから構成されており、それぞれ独立したウィンドウIDを持っている。
エージェントプログラム101による処理と中継サーバプログラム111による処理との同期によって、暗号化通信の開始を検出したクライアント端末装置100のCPU201は、まず、ステップS1401において、その時点でのアプリケーションを構成するすべてのウィンドウIDを列挙し、ウィンドウの抽出を行う。
続いて、ステップS1402において、クライアント端末装置100のCPU201は、ステップS1401で抽出した1つのウィンドウについて、テキスト属性を持つか否かを判断する。
ステップS1402の判断の結果、当該ウィンドウがテキスト属性を持つ場合には(S1402/YES)、ステップS1403に進む。ステップS1403に進むと、クライアント端末装置100のCPU201は、当該ウィンドウからテキストを抽出する処理を行う。続いて、ステップS1404において、クライアント端末装置100のCPU201は、ステップS1403で抽出したテキストをテキストリストに追加する処理を行う。
ステップS1404の処理が終了した場合、或いは、ステップS1402で当該ウィンドウがテキスト属性を持たないと判断された場合には(S1402/NO)、ステップS1405に進む。ステップS1405に進むと、クライアント端末装置100のCPU201は、ステップS1401で列挙したすべてのウィンドウIDのウィンドウに対してテキスト抽出処理を行ったか否かを判断する。
ステップS1405の判断の結果、ステップS1401で列挙したすべてのウィンドウIDのウィンドウに対しては未だテキスト抽出処理を行っていない場合には(S1405/NO)、ステップS1402に戻り、ステップS1402において、テキスト抽出処理を行っていないウィンドウを抽出して、その後の処理が行われる。
一方、ステップS1405の判断の結果、ステップS1401で列挙したすべてのウィンドウIDのウィンドウに対してテキスト抽出処理を行った場合には(S1405/YES)、図14のステップS1301−1に示すテキスト抽出処理を終了する。
なお、ステップS1403におけるテキストの抽出時には、上述した検査基準ルールに基づいて、例えば、パスワード属性を持つウィンドウを抽出対象外にすることができ、必要以上に監視しない健全な情報管理が実現可能である。
また、図14に示すフローチャートでは、ステップS1401でアプリケーションを構成するすべてのウィンドウIDを列挙し、当該ウィンドウIDに基づくすべてのウィンドウからテキストを抽出するようにしているが、例えば、ステップS1401で当該アプリケーションにおけるアクティブウィンドウ(現在開いているウィンドウ)のウィンドウIDのみを検出し、当該アクティブウィンドウのみからテキストを抽出する形態であっても適用可能である。
次に、上述した第2の態様における、アプリケーションへOSを介して入力される添付ファイルやクリップボード経由からのテキスト抽出処理(S1301−2及びS1301−3)について、図15を用いて詳しく説明する。
OSを介してアプリケーションへ入力される添付ファイルやクリップボードを経由したテキストを抽出するには、クライアント端末装置100のCPU201は、当該アプリケーションが「ファイルを読み込んだか」、或いは、「クリップボードの貼り付けを行ったか」を監視すればよい。しかしながら、クライアント端末装置100のCPU201が、図7のステップS711におけるアプリケーション捕捉処理以前の操作で、これらの操作を実施している場合がある。
そこで、クライアント端末装置100のCPU201は、第1の監視として、常時クリップボードからの貼り付けの監視を行うことと、第2の監視として、ファイルの読み込みを監視することを実施する。
第1の監視であるクリップボードからの貼り付けの監視は、常時、クリップボードを監視し、貼り付け操作が行われた段階で、貼り付け内容と貼り付け先のアプリケーション名を記録しておき、その記録に当該アプリケーションがあった場合、図15のステップS1301−2に示す一連の処理を実行する。
この場合、ステップS1501において、クライアント端末装置100のCPU201は、クリップボードの内容がテキストを持つ形式か否かを判断する。この判断の結果、クリップボードの内容がテキストを持つ形式である場合には(S1501/YES)、ステップS1502に進む。ステップS1502に進むと、クライアント端末装置100のCPU201は、クリップボードにおける当該テキストを抽出し、続いて、ステップS1503において、ステップS1502で抽出したテキストをテキストリストに追加する処理を行う。
ステップS1503の処理が終了した場合、或いは、ステップS1501でクリップボードの内容がテキストを持つ形式でないと判断された場合には(S1501/NO)、図15のステップS1301−2に示すテキスト抽出処理を終了する。
なお、クリップボードからの貼り付けの監視を行う際に、例えば、ステップS906におけるアプリケーション指定検査の設定項目を合わせて参照し、当該設定項目で指定されたアプリケーションのみを対象とするようにしてもよい。
第2の監視であるファイルの読み込みの監視は、OSのユーザインターフェース機能に相当するUIプログラムを監視し、当該UIプログラムと当該UIプログラム以外でやり取りされたファイル名をアプリケーション名とともに記録する方法や、OSのファイルAPIを監視することで、呼び出し元のプロセスからアプリケーション名を判定し、ファイル名をアプリケーション名とともに記録する方法等がある。これらの方法によって記録されたファイル名とアプリケーション名に当該アプリケーションがあった場合、図15のステップS1301−3に示す一連の処理を実行する。
この場合、ステップS1501において、クライアント端末装置100のCPU201は、ファイルの内容がテキストを持つ形式か否かを判断する。この判断の結果、ファイルの内容がテキストを持つ形式である場合には(S1501/YES)、ステップS1502に進む。ステップS1502に進むと、クライアント端末装置100のCPU201は、ファイルにおける当該テキストを抽出し、続いて、ステップS1503において、ステップS1502で抽出したテキストをテキストリストに追加する処理を行う。
ステップS1503の処理が終了した場合、或いは、ステップS1501でファイルの内容がテキストを持つ形式でない場合には(S1501/NO)、図15のステップS1301−3に示すテキスト抽出処理を終了する。
なお、ファイルの読み込みの監視を行う際に、例えば、ステップS906におけるアプリケーション指定検査の設定項目を合わせて参照し、当該設定項目で指定されたアプリケーションのみを対象とするようにしてもよい。
特に、ウェブメールサービスを行うHTTPSウェブサーバ150では、ファイルを添付して送信できるため、例えば、図14のステップS1403において、ウェブブラウザ103内で表示されているウィンドウの中で、ファイル名属性を持つものからのテキスト抽出を実施するとファイル名が判明するので、この時点で当該ファイルの読み込みの監視を実施してもよい。
さらに、すべてのファイルにおいてテキスト抽出が行われることはないため、ファイル形式を特定できないファイルについては、ファイルの読み込みの監視を失敗させたり、また、圧縮ファイルであれば展開し個々にテキスト抽出させたりという処理を実施してもよい。
次に、上述した第3の態様における、クライアント端末装置100のキーボード207やポインティングデバイス208を介して入力されるキーロガー102の記録からのテキスト抽出処理(S1301−4)について、図16を用いて詳しく説明する。
キーロガー102は、クライアント端末装置100上のキーボード207やポインティングデバイス208を介して入力される情報を記録するプログラムである。キーロガー102による処理では、図7のステップS711で行われるアプリケーション捕捉以後、明確に記録を取ることができるが、上述したクリップボードの監視と同様に、アプリケーション捕捉以前に入力された情報を検査対象に加えなければならない場合もある。
そこで、クライアント端末装置100のCPU201は、キーロガー102を用いた処理により、クライアント端末装置100のキーボード207やポインティングデバイス208を介して入力される情報から、現在、入力対象になっているアクティブなアプリケーションを判定し、そのアプリケーションの情報とともに当該アプリケーションへの入力を記録するようにする。また、例えば、ステップS906におけるアプリケーション指定検査の設定項目を合わせて参照し、当該設定項目で指定されたアプリケーションへの入力のみを記録するようにしてもよい。
まず、ステップS1601において、クライアント端末装置100のCPU201は、キーロガー102による記録が捕捉したアプリケーションへの入力記録であるか否かを判断する。具体的に、ステップS1601では、図7のステップS711で行われるアプリケーション捕捉以後は、より明確に入力情報を記録し、捕捉以前の情報と合わせて、捕捉したアプリケーションへの入力記録であるか否かを判断する。
ステップS1601の判断の結果、キーロガー102による記録が捕捉したアプリケーションへの入力記録である場合には、ステップS1602に進む。ステップS1602に進むと、クライアント端末装置100のCPU201は、テキストを抽出する処理を行う。続いて、ステップS1603において、クライアント端末装置100のCPU201は、ステップS1602で抽出したテキストをテキストリストに追加する処理を行う。
ステップS1603の処理が終了した場合、或いは、ステップS1601でキーロガー102による記録が捕捉したアプリケーションへの入力記録でないと判断された場合には(S1601/NO)、図16のステップS1301−4に示すテキスト抽出処理を終了する。
なお、キーロガー102による処理では、アプリケーションを構成するウィンドウID別に入力記録を取るため、例えば、パスワードを入力するウィンドウについては入力記録を取らない等の検査基準ルールを用いることで、過度なロギングを抑制し、健全な情報管理を実施することができる。
上述した図3〜図16に示すフローチャートの各処理について、各装置間の関連をより明らかにするために、その全体像を図17及び図18を用いて詳しく説明する。
図17及び図18は、クライアント端末装置100のCPU201によって実行されるエージェントプログラム101及びキーロガー102を用いた処理、並びに、中継サーバ110のCPU201によって実行される中継サーバプログラム111を用いた処理を含む制御処理関係の一例を示すシーケンス図である。
具体的に、図17は、クライアント端末装置100からHTTPSウェブサーバ150へ最初の接続を試みるときの制御処理関係を示すものであって、ハンドシェイクシーケンスの一例を示すシーケンス図である。
なお、図17のシーケンス図に従った処理を開始する時点では、クライアント端末装置100は、ウェブメールサービスを提供しているHTTPSウェブサーバ150へアクセスしようとしている状態にある。即ち、クライアント端末装置100と中継サーバ110との間の接続セッション121がない状態であるとする。
クライアント端末装置100のウェブブラウザ103が中継サーバ110を介してHTTPSウェブサーバ150へアクセスを実施したとき、接続セッション121が生成され、中継サーバプログラム111を用いた処理で暗号化通信の開始が検出される(S501/YES)。中継サーバ110のCPU201は、中継サーバプログラム111を用いた処理において、クライアント端末装置100(エージェントプログラム101)と連携するための制御セッション122を生成する(S507、通信A)。そして、中継サーバ110のCPU201は、検査基準ルールと時間情報の同期を行い(S504、通信B)、さらに、クライアント端末装置100からHTTPSウェブサーバ150へ接続しようとしているアプリケーションを捕捉するようクライアント端末装置100に命令を出す(S602、通信C)。
続いて、クライアント端末装置100のCPU201は、エージェントプログラム101を用いた処理において、キーロガー102にアプリケーションの捕捉指令を出して、ウェブブラウザ103の監視を開始し、さらに、中継サーバ110にアプリケーションの捕捉成功通知を返信する(S707、通信D)。
中継サーバ110と同期が取れた後、クライアント端末装置100のCPU201は、エージェントプログラム101を用いてエージェント検査を実施する(S901)。一方、中継サーバ110のCPU201は、中継サーバプログラム111を用いて中継サーバ検査を実施する(S801)。
そして、中継サーバ110のCPU201は、クライアント端末装置100からのエージェント検査の成功通知(S910に基づくS806、通信F)と検査結果の受領通知(S808、通信G)をもって検査完了とし、中継サーバ検査を含めてすべての検査が成功した場合に、図8のステップS810において、クライアント端末装置100のウェブブラウザ103からのHTTPSウェブサーバ150に対する暗号化通信の接続要求における中継を許可するようにしている。
その後、中継サーバ110のCPU201は、中継サーバプログラム111を用いた処理で、ウェブブラウザ103からの暗号化通信の接続要求をHTTPSウェブサーバ150に中継する(S1701)。そして、中継サーバ110のCPU201は、HTTPSウェブサーバ150から送られたサーバ証明書を受信して(S1702)、これをクライアント端末装置100のウェブブラウザ103に送信して中継を行う(S1703)。その後、中継サーバ110のCPU201は、ウェブブラウザ103から送られた共通鍵を受信して(S1704)、これをHTTPSウェブサーバ150に送信して中継を行う(S1705)。その後、中継サーバ110のCPU201は、HTTPSウェブサーバ150から送られた、共通鍵で暗号化された暗号化データを受信して(S1706)、これをウェブブラウザ103に送信して中継を行う(S1707)。
以上の図17に示す処理により、クライアント端末装置100のウェブブラウザ103には、HTTPSウェブサーバ150が提供するウェブメールサービスのログイン画面が表示されている状態となる。
次に、図18のシーケンス図の説明を行う。
具体的に、図18は、図17に示すハンドシェイクシーケンスを経た後、クライアント端末装置100のCPU201がエージェントプログラム101を用いた処理で検出したウェブブラウザ103の入力検査の制御処理関係を示すものであって、検査シーケンスの一例を示すシーケンス図である。
ここで、クライアント端末装置100のウェブブラウザ103では、HTTPSウェブサーバ150が提供するウェブメールサービスにログインし、利用者がウェブメールを作成して「送信」ボタンを押した状態とする。
ウェブブラウザ103を捕捉中のクライアント端末装置100のCPU201は、キーロガー102を用いた処理で、ウェブブラウザ103へのキー入力を記録している。また、クライアント端末装置100のCPU201は、エージェントプログラム101を用いた処理で、ウェブブラウザ103へのファイル添付の監視によるテキスト抽出処理や(図15のS1301−3)、クリップボード経由の貼り付けの監視によるテキスト抽出処理を行っている(図15のS1301−2)。
ここで、ウェブブラウザ103の画面上で送信ボタンが押されると、ウェブブラウザ103は、HTTPSウェブサーバ150との暗号化通信を開始する状態となり、この際、中継サーバ110のCPU201は、ウェブブラウザ103からの暗号化通信の開始要求を受信する(S501)。続いて、中継サーバ110のCPU201は、中継サーバプログラム111を用いた処理で、クライアント端末装置100(エージェントプログラム101)にアプリケーション捕捉指令を送信する(S602、通信C)。
ここで、クライアント端末装置100のCPU201は、既にウェブブラウザ103を捕捉しているため、アプリケーションの捕捉成功通知を返信する(S707、通信D)。
クライアント端末装置100のCPU201は、エージェントプログラム101を用いた処理で、ウェブブラウザ103の表示画面の状態を捕捉し、テキスト抽出処理を実施する(図14のS1301−1)。さらに、クライアント端末装置100のCPU201は、キーロガー102の記録からのテキスト抽出処理を実施する(図16のS1301−4)。そして、クライアント端末装置100のCPU201は、上述したテキスト抽出処理によるキーワード検査を含むエージェント検査を実施する(S901)。
一方、中継サーバ110のCPU201は、中継サーバプログラム111を用いた処理で、中継サーバ検査を実施し(S801)、クライアント端末装置100からのエージェント検査の結果を待つ。
そして、中継サーバ110のCPU201は、クライアント端末装置100からのエージェント検査の成功通知(S910に基づくS806、通信F)と検査結果の受領通知(S808、通信G)をもって検査完了とし、中継サーバ検査を含めてすべての検査が成功した場合に、図8のステップS810において、クライアント端末装置100のウェブブラウザ103からのHTTPSウェブサーバ150に対する暗号化通信の送信要求における中継を許可するようにしている。
その後、中継サーバ110のCPU201は、中継サーバプログラム111を用いた処理で、ウェブブラウザ103からの暗号化通信の送信要求をHTTPSウェブサーバ150に中継する(S1801)。そして、中継サーバ110のCPU201は、HTTPSウェブサーバ150から送られたセッションIDを受信して(S1802)、これをクライアント端末装置100のウェブブラウザ103に送信して中継を行う(S1803)。その後、中継サーバ110のCPU201は、ウェブブラウザ103から送られた暗号化データを受信して(S1804)、これをHTTPSウェブサーバ150に送信して中継を行う(S1805)。その後、中継サーバ110のCPU201は、HTTPSウェブサーバ150から送られた暗号化データを受信して(S1806)、これをウェブブラウザ103に送信して中継を行う(S1807)。
以上の図18に示す処理により、クライアント端末装置100のウェブブラウザ103は、HTTPSウェブサーバ150が提供するウェブメールサービスから、暗号化された通信経路を介して、メールの送信を完了した状態となる。
次に、本実施形態の情報処理システム1で用いる検査基準ルールについて説明する。
図19は、本発明の実施形態に係る情報処理システムで用いる検査基準ルールの一例を示す模式図である。図19には、本実施形態の情報処理システム1で行われる検査項目の一例と、各検査項目の検査を行う場所を示す検査位置、及び、その各検査項目の検査に係る検査基準ルールの設定内容が示されている。
図20は、図19に示す検査基準ルールを設定するための設定画面の一例を示すイメージ図である。この図20に示す設定画面は、図2に示す表示部209に表示され、また、例えばポインティングデバイス208から入力を行うことで、検査基準ルールの設定がなされる。また、図20には、図19に示す検査項目ごとに、検査基準ルールの設定を行うための検査項目選択部2001〜2009が設けられており、図20に示す例では、キーワード検査の検査項目選択部2006が選択されて、当該キーワード検査の検査基準ルールの設定を行う場合が示されている。
次に、エージェントプログラム101と中継サーバプログラム111を用いた制御セッションのプロトコルについて説明する。
図21は、エージェントプログラム101と中継サーバプログラム111を用いた制御セッションのプロトコルの一例を示す模式図である。図21は、各通信(通信A〜通信G)ごとに、エージェントプログラム101と中継サーバプログラム111を用いた制御セッションのプロトコルの一例が示されている。
次に、図5のステップS506における非暗号化通信検査処理について説明する。
図22は、中継サーバ110における中継サーバプログラム111を用いた非暗号化通信検査処理の一例を示すフローチャートである。
この図22に示す非暗号化通信検査処理は、図5のステップS501において、クライアント端末装置100から非暗号化通信に係る接続要求を受信した際に行われる。以下では、この図22と共に、図11及び図13を参照して、非暗号化通信検査処理について説明を行う。
上述した暗号化通信の検査と異なり、非暗号化通信の検査では、中継サーバ110のCPU201は、中継サーバプログラム111を用いた処理で、すべての通信を検査することができる。このとき、非暗号化通信検査における検査対象となる代表的なデータは、接続先URL(送信先URL)を始めとしたヘッダ部や、HTTP通信上のGET接続要求におけるクエリー部及びPOST接続要求におけるメッセージボディ部に相当するデータである。なお、非暗号化通信検査の対象となるデータは、これらに限定されるものではなく、例えば、FTP通信データなど、様々な非暗号化プロトコルを介した通信データを対象とすることは言うまでもない。
クライアント端末装置100のウェブブラウザ103から非暗号化通信に係る接続要求があり、ステップS506の非暗号化通信検査処理が開始されると、まず、ステップS2201において、中継サーバ110のCPU201は、その非暗号化通信に係る送信先について、送信先の検査処理を行う。このステップS2201で行われる送信先検査処理は、図11に示す処理と同様の処理である。
この送信先検査では、予め送信先(例えば、URLなど)に対して、中継許可/中継禁止を設定したり、正規表現を利用して送信先を設定したりした送信先リストを用意しておく。なお、この送信先リストは、上述した検査基準ルールに包含されており、最新のものは、中継サーバ110のHDD204に保存されている。
ここで、図11の説明を行う。
図11のステップS1101において、中継サーバ110のCPU201は、ウェブブラウザ103から要求された送信先が自装置のHDD204に記憶されている送信先リストに存在するか否かを判断する(即ち、送信先が検査基準ルールに一致するか否かを判断する)。この判断の結果、当該送信先が送信先リストに存在しない場合には(S1101/NO)、中継サーバ110のCPU201は、送信先検査が失敗と判断する。
なお、図11に示す処理においては、当該送信先が送信先リストに存在しない場合に(S1101/NO)、送信先検査が失敗と処理するようにしているが、管理基準に応じて、この場合を送信先検査が成功として処理するようにしてもよい。
一方、ステップS1101の判断の結果、当該送信先が送信先リストに存在する場合には(S1101/YES)、ステップS1102に進む。ステップS1102に進むと、中継サーバ110のCPU201は、送信先リストの当該送信先の設定が中継許可となっているか否かを判断する。この判断の結果、送信先リストの当該送信先の設定が中継許可となっていない場合には(S1102/NO)、即ち、当該送信先の設定が中継禁止等となっている場合には、中継サーバ110のCPU201は、送信先検査が失敗と判断する。
一方、ステップS1102の判断の結果、送信先リストの当該送信先の設定が中継許可となっている場合には(S1102/YES)、中継サーバ110のCPU201は、送信先検査が成功と判断する。
ここで、図22の説明に戻る。
ステップS2201で送信先検査処理が行われると、続いて、ステップS2202において、中継サーバ110のCPU201は、ステップS2201における送信先検査が成功したか否かを判断する。
ステップS2202の判断の結果、ステップS2201における送信先検査が失敗した場合には(S2202/NO)、ステップS2208に進み、中継サーバ110のCPU201は、ウェブブラウザ103からの非暗号化通信(HTTPデータ送信)に対して、中継を拒否する処理を行う。
一方、ステップS2202の判断の結果、ステップS2201における送信先検査が成功した場合には(S2202/YES)、ステップS2203に進む。ステップS2203に進むと、中継サーバ110のCPU201は、時間帯の検査処理を行う。このステップS2203で行われる時間帯検査処理は、図8のステップS804で説明した時間帯検査処理と同様の処理である。
具体的に、ステップS2203の時間帯検査では、任意の時間帯に対して、予め中継許可/中継禁止を設定した時間帯設定リストを用意しておき、この時間帯設定リストを中継サーバ110のHDD204に保存しておく。そして、中継サーバ110のCPU201は、ウェブブラウザ103から非暗号化通信の接続要求を受信した時点(図5のS501)における中継サーバ110の時間T1に対して、当該時間帯設定リストを参照し、中継許可または中継禁止を検出することで、時間帯の検査処理を行う。この場合、中継許可が検出された場合には時間帯検査が成功となり、中継禁止が検出された場合には時間帯検査が失敗となる。
また、時間帯検査では、当該時間T1が時間帯設定リストに設定されていなかった場合、その時間帯について初期値をHDD204に設定しておくこともできる。この初期値では、「すべて中継許可」或いは「すべて中継禁止」のいずれかを設定することが可能である。当該時間T1が時間帯設定リストに設定されていない場合には、初期値を参照し、「すべて中継許可」が設定されている場合には時間帯検査が成功となり、「すべて中継禁止」が設定されている場合には時間帯検査が失敗となる。
なお、例えば、時間T1が時間帯設定リストの複数の設定項目に該当する場合を想定して、当該時間帯設定リストの設定項目ごとに予め優先順位を設定するようにしてもよい。この際、優先順位の付与方法は、例えば、時間帯設定リストの記述順にするなどしてもよい。この場合、時間T1に該当する時間帯設定リストの最上位の設定項目に中継許可が設定されている場合には時間帯検査が成功となり、当該最上位の設定項目に中継禁止が設定されている場合には時間帯検査が失敗となる。
続いて、ステップS2204において、中継サーバ110のCPU201は、ステップS2203における時間帯検査が成功したか否かを判断する。
ステップS2204の結果、ステップS2203における時間帯検査が失敗した場合には(S2204/NO)、ステップS2208に進み、中継サーバ110のCPU201は、上述した中継拒否の処理を行う。
一方、ステップS2204の結果、ステップS2203における時間帯検査が成功した場合には(S2204/YES)、ステップS2205に進む。ステップS2205に進むと、中継サーバ110のCPU201は、キーワードの検査処理を行う。
このステップS2205のキーワード検査処理は、図9のステップS908における図13に示すキーワード検査処理と同じ処理であるが、検査対象が非暗号化通信であるため、図13のステップS1301のテキスト抽出処理については実施する必要がなく、非暗号化通信データに対して、直接キーワード検査が実施できる。
ステップS2205のキーワード検査では、予め用意したキーワードに対して中継許可/中継禁止を設定したキーワードリストを用意しておき、このキーワードリストを中継サーバ110のHDD204に保存しておく。なお、このキーワードリストは、検査基準ルールに包含されており、最新のものである。
ここで、検査対象のキーワードとしては、単一キーワードから構成されるものや、複数のキーワードから構成されるものがある。複数のキーワードから構成されるものとしては、例えば、AND演算、OR演算、NOT演算等の各論理演算と、括弧記号を使った演算の優先順位指定を行うことができる。また、ダブルクォーテーション記号でキーワードを囲むことで、空白記号を含む複数単語から構成される単一キーワードを設定することもできる。
さらに、検査基準ルールに記述されている設定により、例えば、全角数字文字と半角数字文字、丸文字で囲まれた数字文字等の複数の書式形態を持つが同一の意味を持つ複数の文字を同一文字として扱うこともできる。例えば、数字の1を例にすると、「1」、「(1)」、「一」、「壱」等は、すべて「1」として扱うことができる。
ここで、図13の説明を行う。
ステップS2205のキーワード検査処理では、まず、非暗号化通信データから直接取り出したテキストに基づいてテキストリストを作成し、図13にステップS1302において、中継サーバ110のCPU201は、当該テキストリストの中から1つのテキストを取り出す。
続いて、ステップS1303において、中継サーバ110のCPU201は、ステップS1302で取り出したテキストに対して、検査基準ルール(キーワードリスト)に基づくキーワード検査を行う。具体的に、このステップS1303のキーワード検査では、ステップS1302で取り出したテキストが上述したキーワードリストに存在するか否かや、存在する場合にキーワードリストの当該テキスト(キーワード)の設定が中継許可であるか否か等が検査される。
続いて、ステップS1304において、中継サーバ110のCPU201は、ステップS1302で取り出したテキストが上述したキーワードリストに存在するか否かを判断する(即ち、ステップS1302で取り出したテキストが検査基準ルールに一致するか否かを判断する)。この判断の結果、ステップS1302で取り出したテキストがキーワードリストに存在しない場合には(S1304/NO)、ステップS1306に進む。
一方、ステップS1304の判断の結果、ステップS1302で取り出したテキストがキーワードリストに存在する場合には(S1304/YES)、ステップS1305に進む。ステップS1305に進むと、中継サーバ110のCPU201は、キーワードリストの当該テキスト(キーワード)の設定が中継許可となっているか否かを判断する。この判断の結果、キーワードリストの当該テキスト(キーワード)の設定が中継許可となっていない場合には(S1305/NO)、即ち、当該テキスト(キーワード)の設定が中継禁止となっている場合には、中継サーバ110のCPU201は、キーワード検査が失敗と判断する。
一方、ステップS1305の判断の結果、キーワードリストの当該テキスト(キーワード)の設定が中継許可となっている場合には(S1305/YES)、ステップS1306に進む。
ステップS1306に進むと、中継サーバ110のCPU201は、テキストリストのすべてのテキストについてキーワード検査を行ったか否かを判断する。この判断の結果、テキストリストのすべてのテキストについては未だキーワード検査を行っていない場合には(S1306/NO)、ステップS1302に戻り、ステップS1302において、キーワード検査を行っていないテキストをテキストリストから取り出して、ステップS1303以降の処理が行われる。
一方、ステップS1306の判断の結果、テキストリストのすべてのテキストについてキーワード検査を行った場合には(S1306/YES)、非暗号化通信データから取り出したすべてのテキストについて中継禁止の設定がされていないため、中継サーバ110のCPU201は、キーワード検査が成功と判断する。
ここで、図22の説明に戻る。
ステップS2205でキーワード検査処理が行われると、続いて、ステップS2206において、中継サーバ110のCPU201は、ステップS2205におけるキーワード検査が成功したか否かを判断する。
ステップS2206の判断の結果、ステップS2205におけるキーワード検査が失敗した場合には(S2206/NO)、ステップS2208に進み、中継サーバ110のCPU201は、上述した中継拒否の処理を行う。
一方、ステップS2206の結果、ステップS2205におけるキーワード検査が成功した場合には(S2206/YES)、ステップS2207に進み、中継サーバ110のCPU201は、クライアント端末装置100のウェブブラウザ103からのHTTPウェブサーバ160に対する非暗号化通信の接続要求における中継を許可し、当該非暗号化通信の接続要求をHTTPウェブサーバ160に中継する。
以上説明したように、本発明の実施形態に係る情報処理システム1を構成するクライアント端末装置100及び中継サーバ110では、以下の処理を行うようにしている。
クライアント端末装置100は、暗号化通信サーバであるHTTPSウェブサーバ150と暗号化通信を行うための条件が定められた検査基準ルール(図19)を自装置のHDD204に記憶している。
そして、まず、クライアント端末装置100は、HTTPSウェブサーバ150に対して暗号化通信を行うアプリケーションを特定するようにしている(S711)。
また、クライアント端末装置100は、暗号化通信を行う前のデータであって、ステップS711で特定されたアプリケーションを介して中継サーバ110に送信されるデータを抽出するようにしている(例えば、S1301)。
そして、クライアント端末装置100は、抽出したデータが、前記検査基準ルールの条件を満たすか否かを判定する第1の判定を行うようにしている(例えば、S909)。その後、クライアント端末装置100は、第1の判定結果を中継サーバ110に送信するようにしている(S910、S914)。
そして、中継サーバ110は、第1の判定結果に応じて、HTTPSウェブサーバ150にデータを送信するか否かを決定するようにしている(S809)。
なお、上述した実施形態では、上述した第1の判定をクライアント端末装置100側で行う形態を示したが、当該第1の判定を中継サーバ110側で行うようにした形態も本発明に適用可能である。
この場合、クライアント端末装置100では、前記抽出したデータを制御セッション122を介して中継サーバ110に送信するようにする。そして、中継サーバ110は、前記抽出したデータが、自装置のHDD204に記憶されている検査基準ルールの条件を満たすか否かを判定する第1の判定を行う形態を採ることになる。その後、上述した実施形態と同様に、中継サーバ110は、第1の判定結果に応じて、HTTPSウェブサーバ150にデータを送信するか否かを決定するようにする(S809)。
また、クライアント端末装置100と中継サーバ110との間には、暗号化通信(或いは非暗号化通信)を行うための接続セッション(第1のセッション)121と、接続セッション121とは独立して設けられ、制御を行うための制御セッション(第2のセッション)122とが形成されるようになっている。
そして、クライアント端末装置100は、制御セッション122を用いて、前記第1の判定の判定結果を中継サーバ110に送信するようにしている(S910、S914)。
また、中継サーバ110は、最新の検査基準ルールを保持している。そして、クライアント端末装置100は、中継サーバ110が保持する最新のルールと自装置のHDD204に記憶されている検査基準ルールとが一致しない場合、中継サーバ110が保持する最新のルールに基づいて、自装置のHDD204に記憶されている検査基準ルールを更新するようにしている(S708)。
また、この検査基準ルールには、図19に示すように複数の条件が定められており、クライアント端末装置100が行う前記第1の判定では、検査基準ルールに定められている複数の条件のうちの一部の条件を満たすか否かを判定し(S902〜S909)、一方、中継サーバ110は、検査基準ルールに定められている前記一部の条件以外の他の条件を満たすか否かを判定する第2の判定を行うようにしている(S802〜S805)。
そして、中継サーバ110では、前記第1の判定の判定結果と前記第2の判定の判定結果とに基づいて、HTTPSウェブサーバ150にデータを送信するか否かを決定するようにしている(S805、S809)。
さらに、クライアント端末装置100は、非暗号化通信サーバであるHTTPウェブサーバ160と非暗号化通信が可能に構成されている。
そして、中継サーバ110では、クライアント端末装置100からの通信接続要求に従って(S501)、クライアント端末装置100から送信されるデータをHTTPSウェブサーバ150又はHTTPウェブサーバ160に中継するようにしている。
以上説明したように、クライアント端末装置100におけるエージェントプログラム101を用いた処理と、中継サーバ110における中継サーバプログラム111を用いた処理とを、制御セッション122を介して連携させることで、暗号化通信を行う際に、第三者による暗号化データの復号といった暗号の枠組みを壊すことなく、暗号化通信の安全性を確保しつつ、情報の管理及び検査を実施することが可能となる。例えば、本実施形態は、ウェブメールサービスを始めとするHTTPSを利用した暗号化通信或いはHTTPを利用した非暗号化通信の監視及び検査に用いて好適である。
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な内容で構成されることは言うまでもない。
以上、本発明に係る一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様を取ることが可能であり、具体的には、中継サーバ110及びクライアント端末装置100については、それぞれ複数の機器から構成されるシステムに適用しても、ひとつの機器からなるシステムに適用してもよい。
また、本発明は、システム或いは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記録媒体を当該システム或いは装置に読み出すことによって、そのシステム或いは装置が、本発明の効果を享受することが可能となる。
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステム或いは装置が、本発明の効果を享受することが可能となる。
なお、上述した各実施形態及びその変形例を組み合わせた構成もすべて本発明に含まれるものである。