説明

中継処理装置、及びその制御方法、プログラム

【課題】 クライアント端末が接続要求する情報処理装置の安全性の確認作業を軽減すると共に、各クライアント端末における該情報処理装置に係る安全性を共通の基準で確認し、該クライアント端末と該情報処理装置との間で通信される通信データの中継の可否を制御すること。
【解決手段】 クライアント端末と情報処理装置との間で通信される通信データを中継する仕組みであって、クライアント端末と情報処理装置との間の通信データを中継するために用いられるSSL通信を情報処理装置と確立する際に情報処理装置から取得される情報処理装置の公開鍵証明書と、中継処理装置が信頼する認証局により発行された公開鍵証明書とを用いて、当該情報処理装置の公開鍵証明書が前記認証局により発行されたものであるか否かを判定し、その判定結果に従って、クライアント端末と情報処理装置との間の通信データの中継を許可するか否かを決定することを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、中継処理装置、及びその制御方法、プログラムに関し、特に、クライアント端末と情報処理装置との間で通信される通信データの中継の可否を制御する技術に関するものである。
【背景技術】
【0002】
近年、インターネットを介した情報交換が活発になるにつれて、重要な情報を、SSL(Secure Socket Layer)・TLS(Tranport Layer Security)通信により暗号化して送信することが頻繁に行われるようになっている。
【0003】
SSL・TLS通信の安全性は、サーバ公開鍵証明書を検証することによって通信相手の真正性を確認することに基づいている。
【0004】
Webブラウザを使用して、SSL・TLS通信を提供するWebサーバにアクセスした場合、サーバ公開鍵証明書の検証に失敗した旨の警告が表示されることがある。この時、実際にアクセスを行うかどうかは利用者の判断に委ねられるが、利用者によっては警告の内容を理解できないために警告を無視してWebサーバへのアクセスを行う場合があることが問題になっている。
【0005】
また、個人運営のWebサーバなどで自己署名証明書を用いることや、あるドメインを持つWebサーバに発行されたサーバ公開鍵証明書を、サブドメインを持つWebサーバでも用いる場合が考えられるが、そのような場合も、通常クライアント端末に用いられるWebブラウザでは警告が表示されてしまう。この時、警告が表示されるWebサーバが、自己署名証明書を用いているWebサーバなのか、または、あるドメインに対するサーバ公開鍵証明書を使用するサブドメインのWebサーバであり、安全であると考えられるサーバなのか、あるいは悪意を持つ攻撃者によるなりすましのWebサーバであるかなどを判断する方法を利用者は持ちえないことも問題となる。
【0006】
安全なWebサーバであるかを判断する手法の1つとして、非特許文献1では、Webブラウザの拡張機能が、信頼済みWebサーバと通信して得たサーバ公開鍵証明書が確認されていた期間を、サーバ公開鍵証明書の検証に失敗したWebサーバの安全性を利用者が確認するための情報として使用することが記載されている。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】Dan Wendlandt、David G. Anderson、Adrian Perring著「Perspectives: Improving SSH−style Host Authentication with Multi−Path Probing」
【0008】
<URL:http://www.usenix.org/event/usenix08/tech/full_papers/wendlandt/wendlandt_html/index.html>
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、非特許文献1に記載の方法においては、サーバ公開鍵証明書の検証に失敗したWebサーバの安全性の確認は利用者に委ねられたままであり、依然として警告を無視して該Webサーバにアクセスを行う利用者を抑制することはできない。また、企業などの組織によっては、クライアント端末の違いから、非特許文献1のWebブラウザの拡張機能を導入できない端末が存在し、そのような端末から、安全性の確認が出来ていないWebサーバにアクセスしてしまうことが考えられる。
【0010】
本発明の目的は、クライアント端末のユーザによる、該クライアント端末が接続要求する情報処理装置の安全性の確認作業を軽減可能にすると共に、各クライアント端末における該情報処理装置に係る安全性を共通の基準で確認し、該クライアント端末と該情報処理装置との間で通信される通信データの中継の可否を制御することである。
【課題を解決するための手段】
【0011】
本発明は、クライアント端末と情報処理装置との間で通信される通信データを中継する中継処理装置であって、前記情報処理装置から取得される公開鍵証明書が、前記中継処理装置が信頼する認証局により発行されたものであるか否かを判定するために用いられる、前記認証局が発行する公開鍵証明書を記憶する記憶手段と、前記クライアント端末と前記情報処理装置との間の前記通信データを中継するために用いられるSSL通信を前記情報処理装置と確立する確立手段と、前記確立手段で前記情報処理装置とSSL通信を確立する際に前記情報処理装置から取得される前記情報処理装置の公開鍵証明書と、前記記憶手段に記憶されている公開鍵証明書とを用いて、当該公開鍵証明書が前記認証局により発行されたものであるか否かを判定する判定手段と、前記判定手段による判定結果に従って、前記クライアント端末と前記情報処理装置との間の通信データの中継を許可するか否かを決定する決定手段と、を備えることを特徴とする。
【0012】
また、本発明は、クライアント端末と情報処理装置との間で通信される通信データを中継する、前記情報処理装置から取得される公開鍵証明書が、前記中継処理装置が信頼する認証局により発行されたものであるか否かを判定するために用いられる、前記認証局が発行する公開鍵証明書を記憶する記憶手段を備えた中継処理装置の制御方法であって、前記確立手段が、前記クライアント端末と前記情報処理装置との間の前記通信データを中継するために用いられるSSL通信を前記情報処理装置と確立する確立工程と、前記判定手段が、前記確立工程で前記情報処理装置とSSL通信を確立する際に前記情報処理装置から取得される前記情報処理装置の公開鍵証明書と、前記記憶手段に記憶されている公開鍵証明書とを用いて、当該公開鍵証明書が前記認証局により発行されたものであるか否かを判定する判定工程と、前記決定手段が、前記判定工程による判定結果に従って、前記クライアント端末と前記情報処理装置との間の通信データの中継を許可するか否かを決定する決定工程と、を備えることを特徴とする。
【0013】
また、本発明は、クライアント端末と情報処理装置との間で通信される通信データを中継する中継処理装置で実行可能なプログラムであって、前記中継処理装置を、前記情報処理装置から取得される公開鍵証明書が、前記中継処理装置が信頼する認証局により発行されたものであるか否かを判定するために用いられる、前記認証局が発行する公開鍵証明書を記憶する記憶手段と、前記クライアント端末と前記情報処理装置との間の前記通信データを中継するために用いられるSSL通信を前記情報処理装置と確立する確立手段と、前記確立手段で前記情報処理装置とSSL通信を確立する際に前記情報処理装置から取得される前記情報処理装置の公開鍵証明書と、前記記憶手段に記憶されている公開鍵証明書とを用いて、当該公開鍵証明書が前記認証局により発行されたものであるか否かを判定する判定手段と、前記判定手段による判定結果に従って、前記クライアント端末と前記情報処理装置との間の通信データの中継を許可するか否かを決定する決定手段として機能させることを特徴とする。
【発明の効果】
【0014】
本発明によれば、クライアント端末のユーザによる、該クライアント端末が接続要求する情報処理装置の安全性の確認作業を軽減可能にすると共に、各クライアント端末における該情報処理装置に係る安全性を共通の基準で確認し、該クライアント端末と該情報処理装置との間で通信される通信データの中継の可否を制御することができる。
【図面の簡単な説明】
【0015】
【図1】本発明の実施形態における中継処理システムの構成を示す図である
【図2】本発明の実施形態における各種端末のハードウェア構成を示す図である。
【図3】本発明の実施形態における中継処理装置の基本的な処理フローを示す図である。
【図4】本発明の実施形態における中継処理装置のAPデータ中継処理フローを示す図である。
【図5】本発明の実施形態における中継処理装置の通信セッション管理表の例を示す図である。
【図6】本発明の実施形態における中継処理装置の保持する証明書付加情報の例を示す図である。
【図7】本発明の実施形態における中継処理システムのSSLセッションを新規作成した場合の通信処理フローの例を示す図である。
【図8】本発明の実施形態における中継処理システムのSSLセッションの再利用を行った場合の通信処理フローの例を示す図である。
【発明を実施するための形態】
【0016】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
【0017】
図1は、本発明の実施形態における中継処理システムの構成を示す図である。
【0018】
尚、図1のネットワーク上に接続される各種端末と各種装置の構成は一例であり、用途や目的に応じて様々な構成例があることは言うまでもない。
【0019】
中継処理システムは、利用者端末110と中継処理装置120と情報提供処理装置130から構成される。利用者端末110と中継処理装置120、中継処理装置120と情報提供処理装置130とはそれぞれネットワークを介して相互に通信可能に接続されている。
【0020】
利用者端末110は、クライアント端末の適用例である。また、中継処理装置120は、本発明の中継処理装置の適用例である。また、情報提供処理装置130は、情報処理装置の適用例である。
【0021】
利用者端末110は、情報提供処理装置130が提供するコンテンツデータを取得し表示するために使用する情報処理装置である。利用者端末110は、閲覧処理部111とCA証明書保存部112とを備えている。
【0022】
閲覧処理部111は、一般にWebブラウザと呼ばれるHTTPプロトコル、HTTPSプロトコルのクライアントプログラムに相当する機能処理部である。閲覧処理部111は利用者からの指示を受付け、中継処理装置120を経由して情報提供処理装置130へ通信要求メッセージを送信し、該通信要求メッセージに対して情報提供処理装置130から応答された通信応答メッセージを受信し、該通信応答メッセージを整形したものを利用者端末110のCRT210等に表示する機能を備えている。この時、閲覧処理部111と中継処理装置120のクライアント通信部121との間で開設される通信コネクションをプロキシ回線141とする。
【0023】
ここで、プロキシ回線141(第1のSSL通信)は、利用者端末110と中継処理装置120との間で確立されるSSLによる暗号化通信であって、物理的な回線を示しているのではなく、暗号化通信を行う仮想的な(論理的な)通信を示している。
【0024】
CA証明書保存部112は、中継処理装置120のサーバ公開鍵証明書を検証する際に用いる利用者端末110が信頼するCA公開鍵証明書を記憶する記憶領域である。すなわち、CA証明書保存部112には、利用者が信頼する第三者の認証局(CA)のCA公開鍵証明書(該CAが発行した公開鍵を含む)が記憶されている。このCA公開鍵証明書を用いて、中継処理装置120のサーバ公開鍵証明書の正当性を検証することが可能となる。
【0025】
中継処理装置120は、一般にプロキシサーバと呼ばれるプログラムまたは装置がもつ機能を備える情報処理装置である。中継処理装置120は、利用者端末110から送信される通信要求メッセージを受信し、宛先である情報提供処理装置130へ該通信要求メッセージを中継し、該情報提供処理装置130から応答される通信応答メッセージを、該利用者端末110へ中継することができる。
【0026】
中継処理装置120は、クライアント通信部121と、サーバ通信部122と、クライアント側暗号処理部123と、通信制御部124と、サーバ側暗号処理部125と、代理用暗号鍵保存部126と、証明書付加情報保存部127と、CA証明書保存部128と、管理表保存部129と、から構成される。
【0027】
クライアント通信部121は、利用者端末110の閲覧処理部111から接続要求を受け付け、通信要求メッセージを受信し、通信応答メッセージを閲覧処理部111に送信する機能を備える。

