(57)【要約】【課題】暗号化通信における通信データ量を削減する。【解決手段】Ｗｅｂサーバマシン１１側に設けられたプロキシサーバマシン１２上で動作する、キャッシュ１２１を持つサーバプロキシ１２０と、クライアント側システム２０に位置するクライアントマシン２１上で動作するクライアントモジュール２２０との間では、暗号化通信プロトコルによる暗号化通信が行われる。クライアントマシン２１上で動作するＷｅｂブラウザ２１０とクライアントモジュール２２０との間では、非暗号化通信プロトコルによる非暗号化通信が行われる。クライアントモジュール２２０は、Ｗｅｂブラウザ２１０に渡すレスポンスに対しては暗号化プロトコルから非暗号化プロトコルへのプロトコル変換を行い、Ｗｅｂブラウザ２１０から渡されるリクエストに対しては非暗号化プロトコルから暗号化プロトコルへのプロトコル変換を行う。【選択図】      図２
2005063032.tif 000002
【特許請求の範囲】
【請求項１】
Ｗｅｂサーバが動作する少なくとも１つのＷｅｂサーバマシンと、
前記Ｗｅｂサーバの代理として機能して当該Ｗｅｂサーバとの間で暗号化プロトコルによる通信が可能なサーバプロキシが動作する少なくとも１つのプロキサーバマシンと、
Ｗｅｂブラウザの代理として機能して当該Ｗｅｂブラウザからのリクエストで指定されたサーバプロキシとの間で暗号化プロトコルによる通信が可能なクライアントモジュールが動作し、前記少なくとも１つのプロキサーバマシンと通信回線を介して接続される少なくとも１つのクライアントマシンとを具備するクライアント／サーバシステムであって、
前記サーバプロキシは、
前記Ｗｅｂサーバからのレスポンスに含まれているコンテンツを当該コンテンツの識別子としてのフィンガープリントと対応付けて格納するための第１のキャッシュと、
暗号化通信データを復号して非暗号化する第１の復号処理手段と、
非暗号化通信データを暗号化する第１の暗号化処理手段と、
前記第１の復号処理手段により復号された前記Ｗｅｂサーバからのレスポンスに含まれているコンテンツと同一のコンテンツが前記第１のキャッシュに格納されている場合、当該コンテンツに代えて、当該コンテンツに固有のフィンガープリントを含むレスポンスを、前記第１の暗号化手段により暗号化してリクエスト元のクライアントモジュールに送信するための第１のコンテンツ識別手段とを備え、
前記クライアントモジュールは、
前記サーバプロキシからのレスポンスから取得されたコンテンツを当該コンテンツの識別子としてのフィンガープリントと対応付けて格納するための第２のキャッシュと、
暗号化通信データを復号して非暗号化する第２の復号処理手段と、
非暗号化通信データを暗号化する第２の暗号化処理手段と、
前記第２の復号処理手段により復号された前記サーバプロキシからのレスポンスに前記第２のキャッシュに格納されているコンテンツに固有のフィンガープリントが含まれている場合、当該コンテンツを前記第２のキャッシュから取り出して、その取り出されたコンテンツを含むレスポンスを送出する第２のコンテンツ識別手段と、
前記第２のコンテンツ識別手段により送出されたレスポンスまたは前記Ｗｅｂブラウザから非暗号化プロトコルによる通信で送られたロケーション情報を含むリクエストを受けてプロトコル変換を行うためのプロトコル変換手段であって、前記レスポンスに対しては前記暗号化プロトコルから前記非暗号化プロトコルへのプロトコル変換を行って、そのプロトコル変換後のレスポンスを前記Ｗｅｂブラウザに送り、前記リクエストに対しては前記非暗号化プロトコルから前記暗号化プロトコルへのプロトコル変換を行って、そのプロトコル変換後のリクエストを前記第２の暗号化手段により暗号化してリクエスト先の前記サーバプロキシに送信するためのプロトコル変換手段とを備える
ことを特徴とするクライアント／サーバシステム。
【請求項２】
前記プロトコル変換手段は、前記レスポンスに対しては当該レスポンスに含まれているコンテンツを対象に前記暗号化プロトコルによる暗号化通信を示す暗号化プロトコル識別子から前記非暗号化プロトコルによる非暗号化通信を示す非暗号化プロトコル識別子への変換を含むプロトコル変換を行う第１の変換手段と、前記リクエストに対しては当該リクエストに含まれているロケーション情報を対象に前記非暗号化プロトコル識別子から前記暗号化プロトコル識別子への変換を含むプロトコル変換を行う第２の変換手段とを備えることを特徴とする請求項１記載のクライアント／サーバシステム。
【請求項３】
前記クライアントモジュールは、前記プロトコル変換手段によるプロトコル変換に用いられる、少なくとも１対の第１及び第２の情報の対を記憶することが可能な変換テーブルを更に備え、
前記第１の変換手段は、前記レスポンス中のコンテンツに前記暗号化プロトコル識別子と前記変換テーブルに記憶されている第１の情報とを持つロケーション情報が含まれている場合に、当該ロケーション情報中の前記暗号化プロトコル識別子を前記非暗号化プロトコル識別子に変換すると共に、当該ロケーション情報中の前記第１の情報を当該第１の情報と対をなして前記変換テーブルに記憶されている第２の情報に変換し、
前記第２の変換手段は、前記リクエストに前記非暗号化プロトコル識別子と前記変換テーブルに記憶されている第２の情報とを持つロケーション情報が含まれている場合に、当該ロケーション情報中の前記非暗号化プロトコル識別子を前記暗号化プロトコル識別子に変換すると共に、当該ロケーション情報中の前記第２の情報を当該第２の情報と対をなして前記変換テーブルに記憶されている第１の情報に変換する
ことを特徴とする請求項２記載のクライアント／サーバシステム。
【請求項４】
前記第１の変換手段は、前記レスポンス中のコンテンツに含まれるロケーション情報が、前記暗号化プロトコル識別子と前記変換テーブルに記憶されている第１の情報とを持つと共に当該第１の情報の下位側に続く第３の情報を持つ場合に、当該第３の情報を残した状態で、当該ロケーション情報中の前記暗号化プロトコル識別子を前記非暗号化プロトコル識別子に変換すると共に、当該ロケーション情報中の前記第１の情報を当該第１の情報と対をなして前記変換テーブルに記憶されている第２の情報に変換することを特徴とする請求項３記載のクライアント／サーバシステム。
【請求項５】
前記変換テーブルには、前記第１及び第２の情報の対と対応付けてプロトコル変換の対象外とする第４の情報を記憶することが可能であり、
前記第１の変換手段は、前記レスポンス中のコンテンツに、前記変換テーブルに記憶されている第１の情報を持つロケーション情報が含まれていても、当該第１の情報と当該第１の情報の下位側に続く第３の情報とから構成される情報が当該第１の情報と対応付けて前記第４の情報として前記変換テーブルに記憶されている場合には、当該ロケーション情報を対象とするプロトコル変換を控えることを特徴とする請求項４記載のクライアント／サーバシステム。
【請求項６】
前記変換テーブルに記憶される第２の情報には、前記暗号化プロトコルによる通信で用いられるロケーション情報で省略される第１のウエルノウンポート番号とは別に定義された第２のウエルノウンポート番号を含めることが可能であることを特徴とする請求項３記載のクライアント／サーバシステム。
【請求項７】
前記クライアントモジュールは、前記サーバプロキシとの間で前記暗号化プロトコルによる暗号化通信を行う際に、暗号化通信中を示す表示を行う暗号化通信状態表示手段を更に備えている請求項１記載のクライアント／サーバシステム。
【請求項８】
前記第１のコンテンツ識別手段は、前記Ｗｅｂサーバからのレスポンスに含まれているコンテンツと類似のコンテンツが前記第１のキャッシュに格納されている場合、当該レスポンスに含まれているコンテンツに代えて、当該コンテンツに固有のフィンガープリント及び当該類似コンテンツのフィンガープリントである類似フィンガープリントの対と当該両コンテンツの差分のデータとを含むレスポンスを、前記第１の暗号化手段により暗号化してリクエスト元のクライアントモジュールに送信し、
前記第２のコンテンツ識別手段は、前記サーバプロキシからのレスポンスに類似フィンガープリントを含むフィンガープリント対と差分データとが含まれ、且つ当該類似フィンガープリントが前記第２のキャッシュに格納されている場合、当該類似フィンガープリントと対応付けて前記第２のキャッシュに格納されているコンテンツと前記差分データとから、前記フィンガープリント対のうちの前記類似フィンガープリントとは別のフィンガープリントに対応するコンテンツを復元して、その復元されたコンテンツを含むレスポンスを送出すると共に、その復元されたコンテンツを当該コンテンツの識別子としてのフィンガープリントと対応付けて前記第２のキャッシュに格納する
ことを特徴とする請求項１記載のクライアント／サーバシステム。
【請求項９】
Ｗｅｂサーバが動作する少なくとも１つのＷｅｂサーバマシンと、前記Ｗｅｂサーバの代理として機能して当該Ｗｅｂサーバとの間で暗号化プロトコルによる通信が可能なサーバプロキシであって、前記Ｗｅｂサーバからのレスポンスに含まれているコンテンツを当該コンテンツの識別子としてのフィンガープリントと対応付けて格納するための第１のキャッシュ、暗号化通信データを復号して非暗号化する第１の復号処理手段、非暗号化通信データを暗号化する第１の暗号化処理手段、及び前記第１の復号処理手段により復号された前記Ｗｅｂサーバからのレスポンスに含まれているコンテンツと同一のコンテンツが前記第１のキャッシュに格納されている場合、当該コンテンツに代えて、当該コンテンツに固有のフィンガープリントを含むレスポンスを、前記第１の暗号化手段により暗号化してリクエスト元に送信するための第１のコンテンツ識別手段とを有するサーバプロキシが動作する少なくとも１つのプロキサーバマシンと、前記少なくとも１つのプロキサーバマシンと通信回線を介して接続される少なくとも１つのクライアントマシンとを備えたクライアント／サーバシステムに適用され、前記クライアントマシン上で動作し、Ｗｅｂブラウザの代理として機能して当該Ｗｅｂブラウザからのリクエストで指定されたサーバプロキシとの間で暗号化プロトコルによる通信が可能なクライアントモジュールであって、
前記サーバプロキシからのレスポンスから取得されたコンテンツを当該コンテンツの識別子としてのフィンガープリントと対応付けて格納するための第２のキャッシュと、
暗号化通信データを復号して非暗号化する第２の復号処理手段と、
非暗号化通信データを暗号化する第２の暗号化処理手段と、
前記第２の復号処理手段により復号された前記サーバプロキシからのレスポンスに前記第２のキャッシュに格納されているコンテンツに固有のフィンガープリントが含まれている場合、当該コンテンツを前記第２のキャッシュから取り出して、その取り出されたコンテンツを含むレスポンスを送出する第２のコンテンツ識別手段と、
前記第２のコンテンツ識別手段により送出されたレスポンスまたは前記Ｗｅｂブラウザから非暗号化プロトコルによる通信で送られたロケーション情報を含むリクエストを受けてプロトコル変換を行うためのプロトコル変換手段であって、前記レスポンスに対しては前記暗号化プロトコルから前記非暗号化プロトコルへのプロトコル変換を行って、そのプロトコル変換後のレスポンスを前記Ｗｅｂブラウザに送り、前記リクエストに対しては前記非暗号化プロトコルから前記暗号化プロトコルへのプロトコル変換を行って、そのプロトコル変換後のリクエストを前記第２の暗号化手段により暗号化してリクエスト先の前記サーバプロキシに送信するためのプロトコル変換手段と
を具備することを特徴とするクライアントモジュール。
【請求項１０】
Ｗｅｂサーバが動作する少なくとも１つのＷｅｂサーバマシンと、前記Ｗｅｂサーバの代理として機能して当該Ｗｅｂサーバとの間で暗号化プロトコルによる通信が可能なサーバプロキシが動作する少なくとも１つのプロキサーバマシンと、Ｗｅｂブラウザの代理として機能して当該Ｗｅｂブラウザからのリクエストで指定されたサーバプロキシとの間で暗号化プロトコルによる通信が可能なクライアントモジュールが動作し、前記少なくとも１つのプロキサーバマシンと通信回線を介して接続される少なくとも１つのクライアントマシンとを備え、前記サーバプロキシは前記Ｗｅｂサーバからのレスポンスに含まれているコンテンツを当該コンテンツの識別子としてのフィンガープリントと対応付けて格納するための第１のキャッシュを有し、前記クライアントモジュールは前記サーバプロキシからのレスポンスから取得されたコンテンツを当該コンテンツの識別子としてのフィンガープリントと対応付けて格納するための第２のキャッシュを有するクライアント／サーバシステムにおいて、前記クライアントマシンにより実行されることにより前記クライアントモジュールの機能を実現するための暗号化通信プログラムであって、
前記クライアントマシンに、
前記サーバプロキシから前記通新回線を介して送信された暗号化されたレスポンスを受け取った場合に、当該レスポンスを復号して非暗号化するステップと、
復号された前記サーバプロキシからのレスポンスに前記第２のキャッシュに格納されているコンテンツに固有のフィンガープリントが含まれている場合、当該コンテンツを前記第２のキャッシュから取り出すステップと、
前記第２のキャッシュから取り出されたコンテンツを含むレスポンスを受けて、当該レスポンスを対象に、前記暗号化プロトコルから非暗号化プロトコルへのプロトコル変換を行うステップと、
前記非暗号化プロトコルへのプロトコル変換後のレスポンスを前記Ｗｅｂブラウザに送るステップと、
前記Ｗｅｂブラウザから非暗号化プロトコルによる通信で送られたロケーション情報を含むリクエストを受けて、当該リクエストを対象に前記非暗号化プロトコルから前記暗号化プロトコルへのプロトコル変換を行うステップと、
前記暗号化プロトコルへのプロトコル変換後のリクエストを暗号化してリクエスト先の前記サーバプロキシに送信するステップと
を実行させるための暗号化通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂサーバ側及びクライアント（Ｗｅｂブラウザ）側に、それぞれサーバプロキシ及びクライアントプロキシと呼ばれる、キャッシュを有するプロキシサーバを備えたクライアント／サーバシステムに係り、特にＷｅｂサーバとクライアントとの間で暗号化通信が行われる場合に好適なクライアント／サーバシステム、クライアントモジュール及び暗号化通信プログラムに関する。
【背景技術】
【０００２】
クライアント端末（上で動作するＷｅｂブラウザ）からＷｅｂサーバが提供する情報（コンテンツ）を閲覧する際の通信データ量を削減する（つまりＷｅｂトラフィックを軽減する）技術として、Ｗｅｂキャッシュは欠かせない技術である。Ｗｅｂキャッシュ技術とは、過去にアクセスしたコンテンツ（静的コンテンツ）をＷｅｂキャッシュに蓄積しておき、次に同じコンテンツのリクエストがあれば、蓄積しておいたコンテンツをリクエスト元に返す技術である。
【０００３】
また、近年のＷｅｂサーバ（Ｗｅｂサイト）の中には、クライアント端末からのリクエストを受け取るたびに、コンテンツを生成して、或いはクライアント（ユーザ）を認証することにより当該ユーザ向けのコンテンツを選択して、リクエスト元に送り返すものがある。このようなコンテンツは、当該コンテンツのロケーション情報として用いられるＵＲＬ（Uniform Resource Locator）が同一であっても、例えばユーザ毎に、或いはリクエスト時期毎に異なることから、動的コンテンツと呼ばれる。このような動的コンテンツは、従来のＷｅｂキャッシュでは扱えないのが一般的であった。
【０００４】
そこで最近は、静的コンテンツは勿論、動的コンテンツをもキャッシュ可能とするクライアント／サーバシステム（Ｗｅｂキャッシュシステム）が提案されている（例えば、非特許文献１参照）。このシステムは、Ｗｅｂサーバ側及びクライアント端末のＷｅｂブラウザ側に、それぞれ、サーバプロキシ及びクライアントプロキシと呼ばれるプロキシサーバを備えている。このシステムでは、Ｗｅｂブラウザからのリクエストは、クライアントプロキシ、インターネット及びサーバプロキシを介してＷｅｂサーバに伝えられる。これを受けてＷｅｂサーバは、要求されたコンテンツを生成または選択してサーバプロキシに返す。
【０００５】
サーバプロキシは、Ｗｅｂサーバから返されたコンテンツを受け取ると、当該コンテンツの識別子としてのフィンガープリント（ＦＰ）を計算する。フィンガープリントは、コンテンツ自身から一意に計算して得られるダイジェスト値であり、例えばハッシュ関数を用いて計算されるハッシュ値である。サーバプロキシは、フィンガープリントを計算すると、そのフィンガープリントが当該サーバプロキシのキャッシュに存在する場合、つまり過去にキャッシュされたコンテンツ（ＨＴＭＬページなど）と同一の内容を持つコンテンツがクライアントから要求された場合には、フィンガープリント（を含むレスポンスヘッダ）のみをインターネットを介してクライアントプロキシに送る。クライアントプロキシは、サーバプロキシからフィンガープリントのみが送られた場合、そのフィンガープリントに対応付けられたコンテンツを当該サーバプロキシのキャッシュから取り出して、Ｗｅｂブラウザに（クライアント）に送る。このようにサーバプロキシからクライアントプロキシに対してインターネットを介してフィンガープリントを送信するだけで、クライアントプロキシからクライアントには、リクエストしたコンテンツが送られるため、インターネットにおける通信データ量を削減できる。
【０００６】
また、計算されたフィンガープリントはサーバプロキシのキャッシュに存在しないものの、類似のフィンガープリントが当該キャッシュに存在する場合、サーバプロキシは、計算されたフィンガープリントとコンテンツとを対応付けて当該キャッシュに格納する。またサーバプロキシは、計算されたフィンガープリント及び類似のフィンガープリント、並びに両フィンガープリントにそれぞれ対応するコンテンツの差分をクライアントプロキシに送る。クライアントプロキシは、サーバプロキシからフィンガープリント及び類似フィンガープリント並びに差分（差分データ）が送られた場合、その類似フィンガープリントに対応付けられたコンテンツ（つまり類似コンテンツ）と差分データとから、リクエストされたコンテンツを復元する。クライアントプロキシは、類似フィンガープリントと共にサーバプロキシから送られたフィンガープリントと復元されたコンテンツとを対応付けて当該クライアントプロキシのキャッシュに格納し、且つ当該復元されたコンテンツをＷｅｂブラウザに（クライアント）に送る。このようにサーバプロキシからクライアントプロキシにインターネットを介してフィンガープリント及び類似フィンガープリント並びに差分を送信するだけで、クライアントプロキシからクライアントに、当該クライアントからリクエストされたコンテンツを送ることができる。このため、インターネットにおける通信データ量を削減できる。
【０００７】
一方、計算されたフィンガープリントだけでなく類似フィンガープリントもサーバプロキシのキャッシュに存在しない場合には、当該計算されたフィンガープリントとコンテンツとが対応付けられて当該キャッシュに格納される。また、サーバプロキシからクライアントプロキシへは、フィンガープリント（を含むレスポンスヘッダ）とコンテンツ（コンテンツボディ）とから構成されるレスポンスが送られる。クライアントプロキシは、サーバプロキシからフィンガープリントとコンテンツとを受け取ると、そのフィンガープリントとコンテンツとを対応付けて当該クライアントプロキシのキャッシュに格納すると共に、コンテンツをＷｅｂブラウザに送る。
【非特許文献１】吉井  謙一郎  外３名、“フィンガープリントキャッシュと動的Ｗｅｂコンテンツ配信への応用”、第４回インターネットテクノロジーワークショップ（ＷＩＴ）、２００１年９月５日〜２００１年９月７日、ｐ．１−８
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記したように、非特許文献１に記載されたＷｅｂキャッシュ技術によれば、Ｗｅｂサーバ側及びクライアント（Ｗｅｂブラウザ）側に、それぞれサーバプロキシ及びクライアントプロキシと呼ばれる、キャッシュを有するプロキシサーバを備えることにより、静的コンテンツは勿論、動的コンテンツをもキャッシュ可能となり、通信データ量を削減できる。
【０００９】
しかしながら、最近増加している暗号化を伴う通信、例えばＳＳＬ（Secure Sockets Layer）によるセキュリティ機能がＨＴＴＰ（Hyper Text Transfer Protocol）に追加されたプロトコル（つまりＨＴＴＳ）を用いたＨＴＴＰＳ通信では、以下に述べるように通信データ量を削減できない。まず、クライアントとＷｅｂサーバとの間の通信にＨＴＴＰＳ通信（暗号化を伴う通信）を用いた場合、そのＨＴＴＰＳ通信（暗号化を伴う通信）のデータはトンネリングされる。このためクライアントとＷｅｂサーバとの間の通信経路の途中に位置するクライアントプロキシ或いはサーバプロキシで通信データ（暗号化された通信データ）を操作すること、つまり通信データを復号して読み取るができない。したがって、暗号化を伴う通信（暗号化通信）における通信データ量を削減することができない。
【００１０】
本発明は上記事情を考慮してなされたものでその目的は、暗号化通信における通信データ量を削減することができるクライアント／サーバシステム、クライアントモジュール及び暗号化通信プログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明の１つの観点によれば、Ｗｅｂサーバが動作する少なくとも１つのＷｅｂサーバマシンと、上記Ｗｅｂサーバの代理として機能して当該Ｗｅｂサーバとの間で暗号化プロトコルによる通信が可能なサーバプロキシが動作する少なくとも１つのプロキサーバマシンと、Ｗｅｂブラウザの代理として機能して当該Ｗｅｂブラウザからのリクエストで指定されたサーバプロキシとの間で暗号化プロトコルによる通信が可能なクライアントモジュールが動作し、上記少なくとも１つのプロキサーバマシンと通信回線を介して接続される少なくとも１つのクライアントマシンとを具備するクライアント／サーバシステムが提供される。
【００１２】
上記サーバプロキシは、上記Ｗｅｂサーバからのレスポンスに含まれているコンテンツを当該コンテンツの識別子としてのフィンガープリントと対応付けて格納するための第１のキャッシュと、暗号化通信データを復号して非暗号化する第１の復号処理手段と、非暗号化通信データを暗号化する第１の暗号化処理手段と、上記第１の復号処理手段により復号された上記Ｗｅｂサーバからのレスポンスに含まれているコンテンツと同一のコンテンツが上記第１のキャッシュに格納されている場合、当該コンテンツに代えて、当該コンテンツに固有のフィンガープリントを含むレスポンスを、上記第１の暗号化手段により暗号化してリクエスト元のクライアントモジュールに送信するための第１のコンテンツ識別手段とを備えている。
【００１３】
一方、上記クライアントモジュールは、上記サーバプロキシからのレスポンスから取得されたコンテンツを当該コンテンツの識別子としてのフィンガープリントと対応付けて格納するための第２のキャッシュと、暗号化通信データを復号して非暗号化する第２の復号処理手段と、非暗号化通信データを暗号化する第２の暗号化処理手段と、上記第２の復号処理手段により復号された上記サーバプロキシからのレスポンスに上記第２のキャッシュに格納されているコンテンツに固有のフィンガープリントが含まれている場合、当該コンテンツを上記第２のキャッシュから取り出して、その取り出されたコンテンツを含むレスポンスを送出する第２のコンテンツ識別手段と、この第２のコンテンツ識別手段により送出されたレスポンスまたは上記Ｗｅｂブラウザから非暗号化プロトコルによる通信で送られたロケーション情報を含むリクエストを受けてプロトコル変換を行うためのプロトコル変換手段であって、上記レスポンスに対しては暗号化プロトコルから非暗号化プロトコルへのプロトコル変換を行って、そのプロトコル変換後のレスポンスを上記Ｗｅｂブラウザに送り、上記リクエストに対しては非暗号化プロトコルから暗号化プロトコルへのプロトコル変換を行って、そのプロトコル変換後のリクエストを上記第２の暗号化手段により暗号化してリクエスト先の上記サーバプロキシに送信するためのプロトコル変換手段とを備えている。
【００１４】
このような構成においては、Ｗｅｂサーバマシン側（サーバサイト）に設けられたプロキシサーバマシン上で動作するサーバプロキシと、クライアントサイトに位置するクライアントマシン上で動作するクライアントモジュールとの間で暗号化通信プロトコルによる暗号化通信が行われる。一方、クライアントマシン上で動作するＷｅｂブラウザとクライアントモジュールとの間では、非暗号化通信プロトコルによる非暗号化通信が行われる。そのために、クライアントモジュールは、Ｗｅｂブラウザに渡すレスポンスのデータ及びＷｅｂブラウザから渡されたリクエストのデータを操作し、レスポンスに対しては暗号化プロトコルから前記非暗号化プロトコルへのプロトコル変換を行い、リクエストに対しては非暗号化プロトコルから暗号化プロトコルへのプロトコル変換を行う。これにより、クライアントモジュールは、当該モジュールに証明書と鍵（公開鍵と秘密鍵）とをインストールすることなく、通信データを操作できる。よって、サーバプロキシ側とクライアントモジュール側にそれぞれ設けられたキャッシュを利用して、当該サーバプロキシとクライアントモジュールとの間で授受される暗号化通信データの通信データ量を削減することが可能となる。
【００１５】
上記構成では、Ｗｅｂブラウザ上で操作するユーザは、あるロケーション情報を含むリクエストをキー入力などによるアドレス指定で行う場合のみ、非暗号化プロトコルのリクエストを出すこと（通常のブラウザ操作時とは違うということ）を意識する必要がある。しかし上記構成においては、レスポンスを対象として暗号化プロトコルから非暗号化プロトコルへのプロトコル変換が行われる。このため、レスポンスに含まれているコンテンツが表示されているＷｅｂブラウザ上で、リンクをクリックする場合には、その操作だけで暗号化通信を行うことが可能となり、通常のブラウザ操作と相違なく操作を行うことができる。ここで、クライアントモジュールとサーバプロキシとの間で暗号化プロトコルによる暗号化通信を行う際に、暗号化通信中を示す表示を行う暗号化通信状態表示手段をクライアントモジュールに持たせるならば、ユーザに対し、Ｗｅｂブラウザから暗号化プロトコルによる暗号化通信を行う場合と同様に暗号化通信状態を認知させることができる。
【００１６】
ここで、上記プロトコル変換手段を、上記レスポンスに対しては当該レスポンスに含まれているコンテンツを対象に暗号化プロトコルによる暗号化通信を示す暗号化プロトコル識別子から非暗号化プロトコルによる非暗号化通信を示す非暗号化プロトコル識別子への変換を含むプロトコル変換を行う第１の変換手段と、上記リクエストに対しては当該リクエストに含まれているロケーション情報を対象に非暗号化プロトコル識別子から暗号化プロトコル識別子への変換を含むプロトコル変換を行う第２の変換手段とで構成するとよい。また、上記クライアントモジュールに、上記プロトコル変換手段によるプロトコル変換に用いられる、少なくとも１対の第１及び第２の情報の対を記憶することが可能な変換テーブルを持たせ、上記レスポンス中のコンテンツに暗号化プロトコル識別子と上記変換テーブルに記憶されている第１の情報とを持つロケーション情報が含まれている場合には、当該ロケーション情報中の暗号化プロトコル識別子を非暗号化プロトコル識別子に変換すると共に、当該ロケーション情報中の第１の情報を当該第１の情報と対をなして変換テーブルに記憶されている第２の情報に変換し、上記リクエストに非暗号化プロトコル識別子と上記変換テーブルに記憶されている第２の情報とを持つロケーション情報が含まれている場合には、当該ロケーション情報中の非暗号化プロトコル識別子を暗号化プロトコル識別子に変換すると共に、当該ロケーション情報中の第２の情報を当該第２の情報と対をなして変換テーブルに記憶されている第１の情報に変換する構成とするとよい。このようにすると、プロトコル変換が簡単に行える。
【００１７】
特に、上記レスポンス中のコンテンツに含まれるロケーション情報が、暗号化プロトコル識別子と上記変換テーブルに記憶されている第１の情報とを持つと共に当該第１の情報の下位側に続く第３の情報を持つ場合に、当該第３の情報を残した状態で、当該ロケーション情報中の暗号化プロトコル識別子を非暗号化プロトコル識別子に変換すると共に、当該ロケーション情報中の第１の情報を当該第１の情報と対をなして上記変換テーブルに記憶されている第２の情報に変換する構成とするならば、変換テーブルに記憶する第１及び第２の情報の対の数を減らすことができる。但し、この構成では、第１の情報の下位側に特定の第３の情報が続くロケーション情報を変換の対象外としたい場合に対応できない。そこで、このような第１の情報と特定の第３の情報とから構成される情報を、プロトコル変換の対象外とする第４の情報として、上記第１及び第２の情報の対と対応付けて上記変換テーブルに記憶するならば、変換テーブルに記憶する第１及び第２の情報の対の数を減らしながら、プロトコル変換の対象外としたいロケーション情報がプロトコル変換されるのを防止できる。
【００１８】
また、上記変換テーブルに記憶される第２の情報に、暗号化プロトコルによる通信で用いられるロケーション情報で省略される第１のウエルノウンポート番号とは別に定義された第２のウエルノウンポート番号を含めるとよい。このようにすると、プロトコル識別子のみが暗号化プロトコル識別子と非暗号化プロトコル識別子のように異なるロケーション情報が存在しても、それらのロケーション情報を区別して通信することができる。
【００１９】
なお、上記したクライアント／サーバシステムに係る本発明は、当該システム内のクライアントマシン上で動作するクライアントモジュールに係る発明としても成立し、当該クライアントマシンによって実行されて当該クライアントモジュールの機能を実現するための暗号化通信プログラムに係る発明としても成立する。
【発明の効果】
【００２０】
Ｗｅｂサーバマシン側に設けられたプロキシサーバマシン上で動作するサーバプロキシと、クライアントサイトに位置するクライアントマシン上で動作するクライアントモジュールとの間で暗号化通信プロトコルによる暗号化通信が行われる一方、クライアントマシン上で動作するＷｅｂブラウザとクライアントモジュールとの間では、非暗号化通信プロトコルによる非暗号化通信が行われる構成とし、且つクライアントモジュールでは、レスポンスに対しては暗号化プロトコルから非暗号化プロトコルへのプロトコル変換が行われ、リクエストに対しては非暗号化プロトコルから暗号化プロトコルへのプロトコル変換が行われる構成とすることにより、クライアントモジュールに証明書と鍵（公開鍵と秘密鍵）とをインストールすることなく、暗号化通信における通信データ量を削減することができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施の形態につき図面を参照して説明する。  
図１は本発明の一実施形態に係るクライアント／サーバシステムの構成を示すブロック図である。図１のクライアント／サーバシステムは、Ｗｅｂサーバ側システム（サーバサイト）１０とクライアント側システム（クライアントサイト）２０とに大別される。Ｗｅｂサーバ側システム１０は、Ｗｅｂサーバマシン１１とプロキシサーバマシン１２とから構成される。Ｗｅｂサーバマシン１１とプロキシサーバマシン１２とは、後述するインターネット３０と比べて高速な通信回線、例えばＬＡＮ１３により相互接続されている。一方、クライアント側システム２０は、クライアントマシン（クライアント端末）２１から構成される。Ｗｅｂサーバ側システム１０内のプロキシサーバマシン１２とクライアント側システム２０内のクライアントマシン２１とは、通信回線、例えばＷＡＮ（ワイドエリアネットワーク）としてのインターネット３０に接続されている。
【００２２】
なお、図１の例では、作図の都合上、Ｗｅｂサーバ側システム１０（つまりＷｅｂサーバマシン１１及びプロキシサーバマシン１２）と、クライアント側システム２０（つまりクライアントマシン２１）とが、いずれも１つの場合を示している。しかし、クライアント側システム２０（クライアントマシン２１）は、一般に複数である。また、Ｗｅｂサーバ側システム１０（Ｗｅｂサーバマシン１１及びプロキシサーバマシン１２）が複数であっても構わない。
【００２３】
Ｗｅｂサーバマシン１１上ではＷｅｂサーバ１１０が動作する。またプロキシサーバマシン１２上ではサーバプロキシ１２０が動作する。サーバプロキシ１２０は、キャッシュ１２１を有する。キャッシュ１２１は、クライアント側からの要求に応じてＷｅｂサーバ１１０から送られたＨＴＭＬ（HyperText Markup Language）ページに代表されるコンテンツを当該コンテンツの識別子としてのフィンガープリントと対応付けて記憶するのに用いられる。サーバプロキシ１２０は、特定のサーバであるＷｅｂサーバ１１０の代理として当該Ｗｅｂサーバ１１０への要求を中継する、リバースプロキシと呼ばれるプロキシサーバである。この場合、クライアント側システム２０からは、サーバプロキシ（リバースプロキシ）１２０がＷｅｂサーバ１１０であるかのように認識される。ここで、Ｗｅｂサーバ１１０のロケーション情報としての例えばＵＲＬは http://www.bbb.com/ であり、サーバプロキシ１２０のＵＲＬは http://www.ccc.com/ であるものとする。この例では、クライアント側システム２０内の後述するクライアントモジュール２２０から https://www.ccc.com/ にアクセスされると、https://www.bbb.com/ のページが当該クライアントモジュール２２０に送信される。Ｗｅｂサーバ１１０及びサーバプロキシ１２０には、暗号化通信、例えばＨＴＴＰＳ通信を実現するために、証明書と鍵（公開鍵と秘密鍵）がインストールされている。
【００２４】
一方、クライアントマシン２１上では、Ｗｅｂブラウザ２１０とクライアントモジュール２２０とが動作する。クライアントマシン２１には、キーボード、或いはマウスに代表される入力部２３０が設けられている。クライアントモジュール２２０は、一種のクライアントプロキシである。クライアントモジュール２２０は、キャッシュ２２１を有する。キャッシュ２２１は、クライアント側からの要求に応じてサーバプロキシ１２０から送られたコンテンツ（またはサーバプロキシ１２０から送られた差分データをもとに復元されたコンテンツ）を当該コンテンツの識別子としてのフィンガープリントと対応付けて格納するのに用いられる。
【００２５】
Ｗｅｂサーバ１１０及びサーバプロキシ１２０は、Ｗｅｂサーバマシン１１がそれぞれＷｅｂサーバ用プログラム及びサーバプロキシ用プログラムを実行することにより実現される。Ｗｅｂブラウザ２１０及びクライアントモジュール２２０は、クライアントマシン２１がそれぞれＷｅｂブラウザ用プログラム及びクライアントモジュール用プログラム（暗号化通信プログラム）を実行することにより実現される。
【００２６】
さて、発明が解決しようとする課題で述べたように、キャッシュ（Ｗｅｂキャッシュ）を有するサーバプロキシ及びクライアントプロキシを備えたクライアント／サーバシステムにおいて、暗号化通信における通信データ量を削減するには、サーバプロキシ及びクライアントプロキシで暗号化された通信データを操作できなくてはならない。そのための手段として、サーバプロキシを、クライアントプロキシからＷｅｂサーバとして認識されるリバースプロキシ化し、クライアントプロキシを、ＷｅｂブラウザからＷｅｂサーバとして認識されるリバースプロキシ化することが考えられる。また、サーバプロキシ及びクライアントプロキシの双方に、暗号化通信、例えばＨＴＴＰＳ通信を実現するために、証明書と鍵（公開鍵と秘密鍵）とをインストールすることが考えられる。しかし、一般に多数のクライアントマシンがインターネットを介してプロキシサーバマシンと接続されるシステムにおいて、当該多数のクライアントマシン上で動作するクライアントプロキシの全てに、サーバプロキシと同様に証明書と鍵とをインストールするのは、セキュリティ面で非現実的である。また、証明書と鍵は有料であることから、各クライアントプロキシ用に、個別に証明書と鍵を用意するのは、費用面でも非現実的である。しかも、本来、サーバサイトにて行うべき認証を、クライアントサイトにて行うため、この点でもセキュリティ面で問題がある。
【００２７】
そこで本実施形態では、クライアントプロキシとしてのクライアントモジュール２２０に証明書と鍵をインストールすることなく、且つ当該クライアントモジュール２２０をリバースプロキシ化することなく、当該クライアントモジュール２２０で通信データ（暗号化通信データ）を操作可能とする、以下に示す構成を適用している。
【００２８】
（１）クライアントモジュール２２０からhttps通信（暗号化プロトコルによる暗号化通信）にてＷｅｂサーバ１１０にアクセスする場合でも、クライアント側システム２０内におけるＷｅｂブラウザ２１０とクライアントモジュール２２０との間はhttp通信（非暗号化プロトコルによる非暗号化通信）とする。
【００２９】
（２）クライアントモジュール２２０にて、Ｗｅｂブラウザ２１０からのリクエストデータ及び当該Ｗｅｂブラウザ２１０へのレスポンスデータを操作する。ここでは、後述のルールに従ってhttp（非暗号化プロトコルによる非暗号化通信を示す非暗号化プロトコル識別子）とhttps（暗号化プロトコルによる暗号化通信を示す暗号化プロトコル識別子）との間の変換（を含むＵＲＬの変換）が行われる。
【００３０】
（３）クライアントモジュール２２０を、Ｗｅｂブラウザ２１０が置かれるのと同じクライアントマシン２１上に置く。
【００３１】
（４）クライアントモジュール２２０とサーバプロキシ１２０との間でhttps通信を行う場合に限り、暗号化通信中である旨を示す鍵マークを、クライアントモジュール２２０（内の後述する暗号化通信状態表示部２２８）がクライアントマシン２１の図示せぬ表示素子（または表示器）に表示する。なお、Ｗｅｂブラウザ２１０がhttps通信を直接行う場合、暗号化通信中である旨を示す鍵マークが当該Ｗｅｂブラウザ２１０によって表示素子（または表示器）に表示されるのが一般的である。しかし本実施形態では、Ｗｅｂブラウザ２１０は、クライアントモジュール２２０とサーバプロキシ１２０との間のhttps通信を認知できない。そこで、クライアントモジュール２２０がＷｅｂブラウザ２１０に代わって鍵マークを表示素子（または表示器）に表示する。
【００３２】
図２は、図１に示したプロキシサーバマシン１２内のサーバプロキシ１２０とクライアントマシン２１内のクライアントモジュール２２０の詳細な構成を示すブロック図である。図２に示すように、サーバプロキシ１２０は、キャッシュ１２１に加えて、復号処理部１２２と、暗号化処理部１２３と、コンテンツ識別部１２４とを有している。一方、クライアントモジュール２２０は、キャッシュ２２１に加えて、復号処理部２２２と、暗号化処理部２２３と、コンテンツ識別部２２４と、プロトコル変換部２２５と、変換テーブル２２６と、テーブル情報設定部２２７と、暗号化通信状態表示部２２８とを有している。
【００３３】
サーバプロキシ１２０において、復号処理部１２２は、暗号化された通信データを復号して非暗号化する。暗号化処理部１２３は、通信データを暗号化する。コンテンツ識別部１２４は、Ｗｅｂサーバ１１０からのレスポンスに含まれているコンテンツと同一のコンテンツ、または類似のコンテンツがキャッシュ１２１に格納されているかを判別する。コンテンツ識別部１２４は、Ｗｅｂサーバ１１０からのレスポンスに含まれているコンテンツと同一のコンテンツがキャッシュ１２１に格納されている場合には、当該コンテンツの識別子（つまりフィンガープリント）だけをレスポンスとして暗号化処理部１２３を介してクライアント側システム２０側に送信する。コンテンツ識別部１２４は、Ｗｅｂサーバ１１０からのレスポンスに含まれているコンテンツと類似していると判定されるコンテンツ（例えば、前記非特許文献１に記載されているように、レスポンスに含まれているコンテンツの部分列と同一の部分列を持つコンテンツ）がキャッシュ１２１に格納されている場合には、当該レスポンスに含まれているコンテンツのフィンガープリントと類似コンテンツのフィンガープリントと、両コンテンツの差分のデータ（差分データ）とをレスポンスとして送信する。このときコンテンツ識別部１２４は、レスポンスに含まれているコンテンツを当該コンテンツのフィンガープリントと対応付けてキャッシュ１２１に格納する。コンテンツ識別部１２４はまた、Ｗｅｂサーバ１１０からのレスポンスに含まれているコンテンツと同一のコンテンツも類似のコンテンツもキャッシュ１２１に格納されていない場合、当該レスポンスに含まれているコンテンツと当該コンテンツのフィンガープリントとをレスポンスとして送信する。このときコンテンツ識別部１２４は、レスポンスに含まれているコンテンツを当該コンテンツのフィンガープリントと対応付けてキャッシュ１２１に格納する。
【００３４】
クライアントモジュール２２０において、復号処理部２２２は、暗号化された通信データを復号する。暗号化処理部２２３は、通信データを暗号化する。コンテンツ識別部２２４は、サーバプロキシ１２０からのレスポンスとしてフィンガープリントのみを受信して、コンテンツは受信しなかった場合、当該フィンガープリントと対応付けてキャッシュ２２１に格納されているコンテンツを取り出してレスポンスとしてＷｅｂブラウザ２１０に送信する。コンテンツ識別部２２４はまた、サーバプロキシ１２０からのレスポンスとしてフィンガープリント及びその類似フィンガープリントと差分データを受信した場合、当該類似フィンガープリントと対応付けてキャッシュ２２１に格納されているコンテンツと当該差分データとから、Ｗｅｂブラウザ２１０から要求されたコンテンツを復元する。コンテンツ識別部２２４はまた、類似フィンガープリントと共にサーバプロキシ１２０から送られたフィンガープリントと復元されたコンテンツとを対応付けてキャッシュ２２１に格納し、且つ当該復元されたコンテンツをＷｅｂブラウザ２１０に送信する。コンテンツ識別部２２４はまた、サーバプロキシ１２０からのレスポンスとしてフィンガープリントとコンテンツとを受信した場合、そのコンテンツを当該フィンガープリントと対応付けてキャッシュ１２１に格納し、且つそのコンテンツをＷｅｂブラウザ２１０に送信する。
【００３５】
プロトコル変換部２２５は、リクエストまたはレスポンスに含まれるロケーション情報としてのＵＲＬに対してプロトコルの変換（ここでは、httpsとhttpとの間の変換を含む文字列の変換）を行う。変換テーブル２２６は、プロトコル変換部２２５によるプロトコル変換で用いられる変換情報を記憶するのに用いられる。変換テーブル２２６には、変換情報として、少なくとも第１及び第２の情報（文字列）としての第１及び第２のＵＲＬが記憶される。変換テーブル２２６は、書き換え可能な不揮発性記憶装置、例えばフラッシュＲＯＭに格納される。テーブル情報設定部２２７は、ユーザからの要求に従い図示せぬ表示器を介して変換テーブル２２６に設定する情報の入力を案内し、当該ユーザが入力部２３０を操作することで指定された情報を変換テーブル２２６に設定する。暗号化通信状態表示部２２７は、クライアントモジュール２２０とサーバプロキシ１２０との間で暗号化通信が行われる期間、暗号化通信中を示す表示（例えば鍵マークの表示）を表示素子（または表示器）に行う。
【００３６】
図３は変換テーブル２２６のデータ構造例を示す。変換テーブル２２６の各エントリは、第１のＵＲＬ（第１の情報）が格納されるフィールド２２６ａと、第２のＵＲＬ（第２の情報）が格納されるフィールド２２６ｂと、第３のＵＲＬ（第４の情報）が格納されるフィールド２２６ｃとを含む。第１のＵＲＬは、サーバプロキシ１２０からのレスポンスに対しては変換対象を指定するＵＲＬとして用いられ、Ｗｅｂブラウザ２１０からのリクエストに対しては変換後のＵＲＬとして用いられる。第１のＵＲＬには、例えば www.aaa.com/bbb/ のように、サーバ名 www.aaa.com/の下に、パスbbb/、或いはファイル名を付すことが可能である。第２のＵＲＬは、第１のＵＲＬとは逆に、サーバプロキシ１２０からのレスポンスに対しては変換後ＵＲＬとして用いられ、Ｗｅｂブラウザ２１０からのリクエストに対しては変換対象を指定するＵＲＬとして用いられる。第３のＵＲＬは、第１または第２のＵＲＬによって指定される変換対象ＵＲＬのうち、変換対象外とすべきＵＲＬを示す。フィールド２２６ｃには、第１または第２のＵＲＬによって指定される全ての変換対象ＵＲＬのうち、変換対象外とすべきＵＲＬを必要数だけ設定可能である。
【００３７】
図３の例では、変換テーブル２２６に、第１及び第２のＵＲＬとして、www.aaa.com/bbb/ 及び www.aaa.com/bbb/ が記憶されている。第１または第２のＵＲＬをwww.aaa.com/bbb/ とした場合、基本的には、bbb以下のパスやファイル名が付されたＵＲＬを全て変換対象とすることができる。つまり、www.aaa.com/bbb/ は勿論、例えば www.aaa.com/bbb/xxx/ 、或いは www.aaa.com/bbb/yyy.cgi をも変換対象とすることができる。このように本実施形態では、少ない情報量で、多くの変換対象ＵＲＬを指定できる。なお、/xxx/、或いは /yyy.cgi は変換後も継承される。
【００３８】
さて、上記の変換対象ＵＲＬ指定方法を適用した場合、変換対象ＵＲＬの中に、変換対象外とすべきＵＲＬが含まれてしまう可能性がある。例えば、「http://www.aaa.com/bbb/ccc/ が存在するため、www.aaa.com/bbb/ccc/ は対象外にしたい」場合が、これに相当する。そこで本実施形態では、上記したように、第１または第２のＵＲＬによって指定される変換対象ＵＲＬ群のうち、変換対象外とすべきＵＲＬ（つまり第３のＵＲＬ）を変換テーブル２２６内の同一エントリのフィールド２２６ｃに設定可能なようになっている。図３の例では、www.aaa.com/bbb/ccc/ が変換対象外として指定されている。
【００３９】
変換テーブル２２６にはまた、第１及び第２のＵＲＬとして、 www.abc.com/ 及び www.abc.com:443/ も記憶されている。この www.abc.com:443/ 中の 443 は https のウエルノウンポート番号であり、ＵＲＬ中でポート番号が省略されている場合に、一般のＷｅｂブラウザにて自動的に用いられるポート番号である。http のウェルノウンポート番号は 80 である。したがって、一般的には http://www.abc.com:443/ というＵＲＬは使用されない。このため、http://www.abc.com:443/ のようなＵＲＬは、クライアントモジュール２２０用に用いられたと判断しても支障が起きない場合が殆どである。なお、支障が起きないとは、ユーザに注意する必要はあるが、他の製品との組み合わせで問題が生じる可能性は低いことを意味する。
【００４０】
次に、本実施形態におけるクライアントモジュール２２０とサーバプロキシ１２０との間の暗号化通信を伴う動作について、図４乃至及び図７のフローチャート及び図８のシーケンスチャートを参照して説明する。まず、ユーザが入力部２３０を操作した結果、クライアントマシン２１上のＷｅｂブラウザ２１０を起動したものとする（ステップＳ１）。この状態で、ユーザが入力部２３０を操作してサーバプロキシ１２０上で公開しているページのＵＲＬ（アドレス）、例えばhttp://www.ccc.com/bbb/ を入力したものとする（ステップＳ２）。この例では、後述するように、クライアントモジュール２２０とサーバプロキシ１２０との間で暗号化通信（ＨＴＴＰＳ通信）が行われる。しかしユーザは、最初のリクエスト時に、https://www.ccc.com/bbb/ ではなくて、http://www.ccc.com/bbb/ を入力する。するとＷｅｂブラウザ２１０は、同じクライアントマシン２１上で動作しているクライアントモジュール２２０に対して、http://www.ccc.com/bbb/ で指定されるページを取得することを要求するためのリクエスト８０１、例えば"GET http://www.ccc.com/bbb/" を送信する（ステップＳ３）。
【００４１】
クライアントモジュール２２０内のプロトコル変換部２２５は、Ｗｅｂブラウザ２１０からのリクエスト８０１を受け取ると、当該リクエスト８０１中のＵＲＬをキーとして変換テーブル２２６を参照し、当該ＵＲＬが第２のＵＲＬとして記憶されているエントリが存在するか否か、つまり当該ＵＲＬが http →https 変換の対象となるＵＲＬとして記憶されているエントリが存在するか否かを判定する（ステップＳ４）。この例では、www.ccc.com/bbb/ は変換テーブル２２６に第２のＵＲＬとして記憶されている。この場合、プロトコル変換部２２５は、第２のＵＲＬである www.ccc.com/bbb/ を、当該第２のＵＲＬと対をなして変換テーブル２２６に記憶されている第１のＵＲＬ、つまり www.ccc.com/bbb/ （この例では、第２のＵＲＬと同一の第１のＵＲＬ）に変換し、この第１のＵＲＬを用いてhttpからhttpsへのプロトコル変換８０２を行う（ステップＳ５）。これにより、http://www.ccc.com/bbb/ は https://www.ccc.com/bbb/ に変換される。このとき暗号化通信状態表示部２２８は、暗号化通信中を示す鍵マーク表示を行う（ステップＳ６）。
【００４２】
プロトコル変換部２２５は、プロトコル変換後のリクエスト８０３、即ち"GET https://www.ccc.com/bbb/"を暗号化処理部２２３に送る。暗号化処理部２２３は、プロトコル変換後のリクエストを暗号化する（ステップＳ７）。クライアントモジュール２２０は、暗号化処理部２２３により暗号化されたリクエスト８０３、即ち"GET https://www.ccc.com/bbb/"をインターネット３０を介してＷｅｂサーバ側システム１０のサーバプロキシ１２０に送信する（ステップＳ８）。サーバプロキシ１２０は、自身宛てのリクエスト８０３、即ち"GET https://www.ccc.com/bbb/"を受け取ると、当該リクエスト８０３をＷｅｂサーバ１１０宛ての暗号化されたリクエスト８０４、例えば"GET https://www.bbb.com/bbb/"に変換して、当該Ｗｅｂサーバ１１０に送信する（ステップＳ９）。
【００４３】
Ｗｅｂサーバ１１０は、サーバプロキシ１２０から送信されたリクエスト８０４を受け取ると、当該リクエスト８０４を処理し、当該リクエスト８０４で要求されたwww.bbb.com/bbb/で指定されるコンテンツ（例えばＨＴＭＬページ）８０５をコンテンツボディとして持つ暗号化されたレスポンス８０６をサーバプロキシ１２０に送信する（ステップＳ１０）。サーバプロキシ１２０内の復号処理部１２２は、Ｗｅｂサーバ１１０から送信されたレスポンス８０６を受け取ると、当該レスポンス８０６を復号化してコンテンツ識別部１２４に送る（ステップＳ１１）。
【００４４】
コンテンツ識別部１２４は、復号処理部１２２により復号されたレスポンス８０６を受け取ると、当該レスポンス８０６に含まれているコンテンツ８０５から当該コンテンツ８０５の識別子としてのフィンガープリントＦＰを計算する（ステップＳ１２）。コンテンツ識別部１２４は、フィンガープリントＦＰがキャッシュ１２１に存在するかを調べる（ステップＳ１３）。もし、存在しないならば、コンテンツ識別部１２４は、フィンガープリントＦＰに類似したフィンガープリントＦＰ’（つまり、ＦＰで識別されるコンテンツと類似したコンテンツのＦＰ’）がキャッシュ１２１に存在するかを調べる（ステップＳ１４）。もし、類似フィンガープリントＦＰ’もキャッシュ１２１に存在しないならば（以下、ケース１と称する）、コンテンツ識別部１２４は、レスポンス８０６に含まれているコンテンツ８０５を、フィンガープリントＦＰと対応付けてキャッシュ１２１に格納する（ステップＳ１５）。そしてコンテンツ識別部１２４は、レスポンス８０６のヘッダ中にフィンガープリントＦＰを設定し、当該レスポンス８０６中のコンテンツボディ、つまりコンテンツ８０５はそのままで（圧縮してもよい）、新たなレスポンス８０７として暗号化処理部１２３に送る（ステップＳ１６）。暗号化処理部１２３は、レスポンス８０７を暗号化処理してインターネット３０を介してリクエスト元のクライアントモジュール２２０に送信する。
【００４５】
一方、フィンガープリントＦＰがキャッシュ１２１に存在するならば（以下、ケース２と称する）、コンテンツ識別部１２４は、レスポンス８０６のヘッダ中にフィンガープリントＦＰを設定すると共に、コンテンツボディがないことを示す印を付加し、更に当該レスポンス８０６からコンテンツボディを外して、新たなレスポンス８０７として暗号化処理部１２３に送る（ステップＳ１７）。
【００４６】
また、フィンガープリントＦＰ’がキャッシュ１２１に存在するならば（以下、ケース３と称する）、コンテンツ識別部１２４は、レスポンス８０６に含まれているコンテンツ８０５を、フィンガープリントＦＰと対応付けてキャッシュ１２１に格納する（ステップＳ１８）。またコンテンツ識別部１２４は、フィンガープリントＦＰ’に対応付けられたコンテンツ（つまりコンテンツ８０５に類似したコンテンツ）をキャッシュ１２１から取り出す（ステップＳ１９）。そしてコンテンツ識別部１２４は、コンテンツ８０５と類似コンテンツとの差分のデータを生成する（ステップＳ２０）。この差分データの生成方法については、上記非特許文献１に記載されており、且つ本発明に直接関係しないため、説明を省略する。コンテンツ識別部１２４は、レスポンス８０６のヘッダ中にフィンガープリントＦＰ及びＦＰ’を設定すると共に、コンテンツボディをコンテンツ８０５から差分データに置き換えて、新たなレスポンス８０７として暗号化処理部１２３に送る（ステップＳ２１）。
【００４７】
暗号化処理部１２３は、コンテンツ識別部１２４から送られたレスポンス８０７を暗号化する（ステップＳ２２）。この暗号化されたレスポンス８０７は、サーバプロキシ１２０からインターネット３０を介してリクエスト元のクライアントモジュール２２０に送信される（ステップＳ２３）。なお、図８には、ケース１，２及び３のうち、ケース１の状態が示されているものとする。
【００４８】
クライアントモジュール２２０内の復号処理部２２２は、サーバプロキシ１２０から送信されたレスポンス８０７を受け取ると、当該レスポンス８０７を復号してコンテンツ識別部２２４に送る（ステップＳ２４）。コンテンツ識別部２２４は、復号処理部１２２により復号されたレスポンス８０７を受け取ると、当該レスポンス８０７中のレスポンスヘッダから、レスポンス８０７にコンテンツが含まれているか、或いは差分データが含まれているか、或いはそのいずれも含まれていないかを判定する（ステップＳ２５，Ｓ２６）。
【００４９】
図８の例のように、レスポンス８０７にコンテンツ８０５が含まれている場合（ケース１に相当）、コンテンツ識別部２２４は、当該コンテンツ８０５を、当該レスポンス８０７中のレスポンスヘッダに設定されているフィンガープリントＦＰと対応付けてキャッシュ２２１に格納する（ステップＳ２７）。そしてコンテンツ識別部２２４は、コンテンツ８０５を含むレスポンス８０７をプロトコル変換部２２５に送る（ステップＳ２８）。
【００５０】
一方、レスポンス８０７に差分データが含まれている場合（ケース３に相当）、コンテンツ識別部２２４は、当該レスポンス８０７のレスポンスヘッダに設定されている２つのフィンガープリントＦＰ，ＦＰ’のうちのフィンガープリントＦＰ’をキーにして、当該フィンガープリントＦＰ’に対応付けられたコンテンツ、つまりコンテンツ８０５に類似したコンテンツをキャッシュ２２１から取り出す（ステップＳ２９）。次にコンテンツ識別部２２４は、取り出された類似コンテンツとレスポンス８０７に含まれている差分データとから、コンテンツ８０５を復元する（ステップＳ３０）。コンテンツ識別部２２４は、復元されたコンテンツ８０５を、レスポンス８０７中のレスポンスヘッダに設定されているフィンガープリントＦＰと対応付けてキャッシュ２２１に格納する（ステップＳ３１）。そしてコンテンツ識別部２２４は、復元されたコンテンツ８０５を含む新たなレスポンス（便宜的にレスポンス８０７とする）をプロトコル変換部２２５に送る（ステップＳ３２）。
【００５１】
また、レスポンス８０７にコンテンツ及び差分データのいずれも含まれていない場合（ケース２に相当）、コンテンツ識別部２２４は、当該レスポンス８０７のレスポンスヘッダに設定されているフィンガープリントＦＰをキーにして、当該フィンガープリントＦＰに対応付けられたコンテンツ、つまりコンテンツ８０５をキャッシュ２２１から取り出す（ステップＳ３３）。次にコンテンツ識別部２２４は、取り出されたコンテンツ８０５を含む新たなレスポンス（便宜的にレスポンス８０７とする）をプロトコル変換部２２５に送る（ステップＳ３４）。
【００５２】
プロトコル変換部２２５は、コンテンツ識別部２２４から送られたレスポンス８０７を受け取ると、当該レスポンス８０７に含まれているコンテンツ８０５を対象に、以下に述べるプロトコル変換処理を行う。まず、プロトコル変換部２２５は、コンテンツ８０５中に未処理（未判定）のＵＲＬが含まれているかを判定する（ステップＳ３５）。もし、未処理のＵＲＬが含まれているならば、その未処理のＵＲＬをキーとして変換テーブル２２６を参照し、当該ＵＲＬがhttps → http 変換の対象となる第１のＵＲＬとして記憶されているエントリが存在するか否かを判定する（ステップＳ３６）。
【００５３】
本実施形態においてコンテンツ８０５には、図８に示すように、ＵＲＬとして"https://www.abc.com/"が含まれている。そこで、www.abc.com/をキーとして、変換テーブル２２６が参照されたものとする。変換テーブル２２６には、図３に示すように、www.abc.com/ 及び www.abc.com:443/ がそれぞれhttps ⇔ http 変換の対象となる第１及び第２のＵＲＬとして記憶されている。したがって、プロトコル変換部２２５は、変換テーブル２２６には、www.abc.com/ が第１のＵＲＬとして記憶されているエントリが存在すると判定する。この場合、プロトコル変換部２２５は、第１のＵＲＬである www.abc.com/ を、当該第１のＵＲＬと対をなして変換テーブル２２６に記憶されている第２のＵＲＬ、つまり www.abc.com:443/ に変換し、この第２のＵＲＬを用いてhttpsからhttpへのプロトコル変換８０８を行う（ステップＳ３７）。これにより、コンテンツ８０５に含まれているＵＲＬである"https://www.abc.com/"は"http://www.abc.com:443/"に変換される（書き換えられる）。
【００５４】
プロトコル変換部２２５は、以上のプロトコル変換処理（ステップＳ３５〜Ｓ３７）を、コンテンツ８０５中の全てのＵＲＬについて実行する。そして、プロトコル変換部２２５がコンテンツ８０５中の全てのＵＲＬについて処理した結果、コンテンツ８０５中に未処理のＵＲＬがなくなると、その時点におけるコンテンツ８０５（通常は、プロトコル変換が施されたコンテンツ８０５）を新たなコンテンツ８０９として含むレスポンス８１０が、クライアントモジュール２２０からＷｅｂブラウザ２１０に送信される（ステップＳ３８）。図８の例では、コンテンツ８０５には、"https://www.zzz.com/"が含まれている。しかし、変換テーブル２２６には、www.zzz.com/ は第１のＵＲＬとして記憶されていない（図３参照）。この場合、コンテンツ８０５中の"https://www.zzz.com/"はプロトコル変換されず、そのままの状態で図８に示すようにコンテンツ８０９に引き継がれる。
【００５５】
Ｗｅｂブラウザ２１０は、クライアントモジュール２２０から送信されたレスポンス８１０を受け取ると、当該レスポンス８１０を解釈して、当該レスポンス８１０に含まれているコンテンツ８０９（ここではＨＴＭＬページ）をＷｅｂブラウザ２１０の画面に表示する（ステップＳ３９）。ここで、ユーザが入力部２３０を操作して、Ｗｅｂブラウザ２１０の終了を指示したならば、当該Ｗｅｂブラウザ２１０の動作は停止する（ステップＳ４０，Ｓ４１）。
【００５６】
これに対し、コンテンツ８０９が画面表示されている状態で、ユーザが入力部２３０を操作してＵＲＬを入力すると（ステップＳ２）、上述のステップＳ３以降の処理が再び実行される。ここでは、コンテンツ８０９が表示されている画面上で、www.abc.com:443/ へのリンク８１１が、ユーザによる入力部２３０（マウス）の操作でクリックされたものとする。するとＷｅｂブラウザ２１０は、クライアントモジュール２２０に対して、http://www.abc.com:443/ で指定されるページを取得することを要求するためのリクエスト８１２、例えば"GET http://www.abc.com:443/"を送信する（ステップＳ３）。
【００５７】
もし、変換テーブル２２６を用いたプロトコル変換部２２５によるプロトコル変換処理（ステップＳ３３〜Ｓ３５）が行われていないものとすると、www.abc.com/ へのリンクがクリックされた場合には、Ｗｅｂブラウザ２１０からクライアントモジュール２２０には、https://www.abc.com/ で指定されるページを取得することを要求するためのリクエストが送信されてしまう。この場合、Ｗｅｂブラウザ２１０とサーバプロキシ１２０との間で暗号化データが授受されることになるため、クライアントモジュール２２０でデータ操作を行うことができなくなり、通信データ削減効果を得ることができなくなる。
【００５８】
しかし、本実施形態では、上述のプロトコル変換処理（ステップＳ３３〜Ｓ３５）で、https://www.abc.com/ が http://www.abc.com:443/ に変換されている。このため、Ｗｅｂブラウザ２１０からクライアントモジュール２２０には、"GET http://www.abc.com:443/"のリクエスト８１２が送信され、これによりクライアントモジュール２２０はデータ操作を行うことができる。しかもクライアントモジュール２２０は、"GET http://www.abc.com:443/"を、通常のリクエストであるGET http://www.abc.com/"と区別することができる。
【００５９】
クライアントモジュール２２０は、Ｗｅｂブラウザ２１０から送信されたリクエスト８１２（ http://www.abc.com:443/ ）を受け取ると、当該リクエスト８１２中のＵＲＬをキーとして変換テーブル２２６を参照し、当該ＵＲＬが https ⇔ http 変換の対象となるＵＲＬとして記憶されているエントリが存在するか否かを判定する（ステップＳ４）。この例では、www.abc.com:443/ は変換テーブル２２６に第２のＵＲＬとして記憶されている。この場合、プロトコル変換部２２５は、第２のＵＲＬである www.abc.com:443/ を、当該第２のＵＲＬと対をなして変換テーブル２２６に記憶されている第１のＵＲＬ、つまり www.abc.com/ に変換し、この第１のＵＲＬを用いてhttpからhttpsへのプロトコル変換８１３を行う（ステップＳ５）。これにより、http://www.abc.com:443/ は https://www.abc.com/ に変換される。この結果、プロトコル変換後のリクエスト８１４、即ち"GET https://www.abc.com/"が暗号化されてクライアントモジュール２２０から（サーバプロキシ１２０と同様の）対応するサーバプロキシに送信される。
【００６０】
このように、Ｗｅｂブラウザ２１０からクライアントモジュール２２０に送られたリクエスト８１２が"GET http://www.abc.com:443/ の場合、クライアントモジュール２２０は、当該リクエスト８１２を"GET https://www.abc.com/ に変換し、新たなリクエスト８１４としてサーバプロキシに送信する。
【００６１】
ところで、ユーザの操作によっては、Ｗｅｂブラウザ２１０からクライアントモジュール２２０に対し、"GET http://www.abc.com/"がリクエストとして送信される可能性がある。この場合の動作は、上述の"GET http://www.abc.com:443/ が送信された場合と、以下に述べるように異なる。まず、クライアントモジュール２２０は、上記したように www.abc.com/ と www.abc.com:443/ とを区別できる。しかも変換テーブル２２６には、 www.abc.com/ はリクエスト時の変換対象として記憶されていない。この場合、クライアントモジュール２２０は、Ｗｅｂブラウザ２１０からのリクエストである"GET http://www.abc.com/"をそのままサーバプロキシに送信する。これにより、https://www.abc.com/ と http://www.abc.com/ のような、httpとhttpsのみ（つまりプロトコル識別子のみ）が異なるだけのＵＲＬが存在した場合でも、区別して通信することができる。なお、上記ステップＳ３７で、"https://www.abc.com/"を"http://www.abc.com:443/"に変換せずに、単にプロトコルだけを変換するならば、つまり単に"http://www.abc.com/"に変換するだけならば、httpとhttpsのみが異なるだけのＵＲＬを区別して通信することはできない。
【００６２】
プロトコル変換後のリクエスト８１４（"GET https://www.abc.com/"）がクライアントモジュール２２０から対応するサーバプロキシに送信された後の動作は、先に述べた、リクエスト８０３（"GET https://www.ccc.com/bbb/"）がクライアントモジュール２２０からサーバプロキシ１２０に送信された場合と同様である。
【００６３】
上記実施形態では、変換テーブル２２６のフィールド２２６ａ，２２６ｂ，２２６ｃに設定される情報（第１、第２、第４の情報）にＵＲＬが用いられている。しかし、変換テーブル２２６のフィールド２２６ａ，２２６ｂ，２２６ｃに、ＵＲＬ以外のロケーション情報を示す文字列を（第１、第２、第４の情報として）用いることも可能である。
【００６４】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【００６５】
【図１】本発明の一実施形態に係るクライアント／サーバシステムの構成を示すブロック図。
【図２】図１に示したプロキシサーバマシン１２内のサーバプロキシ１２０とクライアントマシン２１内のクライアントモジュール２２０の詳細な構成を示すブロック図。
【図３】図１中の変換テーブル２２６のデータ構造例を示す図。
【図４】同実施形態における暗号化通信処理の手順を示すフローチャートの一部を示す図。
【図５】同実施形態における暗号化通信処理の手順を示すフローチャートの他の一部を示す図。
【図６】同実施形態における暗号化通信処理の手順を示すフローチャートの更に他の一部を示す図。
【図７】同実施形態における暗号化通信処理の手順を示すフローチャートの残りを示す図。
【図８】同実施形態における暗号化通信処理のシーケンスチャート。
【符号の説明】
【００６６】
１０…Ｗｅｂサーバ側システム（サーバサイト）、１１…Ｗｅｂサーバマシン、１２…プロキシサーバマシン、２０…クライアント側システム（クライアントサイト）、２１…クライアントマシン、３０…インターネット（通信回線）、１１０…Ｗｅｂサーバ、１２０…サーバプロキシ、１２１…キャッシュ（第１のキャッシュ）、１２２…復号処理部（第１の復号処理手段）、１２３…暗号化処理部（第１の暗号化処理手段）、１２４…コンテンツ識別部（第１のコンテンツ識別手段）、２１０…Ｗｅｂブラウザ、２２０…クライアントモジュール、２２１…キャッシュ（第２のキャッシュ）、２２２…復号処理部（第２の復号処理手段）、２２３…暗号化処理部（第２の暗号化処理手段）、２２４…コンテンツ識別部（第２のコンテンツ識別手段）、２２５…プロトコル変換部、２２６…変換テーブル、２２７…テーブル情報設定部、２２８…暗号化通信状態表示部、２３０…入力部。
【図１】
2005063032.tif 000003
【図２】
2005063032.tif 000004
【図３】
2005063032.tif 000005
【図４】
2005063032.tif 000006
【図５】
2005063032.tif 000007
【図６】
2005063032.tif 000008
【図７】
2005063032.tif 000009
【図８】
2005063032.tif 000010