【0028】
サーバ通信部122は、情報提供処理装置130のサーバ処理部131へ接続し、通信要求メッセージをサーバ処理部131に送信し、サーバ処理部131から通信応答メッセージを受信する機能を備える。
【0029】
クライアント側暗号処理部123は、利用者端末110の閲覧処理部111との通信回線(プロキシ回線141)において、SSL(TLSを含む)を確立するためのサーバ側処理を行う機能を備える。
【0030】
通信制御部124は、クライアント通信部121が行う処理と、クライアント側暗号処理部123が行う処理と、サーバ通信部122が行う処理と、サーバ側暗号処理部125が行う処理と、の間で同期制御処理を行う機能をもつ。また、通信制御部124は、該同期制御処理において関連する情報を、管理表保存部129へ記憶させる機能と、管理表保存部129に記憶されているデータを参照する機能とを備えている。
【0031】
サーバ側暗号処理部125は、情報提供処理装置130のサーバ処理部131との通信回線(サーバ回線142)において、SSL(TLSを含む)コネクションのクライアント側処理を行う機能を備える。
【0032】
ここで、サーバ回線142(第2のSSL通信)は、中継処理装置120と情報提供処理装置130との間で確立されるSSLによる暗号化通信であって、物理的な回線を示しているのではなく、暗号化通信を行う仮想的な(論理的な)通信である。
【0033】
代理用暗号鍵保存部126は、プロキシ回線141上のSSL(TLSを含む)ハンドシェイク処理の中で利用される中継処理装置120のサーバ公開鍵証明書と秘密鍵を記憶している記憶領域である。
【0034】
CA証明書保存部128は、情報提供処理装置130のサーバ公開鍵証明書を検証する際に用いる、中継処理装置120が信頼するCA公開鍵証明書を記憶する記憶領域である。すなわち、CA証明書保存部128には、中継処理装置120(すなわち、例えば、社内の全ての利用者端末)が信頼する第三者の認証局(CA)のCA公開鍵証明書(該CAが発行した公開鍵を含む)が記憶されている。このCA公開鍵証明書を用いて、情報提供処理装置130のサーバ公開鍵証明書の正当性を検証することが可能となる。
【0035】
すなわち、CA証明書保存部128は、情報提供処理装置130から取得される公開鍵証明書が、中継処理装置が信頼する認証局により発行されたものであるか否かを判定するために用いられる、認証局が発行する公開鍵証明書を記憶している(記憶手段)。
【0036】
証明書付加情報保存部127(図6)は、あらかじめ中継処理装置120で保持しておく、情報提供処理装置のサーバ公開鍵証明書に関する付加情報を記憶するための記憶領域である。証明書付加情報の例を図6で示す。
【0037】
サーバ識別子欄は、情報提供処理装置130を識別するための情報として情報提供処理装置130のホスト名とTCPポート番号の組み合わせた情報(サーバ識別子)を保存する場所である。証明書フィンガープリント欄は、該サーバ識別子で表される情報提供処理装置のサーバ公開鍵証明書に記載される情報である証明書のフィンガープリント(Certificate Signature Value)を記憶する場所である。Start_Time欄は、該証明書フィンガープリントが確認された最も古い時間である。End_Time欄は、該証明書フィンガープリントが確認された最も新しい時間である。
【0038】
なお、中継処理装置120が保持する証明書付加情報(図6)の各フィールドのデータは、中継処理装置120が様々なサーバ識別子で表されるサーバ(情報提供処理装置)に、予めアクセスして取得し記憶しておく。また、すでに保存されているサーバ識別子で表されるサーバには、例えば1日1回アクセスを行い更新するようにしてもよい。
【0039】
例えば、中継処理装置120は、あるサーバ識別子で表されるサーバにアクセスし、該サーバから取得したサーバ公開鍵証明書に記載されている証明書のフィンガープリント(Certificate Signature Value)とサーバ識別子とを証明書付加情報(図6)に保存する。
【0040】
保存時、該サーバ識別子がサーバ識別子欄に記憶されていない、または該証明書フィンガープリントが証明書フィンガープリント欄に記憶されていない場合、サーバ識別子欄に該サーバ識別子を記憶し、証明書フィンガープリント欄に該証明書フィンガープリントを記憶し、Start_Time欄とEnd_Time欄に現在の日付を記憶する。
【0041】
それ以外の場合、すなわち該サーバ識別子がサーバ識別子欄にすでに記憶されていて、かつ該証明書フィンガープリントが証明書フィンガープリント欄にすでに記憶されている場合、End_Time欄を現在の日付で更新する。
【0042】
管理表保存部129は、通信セッション管理表を記憶するための記憶領域である。
【0043】
(通信セッション管理表の説明)
【0044】
通信セッション管理表(図5)は、中継する通信に関するセッション情報を記憶しておくために利用される表である。通信セッション管理表のレコードは、クライアント識別子欄、サーバ識別子欄、最終利用日時欄、クライアント側ハンドシェイク情報(セッションID―C欄、共通鍵その他―C欄)、サーバ側ハンドシェイク情報(セッションID―S欄、共通鍵その他―S欄、サーバ証明書欄)から構成される。通信セッション管理表の例を図5で示す。
【0045】
クライアント識別子欄は、利用者端末110の閲覧処理部111を識別するための情報として利用者端末110のIPアドレスを保存する場所である。サーバ識別子欄は、情報提供処理装置130を識別するための情報として情報提供処理装置130のホスト名とTCPポート番号の組み合わせた情報を保存する場所である。最終利用日時欄は、対象レコードによって表される通信が行われた最終の日時情報を保存する場所である。セッションID―C欄は、プロキシ回線141上のSSLセッションのIDを保存する場所である。共通鍵その他―C欄は、プロキシ回線141上のSSLセッションのハンドシェイク処理で交換した共通鍵と暗号スイートに関する情報を保存する場所である。セッションID―S欄は、サーバ回線142上のSSLセッションのIDを保存する場所である。共通鍵その他―S欄は、サーバ回線142上のSSLセッションのハンドシェイク処理で交換した共通鍵と暗号スイートに関する情報を保存する場所である。サーバ証明書欄は、サーバ回線142上のSSLセッションのハンドシェイク処理で取得した情報提供処理装置130のサーバ公開鍵証明書を保存する場所である。
【0046】
通信セッション管理表が保持している各レコードは、中継処理装置120により、定期的に検査され、最終利用日時欄の値が、検査日時と比較され、適当に決められた有効時間(例えば12時間)以上古い日時を表している場合には削除される。
【0047】
情報提供処理装置130は、利用者端末110から送られた通信要求メッセージを受信し、該通信要求メッセージの内容に基づき通信応答メッセージを応答する情報処理装置である。情報提供処理装置130は、サーバ処理部131とサーバ暗号鍵保存部132とを備えている。
【0048】
サーバ処理部131は、一般にWebサーバと知られるプログラムに相当する機能処理部である。サーバ処理部131はHTTPプロトコルとHTTPSプロトコルのサーバ機能を備えている。
【0049】
サーバ暗号鍵保存部132は、サーバ処理部131がHTTPSによる暗号化通信を行う場合に使用するサーバ公開鍵証明書と秘密鍵を記憶するための記憶領域である。
【0050】
次に、図1の利用者端末110、中継処理装置120、情報提供処理装置130の各種端末のハードウェア構成について、図2を用いて説明する。利用者端末110、中継処理装置120、情報提供処理装置130は、一般に知られている情報処理装置である。
【0051】
図2は、本発明の実施形態における各種端末のハードウェア構成を示す図である。
【0052】
CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。
【0053】
また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PCの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。RAM203は、CPU201の主メモリ、ワークエリア等として機能する。
【0054】
CPU201は、処理の実行に際して必要なプログラム等をRAM203にロードして、プログラムを実行することで各種動作を実現するものである。
【0055】
また、入力コントローラ(入力C)205は、キーボード209や不図示のマウス等のポインティングデバイスからの入力を制御する。
【0056】
ビデオコントローラ(VC)206は、CRTディスプレイ(CRT)210等の表示器への表示を制御する。表示器はCRTだけでなく、液晶ディスプレイでも構わない。これらは必要に応じて管理者が使用するものである。本発明には直接関係があるものではない。
【0057】
メモリコントローラ(MC)207は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク(HD)やフロッピーディスク(登録商標 FD)或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュメモリ等の外部メモリ211へのアクセスを制御する。
【0058】
通信I/Fコントローラ(通信I/FC)208は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。
【0059】
なお、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、CRT210上での表示を可能としている。また、CPU201は、CRT210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【0060】
本発明を実現するためのプログラムは外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。さらに、本発明に係わるプログラムが用いる前述したCA証明書保存部112、代理用暗号鍵保存部126、証明書付加情報保存部127、CA証明書保存部128、管理表保存部129及びサーバ暗号鍵保存部132は、外部メモリ211に格納されている。
【0061】
(中継処理装置で中継を行う暗号化通信の通信メッセージ交換フロー)
【0062】
次に、利用者端末110と中継処理装置120と情報提供処理装置130との間の通信メッセージの交換フローの1つのケースを、図7を用いて説明する。
【0063】
図7は、本発明の実施形態における暗号化通信を代理方式によって中継する場合の、利用者端末110と中継処理装置120と情報提供処理装置130との間の通信メッセージの交換フローの例を示す図である。
【0064】
なお、図7中の利用者端末110と中継処理装置120との間の通信は、プロキシ回線141を介して行われる。
【0065】
また、中継処理装置120と情報提供処理装置130との間の通信は、サーバ回線142を介して行われる。
【0066】
また、図7と図8においては、SSL(TLSを含む)規格において必要とされるメッセージ(ChangeCipherSpec等)は、一般的なSSL(TLSを含む)規格に基づく、一般に知られている処理であるため、ここでは説明を省略している。
【0067】
ステップS501 では、利用者端末110において、利用者が閲覧処理部111が提供するブラウザ画面において、情報提供処理装置130上のコンテンツを指し示すURLをアドレスバーなどへ入力するか、または既にブラウザ画面に表示中のコンテンツの中の該URLへのリンク文字列をクリックするか、によって発生するコンテンツ取得要求によって、閲覧処理部111が、中継処理装置120のクライアント通信部121へ接続してプロキシ回線141を開設し、該プロキシ回線141上でCONNECTメソッドによるプロキシリクエストを送信する。CONNECTメソッドによるプロキシリクエストとは、Webブラウザ等のクライアントがプロキシサーバを経由してHTTPSサーバへ接続する際に発行されるリクエストであり、次の形式をもつ。
【0068】
CONNECT ホスト名:ポート番号 HTTP/1.0
【0069】
次に、中継処理装置120は、受信したプロキシリクエストから、サーバ識別子(ホスト名:ポート番号)とクライアントのIPアドレスを取得し、管理表保存部129の通信セッション管理表(図5)に新規レコード(代理通信セッションレコードと呼ぶ)を作成する。
【0070】
ステップS502では、中継処理装置120は、当該サーバ識別子の情報を元に情報提供処理装置130へTCP接続し、サーバ回線142を開設する。
【0071】
ステップS503では、中継処理装置120は、該TCP接続が成功したことを受け、利用者端末110へ「HTTP/1.0 200」という接続成功メッセージを返し、情報提供処理装置130へ中継可能であることを伝える。
【0072】
ステップS504では、利用者端末110は、プロキシ回線141上でClient Helloメッセージを送信し、SSLハンドシェイクを開始する。
【0073】
そして、Client Helloメッセージを受けた中継処理装置120は、SSLのハンドシェイクの処理を開始し、ステップS516でハンドシェイクの処理が終了するまで、プロキシ回線141を確立する処理を行う。
【0074】
SSLによる暗号化通信の回線を確立するために、ステップS504からハンドシェイクの処理を開始する。そして、ステップS516でハンドシェイクの処理が終了すると、プロキシ回線141(SSLによる暗号化通信の回線)を確立することができる。
【0075】
ステップS505では、中継処理装置120は、サーバ回線142上で、情報提供処理装置130との間でSSLセッションを開設(確立)するために、サーバ側暗号処理部125で生成したClient Helloメッセージを送信する。
【0076】
以下にステップS504以降の処理について説明する。
【0077】
まず、利用者端末110は、ステップS504でSSLハンドシェイク開始要求(SSL Client Hello)を送信する。
【0078】
中継処理装置120は、該SSLハンドシェイクで受信した各メッセージは、そのまま情報提供処理装置130へ中継せずに、自身がサーバとしてハンドシェイクを行う。
【0079】
中継処理装置120は、自身がサーバとしてハンドシェイクの処理に応じるために、利用者端末110に、SSL Server Hello、SSL Server Certificate、SSL Server Hello Doneの各メッセージを送信する。
【0080】
まず、利用者端末110の閲覧処理部111は、過去に中継処理装置120との通信で利用したSSLのセッション情報(セッションIDを含む)が記憶されているか否かを判定する。
【0081】
そして、利用者端末110の閲覧処理部111は、過去に中継処理装置120との通信で利用したSSLのセッションIDが記憶されていると判定された場合は、当該セッションIDを含めたSSL Client Helloメッセージを中継処理装置120に送信する。
【0082】
一方、利用者端末110の閲覧処理部111は、過去に中継処理装置120との通信で利用したSSLのセッションIDが記憶されていないと判定された場合は、当該セッションIDを含めずにSSL Client Helloメッセージを中継処理装置120に送信する。
【0083】
そして、中継処理装置120は、利用者端末110からSSL Client Helloメッセージを受信する。
【0084】
図7では、利用者端末110から受信したSSL Client Helloメッセージに当該セッションIDが含まれていない場合(SSLセッションを再開せずに新規のSSLセッションを用いる場合)について説明する。
【0085】
利用者端末110から受信したSSL Client Helloメッセージに当該セッションIDが含まれている場合(SSLセッションを再開する場合)については、図8を用いて後で説明する。
【0086】
中継処理装置120は、ステップS504で利用者端末110からSSL Client Helloメッセージを受信すると、当該SSL Client Helloメッセージの中に、セッションIDが含まれているか否かを判定する。そして、中継処理装置120は、当該SSL Client Helloメッセージの中に、セッションIDが含まれていないと判定された場合に、新規のセッションを作成するために新規の固有のセッションIDを生成する。
【0087】
そして、中継処理装置120は、当該生成されたセッションIDを含むSSL Server Helloメッセージを利用者端末110に送信する(ステップS506)。
【0088】
さらに、中継処理装置120は、当該生成されたセッションIDを通信セッション管理表(図5)のセッションIDーC欄に記憶する。当該セッションIDは次回以降にセッションを再開する場合の識別子となる。
【0089】
利用者端末110は、セッションIDを含むSSL Server Helloメッセージを中継処理装置120から受信すると、当該SSL Server Helloメッセージに含まれているセッションIDをSSLのセッション情報としてRAM203等のメモリに記憶する(キャッシュする)。
【0090】
次に、中継処理装置120は、代理用暗号鍵保存部126に記憶されているサーバ公開鍵証明書を含むSSL Server Certificateメッセージを利用者端末110に送信する(ステップS507)。
【0091】
利用者端末110は、中継処理装置120からSSL Server Certificateメッセージを受信し、外部メモリ211などのメモリに記憶する。
【0092】
そして、中継処理装置120は、中継処理装置120での一連の処理の終了を通知するSSL Server Hello Doneメッセージを利用者端末110に送信する(ステップS508)。
【0093】
利用者端末110は、中継処理装置120からSSL Server Hello Doneメッセージを受信すると、マスターシークレット(データの暗号化及び復号化に用いる共通鍵を生成するための情報)を生成する。
【0094】
また、利用者端末110は、ここで生成されたマスターシークレットに従って、プロキシ回線141を介して中継処理装置120と通信する対象となるデータの暗号化及び復号を行うために用いる共通鍵を生成して、当該生成された共通鍵をRAM203等のメモリに記憶する。
【0095】
利用者端末110は、ステップS517以降の処理で、プロキシ回線141を介してデータを中継処理装置120に送信する際は、当該データを、ここで生成された共通鍵を用いて暗号化して送信する。
【0096】
また、利用者端末110は、中継処理装置120からプロキシ回線141を介して送信された暗号化されたデータを、ここで生成された共通鍵を用いて復号する。
【0097】
そして、利用者端末110は、中継処理装置120から受信したSSL Server Certificateメッセージに含まれているサーバ公開鍵証明書に含まれるサーバの公開鍵を用いて、当該生成されたマスターシークレットを暗号化する。
【0098】
そして、利用者端末110は、当該暗号化されたマスターシークレットを含むClientKeyExchangeメッセージを中継処理装置120に送信する。
【0099】
中継処理装置120は、利用者端末110からClientKeyExchangeメッセージを受信する。
【0100】
そして、中継処理装置は、当該ClientKeyExchangeメッセージに含まれている暗号化されたマスターシークレットを、利用者端末110に送信したSSL Server Certificateメッセージに含まれるサーバ公開鍵証明書(サーバの公開鍵を含む)に対応する秘密鍵を用いて復号する。
【0101】
なお、ここで用いる秘密鍵は、サーバ公開鍵証明書(サーバの公開鍵を含む)に対応付けられて代理用暗号鍵保存部126に記憶されており、利用者端末110に送信したサーバ公開鍵証明書(サーバの公開鍵を含む)に対応するものである。
【0102】
次に、中継処理装置120は、復号されたマスターシークレットに従って共通鍵を生成する。そして、中継処理装置120は、該生成された共通鍵の情報を前記代理通信セッションレコードの共通鍵その他ーC欄に記憶する。
【0103】
中継処理装置120は、ステップS517以降の処理で、プロキシ回線141を介してデータを利用者端末110に送信する際は、当該データを、ここで生成された共通鍵を用いて暗号化して送信する。また、中継処理装置120は、利用者端末110からプロキシ回線141を介して送信された暗号化されたデータを、ここで生成された共通鍵を用いて復号する。
【0104】
次に、ステップS509以降の処理について説明する。
【0105】
中継処理装置120は、利用者端末110からSSL Client Helloメッセージを受信すると、中継処理装置120をクライアントとして、情報提供処理装置130に、SSLハンドシェイク開始要求(SSL Client Helloメッセージ)を送信する(ステップS505)。
【0106】
情報提供処理装置130は、中継処理装置120から受信したSSL Client Helloメッセージに応答して、中継処理装置120に、SSL Server Helloメッセージ(ステップS509)、SSL Server Certificateメッセージ(ステップS510)、SSL Server Hello Doneメッセージ(ステップS511)の各メッセージを送信する。
【0107】
以下に、ステップS509からステップS511について、説明する。
【0108】
まず、中継処理装置120は、過去に情報提供処理装置130との通信で利用したSSLのセッション情報(セッションID)が記憶されているか否かを判定する。
【0109】
具体的には、過去に、中継処理装置120と情報提供処理装置130との間のサーバ回線142で利用したセッションIDが、通信セッション管理表(図5)のセッションID−Sの欄に記憶されているか否かを中継処理装置120が判定する。
【0110】
そして、中継処理装置120は、中継処理装置120と情報提供処理装置130との間のサーバ回線142で利用したセッションIDが、通信セッション管理表(図5)のセッションID−Sの欄に記憶されていると判定された場合は、当該セッションIDを含めたSSL Client Helloメッセージを情報提供処理装置130に送信する。
【0111】
一方、中継処理装置120は、中継処理装置120と情報提供処理装置130との間のサーバ回線142で利用したセッションIDが、通信セッション管理表(図5)のセッションID−Sの欄に記憶されていないと判定された場合は、当該セッションIDを含めずにSSL Client Helloメッセージを情報提供処理装置130に送信する(S505)。
【0112】
そして、情報提供処理装置130は、中継処理装置120からSSL Client Helloメッセージを受信する。
【0113】
図7では、中継処理装置120から受信したSSL Client Helloメッセージに当該セッションIDが含まれていない場合(SSLセッションを再開せずに新規のSSLセッションを用いる場合)について説明する。
【0114】
中継処理装置120から受信したSSL Client Helloメッセージに当該セッションIDが含まれている場合(SSLセッションを再開する場合)については、図8を用いて後で説明する。
【0115】
情報提供処理装置130は、ステップS505で中継処理装置120からSSL Client Helloメッセージを受信すると、当該SSL Client Helloメッセージの中に、セッションIDが含まれているか否かを判定する。
【0116】
そして、情報提供処理装置130は、当該SSL Client Helloメッセージの中に、セッションIDが含まれていないと判定された場合に、新規のセッションを作成するために新規の固有のセッションIDを生成する。
【0117】
そして、情報提供処理装置130は、当該生成されたセッションIDを含むSSL Server Helloメッセージを中継処理装置120に送信する(ステップS509)。
【0118】
さらに、情報提供処理装置130は、当該生成されたセッションIDをSSLのセッション情報としてRAM203等のメモリに記憶する(キャッシュする)。
【0119】
中継処理装置120は、セッションIDを含むSSL Server Helloメッセージを情報提供処理装置130から受信すると、当該SSL Server Helloメッセージに含まれているセッションIDを、通信セッション管理表(図5)のセッションIDーS欄に記憶する。当該セッションIDは次回以降にセッションを再開する場合の識別子となる。
【0120】
次に、情報提供処理装置130は、サーバ暗号鍵保存部132に記憶されている情報提供処理装置130のサーバ公開鍵証明書を含むSSL Server Certificateメッセージを中継処理装置120に送信する。
【0121】
ステップS510では、中継処理装置120は、情報提供処理装置130から、SSL Server Certificateメッセージを受信し、該メッセージに含まれる情報提供処理装置130のサーバ公開鍵証明書を取得する。
【0122】
中継処理装置120は、CA証明書保存部128に記憶されているCA公開鍵証明書などを使って該サーバ公開鍵証明書が信頼できるか否かの検証処理を実施する。(後述するステップS305、ステップS306、ステップS307、ステップS308の処理に対応している)
【0123】
ステップS512では、中継処理装置120は、該サーバ公開鍵証明書の検証処理に失敗した場合に、証明書付加情報保存部に保持している情報(証明書付加情報(図6))を用いて、検証の付加処理を行う。該付加処理については、図3を用いて後で説明する。(後述するステップS307、ステップS308の処理に対応している)
【0124】
そして、情報提供処理装置130は、情報提供処理装置130での一連の処理の終了を通知するSSL Server Hello Doneメッセージを中継処理装置120に送信する。
【0125】
ステップS511では、中継処理装置120は、情報提供処理装置130から、SSL Server Hello Doneメッセージを受信する。
【0126】
次に、中継処理装置120は、マスターシークレット(データの暗号化及び復号化に用いる共通鍵を生成するための情報)を生成する。
【0127】
また、中継処理装置120は、ここで生成されたマスターシークレットに従って、サーバ回線142を介して情報提供処理装置130と通信する対象となるデータの暗号化及び復号を行うために用いる共通鍵を生成して、当該生成された共通鍵を通信セッションレコード(図5)の共通鍵その他−Sの欄に記憶する。
【0128】
中継処理装置120は、ステップS518以降の処理で、サーバ回線142を介してデータを情報提供処理装置130に送信する際は、当該データを、ここで生成された共通鍵を用いて暗号化して送信する。
【0129】
また、中継処理装置120は、情報提供処理装置130からサーバ回線142を介して送信された暗号化されたデータを、ここで生成された共通鍵を用いて復号する。
【0130】
そして、中継処理装置120は、情報提供処理装置130から受信したSSL Server Certificateメッセージに含まれているサーバ公開鍵証明書に含まれるサーバの公開鍵を用いて、当該生成されたマスターシークレットを暗号化する。
【0131】
そして、中継処理装置120は、当該暗号化されたマスターシークレットを含むClientKeyExchangeメッセージを情報提供処理装置130に送信する。
【0132】
情報提供処理装置130は、中継処理装置120からClientKeyExchangeメッセージを受信する。
【0133】
そして、情報提供処理装置130は、当該ClientKeyExchangeメッセージに含まれている暗号化されたマスターシークレットを、中継処理装置120に送信したSSL Server Certificateメッセージに含まれるサーバ公開鍵証明書(サーバの公開鍵を含む)に対応する秘密鍵を用いて復号する。
【0134】
なお、ここで用いる秘密鍵は、サーバ公開鍵証明書(サーバの公開鍵を含む)に対応付けられてサーバ暗号鍵保存部132に記憶されており、情報提供処理装置130が中継処理装置120に送信したサーバ公開鍵証明書(サーバの公開鍵を含む)に対応するものである。
【0135】
次に、情報提供処理装置130は、復号されたマスターシークレットに従って共通鍵を生成する。そして、情報提供処理装置130は、該生成された共通鍵の情報を、外部メモリ211などのメモリに記憶する。
【0136】
中継処理装置120は、ステップS518以降の処理で、サーバ回線142を介してデータを情報提供処理装置130に送信する際は、当該データを、ここで生成された共通鍵を用いて暗号化して送信する。
【0137】
また、中継処理装置120は、情報提供処理装置130からサーバ回線142を介して送信された暗号化されたデータを、ここで生成された共通鍵を用いて復号する。
【0138】
ステップS513、ステップS514では、中継処理装置120と情報提供処理装置130とは相互にHandshake finishメッセージを交換し、サーバ回線142上のSSLハンドシェイクを終了し、SSLによる暗号化通信であるサーバ回線142を確立する。
【0139】
すなわち、ステップS505、ステップS509、ステップS510、ステップS511、ステップS512、ステップS513、ステップS514の処理を経て、利用者端末と情報提供処理装置との間の通信データを中継するために用いられるSSL通信を情報提供処理装置と確立する(確立手段)。
【0140】
ステップS515、ステップS516では、利用者端末110と中継処理装置120とは相互にHandshake finishメッセージを交換し、前記プロキシ回線141上のSSLハンドシェイクを終了し、SSLによる暗号化通信であるプロキシ回線141を確立する。
【0141】
ステップS517では、利用者端末110は、ステップS501において発生したコンテンツ取得要求に対応する通信要求メッセージを、プロキシ回線141上のSSLハンドシェイクで取り決めた方法で暗号化した暗号化通信要求メッセージを、中継処理装置120へ送信する。
【0142】
すなわち、利用者端末110は、ステップS501において発生したコンテンツ取得要求に対応する通信要求メッセージを、中継処理装置120と共有している共通鍵を用いて暗号化して、当該暗号化された暗号化通信要求メッセージを中継処理装置120に送信する。
【0143】
ステップS518では、中継処理装置120は、利用者端末110から受信した暗号化通信要求メッセージを、利用者端末110と共有している共通鍵(通信セッション管理表(図5)の共通その他−Cに格納されている共通鍵)を用いて復号化し、当該復号することで得られる通信要求メッセージを取得する。
【0144】
また、中継処理装置120は、ここで取得した通信要求メッセージ(平文化通信要求メッセージとも言う)に対し、キーワード検査を行って機密情報として外部への送信が禁止されているデータが含まれているか否かを検査する処理を行い、禁止されているデータが含まれていれば、当該通信要求メッセージを情報提供処理装置130に送信せずに処理を終了する。一方、当該通信要求メッセージに送信が禁止されているデータが含まれていないと判定された場合は、当該通信要求メッセージを情報提供処理装置130に送信(中継)するべく、以下に説明する処理を行う。
【0145】
次に、該通信要求メッセージをサーバ回線142上のSSLハンドシェイクで取り決めた方法で暗号化した暗号化通信要求メッセージを生成し、該メッセージを情報提供処理装置130へ送信する。
【0146】
すなわち、中継処理装置120は、該通信要求メッセージを、情報提供処理装置130と共有している共通鍵(通信セッション管理表(図5)の共通その他−Sに格納されている共通鍵)を用いて暗号化して、当該暗号化することにより生成される暗号化通信要求メッセージを情報提供処理装置130へ送信する。
【0147】
ステップS519では、情報提供処理装置130は、中継処理装置120から受信した暗号化通信要求メッセージを中継処理装置120と共有している共通鍵を用いて復号化し、当該復号することにより通信要求メッセージを生成する。
【0148】
そして、情報提供処理装置130は、中継処理装置120からの通信要求メッセージの応答メッセージとして通信応答メッセージを作成し、該通信応答メッセージを、中継処理装置120と共有している共通鍵を用いて暗号化して暗号化通信応答メッセージを生成し、該暗号化通信応答メッセージを中継処理装置120へ送信する。
【0149】
ステップS520では、中継処理装置120は、情報提供処理装置130から受信した暗号化通信応答メッセージを、情報提供処理装置130と共有している共通鍵(通信セッション管理表(図5)の共通その他−Sに格納されている共通鍵)を用いて復号化して通信応答メッセージを取得する。

【0150】
また、中継処理装置120は、ここで取得した通信応答メッセージ(平文化通信応答メッセージとも言う)に対し、キーワード検査を行って機密情報として内部への送信(中継)が禁止されているデータが含まれているか否かを検査する処理を行い、禁止されているデータが含まれていれば、当該通信応答メッセージを利用者他何津110に送信せずに処理を終了する。一方、当該通信応答メッセージに送信が禁止されているデータが含まれていないと判定された場合は、当該通信応答メッセージを利用者端末110に送信(中継)するべく、以下に説明する処理を行う。
【0151】
次に、中継処理装置120は、該通信応答メッセージをプロキシ回線141上のSSLハンドシェイクで取り決めた方法で暗号化した暗号化通信応答メッセージを生成し、該メッセージを利用者端末110へ送信する。
【0152】
すなわち、中継処理装置120は、該通信応答メッセージを、利用者端末110と共有している共通鍵(代理通信セッション管理表(図5)の共通その他−Cに格納されている共通鍵)を用いて暗号化することによって、暗号化通信応答メッセージを生成し、当該暗号化通信メッセージを利用者端末110に送信する。
【0153】
利用者端末110は、中継処理装置120から受信した暗号化通信応答メッセージを、中継処理装置120と共有している共通鍵を用いて復号化することによって、通信応答メッセージを生成し、該通信応答メッセージを閲覧処理部111の画面へ表示するなどの処理を行う。
【0154】
ステップS521では、情報提供処理装置130は、SSLコネクションを終了するためにSSLアラートプロトコルによる終了通知メッセージを中継処理装置120へ送信する。
【0155】
ステップS522では、中継処理装置120は、同じく終了通知メッセージを、情報提供処理装置130へ送信する。これにより、サーバ回線142を終了させる。
【0156】
ステップS523において、中継処理装置120は、SSLコネクションを終了するためにSSLアラートプロトコルによる終了通知メッセージを利用者端末110へ送信する。
【0157】
ステップS524において、利用者端末110は、同じく終了通知メッセージを、中継処理装置120へ送信する。これにより、前記プロキシ回線141を終了させる。
【0158】
上述したSSLの暗号化通信の確立手順は、一例であり、上述したメッセージ以外のメッセージを装置間で送受信して暗号化通信を確立するようにしてもよい。
【0159】
以上で、SSLの暗号化通信(回線)を介して通信される通信データを中継する際の通信メッセージ交換フローの例の説明を終了する。
【0160】
(セッション再開機能による暗号化通信を中継する場合の通信メッセージ交換フロー)
【0161】
次に、プロキシ回線141のSSLコネクションとサーバ回線142のSSLコネクションとにおいてセッション再開機能によりSSLセッションを開設した場合の、利用者端末110と中継処理装置120と情報提供処理装置130との間の通信メッセージの交換フローについて、図8を用いて説明する。
【0162】
図8は、プロキシ回線141のSSLコネクションとサーバ回線142のSSLコネクションとにおいてセッション再開機能によりSSLセッションを開設した場合の、利用者端末110と中継処理装置120と情報提供処理装置130との間の通信メッセージの交換フローの例を示す図である。
【0163】
セッション再開機能とは、過去に開設して終了させたセッションを再開するための機能であり、SSLにおいてセッションを新規に作成せずに再開させた場合はセッションを確立するために必要なセッション鍵(共通鍵)の生成、交換に関わる負荷の高い処理を省略できるために、性能向上のために利用される機能である。
【0164】
なお、図8中の利用者端末110と中継処理装置120との間のすべての通信はプロキシ回線141上で行われる。
【0165】
ステップS601の処理は、前述したステップS501の処理と同じである。
【0166】
ステップS602では、中継処理装置120は前述したステップS502と同じ処理を行う。
【0167】
ステップS603では、中継処理装置120は前述したステップS503と同じ処理を行う。
【0168】
ステップS604では、利用者端末110の閲覧処理部111は、情報提供処理装置130への過去の通信で利用したSSLのセッション情報がキャッシュされているので再開可能であると判定し、キャッシュされているセッション情報のセッションIDを付加したClient Helloメッセージを中継処理装置120へ送信する。
【0169】
利用者端末110の閲覧処理部111は、情報提供処理装置130への過去の通信で利用したSSLのセッション情報がキャッシュされているか否かを判定した結果、SSLのセッション情報がキャッシュされていないと判定した場合は、図7のステップS504で説明した通り、セッションIDを付加していないSSL Client Helloメッセージを中継処理装置120へ送信する。
【0170】
ステップS605では、中継処理装置120は、管理表保存部129の通信セッション管理表(図5)の中から、ステップS601(ステップS501)で受信したクライアント識別子とサーバ識別子を、それぞれクライアント識別子欄とサーバ識別子欄にもつレコード(代理通信セッションレコードと呼ぶ)を取得する。
【0171】
中継処理装置120は、該代理通信セッションレコードのセッションIDーC欄を参照し、利用者端末110から受信したSSL Client HelloメッセージのセッションIDと同じならば、中継処理装置120側もセッション再開が可能と判定する。
【0172】
すなわち、中継処理装置120は、該代理通信セッションレコードのセッションIDーC欄の値が、利用者端末110から受信したSSL Client Helloメッセージに含まれるセッションIDと同一であるか否かを判定し、同一であると判定された場合は、中継処理装置120もセッションの再開が可能であると判定する。一方、中継処理装置120は、該代理通信セッションレコードのセッションIDーC欄の値が、利用者端末110から受信したSSL Client Helloメッセージに含まれるセッションIDと同一ではないと判定された場合は、中継処理装置120はセッションの再開が不可能であると判定する。ここで、中継処理装置120は、セッションの再開が不可能であると判定された場合は、これ以降の処理は実行しない。ここでの例では、セッション再開は可能と判定され、利用者端末110へ該セッションIDを付加したSSL Server Helloメッセージを送信する。
【0173】
ステップS606では、中継処理装置120は、代理通信セッションレコードのセッションIDーS欄にセッションIDの値があるか否かを判定し、代理通信セッションレコードのセッションIDーS欄にセッションIDの値があると判定された場合に、サーバ回線142においてもセッションを再開することができると判定し、該セッションIDを付加したClient Helloメッセージを情報提供処理装置130へ送信する。一方、中継処理装置120は、代理通信セッションレコードのセッションIDーS欄にセッションIDの値が無いと判定された場合は、サーバ回線142においてはセッションを再開することが出来ないと判定し、これ以降の処理を実行しないように制御する。
【0174】
ステップS607では、情報提供処理装置130は、中継処理装置120から受信したセッションIDで識別されるSSLのセッション情報が情報提供処理装置130においても利用可能なことを確認したのち、中継処理装置120へ、該セッションIDを付加したServer Helloメッセージを応答する。これは、中継処理装置120と情報提供処理装置130の間におけるサーバ回線142のSSLコネクションにおいても、セッション再開の合意がとれたことを意味する。
【0175】
ステップS608では、情報提供処理装置130は中継処理装置120へSSL Handshake finishedメッセージを送信する。
【0176】
ステップS609では、中継処理装置120は情報提供処理装置130へSSL Handshake finishedメッセージを送信する。
【0177】
以上をもって、中継処理装置120と情報提供処理装置130の間のサーバ回線142のSSLハンドシェイク処理を終了する。
【0178】
ステップS610では、中継処理装置120は利用者端末110へHandshake finishedメッセージを送信する。
【0179】
ステップS611では、利用者端末110は中継処理装置120へHandshake finishedメッセージを送信する。
【0180】
以上をもって、利用者端末110と中継処理装置120と間のプロキシ回線141のSSLハンドシェイク処理を終了する。
【0181】
以降は、図7を用いて説明した、ステップS517からステップS524までの処理と同じ処理を、図8におけるステップS612からステップS619までの処理で実施する。
【0182】
ここで、中継処理装置120は、プロキシ回線141のセッションIDと、サーバ回線142のセッションIDが特定され、それぞれのセッションIDが、通信セッション管理表(図5)のレコード(セッションID−C、セッションID−S)に記憶されている共通鍵その他ーCの共通鍵を用いて、利用者端末110に送信するデータを暗号化し、また利用者端末110から受信したデータを復号する。また、プロキシ回線141のセッションIDと、サーバ回線142のセッションIDが特定され、それぞれのセッションIDが、通信セッション管理表(図5)のレコード(セッションID−C、セッションID−S)に記憶されている共通鍵その他ーSの共通鍵を用いて、情報提供処理装置130に送信するデータを暗号化し、また情報提供処理装置130から受信したデータを復号する。
【0183】
以上で、セッション再開機能による暗号化通信を代理方式によって中継する場合の通信メッセージ交換フローの例の説明を終了する。
【0184】
以上、説明したように、セッション再開機能を利用した中継処理では、SSLハンドシェイク処理を大幅に短縮し、計算負荷の高い処理を省略することができる。
【0185】
(中継処理装置120における通信処理フロー)
【0186】
次に、利用者端末110が中継処理装置120を経由して情報提供処理装置130へ暗号化通信を行う場合の中継処理装置120の処理フローを、図3を用いて説明する。
【0187】
なお、図3に示すステップS301からステップS317は、中継処理装置120のCPU201が実行することにより実現される。
【0188】
ステップS301では、クライアント通信部121は、利用者端末110の閲覧処理部111から接続を受け付け、SSL(TLSを含む)のプロキシ接続プロトコルに則ったCONNECTメソッドによる接続要求メッセージ(情報提供処理装置130とのSSL通信の要求の情報、すなわち、トランスポート層のプロトコルによる、利用者端末110と情報提供処理装置130とのエンドツーエンドの通信の要求を示す情報)を受信し、通信制御部124へ該接続要求メッセージを渡す(図7のステップS501)。
【0189】
すなわち、中継処理装置120は、利用者端末110から、情報提供処理装置130へのSSL通信の要求を受信する。
【0190】
すなわち、中継処理装置120は、利用者端末110からSSL通信の要求(エンドツーエンドの通信の要求)を受信したことを条件に、SSLによる暗号化通信(プロキシ回線141)の確立、及びSSLによる暗号化通信(サーバ回線142)の確立を開始するように制御する。
【0191】
以降、中継処理装置120のクライアント通信部121と利用者端末110の閲覧処理部111との間で開設される接続回線をプロキシ回線141と呼ぶ。
【0192】
次に、通信制御部124は、該接続要求メッセージのCONNECTメソッドで指定された情報提供処理装置130のホスト名とポート番号からサーバ識別子(ホスト名:ポート番号)を作成し、また該接続要求メッセージから利用者端末110のIPアドレス(クライアント識別子)を取得する。
【0193】
通信制御部124は、CONNECTメソッドで渡されたホスト名とポート番号をサーバ通信部122へ渡し、サーバ通信部122は該ホスト名の情報提供処理装置130の該ポート番号へ接続する(図7のステップS502)。接続が失敗すると、通信制御部124は、クライアント通信部121を経由して利用者端末110へエラーメッセージを応答(送信)して終了する。接続が成功すると、通信制御部124は、クライアント通信部121を経由して利用者端末110へHTTP応答コード200を応答する(図7のステップS503)。以降、前記中継処理装置120のサーバ通信部122と情報提供処理装置130のサーバ処理部131との間で開設される接続回線をサーバ回線142と呼ぶ。
【0194】
通信制御部124は、サーバ識別子とクライアント識別子をキーにして、管理表保存部129の通信セッション管理表(図5)からレコードを検索する。通信制御部124は、該キーに一致するレコードがなかった場合には、サーバ識別子とクライアント識別子を、それぞれサーバ識別子欄とクライアント識別子欄にもつ新しいレコードを作成する。通信制御部124は、検索で発見されたレコード又は新規作成したレコードを中継処理装置120のRAM203に記憶させる。以降、このレコードを代理通信セッションレコードと呼び通信制御部124において参照できるものとする。
【0195】
ステップS302では、通信制御部124は、クライアント側暗号処理部123に対して前記プロキシ回線141においてSSLセッションを開始するよう指示する。クライアント側暗号処理部123は、該プロキシ回線141においてクライアント通信部121を経由して、利用者端末110の閲覧処理部111から送信されるSSL Client Helloメッセージを受信し、SSLハンドシェイク処理を開始する。SSLのハンドシェイク方法には、セッションを新規に開始するケースと過去のセッションを再開するケースの2通りがある。
【0196】
まず、セッションを新規に開始するケースについて説明する。
【0197】
中継処理装置120は、当該SSL Client Helloメッセージの中にセッションIDが含まれているか否かを判定し(S303)、セッションIDが含まれていると判定された場合であって、該セッションIDが代理通信セッションレコードのセッションIDーC欄の値と同一と判定された場合(S303:YES)、クライアント側のSSLコネクションでセッションを再開し、一方、同一でない場合は(S303:NO)、利用者端末110側のSSLコネクションは新規のセッションを開始する。
【0198】
すなわち、SSLセッションを新規に開始する処理では、中継処理装置120のクライアント側暗号処理部123は、利用者端末110から送信されたSSL Client Helloメッセージ(図7のステップS504)に応答して、Server Hello、Server Certificate、Server Hello Doneの各メッセージを順次送信する(図7のステップS506、ステップS507、ステップS508)。
【0199】
具体的には、中継処理装置120は、SSL Client Helloメッセージの中に、セッションIDが含まれていないと判定した場合は、新規のセッションを作成するため新規の固有のセッションIDを生成する。
【0200】
そして、中継処理装置120は、当該生成されたセッションIDを含む該SSL Server Helloメッセージを利用者端末110に送信し、当該生成されたセッションIDを代理通信セッションレコードのセッションIDーC欄に保存する。該セッションIDは次回以降にセッションを再開する場合の識別子となる。
【0201】
利用者端末110は、セッションIDを含むSSL Server Helloメッセージを中継処理装置120から受信すると、当該SSL Server Helloメッセージに含まれているセッションIDをSSLのセッション情報としてRAM203等のメモリに記憶する(キャッシュする)。
【0202】
次に、中継処理装置120は、代理用暗号鍵保存部に記憶されているサーバ公開鍵証明書を含むSSL Server Certificateメッセージを利用者端末110に送信する(ステップS507)。
【0203】
利用者端末110は、中継処理装置120からSSL Server Certificateメッセージを受信し、当該SSL Server Certificateメッセージに含まれるサーバ公開鍵証明書の検証を行う。
【0204】
具体的には、CA証明書保存部112に記憶されているCA公開鍵証明書(該CAが発行した公開鍵を含む)を用いて、中継処理装置120から取得した該サーバ公開鍵証明書の復号を行い、復号に成功すれば、検証成功(信頼できる)と判定する。一方、復号に失敗すれば、検証失敗(信頼できない)と判定し、以降の処理は実行しない。
【0205】
利用者端末110は、復号に成功し検証成功(信頼できる)と判定された場合は、当該サーバ公開鍵証明書を外部メモリ211などのメモリに記憶する。
【0206】
そして、中継処理装置120は、中継処理装置120での一連の処理の終了を通知するSSL Server Hello Doneメッセージを利用者端末110に送信する(ステップS508)。
【0207】
利用者端末110は、中継処理装置120からSSL Server Hello Doneメッセージを受信すると、マスターシークレット(データの暗号化及び復号化に用いる共通鍵を生成するための情報)を生成する。
【0208】
また、利用者端末110は、ここで生成されたマスターシークレットに従って、プロキシ回線141を介して中継処理装置120と通信する対象となるデータの暗号化及び復号を行うために用いる共通鍵を生成して、当該生成された共通鍵をRAM203等のメモリに記憶する。
【0209】
利用者端末110は、ステップS517以降の処理(ステップS312)で、プロキシ回線141を介してデータを中継処理装置120に送信する際は、当該データを、ここで生成された共通鍵を用いて暗号化して送信する。
【0210】
また、利用者端末110は、中継処理装置120からプロキシ回線141を介して送信された暗号化されたデータを、ここで生成された共通鍵を用いて復号する。
【0211】
そして、利用者端末110は、中継処理装置120から受信したSSL Server Certificateメッセージに含まれているサーバ公開鍵証明書に含まれるサーバの公開鍵を用いて、当該生成されたマスターシークレットを暗号化する。
【0212】
そして、利用者端末110は、当該暗号化されたマスターシークレットを含むClientKeyExchangeメッセージを中継処理装置120に送信する。
【0213】
中継処理装置120は、利用者端末110からClientKeyExchangeメッセージを受信する。
【0214】
そして、中継処理装置120は、当該ClientKeyExchangeメッセージに含まれている暗号化されたマスターシークレットを、利用者端末110に送信したSSL Server Certificateメッセージに含まれるサーバ公開鍵証明書(サーバの公開鍵を含む)に対応する秘密鍵を用いて復号する。
【0215】
なお、ここで用いる秘密鍵は、サーバ公開鍵証明書(サーバの公開鍵を含む)に対応付けられて代理用暗号鍵保存部126に記憶されており、利用者端末110に送信したサーバ公開鍵証明書(サーバの公開鍵を含む)に対応するものである。
【0216】
次に、中継処理装置120は、復号されたマスターシークレットに従って共通鍵を生成する。そして、中継処理装置120は、該生成された共通鍵の情報を前記代理通信セッションレコードの共通鍵その他ーC欄に記憶する。
【0217】
中継処理装置120は、ステップS517以降の処理(ステップS312)で、プロキシ回線141を介してデータを利用者端末110に送信する際は、当該データを、ここで生成された共通鍵を用いて暗号化して送信する。また、中継処理装置120は、利用者端末110からプロキシ回線141を介して送信された暗号化されたデータを、ここで生成された共通鍵を用いて復号する。
【0218】
次に、SSLセッションを再開するケースについて説明する。
【0219】
中継処理装置120は、利用者端末110から受信したSSL Client HelloメッセージにセッションIDが含まれていると判定され、当該セッションIDが、代理通信セッションレコードのセッションIDーC欄に含まれていると判定された場合に、SSLセッションを再開すると判定する(S303:YES)。ここで、中継処理装置120が、利用者端末110から、セッションIDを含むSSL Client Helloメッセージを受信したことは、SSL通信の再開要求を受信したことを意味する。このとき、共通鍵その他ーC欄には既に当該SSLセッション用の共通鍵が保存されている。クライアント側暗号処理部123は、利用者端末110からの前記SSL Client Helloメッセージ(図8のステップS604)に応答して、Server Helloメッセージを送信する(図8のステップS605)。
【0220】
(代理用暗号鍵保存部126のサーバ公開鍵証明書について)
【0221】
ここで、代理用暗号鍵保存部126に記憶されているサーバ公開鍵証明書に関して説明する。該サーバ公開鍵証明書は、プロキシ回線141のSSLコネクションにおけるサーバ認証用のサーバ公開鍵証明書である。通常のプロキシ接続においては、該サーバ公開鍵証明書は、情報提供処理装置130のサーバ暗号鍵保存部132に記憶されているサーバ公開鍵証明書が情報提供処理装置130から提示されるが、本実施例では、中継処理装置120の代理用暗号鍵保存部に記憶されているサーバ公開鍵証明書が代わりに提示される。そのため該サーバ公開鍵証明書は、任意の情報提供処理装置130に対して有効と判定されるものでなければならない。このため、本実施例の代理方式では、該サーバ公開鍵証明書は、情報提供処理装置130のホスト名が記載される主体者のCommon Name(CN)属性又はSubjectAltName属性にワイルドカードを用いて任意の情報提供処理装置130を表す。サーバ公開鍵証明書とホスト名を元にした情報提供処理装置130の身元確認方法に関しては、RFC2818「3.終点の識別 3.1 サーバの身元」に記載されている。
【0222】
また、該サーバ公開鍵証明書には、主体者のDN(識別名)の中のCommon Nameより上の階層に、中継処理装置120のホスト名を属性値としてもつようにし、エンドポイント(情報提供処理装置130)の確認とともに中継点(中継処理装置120)の確認も同時に実施できるようにする。
【0223】
DN(主体者識別名)の例を示す。
【0224】
cn=*.*.*、ou=proxy.xxx.com,o=XXX Inc.,c=jp
【0225】
この例では、cnはワイルドカードで表され、ホスト名に3つのドメインコンポーネントをもつ任意の情報提供処理装置130に対する代理用のサーバ公開鍵証明書であることを表している。代理用暗号鍵保存部126では、任意の情報提供処理装置130のサーバ公開鍵証明書として利用できるように、ワイルドカードのドメインコンポーネントが例えば2から10までに対応するcnをもつサーバ公開鍵証明書を予め記憶しておき、通信セッションにおける情報提供処理装置130のホスト名のドメインコンポーネントの数によって前記サーバ公開鍵証明書から適切なものが選択されるようにしておく。
【0226】
また、Common Name(cn)の一つ上位のou属性値として中継処理装置120のホスト名(上記例:proxy.xxx.com)を記載している。該ou属性値はプロキシ回線141上のSSLコネクションにおける中継処理装置120の真正性確認に用いることができる。
【0227】
ステップS303では、上述したように、新規にセッションを確立する場合は、ステップS304へ進み、セッションを再開する場合はステップS314へ進む。
【0228】
ステップS304では、サーバ側暗号処理部125は、ステップS301で開設したサーバ回線142を介して、サーバ通信部122を経由してSSL Client Helloメッセージを情報提供処理装置130に送信し、SSLハンドシェイク処理を新規に開始する(図7のステップS505からステップS511)。
【0229】
サーバ側暗号処理部125は、情報提供処理装置130から、SSL Server Hello、SSL Server Certificate、SSL Server Hello Doneメッセージ等を受信する。通信制御部124は、該SSL Server Certificateメッセージを受信すると該メッセージに含まれる情報提供処理装置130のサーバ公開鍵証明書を取得し、該サーバ公開鍵証明書を代理通信セッションレコードのサーバ証明書欄に保存する。
【0230】
ステップS305では、通信制御部124は、CA証明書保存部128に記憶されているCA公開鍵証明書を用いて該サーバ公開鍵証明書が信頼できるか否かの検証処理を実施する。
【0231】
具体的には、通信制御部124は、CA証明書保存部128に記憶されているCA公開鍵証明書(該CAが発行した公開鍵を含む)を用いて、情報提供処理装置130から取得した該サーバ公開鍵証明書の復号を行い、復号に成功すれば、検証成功(信頼できる)と判定する。一方、復号に失敗すれば、検証失敗(信頼できない)と判定する。
【0232】
すなわち、情報提供処理装置とSSL通信を確立する際に情報提供処理装置から取得される該情報処理装置の公開鍵証明書と、中継処理装置が信頼する認証局により発行された公開鍵証明書とを用いて、該情報処理装置の公開鍵証明書が信頼する認証局により発行されたものであるか否かを判定する(判定手段)。
【0233】
ステップS306では、通信制御部124は、ステップS305におけるサーバ認証処理の結果が、成功であれば(信頼できると判定された場合は)ステップS309へ進み、失敗であれば(信頼できないと判定された場合は)ステップS307へ進む。
【0234】
すなわち、ステップS305による判定の結果に従って、利用者端末と情報提供処理装置との間で通信される通信データの中継を許可するか否かを決定する(決定手段)。
【0235】
ステップS307、ステップS308では、通信制御部124は、自己署名証明書を用いているサーバや、サーバ公開鍵証明書をサブドメインのホスト名が用いているサーバが、なりすましではなく安全であるか否かを判定する。
【0236】
ステップS307では、通信制御部124は、検証に失敗した、情報提供処理装置130のサーバ公開鍵証明書が自己署名証明書である、または、該サーバ公開鍵証明書を用いている情報提供処理装置130のホスト名が、該サーバ公開鍵証明書の発行対象Common Name(cn)(ドメイン)のサブドメインであるかを判定する。
【0237】
具体的には、検証に失敗した該サーバ公開鍵証明書が、自己署名証明書であるか否かを、当該サーバ公開鍵証明書を解析することで判定する。また、情報提供処理装置130のホスト名(利用者端末から受信したプロキシリクエストに含まれているホスト名)(ドメイン)が、該サーバ公開鍵証明書に記載されているCommon Name(cn)のサブドメインであるか否かを判定する。
【0238】
すなわち、検証に失敗した該サーバ公開鍵証明書を解析することにより、当該公開鍵証明書が自己署名証明書であるか否かを判定する(自己署名判定手段)。また、情報提供処理装置のドメインが、当該公開鍵証明書に含まれているドメインのサブドメインであるか否かを判定する(ドメイン判定手段)。
【0239】
そして、検証に失敗した当該サーバ公開鍵証明書が自己署名証明書である、又は、情報提供処理装置130のホスト名(利用者端末から受信したプロキシリクエストに含まれているホスト名)が、当該サーバ公開鍵証明書に記載されているCommon Name(cn)のサブドメインであると判定された場合(S307:YES)は、処理をステップS308に移行し、検証に失敗した該サーバ公開鍵証明書が自己署名証明書ではない、又は情報提供処理装置130のホスト名(利用者端末から受信したプロキシリクエストに含まれているホスト名)が、該サーバ公開鍵証明書に記載されているCommon Name(cn)のサブドメインではないと判定された場合(S307:NO)は、処理をステップS317に移行する。
【0240】
ステップS308では、通信制御部124は、当該情報提供処理装置130のサーバ公開鍵証明書の付加検証を行う。通信制御部124は、現在、検証対象となっている情報提供処理装置130の代理通信セッションレコードのサーバ識別子と、該サーバ公開鍵証明書の証明書フィンガープリントとをキーに、一致するレコードを、証明書付加情報保存部127に記憶されている証明書付加情報(図6)の中から検索する。
【0241】
通信制御部124は、該キーに一致するレコードがなかった場合には、付加検証処理を終了し、ステップS317に進む。
【0242】
また、通信制御部124は、該キーに一致するレコードが検索された場合には、当該レコードのStart_Time欄とEnd_Time欄の値をそれぞれ取得する。
【0243】
そして、取得したStart_Time欄の値から、End_Time欄の値までの期間が、所定期間以上であるか否かを判定し、所定期間以上であれば(S308:成功)、処理をステップS309に移行し、所定期間未満であると判定された場合は(S308:失敗)、処理をステップS317に移行する。
【0244】
このように、情報提供処理装置130のサーバ公開鍵証明書が、情報提供処理装置とのSSL通信で、所定期間以上用いられていたかを判定する(期間判定手段)。
【0245】
すなわち、情報提供処理装置130が用いているサーバ公開鍵証明書が、所定期間以上、該情報提供処理装置130と中継処理装置120との間で用いられ、SSLによる暗号化通信を行っていることが確認された場合は、情報提供処理装置130は、情報提供処理装置130は安全である可能性が高い(なりすましの可能性は低い)と考えられるため、処理をステップS309に移行する。一方、所定期間以上、確認されていない場合は、なりすましの可能性が高く危険であると考えられるため、強制的に処理を中断させるべく処理をステップS317に移行する。
【0246】
ステップS309では、通信制御部124は、情報提供処理装置130からクライアント認証要求を受信していない場合、ステップS310へ進み、クライアント認証要求を受信した場合は、ステップS317へ進む。
【0247】
ステップS310では、サーバ側暗号処理部125において、サーバ通信部122を経由して、SSL Handshake finishedメッセージを情報提供処理装置130に送信して、前記サーバ回線142におけるSSLコネクションのハンドシェイク処理を終了する(図7のステップS513からステップS514)。
【0248】
ステップS311では、クライアント側暗号処理部123において、クライアント通信部121を経由して、SSL Handshake finishedを利用者端末110に送信して、プロキシ回線141におけるSSLコネクションのハンドシェイク処理を終了する(図7のステップS515からステップS516)。
【0249】
ステップS312では、既に確立した、プロキシ回線141のSSLセッションと、サーバ回線142のSSLセッションと、の2つのSSLセッションの間でアプリケーションメッセージを中継する。(図7のステップS517からステップS520)。詳細は後述する。
【0250】
ステップS313では、ステップS312におけるアプリケーションメッセージの交換が終了すると、情報提供処理装置130もしくは利用者端末110からSSL close notifyメッセージによるセッション終了通知が送信される。クライアント側暗号処理部123もしくはサーバ側暗号処理部125において該メッセージを受信すると、クライアント側暗号処理部123もしくはサーバ側暗号処理部125はSSL close notifyメッセージを返信しSSLセッションを終了し、通信回線(プロキシ回線、又はサーバ回線)を切断する。次に反対側のSSLセッションの終了処理と通信回線(プロキシ回線、又はサーバ回線)の切断処理を実施する。
【0251】
(SSLセッション再開機能を使う場合)
【0252】
ステップS314では、通信制御部124は、サーバ回線142においてSSLセッションの再開が可能か否かを判定する。
【0253】
すなわち、通信制御部124は、利用者端末110から受信したセッションIDが含まれている代理通信セッションレコードのセッションIDーS欄に値が存在するか否かを判定し、代理通信セッションレコードのセッションIDーS欄に値が存在すると判定された場合、サーバ側暗号処理部125から該セッションIDの値を付加したSSL Client Helloメッセージを、サーバ通信部122を経由してサーバ回線を介して情報提供処理装置130へ送信する。
【0254】
次に、サーバ側暗号処理部125は、情報提供処理装置130からSSL Server Helloメッセージを受信する。通信制御部124は、該SSL Server Helloメッセージに該セッションIDが含まれているか否かを判定し、該セッションIDが含まれていると判定された場合は、セッション再開が可能と判定しステップS310へ進む。
【0255】
通信制御部124は、代理通信セッションレコードのセッションIDーS欄に値が存在しない場合、もしくは存在してもSSL Server Helloメッセージに該セッションIDが含まれていなければ、セッション再開は不可と判定しステップS315へ進む。
【0256】
ステップS315では、通信制御部124は、ステップS304と同様に、サーバ回線142上で新しいSSLセッションを開始する。
【0257】
通信制御部124は、情報提供処理装置130からのSSL Server Certificateメッセージを受信すると、該メッセージからサーバ公開鍵証明書を取得し、該サーバ公開鍵証明書と代理通信セッションレコードのサーバ証明書欄の値とを比較する。当該比較の結果、両者が同一でなかった場合は、代理通信セッションレコードのサーバ証明書欄を該サーバ公開鍵証明書で上書き保存する。
【0258】
ステップS316では、通信制御部124は、ステップS315におけるサーバ公開鍵証明書の比較の結果を参照し、真(同一)ならばステップS309へ進み、偽(同一ではない)ならば再度サーバ公開鍵証明書を検証するためにステップS305へ進む。
(エラー処理)
【0259】
ステップS317では、通信制御部124は、サーバ側暗号処理部125に情報提供処理装置130とのSSLハンドシェイク処理をエラー終了するように通知し、サーバ側暗号処理部125は、サーバ通信部122を経由して、サーバ回線142を介してSSLのSSL bad certificate alertメッセージを情報提供処理装置130へ送信し、サーバ回線142を切断し、終了する。また、通信制御部124は、ステップS317で、クライアント側暗号処理部123に利用者端末110とのSSLハンドシェイク処理をエラー終了するように通知し、クライアント側暗号処理部123は、クライアント通信部121を経由して、プロキシ回線141を介してSSLのSSL bad certificate alertメッセージを利用者端末110へ送信し、プロキシ回線141を切断し、終了する。ここで、利用者端末110に送信されるメッセージには、ステップS307、ステップS308の判定の結果が含まれており、このメッセージを受信した利用者端末110は、表示部にその旨を表示する。このようにSSLによるプロキシ回線の暗号化通信の確立、及び、SSLによるサーバ回線の暗号化通信の確立を行わずに中止することが可能となる。
【0260】
次に、図3におけるAP(アプリケーション)データ中継処理(ステップS312)の詳細処理を、図4を用いて説明する。
【0261】
なお、図4に示すステップS401からステップS409は、中継処理装置120のCPU201が実行することにより実現される。
【0262】
ステップS401では、クライアント通信部121は、プロキシ回線141を介して利用者端末110から暗号化された通信要求メッセージ(暗号化通信要求メッセージ)を受信し、該暗号化通信要求メッセージをクライアント側暗号処理部123へ渡す。
【0263】
ステップS402では、クライアント側暗号処理部123は、当該暗号化通信要求メッセージを、代理通信セッションレコード(図5の現在処理対象のレコード)の共通鍵その他ーC欄の記憶されている共通鍵を用いて復号化し、当該復号化された通信要求メッセージ(平文化通信要求メッセージ)を作成する。クライアント側暗号処理部123は、該平文化通信要求メッセージを通信制御部124へ渡す。
【0264】
なお、ここでは復号化された平文化通信要求メッセージに対して例えば以下の処理を行うことができる。
【0265】
例えば、平文化通信要求メッセージに対し、キーワード検査を行って機密情報として外部への送信が禁止されているデータが含まれているか否かを検査する処理を行い、禁止されているデータが含まれていると判定された場合は、当該平文化通信要求メッセージを情報提供処理装置130に中継することなく処理を終了することができる。また、平文化通信要求メッセージに外部への送信が禁止されているデータが含まれていないと判定された場合は、処理をステップS403に移行する。
【0266】
ステップS403では、通信制御部124は、平文化通信要求メッセージをサーバ側暗号処理部125へ渡し、サーバ側暗号処理部125は、該平文化通信要求メッセージを代理通信セッションレコードの共通鍵その他ーS欄の記憶されている共通鍵を用いて暗号化して、暗号化された通信要求メッセージ(暗号化通信要求メッセージ)を作成する。
【0267】
ステップS404では、サーバ側暗号処理部125は、当該暗号化通信要求メッセージをサーバ通信部122へ渡し、サーバ通信部122は、当該暗号化通信要求メッセージを情報提供処理装置130のサーバ処理部131へ送信する。
【0268】
ステップS405では、サーバ通信部122は、情報提供処理装置130のサーバ処理部131から暗号化された通信応答メッセージ(暗号化通信応答メッセージ)を受信し、該暗号化通信応答メッセージをサーバ側暗号処理部125へ渡す。
【0269】
ステップS406では、サーバ側暗号処理部125は、該暗号化通信応答メッセージを代理通信セッションレコードの共通鍵その他ーS欄の記憶されている共通鍵を用いて復号化して、当該復号された通信応答メッセージ(平文化通信応答メッセージ)を作成する。サーバ側暗号処理部125は、該平文化通信応答メッセージを通信制御部124へ渡す。
【0270】
なお、ここでは復号化された平文化通信要求メッセージに例えば以下の処理を行うことができる。
【0271】
例えば、平文化通信応答メッセージに対しアンチウィルス処理を行い、平文化通信応答メッセージにウィルスが含まれているか否かを検査して、平文化通信応答メッセージにウィルスが含まれていると判定された場合は、当該平文化通信応答メッセージを利用者端末110に中継することなく処理を終了する。また、平文化通信応答メッセージにウィルスが含まれていると判定された場合は、処理をステップS407に移行する。
【0272】
ステップS407では、通信制御部124が、平文化通信応答メッセージをクライアント側暗号処理部123に渡し、クライアント側暗号処理部123は、当該平文化通信応答メッセージを、代理通信セッションレコードの共通鍵その他ーC欄の記憶されている共通鍵を用いて暗号化して、暗号化された通信応答メッセージ(暗号化通信応答メッセージ)を作成する。
【0273】
そして、ステップS408では、クライアント側暗号処理部123は、作成された暗号化通信応答メッセージをクライアント通信部121へ渡し、クライアント通信部121は、該暗号化通信応答メッセージを、利用者端末110の閲覧処理部111へ送信する。
【0274】
ステップS409では、通信制御部124は、利用者端末110、又は情報提供処理装置130からアプリケーション通信(HTTPトランザクション)の終了通知メッセージを受信したか否かを判定し、受信した場合は、処理を終了し、SSLによるプロキシ回線141の暗号化通信、及びSSLによるサーバ回線142の暗号化通信を切断する。一方、終了通知メッセージを受信していないと判定された場合は、SSLによるプロキシ回線141の暗号化通信、及びSSLによるサーバ回線142の暗号化通信を継続すると判定し、処理をステップS401に戻す。
【0275】
以上、本発明によれば、クライアント端末のユーザによる、該クライアント端末が接続要求する情報処理装置の安全性の確認作業を軽減可能にすると共に、各クライアント端末における該情報処理装置に係る安全性を共通の基準で確認し、該クライアント端末と該情報処理装置との間で通信される通信データの中継の可否を制御することができる。
【0276】
以上、本発明の実施形態を詳述したが、本発明は、例えば、システム、装置、方法、装置で読み取り実行可能なプログラムもしくは記憶媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0277】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【0278】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0279】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
【0280】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(基本システム或いはオペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0281】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【符号の説明】
【0282】
110 利用者端末
111 閲覧処理部
112 CA証明書保存部
120 中継所処理装置
121 クライアント通信部
122 サーバ通信部
123 クライアント側暗号処理部
124 通信制御部
125 サーバ側暗号処理部
126 代理用暗号鍵保存部
127 証明書付加情報保存部
128 CA証明書保存部
129 管理表保存部
130 情報提供処理装置
131 サーバ処理部
132 サーバ暗号鍵保存部
141 プロキシ回線
142 サーバ回線






【特許請求の範囲】
【請求項1】
クライアント端末と情報処理装置との間で通信される通信データを中継する中継処理装置であって、
前記情報処理装置から取得される公開鍵証明書が、前記中継処理装置が信頼する認証局により発行されたものであるか否かを判定するために用いられる、前記認証局が発行する公開鍵証明書を記憶する記憶手段と、
前記クライアント端末と前記情報処理装置との間の前記通信データを中継するために用いられるSSL通信を前記情報処理装置と確立する確立手段と、
前記確立手段で前記情報処理装置とSSL通信を確立する際に前記情報処理装置から取得される前記情報処理装置の公開鍵証明書と、前記記憶手段に記憶されている公開鍵証明書とを用いて、当該公開鍵証明書が前記認証局により発行されたものであるか否かを判定する判定手段と、
前記判定手段による判定結果に従って、前記クライアント端末と前記情報処理装置との間の通信データの中継を許可するか否かを決定する決定手段と、
を備えることを特徴とする中継処理装置。
【請求項2】
前記判定手段で、前記確立手段で前記情報処理装置とSSL通信を確立する際に前記情報処理装置から取得される公開鍵証明書が前記認証局により発行されたものではないと判定された場合、当該公開鍵証明書を解析することにより、当該公開鍵証明書が自己署名証明書であるか否かを判定する自己署名判定手段と、
当該公開鍵証明書が、前記確立手段で確立される前記情報処理装置とのSSL通信で、所定期間以上用いられていたかを判定する期間判定手段と、
を更に備え、
前記決定手段は、前記自己署名判定手段で、当該公開鍵証明書が自己署名証明書であると判定され、かつ前記期間判定手段で前記情報処理装置とのSSL通信で、所定期間以上用いられていたと判定された場合は、前記クライアント端末と前記情報処理装置との間の通信データの中継を許可することを特徴とする中継処理装置。
【請求項3】
前記判定手段で、前記確立手段で前記情報処理装置とSSL通信を確立する際に前記情報処理装置から取得される公開鍵証明書が前記認証局により発行されたものではないと判定された場合、前記情報処理装置のドメインが、当該公開鍵証明書に含まれているドメインのサブドメインであるか否かを判定するドメイン判定手段を更に備え、
前記決定手段は、前記ドメイン判定手段で、前記情報処理装置のドメインが、当該公開鍵証明書に含まれているドメインのサブドメインであると判定され、かつ前記期間判定手段で前記情報処理装置とのSSL通信で、所定期間以上用いられていたと判定された場合は、前記クライアント端末と前記情報処理装置との間の通信データの中継を許可することを特徴とする中継処理装置。
【請求項4】
クライアント端末と情報処理装置との間で通信される通信データを中継する、前記情報処理装置から取得される公開鍵証明書が、前記中継処理装置が信頼する認証局により発行されたものであるか否かを判定するために用いられる、前記認証局が発行する公開鍵証明書を記憶する記憶手段を備えた中継処理装置の制御方法であって、
前記確立手段が、前記クライアント端末と前記情報処理装置との間の前記通信データを中継するために用いられるSSL通信を前記情報処理装置と確立する確立工程と、
前記判定手段が、前記確立工程で前記情報処理装置とSSL通信を確立する際に前記情報処理装置から取得される前記情報処理装置の公開鍵証明書と、前記記憶手段に記憶されている公開鍵証明書とを用いて、当該公開鍵証明書が前記認証局により発行されたものであるか否かを判定する判定工程と、
前記決定手段が、前記判定工程による判定結果に従って、前記クライアント端末と前記情報処理装置との間の通信データの中継を許可するか否かを決定する決定工程と、
を備えることを特徴とする中継処理装置の制御方法。
【請求項5】
クライアント端末と情報処理装置との間で通信される通信データを中継する中継処理装置で実行可能なプログラムであって、
前記中継処理装置を、
前記情報処理装置から取得される公開鍵証明書が、前記中継処理装置が信頼する認証局により発行されたものであるか否かを判定するために用いられる、前記認証局が発行する公開鍵証明書を記憶する記憶手段と、
前記クライアント端末と前記情報処理装置との間の前記通信データを中継するために用いられるSSL通信を前記情報処理装置と確立する確立手段と、
前記確立手段で前記情報処理装置とSSL通信を確立する際に前記情報処理装置から取得される前記情報処理装置の公開鍵証明書と、前記記憶手段に記憶されている公開鍵証明書とを用いて、当該公開鍵証明書が前記認証局により発行されたものであるか否かを判定する判定手段と、
前記判定手段による判定結果に従って、前記クライアント端末と前記情報処理装置との間の通信データの中継を許可するか否かを決定する決定手段として機能させることを特徴とするプログラム。



【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−137975(P2012−137975A)
【公開日】平成24年7月19日(2012.7.19)
【国際特許分類】
【出願番号】特願2010−290520(P2010−290520)
【出願日】平成22年12月27日(2010.12.27)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.コンパクトフラッシュ
【出願人】(390002761)キヤノンマーケティングジャパン株式会社 (656)
【出願人】(312000206)キヤノンMJアイティグループホールディングス株式会社 (259)
【出願人】(592135203)キヤノンITソリューションズ株式会社 (528)
【Fターム(参考)】