(57)【要約】【課題】クライアント装置とサーバ装置間の通信の中継において、サーバ装置が提供するコンテンツをクライアント装置に送信しても問題ないかを高速に検証する。【解決手段】ネットワークを介してやりとりされるコンテンツに対し、コンテンツ作成者もしくは提供者は事前にコンテンツ検証サーバ装置６０が検証したコンテンツをコンテンツ登録サーバ装置５０に登録して署名の発行を受けた後、該コンテンツをサーバ装置３０に格納し，コンテンツダウンロード時に，通信プロキシ装置２０は該コンテンツを署名検証サーバ装置４０に転送して署名の検証を受け、改竄されていないコンテンツをクライアント装置１０に送信する。【選択図】　図１
2004102951.tif 000002
【特許請求の範囲】
【請求項１】
サーバ装置に対しアクセス要求を発行するクライアント装置と、
クライアント装置からのアクセス要求を受信してコンテンツを配信するサーバ装置と、
コンテンツを受信すると該コンテンツに対して付加的処理を行った後に送信元に応答するアプリケーションサーバ装置と、
前記クライアント装置と前記サーバ装置間のデータ通信を中継する通信プロキシ装置とを備え、
前記通信プロキシ装置は、
前記クライアントから前記アクセス要求を受信して、前記サーバ装置に転送し、前記サーバ装置から前記コンテンツを受信する通信中継処理部と、
前記通信中継処理部からコンテンツを受信し、所定のフォーマットに従うメッセージに再構築して前記アプリケーションサーバ装置に送信し、前記アプリケーションサーバ装置で付加処理された結果を受信するアプリケーションサーバ呼び出し処理部と、を備え、
前記通信中継処理部は、前記結果に基づいたデータを前記クライアント装置へ送信する
ネットワークシステム。
【請求項２】
請求項１に記載のネットワークシステムにおいて、
前記通信プロキシ装置は、
前記アプリケーションサーバ装置に前記コンテンツを転送する条件と、前記コンテンツを転送するために必要な前記アプリケーションサーバ装置の情報を記憶する転送制御データベースを備え、
前記通信中継処理部は、
前記アクセス要求と前記コンテンツの内容が、前記転送制御データベースに記憶されている条件を満足する場合に、前記アプリケーションサーバ呼び出し処理部に前記コンテンツを渡す
ネットワークシステム。
【請求項３】
請求項１に記載のネットワークシステムにおいて、
前記通信中継処理部は、
前記サーバ装置から応答された前記コンテンツをキャッシュとして記憶し、
当該キャッシュとして記憶しているコンテンツを対象とするアクセス要求を前記クライアント装置から受信した場合に、前記コンテンツと共に記憶しているかもしくは前記通信プロキシ装置に予め設定されている、有効期限内であれば、前記キャッシュとして記憶されているコンテンツを前記クライアント装置に応答する
ネットワークシステム。
【請求項４】
請求項３に記載のネットワークシステムにおいて、
前記通信中継処理部は、
前記アプリケーションサーバ装置から応答された前記付加処理結果に応じて、前記サーバ装置から応答されたコンテンツ、もしくは前記アプリケーションサーバ装置から応答された付加処理済みデータ、もしくは、キャッシュとして記憶しているコンテンツ、もしくはエラーメッセージのいずれかを前記クライアント装置に応答する
ネットワークシステム。
【請求項５】
請求項３に記載のネットワークシステムにおいて、
前記通信中継処理処理部は、前記アプリケーションサーバ装置から受信した付加処理されたコンテンツを、または付加処理されたコンテンツのネットワーク上の位置情報に従いネットワーク経由で取得したコンテンツを、キャッシュとして記憶する
ネットワークシステム。
【請求項６】
請求項５に記載のネットワークシステムにおいて、
コンテンツ管理者からコンテンツを受け付ける、コンテンツ登録サーバ装置と、
前記コンテンツ登録サーバ装置にコンテンツを登録するためのインタフェースとなるプログラムが動作するコンテンツ登録者端末装置と、
前記コンテンツ登録サーバ装置からコンテンツを受信して所定の方法で当該コンテンツの内容をチェックする、コンテンツ検証サーバ装置と、
を備え、
前記コンテンツ登録サーバ装置は、前記コンテンツ検証サーバ装置が前記コンテンツが所定の条件を満たしている場合に、前記コンテンツ登録者端末から受信したコンテンツに対して、署名を付加した署名付きコンテンツを作成する
ネットワークシステム。
【請求項７】
請求項６に記載のネットワークシステムにおいて、
前記コンテンツ登録サーバ装置は、
前記コンテンツを一意に特定するコンテンツＩＤに基づいて前記署名を生成する署名生成処理部と、
前記署名を生成するための秘密鍵、及び対応する公開鍵の公開鍵証明書を管理する鍵管理部と、
前記コンテンツＩＤを発行し、前記署名付きコンテンツを登録情報データベースに登録する登録情報管理部とを備える
ネットワークシステム。
【請求項８】
請求項７に記載のネットワークシステムにおいて、
前記コンテンツ登録サーバ装置は、前記通信プロキシ装置に前記署名付きコンテンツのキャッシュを依頼する
ネットワークシステム。
【請求項９】
請求項６に記載のネットワークシステムにおいて、
前記コンテンツ検証サーバ装置は、複数のセキュリティレベルを管理するデータベースを備え、
前記セキュリティレベル別に前記コンテンツ検証を行う
ネットワークシステム。
【請求項１０】
請求項６に記載のネットワークシステムにおいて、
マスタとなる前記コンテンツ登録サーバ装置とスレーブとなる一つ以上の前記コンテンツ登録サーバを備え、
マスタとなる前記コンテンツ登録サーバ装置は、スレーブとなるコンテンツ登録サーバ装置と通信を行い、
それぞれのコンテンツ登録サーバが備えるデータベースの同期を行う
ネットワークシステム。
【請求項１１】
請求項６に記載のネットワークシステムにおいて、
前記アプリケーションサーバ装置は、前記署名付きコンテンツの署名を検証する署名検証サーバ装置であって、
前記サーバ装置は、前記コンテンツ登録サーバ装置によって署名を付加された前記署名付きコンテンツを記憶し、
前記通信プロキシ装置は、
前記サーバ装置から受信した前記署名付きコンテンツを前記署名検証サーバ装置へ転送し、
検証結果に応じて、前記署名付きコンテンツをクライアント装置に送信するかどうかを決定する
ネットワークシステム。
【請求項１２】
請求項１１に記載のネットワークシステムにおいて、
前記署名検証サーバ装置は、
前記通信プロキシ装置より受信した未検証の署名付きコンテンツから署名を取得する署名取得処理部と、
前記署名を検証するために用いる公開鍵証明書の有効性を検証する証明書検証処理部と、
公開鍵証明書の有効性検証に用いる失効証明書リストを管理する失効証明書リストデータベースと、
署名を検証するための署名検証処理部と、
署名に含まれるコンテンツＩＤに対応する登録情報を記憶する登録情報データベースと、
前記コンテンツＩＤに対応する登録情報を管理するための登録情報管理処理部とを備える
ネットワークシステム。
【請求項１３】
請求項１２に記載のネットワークシステムにおいて、
前記署名検証サーバ装置は、前記コンテンツ登録サーバ装置と通信を行い、前記登録情報データベースの同期を行う
ネットワークシステム。
【請求項１４】
請求項１１に記載のネットワークシステムにおいて、
前記通信プロキシ装置は、前記検証結果が「有効」であれば検証済みの前記署名付きコンテンツを、署名付きのまま、もしくは署名を除去して前記クライアント装置に送信し、「無効」であればエラーを送信する
ネットワークシステム。
【請求項１５】
請求項１１に記載のネットワークシステムにおいて、
第１のコンテンツに対する署名を第２のコンテンツに付加しておき、
前記署名検証サーバ装置が前記第２のコンテンツを検証する時に、付加されている前記第１のコンテンツの署名を保存しておき、
前記第１のコンテンツの検証時に、前記保存していた前記第１のコンテンツの署名を用いて検証する
ネットワークシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、サーバ装置上にあるコンテンツを、通信回線で接続したクライアント端末からアクセスするネットワークシステムにおいて、サーバ装置とクライアント端末間の通信を中継代行する通信プロキシ装置、及び該通信プロキシ装置を用いたシステムに関する。
【０００２】
【従来の技術】
ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ　Ｔｒａｎｓｆｅｒ　Ｐｒｏｔｏｃｏｌ）と呼ぶプロトコルを用いて、実行プログラムや音楽、動画像ファイルをダウンロードして実行、再生するといった利用形態が普及している。このような利用形態においては、ユーザ端末に対するセキュリティの確保は大きな課題である。例えば、悪意のある第三者が、インターネット上にあるＷｅｂサーバに侵入し、サーバ上にあるコンテンツ（例えば、動画像ファイルや実行プログラムなど）データを、コンピュータウィルスプログラムに改竄することがある。そうすると、ユーザが知らずにそのプログラムをダウンロードしてしまい、ユーザ端末でそのプログラムを動作させてしまうことによって、ユーザ端末に記憶されているデータが破壊されてしまったり、秘匿すべきユーザの大事な個人情報が悪意のある第三者に勝手に送信されてしまう、といった問題が発生する。その対策として、データを検証して、コンピュータウィルスを検知し除去するウィルス検知プログラムを用いる方法がある。この対策方法は主に次の二つの形態で運用される。
【０００３】
一つは、ユーザ端末もしくはＷｅｂサーバでウィルス検知プログラムを動作させる方法である。もう一つは、ネットワークの通信プロキシ装置、例えばプロキシサーバやファイアウォール上で動作させ、ダウンロード中のコンテンツに対してリアルタイムにウィルスを検知する方法である。Ｗｅｂプロキシとは、サーバ装置とクライアント装置間でＷｅｂ通信を中継代行する技術であり、これに関しては、非特許文献１で詳しく述べられている。本方法は、ネットワーク上でウィルス検知を行うため、インターネット接続サービスを提供している通信キャリアが、ユーザに対してセキュリティサービスを提供するのに適している。
【０００４】
【非特許文献１】
Ｒ．Ｆｉｅｌｄｉｎｇ他、ＲＦＣ２６１６「Ｈｙｐｅｒｔｅｘｔ　Ｔｒａｎｓｆｅｒ　Ｐｒｏｔｏｃｏｌ　−−　ＨＴＴＰ／１．１」、［ｏｎｌｉｎｅ］、１９９９年６月、Ｔｈｅ　Ｉｎｔｅｒｎｅｔ　Ｓｏｃｉｅｔｙ、［２００２年８月２７日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｉｅｔｆ．ｏｒｇ／ｒｆｃ／ｒｆｃ２６１６．ｔｘｔ＞、１．３節、１．４節
【０００５】
【発明が解決しようとする課題】
前者の方法では、ネットワークに接続されている全てのユーザ端末にウィルス検知プログラムを導入することが難しい。また、ユーザ端末が携帯電話である場合には、ウィルス検知プログラムを動作させることが出来ない。また、サーバ側で実行させる場合でも、ウィルス検知済みのデータが、ネットワークを流れる途中でウィルスに感染する可能性がある。
【０００６】
また、後者の方法では、ネットワークトラフィックが集中する通信プロキシ装置が負荷の重いウィルス検知処理を行うため、通信プロキシ装置自体の処理性能が非常に低くなる。ウィルス検知プログラムを通信プロキシ装置に接続している別のサーバ装置で動作させ、通信プロキシ装置との間でデータの交換を行う方法も提案されているが、この方法でも、ウィルス検知プログラムが動作しているサーバ装置が処理性能のボトルネックとなる点では同じである。
【０００７】
上記のように、クライアント装置がサーバ装置からダウンロード中のコンテンツに対し、サーバ装置ではなく、ネットワークの中継装置で付加的処理をおこなおうとすると、その処理負荷の重さが課題となる。
【０００８】
【課題を解決するための手段】
本発明は、クライアント装置とサーバ装置間に備えられた通信中継装置（通信プロキシ装置と称する）が、クライアント装置とサーバ装置間のデータ通信を中継する通信中継処理部と、通信中継処理部がサーバ装置から受信したコンテンツを所定のフォーマットに従うメッセージに再構築してアプリケーションサーバ装置に転送し、アプリケーションサーバ装置が付加処理を行い応答したデータを受信するアプリケーションサーバ呼び出し処理部とを備えることを特徴とする。これにより、クライアント装置がダウンロード中のコンテンツに対し、サーバ装置ではなく、ネットワークの中継装置が付加的処理を指示することが可能となる。
【０００９】
ここで、通信プロキシ装置は、アプリケーションサーバ装置にコンテンツを転送する条件、及びコンテンツデータを転送するために必要なアプリケーションサーバ装置の情報を設定及び記憶する転送制御データベースを備え、通信中継処理部は、アクセス要求及びコンテンツの記述内容を解析し、転送制御データベースに記憶されている条件を満たしている場合に、アプリケーションサーバ装置に転送する。
【００１０】
アプリケーションサーバ呼び出し部は、アプリケーションサーバ装置から応答された処理結果を解析して、サーバ装置から応答されたコンテンツ、もしくはアプリケーションサーバ装置から応答されたデータ、もしくは過去に通信プロキシ装置にキャッシュとして記憶されているコンテンツ、もしくはエラーメッセージをクライアント装置に応答する。これにより、クライアント装置へ適切な応答を行うことができるので、アプリケーションサーバ装置と通信プロキシ装置間のデータ通信量を減少させることができる。また、クライアント装置やサーバ装置にはなんら変更を加えることなく、コンテンツに対して付加的処理を加えることができる。
【００１１】
また、通信中継処理部は、アプリケーションサーバ装置からコンテンツ本体のデータを受信するか、もしくはＵＲＬ情報を受信してそのコンテンツをネットワーク経由で取得することにより、取得したコンテンツをキャッシュとして記憶する。これにより、アプリケーションサーバ装置が提供する付加的処理に関連する特定のコンテンツを高速にクライアント装置に応答したい場合に、アプリケーションサーバ装置が通信プロキシ装置に対して、クライアント装置からのアクセスがある前にそのコンテンツをキャッシュするように指示できる。
【００１２】
本発明のネットワークシステムは、例えば、アプリケーションサーバ装置として、コンテンツ作成者もしくは提供者（コンテンツ管理者ともいう）から受け付けたコンテンツの登録申請に応じて、ウィルス検知など内容チェックを行ったコンテンツに電子署名（以下、単に署名という）を付加してデータベースに登録するコンテンツ登録サーバ装置や、登録申請されたコンテンツについてウィルス検知など内容をチェックするコンテンツ検証サーバ装置や、署名を検証する署名検証サーバ装置を備える。
【００１３】
本発明によれば、サーバ装置は上記署名付きコンテンツを記憶し、通信プロキシ装置は、クライアント装置の要求に従いダウンロードした署名付きコンテンツを、署名検証サーバ装置に転送する。署名検証サーバ装置は、コンテンツに付加されている署名の有効性を確認した後、検証結果を通信プロキシ装置に応答し、通信プロキシ装置は、検証結果が有効であればコンテンツをクライアント装置に応答し、無効であればエラーを応答する。これにより、コンテンツの内容を前もって検証しておき、ダウンロード時にはコンテンツに付加された署名のチェックのみで、コンテンツ内容の検証を行うことができる。そのため、クライアント装置に対して内容が検証されたコンテンツを迅速に配信することが可能となる。
【００１４】
なお、署名の発行と検証には、本ネットワークシステムが記憶する秘密鍵及び公開鍵証明書を用いる。
【００１５】
すなわち、サーバ装置からユーザ端末へ送信される署名付きコンテンツを中継する通信プロキシ装置が、当該署名付きコンテンツを前述のアプリケーションサーバ装置としての署名検証サーバ装置に転送することにより、ユーザ端末にコンテンツ検証プログラムを動作させることを必要とせず、またネットワーク途中での改竄を防ぎ、高い処理性能を保ちながら、セキュリティを確保する。
【００１６】
また、コンテンツ登録サーバ装置は、コンテンツ登録処理を行う際に、通信プロキシ装置に対して検証済みコンテンツをキャッシュさせる機能を備える。これにより、クライアント装置から登録コンテンツに対してアクセスがあった場合に、安全なコンテンツを迅速に送信することができる。
【００１７】
また、コンテンツ検証サーバ装置は、複数のセキュリティレベルをテーブルとして管理することにより、契約などに基づいて設定されたセキュリティレベル別にコンテンツ検証を行うことができる。
【００１８】
また、署名検証サーバ装置は、署名付きコンテンツを受信すると、署名の検証によるコンテンツ改竄チェックと、さらに署名中のコンテンツＩＤをデータベースで検索することによるコンテンツ内容の有効性チェックを行うことで、コンテンツをクライアント装置に応答してよいものかどうかを判定し、前述の通信プロキシ装置に判定結果を応答する。
【００１９】
通信プロキシ装置から署名検証の処理を別サーバ装置として分離することにより、処理負荷の重い署名検証処理を、トラフィックの集中する通信プロキシ装置で行わず、通信プロキシ装置の処理速度を向上させることができる。また、署名検証処理を行うソフトウェアの新規機能追加や変更等を、通信プロキシ装置を停止させることなく、署名検証サーバ装置の交換と通信プロキシ装置の転送設定の変更だけで行うことが可能になり、保守運用が容易になる。
【００２０】
また、署名検証サーバ装置とコンテンツ登録サーバ装置は、コンテンツ登録サーバ装置群で共通管理しているデータベースの同期を行うことにより、本発明のネットワークシステム内部でコンテンツ登録情報を共有し、不整合を発生させることなく管理することができる。
【００２１】
さらに、本発明のコンテンツ検証方法は、複数のコンテンツを対としてコンテンツ登録サーバ装置に登録することで、クライアント装置から対としてダウンロードされているかを検証することができる。具体的には、第１のコンテンツの署名を第２のコンテンツに付加しておき、署名検証サーバ装置は第２のコンテンツを検証する時に、付加されている第１のコンテンツの署名を保存しておく。次に第１のコンテンツを検証する時には、保存している第１のコンテンツの署名を用いて検証する。これにより、第１のコンテンツと第２のコンテンツとが、予め登録された対としてダウンロードされたことを検証することができる。片方のコンテンツが、もう片方のコンテンツをダウンロードした後にダウンロードされた時のみ有効、といった制御が可能となる。
【００２２】
なお、本発明において、コンテンツとは、文書ファイルやマルチメディアデータ（例えば、音楽ファイルや動画像ファイル）、または実行プログラムなどのデジタルデータを指す。
【００２３】
【発明の実施の形態】
本発明の実施形態に関わる各装置は、例えば図１４に示すような、ＣＰＵ１１と、メモリ１２と、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の着脱可能で可搬性を有する記憶媒体１８から情報を読み出す読み取り装置１３と、ネットワーク９を介して相手装置と通信を行うための通信装置１４と、ＨＤＤ等の外部記憶装置１５と、キーボードやマウスやディスプレイなどの入出力装置１６と、を備えた一般的なコンピュータシステムにおいて、ＣＰＵ１１がメモリ１２上にロードされた所定のプログラムを実行することにより実現することができる。
【００２４】
以下に、本発明の第一の実施の形態を、図を用いて説明する。
【００２５】
図１は、本発明の一実施形態が適用されたネットワークシステムの概略構成を示す図である。
【００２６】
本実施の形態では、本ネットワークシステムは、クライアント装置１０及びサーバ装置３０と、クライアント装置１０とサーバ装置３０間のデータ通信を中継する通信プロキシ装置２０と、コンテンツに付加された署名を用いてコンテンツをクライアント装置１０に送信しても良いかどうかを検証する署名検証サーバ装置４０と、コンテンツ作成者や保持者などのコンテンツ管理者から前もってコンテンツを受け付けてコンテンツに署名を生成するコンテンツ登録サーバ装置５０と、コンテンツ登録サーバ装置５０が受信したコンテンツの内容をチェックするコンテンツ検証サーバ装置６０と、署名検証サーバ装置４０が署名を検証する際に用いる公開鍵証明書のうち失効した公開鍵証明書のリストを配布する認証局７０と、コンテンツ管理者がコンテンツ登録サーバ装置５０にコンテンツを登録するのに用いる端末であるコンテンツ登録者端末８０とを備え、各装置はネットワーク９を介して接続されている。
【００２７】
クライアント装置１０及びサーバ装置３０は、一台以上の通信プロキシ装置２０を介して接続している。また、通信プロキシ装置２０は、署名検証サーバ装置４０と接続し、署名検証サーバ装置４０は、コンテンツ登録サーバ装置５０及び認証局７０に接続している。コンテンツ登録サーバ装置５０は、コンテンツ検証サーバ装置６０及びコンテンツ登録者端末装置８０に接続している。
【００２８】
クライアント装置１０は、Ｗｅｂブラウザなどの既存のＷｅｂクライアントアプリケーションが動作している。クライアント装置１０が、サーバ装置３０が記憶する文書データや動画像データ、プログラムファイルなどのコンテンツをダウンロードする際、サーバ装置３０にコンテンツ送信要求を示すメッセージ（アクセス要求）を送信することにより、応答データ（コンテンツ）を受信する。
【００２９】
サーバ装置３０は、Ｗｅｂサーバプログラムが動作しており、クライアント装置１０からアクセス要求を受信すると、要求されたコンテンツをクライアント装置１０に送信する。本実施の形態では、サーバ装置３０は図９に示す、署名付きコンテンツ３１を記憶する。
【００３０】
署名付きコンテンツ３１は、クライアント装置１０からのアクセス要求がある前に、予めコンテンツ登録者端末８０からコンテンツ登録サーバ装置５０に登録され、コンテンツ検証サーバ装置６０で内容をチェックされて、クライアント装置１０がダウンロードしてもよいものとして署名を付加されたものである。なお、本実施の形態における署名は、ハッシュ関数を用いた公開鍵暗号による署名である。
【００３１】
図９に示した署名付きコンテンツ３１は、文書や動画、実行プログラムなどのオリジナルコンテンツ３１１と、該オリジナルコンテンツ３１１の有効性を検証するために用いる署名３１２とを備える。署名３１２は、署名情報３１２１と、署名情報３１２１を秘密鍵で暗号化した署名値３１２２と、署名値３１２２を復号化するために必要な公開鍵を含む公開鍵証明書３１２３とを含む。署名情報３１２１は、ハッシュ関数のアルゴリズムなどを示す署名方法３１２４と、本システムが各コンテンツに対して一意に割り振ったＩＤ情報であるコンテンツＩＤ３１２５と、コンテンツデータにハッシュ関数を作用させることによって計算した、コンテンツの特徴値（ダイジェスト値）３１２６とを含む。
【００３２】
図１の通信プロキシ装置２０は、クライアント装置１０からサーバ装置３０宛に送られるアクセス要求と、それに対する応答コンテンツを中継する機能（中継機能）を備える。宛先となるサーバ装置３０の情報（ホスト名やＩＰアドレスなど）は、アクセス要求中に記述されている、コンテンツのＵＲＬ情報に含まれている。
【００３３】
また、通信プロキシ装置２０は、中継した応答コンテンツをキャッシュとして記憶するキャッシュ機能を備える。
【００３４】
さらに、通信プロキシ装置２０は、サーバ装置３０から応答された署名付きコンテンツ３１が、予め設定されている条件（当該コンテンツのＵＲＬや拡張子、ファイルタイプ等）を満たした際に、署名検証サーバ装置４０に転送して署名検証を依頼し、検証結果に問題が無ければコンテンツをクライアント装置１０に送信する。
【００３５】
通信プロキシ装置２０と署名検証サーバ装置４０間の通信は、例えばＨＴＴＰやｉＣＡＰなどの通信プロトコルを用いて良い。
【００３６】
署名検証サーバ装置４０は、通信プロキシ装置２０から送信されてきた署名付きコンテンツ３１を受信すると、署名を検証してコンテンツが改竄されていないことを確認し、結果を通信プロキシ装置２０に送り返す。
署名検証サーバ装置４０は、認証局７０から、署名を検証する際に用いる公開鍵証明書のうち、失効した公開鍵証明書のリストを受信して記憶しておき、署名付きコンテンツ３１受信時に、公開鍵証明書と失効証明書リストを照らし合わせて公開鍵の有効性を検証する。
【００３７】
また、署名検証サーバ装置４０は、コンテンツＩＤ３１２５毎に、そのコンテンツの有効性を表す情報を登録情報データベース４５として記憶する。
【００３８】
コンテンツ登録サーバ装置５０は、署名発行とコンテンツ登録管理を行なう。
【００３９】
署名発行機能は、コンテンツ登録者端末装置８０からのコンテンツ登録を受け付けてコンテンツを受信し、受け付けたコンテンツをコンテンツ検証サーバ装置６０に送信して検証結果を受信し、コンテンツの内容に問題が無いことを確認して、そのコンテンツに対する署名を生成してコンテンツに付加し、コンテンツ登録者端末８０に応答する機能である。
【００４０】
例えば、実行プログラムファイルの登録を受け付けた場合は、実行プログラム中にコンピュータウィルスが含まれていないか、プログラムが使用するために読み込んでいるクラスライブラリがクライアント端末１０上に記憶されているデータを破壊したり第三者に勝手に送信する可能性はないか、などをチェックする。その結果、問題なければ、実行プログラムファイルに署名を付加する。
【００４１】
コンテンツ登録管理機能は、受け付けたコンテンツをシステム全体で一意に特定するコンテンツＩＤを生成し、そのＩＤ毎にコンテンツの有効性をデータベースを用いて管理する機能であり、コンテンツ登録者がコンテンツを登録する際にデータベースにコンテンツ登録情報を新規追加する機能と、登録したコンテンツの有効性が失われた際にコンテンツ登録情報を「失効」に変更する機能と、有効期限切れのコンテンツ登録情報をデータベースから削除する機能とを備える。
更に、負荷分散のため署名検証サーバ装置４０やコンテンツ登録サーバ装置５０を複数台設置した際に、コンテンツ登録者が一台のコンテンツ登録サーバ装置５０に対して申請処理を行うだけで、申請された結果が他サーバ装置に行き渡るようにするため、コンテンツ登録情報を他の装置に配布する機能を備える。
【００４２】
この機能により、コンテンツ登録情報がコンテンツ登録サーバ装置５０間で不整合が生じることを防ぎ、また、署名検証サーバ装置４０で署名検証処理が発生した際に、毎回コンテンツ登録サーバ装置５０に対するコンテンツ登録情報の問い合わせによるオーバヘッドを回避できる。
【００４３】
例えば、コンテンツ登録者があるコンテンツを一旦登録した後、登録コンテンツの削除申請を行ったとする。コンテンツ登録サーバ装置５０は、まずコンテンツ登録者端末装置８０からコンテンツの登録を受け付け、コンテンツ検証サーバ装置６０で内容チェックした後、そのコンテンツに対してＩＤを割り振り、データベースに新規に「有効」コンテンツとして登録し、署名検証サーバ装置４０及び他のコンテンツ登録サーバ装置５０上のデータベースに対して更新処理する。
【００４４】
コンテンツ登録者端末装置８０から上記コンテンツの削除申請があった場合、有効期限内のコンテンツであれば「失効」状態に変更し、有効期限切れであれば、データベースに格納されている上記コンテンツの情報を削除する。そして、先と同様に署名検証サーバ装置４０及び他のコンテンツ登録サーバ装置５０上のデータベースに対して更新処理する。
【００４５】
クライアント装置１０から削除申請のあったコンテンツにアクセスがあれば、署名検証サーバ装置４０は、通信プロキシ装置２０から送られてきた署名付きコンテンツ３１の署名の有効性を検証した後、署名中のコンテンツＩＤを確認する。そのコンテンツＩＤをキーとして、内部のコンテンツ登録情報のデータベースを検索した後、コンテンツの状態が「失効」になっているか削除されている事を確認すると、そのコンテンツの検証結果が無効だとして、クライアント装置１０に送信しないよう通信プロキシ装置２０に通知する。
【００４６】
コンテンツ検証サーバ装置６０は、コンテンツ登録サーバ装置５０から送信されたコンテンツの内容をチェックし、クライアント装置１０にそのコンテンツを送信しても良いかどうかをチェックして、その結果をコンテンツ登録サーバ装置５０に応答する。例えば、コンテンツ中のウィルス感染や、プログラムが使用するために読み込んでいるクラスライブラリがクライアント端末１０上に記憶されているデータを破壊したり第三者に勝手に送信する可能性のあるものか、等を解析する。
【００４７】
認証局７０は、失効証明書リスト（ＣＲＬ）を、定期的に、もしくは要求があった時に、署名検証サーバ４０に配布する。
【００４８】
コンテンツ登録者端末装置８０は、コンテンツ作成者、コンテンツ保持者、コンテンツ提供者等のコンテンツ管理者がコンテンツ登録サーバ装置５０にコンテンツを登録するのに用いる装置であり、コンテンツ管理者が、コンテンツ及び登録者情報等の登録申請もしくは削除申請するためのユーザインタフェース機能と、コンテンツ登録サーバ装置５０に対する通信機能とを備える。
【００４９】
コンテンツ登録者端末装置８０は、Ｗｅｂブラウザが起動している端末でよい。コンテンツ登録者は、Ｗｅｂブラウザを起動し、コンテンツ登録サーバ装置５０にアクセスし、応答としてＷｅｂブラウザに表示された入力フォームに登録者情報等の必要事項、及びコンテンツ登録者端末装置８０に記憶されている登録対象のコンテンツのファイルパス（ディスク上の位置情報）を入力して、『登録』ボタンを押すと、コンテンツ登録者端末８０から、コンテンツ登録サーバ装置５０に対して、コンテンツ登録申請情報とコンテンツの電子データが送信される。その後、コンテンツ登録サーバ装置５０からの応答として、登録申請時であれば、登録処理結果が画面に表示され、署名が付加されたコンテンツがダウンロードされる。
【００５０】
削除申請時であれば削除処理結果が画面に表示される。登録処理や削除処理に失敗した場合はエラーメッセージが応答される。コンテンツ登録者は、応答された署名付きコンテンツ３１をサーバ装置３０のハードディスクなどの記憶装置に格納する。この時、署名付きコンテンツ３１をコンテンツ登録者端末装置８０からサーバ装置３０に移し変えるには、一旦署名付きコンテンツ３１をフレキシブルディスク等の記憶媒体に格納して行う方法や、サーバ装置３０とコンテンツ登録者端末装置８０との間にセキュアな通信路経由で行う方法がある。
【００５１】
図１に示す構成において、複数の装置で実現されている機能が、物理的に一つの装置で実現されていても良い。例えば、署名検証サーバ装置４０の機能が、通信プロキシ装置２０に含まれていても良い。また、一つの装置で実現されている機能が、物理的に複数の装置で実現されていても良い。例えば、コンテンツ登録サーバ装置５０の署名発行機能とコンテンツ登録管理機能とがネットワーク経由で互いに通信する別々のサーバ装置で実現されても良い。
【００５２】
図２ないし図１４を用いて、第一の実施形態を説明する。
【００５３】
図２は、本実施の形態の通信プロキシ装置２０の一構成図である。
【００５４】
本実施の形態の通信プロキシ装置２０は、データ通信を中継する通信中継処理部２１と、通信データを署名検証サーバ装置４０に転送するための条件情報が記憶されている転送制御データベース２２と、署名検証サーバ装置４０と接続するためのアプリケーションサーバ呼び出し処理部２３とを備える。
【００５５】
通信中継処理部２１は、クライアント装置１０から送信されてきたアクセス要求を受信し、アクセス要求中のＵＲＬ情報に示されるサーバ装置３０に転送する。また、サーバ装置３０から応答された署名無しのコンテンツを受信し、クライアント装置１０に転送する。
【００５６】
通信中継処理部２１は、署名付きコンテンツ３１受信時に、転送制御データベース２２に記憶されている条件情報に基づき、署名検証サーバ装置４０に署名付きコンテンツ３１を送信するため、アプリケーションサーバ呼び出し処理部２３に未検証の署名付きコンテンツ３１を渡す。その後、署名検証サーバ装置４０の検証結果として「検証成功」もしくはオリジナルコンテンツ３１１が応答された場合は、オリジナルコンテンツ３１１をクライアント装置１０に応答する。また、署名付きコンテンツ３１の状態で応答された場合は、署名３１２を除去したオリジナルコンテンツ３１１を、もしくは署名付きコンテンツ３１をそのままクライアント装置１０に応答する。ここで、署名を除去するか否かは、通信プロキシ装置２０の設定による。「検証失敗」であれば、クライアント装置１０に対してエラー通知する。ここで、オリジナルコンテンツ３１１以外のコンテンツが応答された場合は、受信したコンテンツをそのままクライアント装置１０に送信しても良い。
【００５７】
転送制御データベース２２は、図３に示す転送条件フィールド２２１を検索キーとしたテーブル形式のデータベースで、署名検証サーバ装置４０に署名付きコンテンツ３１を転送する条件を管理するために使用する。転送制御データベース２２の各エントリ２２５の内、転送条件フィールド２２１は、署名検証サーバ装置４０に署名付きコンテンツ３１を転送するトリガとなる条件情報を記憶する。転送先ＵＲＬフィールド２２２は、転送条件フィールド２２１にマッチした時に、署名付きコンテンツ３１を署名検証サーバ装置４０に送信するための宛先ＵＲＬを記憶する。サービス名フィールド２２３は、転送条件フィールド２２１にマッチした時に発動されるサービスの名称を記憶する。タイミングフィールド２２４は、転送条件フィールド２２１にマッチした時に、どの時点で署名検証サーバ装置４０に送信する処理を発動させるか、といった情報を記憶する。
【００５８】
例えば、図３のエントリ２２５で示される例では、転送条件フィールド２２１に「拡張子＝”．ｅｘｅ”」とあるので、クライアント装置１０から受信したアクセス要求の宛先ＵＲＬのファイルの拡張子が”．ｅｘｅ”であるときに、条件にマッチする。マッチしたデータ通信において、「ウィルススキャン」サービスとして、サーバ装置３０から「コンテンツを受信した後」に、ＵＲＬ「ｈｔｔｐ：／／ｗｅｂｓｅｒｖｉｃｅ１／ｖｉｒｕｓ＿ｓｃａｎ．ｃｇｉ」で指示される署名検証サーバ４０に署名付きコンテンツ３１を転送する。
【００５９】
また、署名中に、署名検証サーバ装置４０のＵＲＬを記述しておいて、署名付きコンテンツ３１を受信した際に、署名中に記載されたＵＲＬに指示される署名検証サーバ装置４０に転送してもよい。
【００６０】
図２のアプリケーションサーバ呼び出し処理部２３は、署名検証サーバ装置４０に署名付きコンテンツ３１を送信する際に、署名検証サーバ装置４０と接続を確立し、署名付きコンテンツ３１を含むメッセージ３２を作成する。メッセージ３２は、例えば、図９に示す署名付きコンテンツ３１に、クライアント装置１０によるアクセス要求中に記述されていて、通信プロキシ装置２０が保存しているアクセス先ＵＲＬ情報３２１を付加して構成する。アクセス先ＵＲＬ情報３２１を用いることで、署名検証サーバ４０で署名を検証する際に、この署名付きコンテンツ３１が本来置かれているべきＵＲＬからダウンロードされているかどうかをチェックすることが可能となる。
【００６１】
図４は、署名検証サーバ装置４０の一構成例を示す。
【００６２】
署名取得部４１は、通信プロキシ装置２０から送信されたメッセージ３２を解析し、未検証の署名付きコンテンツ３１を取得する。そして、該コンテンツ３１に付加されている署名３１２を取得すると共に、署名３１２の有効性を検証するために必要な、該コンテンツ３１の署名３１２中に付加されている公開鍵証明書３１２３を取得して、該公開鍵証明書３１２３を検証するために、証明書検証部４２に渡す。
【００６３】
検証結果、該公開鍵証明書３１２３が有効であれば、証明書検証部４２から公開鍵を取得する。取得した署名３１２及び公開鍵を署名検証部４４に渡し、その結果として、署名３１２の検証結果を得る。この検証結果、該コンテンツ３１が「有効」であると確認されたならば、通信プロキシ装置２０に対する応答として、「検証成功」を通知する。また、その時に、通信プロキシ装置２０に対して検証成功したオリジナルコンテンツ３１１、もしくは署名付きコンテンツ３１を送信しても良い。
【００６４】
該公開鍵証明書が無効で、証明書検証部４２から検証失敗が応答された場合、もしくは、署名検証部４４の検証結果、該コンテンツ３１が「無効」もしくは「失効」であった場合には、通信プロキシ装置２０に「検証失敗」を通知する。また、その際、該コンテンツのコンテンツ登録者に対して、サーバ装置３０から該コンテンツを削除するように依頼する旨のメール通知を行う機能を追加しても良い。
【００６５】
証明書検証部４２は、認証局７０から定期的に、もしくは必要に応じて失効証明書リスト（ＣＲＬ）を受信し、失効証明書リストデータベース４３に登録し、管理する。また、署名取得部４１から公開鍵証明書３１２３を渡されると、まず、公開鍵証明書が有効期限切れで失効していないかどうかをチェックする。その次に、失効証明書リストデータベース４３を参照して、該公開鍵証明書３１２３が失効していないかをチェックする。該公開鍵証明書３１２３が有効であると判明すると、署名取得部４１に、処理結果として、該公開鍵証明書３１２３中に格納されている公開鍵を渡す。また、無効であれば、検証失敗を通知する。
【００６６】
署名検証部４４は、署名取得部４１から署名３１２及び公開鍵を渡されると、署名３１２の検証を行う。また、署名３２中のコンテンツＩＤ３１２５を登録情報管理部４６Ａに渡して、該コンテンツの登録状態を検索する。検索結果、該コンテンツの登録状態が有効であれば、署名取得部４１に「有効」通知する。また、無効、もしくは失効であれば、「無効」通知する。
【００６７】
登録情報データベース４５Ａは、コンテンツＩＤ３１２５を検索キーとした、テーブル形式のデータベースで、コンテンツ登録状態を管理するために使用する。コンテンツ登録状態とは、そのコンテンツが「有効」（＝クライアント装置１０に応答しても良い）か「失効」（＝クライアント装置１０に応答してはいけない）かを表す状態のことを指す。「有効」状態は、そのコンテンツがコンテンツ登録サーバ装置５０に登録済みで、かつ有効期限内であるときに設定される。「失効」状態は、そのコンテンツがコンテンツ登録サーバ装置５０に登録済みで、かつ有効期限内であるが、コンテンツ登録サーバ装置５０に対して削除申請がなされたときに設定される。なお、有効期限切れ、もしくはコンテンツ登録サーバ装置５０に登録申請がなされていない（＝登録状態データベース４５Ａに登録されていない）コンテンツの場合は「無効」扱いとする。
【００６８】
「失効」と「無効」との違いを、署名検証サーバ装置４０及び通信プロキシ装置２０の出力するログ内容や、クライアント装置１０に応答するメッセージ内容、またはコンテンツ登録者に対するメール通知内容などに反映しても良い。
【００６９】
登録情報データベース４５Ａの一構成例を図５に示す。
【００７０】
コンテンツＩＤフィールド４５１は、本システム内で各登録済みコンテンツに一意に割り振られたコンテンツＩＤ３１２５を記憶する。登録状態フィールド４５２は、前述したコンテンツの登録状態情報を記憶する。有効期限フィールド４５３は、登録済みコンテンツの登録状態の有効期限情報を記憶する。この有効期限を超過したコンテンツは無効となり、コンテンツ登録者によって再登録（更新）処理が必要となる。
【００７１】
ＵＲＬフィールド４５４は、登録コンテンツのネットワーク上の位置を示す情報であるＵＲＬ情報を記憶する。登録者情報フィールド４５５は、コンテンツを登録した登録者の住所氏名やメールアドレスなどの個人情報を記憶する。失効日時フィールド４５６は、コンテンツ登録サーバ装置５０に対してコンテンツの削除申請がなされた際に、その削除処理受け付け完了日時を記憶する。セキュリティレベルフィールド４５７は、後述するコンテンツ検証サーバ装置６０での処理に用いるセキュリティレベル情報を記憶する。
【００７２】
図４の登録情報管理部４６Ａは、登録情報データベース４５Ａに対して、データベースの検索や更新を行う。署名検証部４４から、あるコンテンツＩＤ値に対する検索要求が渡されると、登録情報データベース４５Ａを検索して、そのコンテンツＩＤ３１２５の登録状態フィールド４５２に記憶されている情報から、そのコンテンツの登録状態を判定して「有効」、「失効」、または「無効」を署名検証部４４に通知する。また、コンテンツ登録サーバ装置５０から登録情報の更新（登録及び削除）要求を受信すると、その内容に応じて登録状態データベース４５Ａの内容を更新する。さらに、署名検証サーバ装置４０が内部に登録情報データベース４５Ａを記憶しておらず、他サーバ装置が一括管理をしている場合は、そのサーバ装置が、コンテンツＩＤ３１２５と共に、ネットワーク経由で登録情報検索依頼を送信しても良い。
【００７３】
図６に、コンテンツ登録サーバ装置５０の一構成例を示す。
【００７４】
コンテンツ登録処理部５１は、コンテンツ登録者端末装置８０からアクセス要求を受信すると、必要事項を入力するための入力フォーム画面を応答し、コンテンツの登録及び削除申請を受け付ける。次に、コンテンツ登録者端末装置８０から登録者情報などの必要事項、及びオリジナルコンテンツ３１１を受信する。登録申請を受け付けた際には、コンテンツ検証サーバ装置６０に登録申請されたオリジナルコンテンツ３１１を送信し、コンテンツの内容について検証処理を依頼する。検証結果に問題なければ、登録情報管理部４６Ｂに登録要求を出し、コンテンツＩＤ３１２５を取得する。さらに、オリジナルコンテンツ３１１及び取得したコンテンツＩＤ３１２５を署名生成部５２に渡し、署名付きコンテンツ３１を取得した後、処理結果及び該署名付きコンテンツ３１を、コンテンツ登録者端末装置８０に応答する。削除申請を受け付けた際には、コンテンツ登録者端末装置８０からコンテンツＩＤ３１２５もしくはＵＲＬ情報を入力してもらうことで、登録情報管理部４６Ｂに、該コンテンツＩＤ３１２５もしくは該ＵＲＬ情報を検索キーとして、該コンテンツに対応するエントリを検索し、削除する。
【００７５】
署名生成部５２は、コンテンツＩＤ３１２５を渡されることで、図９に示される、署名付きコンテンツ３１を作成する。その際、鍵管理部５３が安全に記憶している、署名生成に必要な秘密鍵、公開鍵証明書３１２３を得る。
【００７６】
登録情報管理部４６Ｂは、基本的には図４に記載の登録情報管理部４６Ａと同じものである。追加機能として、コンテンツ登録要求を受けると、登録情報データベース４５Ｂに対して、新規エントリの作成を行い、未使用のコンテンツＩＤ３１２５を割り振る。また、コンテンツＩＤ３１２５もしくはＵＲＬ情報と共にコンテンツ削除要求を受けると、登録情報データベース４５Ｂに対して、渡された該コンテンツＩＤ３１２５もしくはＵＲＬ情報を検索キーとしてエントリを検索し、マッチしたエントリを削除する。
【００７７】
さらに、登録情報管理部４６は、コンテンツの登録、削除処理が行われた際に、他のコンテンツ登録サーバ装置５０及び署名検証サーバ装置４０が有する登録情報データベース４５に対して、ネットワーク経由で通信を行い、登録、削除処理を行う機能を有する。本機能により、データベースの内容の整合性を保証することが可能となる。登録情報データベース４５Ｂは、図５に記載の登録情報データベース４５Ａと同じものである。
【００７８】
図７に、登録情報管理部４６間で、ネットワークを介して登録情報データベース４５の内容を同期させる方法の一例を示す。コンテンツ登録サーバ装置５０を複数設置しているケースでは、登録情報データベース４５の内容の同期が重要な問題となる。内容の不一致やコンテンツＩＤ３１２５の重複を回避するため、常に最新情報を記憶する登録情報データベース４５を用意し、コンテンツ登録サーバ装置マスタ５０Ａと位置付ける。他のコンテンツ登録サーバ装置５０Ｂ（スレーブという）にコンテンツ登録申請があると、コンテンツ登録処理部５１Ｂから登録情報管理部４６Ｂに登録要求が渡される。次に、ネットワーク通信を行うことで、コンテンツ登録サーバ装置マスタ５０Ａに登録要求を渡し、割り当てられたコンテンツＩＤ３１２５を取得する。このコンテンツＩＤ３１２５を用いて登録情報データベース４５Ｂを更新し、署名を３１２を生成することで、コンテンツ登録サーバ装置５０間でのコンテンツＩＤ３１２５の重複を回避して共有することが可能となる。
【００７９】
図８に、コンテンツ検証サーバ装置６０が備える、実行プログラムファイルの内容検証に用いるテーブル形式のデータベースを例示する。
【００８０】
このデータベースは、実行プログラムファイルが使用する関数や、読み込むクラスライブラリに基づいてセキュリティレベルを決定するために使用する。エントリ６２０は、プログラムの安全度を表すセキュリティレベルフィールド６１１、関数名フィールド６１２〜６１４、クラスライブラリ名フィールド６１５〜６１７を備える。図８の例は、関数１を使用しているプログラムと、クラスライブラリ１を読み込んでいるプログラムは、セキュリティレベル２であることを示している。
【００８１】
コンテンツ検証サーバ装置６０が、コンテンツ検証時に上記データベースを参照して決定したセキュリティレベルと、コンテンツ登録者が登録した図５の登録情報データベース４５のセキュリティレベルフィールド４５７の値を比較することで、本システムの運用者とコンテンツ登録者間で結ばれた契約の内容に応じた安全度のコンテンツの配布が可能となる。例えば、高い契約料を本システム運用者に支払っているコンテンツ登録者Ａは、安全度の低いプログラムも配布することができるが、安い契約料を支払っているコンテンツ登録者Ｂは、安全度の高いプログラムのみしか配布できない、というような運用が可能となる。
【００８２】
図１０に、コンテンツ登録サーバ装置マスタ５０Ａにおける、コンテンツ登録申請処理の処理フロー例を図示する。
【００８３】
まず、コンテンツ登録者が、コンテンツ登録者端末装置８０において、Ｗｅｂブラウザなどで登録者情報４５５を含む必要事項を入力し（Ｓ５０１）、コンテンツ登録サーバ装置マスタ５０Ａに対し、必要事項及びオリジナルコンテンツ３１１を送信する（Ｓ５０２）。コンテンツ登録処理部５１が該登録者情報４５５を含む必要事項及び該コンテンツ３１１をコンテンツ登録者端末装置８０から受信した後、該コンテンツ３１１をコンテンツ検証サーバ装置６０に送信する（Ｓ５０３、Ｓ５０４）。コンテンツ検証サーバ装置６０でコンテンツ検証を行った後（Ｓ５０５）、コンテンツ検証サーバ装置６０は検証結果を応答する（Ｓ５０６）。
【００８４】
応答されたコンテンツ検証結果をチェックし（Ｓ５０７）、問題が無ければ（例えば、プログラムにウィルスが含まれていない、セキュリティの低い関数が使われていない、など）、登録情報管理部４６Ｂにより、未使用のコンテンツＩＤ３１２５を割り当てる（Ｓ５１０）。次に、署名生成部５２により、署名３１２を生成する（Ｓ５１１）。次に、登録情報データベース４５Ｂに新規エントリ４５９を作成する（Ｓ５１２）。さらに、登録情報管理部４６Ｂが、署名検証サーバ装置４０及び他のコンテンツ登録サーバ装置５０に対して、登録情報の更新（登録）処理を行う（Ｓ５１３〜Ｓ５０１５）。最後に、コンテンツ登録者端末装置８０に対し、コンテンツ登録処理部５１が検証結果として「登録手続き完了」通知及び署名付きコンテンツ３１を送信する（Ｓ５１６、Ｓ５０１７）。
【００８５】
なお、Ｓ５０７で検証結果に問題があった場合は、コンテンツ登録処理部５１は、コンテンツ登録者端末装置８０に対して、検証結果として「コンテンツ検証失敗」の旨の通知を送信する（Ｓ５０８、Ｓ５０９）。
【００８６】
図１１に、スレーブのコンテンツ登録サーバ装置５０Ｂにおける、コンテンツ登録申請処理の処理フロー例を図示する。
【００８７】
Ｓ５０１からＳ５０９までは図１０と同じである。Ｓ５０７以降、コンテンツ登録サーバ装置マスタ５０Ａへの登録処理が行われる（Ｓ６０１）。該登録者情報４５５及び該コンテンツ３１をコンテンツ登録サーバ装置マスタ５０Ａに送信し（Ｓ６０２）、コンテンツＩＤ３１２５の発行（Ｓ６０３）、及び登録情報データベース４５Ｂの更新を行い（Ｓ６０４）、コンテンツ登録サーバ装置５０ＢにコンテンツＩＤ３１２５を渡す（Ｓ６０５）。Ｓ６０５以降の処理については、図１０のＳ５１１からＳ５１７の処理と同じである。
【００８８】
図１２に、コンテンツ登録サーバ装置５０における、コンテンツ削除申請処理の処理フロー例を図示する。
【００８９】
まず、コンテンツ登録処理部５１が、削除申請の対象コンテンツのＵＲＬもしくはコンテンツＩＤ３１２５をコンテンツ登録者端末装置８０から受信した後、登録情報管理部４６Ｂが該コンテンツを登録情報データベース４５Ｂから検索する（Ｓ２０１）。削除コンテンツが存在するかチェックし（Ｓ２０２）、存在していれば、有効期限フィールド４５３をチェックし、有効期限内かどうかをチェックする（Ｓ２０３）。有効期限内であれば、登録状態４５２を「失効」に変更する（Ｓ２０４）。また、有効期限外であれば、エントリ４５９そのものを削除する（Ｓ２０５）。その次に、登録情報管理部４６Ｂが、署名検証サーバ装置４０及び他のコンテンツ登録サーバ装置５０に対して、登録情報の更新（削除）処理を行う（Ｓ２０６）。最後に、コンテンツ登録者端末装置８０に対し、コンテンツ登録処理部５１が検証結果として「失効手続き完了」通知を送信する（Ｓ２０７）。また、処理Ｓ２０２で削除コンテンツが存在しなければ、コンテンツ登録処理部５１が、コンテンツ登録者端末装置８０にエラーメッセージを通知する（Ｓ２０８）。
【００９０】
次に、コンテンツ登録サーバ装置５０で定期的に発生する、登録情報データベース４５の有効期限チェック処理フロー例について説明する。
【００９１】
まず、登録情報管理部４６が、登録情報データベース４５のエントリ４５９を参照し、未参照エントリが存在するかどうかをチェックする。存在していれば、有効期限フィールド４５３を参照し、有効期限を超過しているかどうかをチェックする。有効期限を超過していれば、該エントリを削除する。有効期限内であれば、削除しない。他にエントリ４５９があれば上記処理を繰り返し、未参照エントリが存在しなければ、登録情報管理部４６Ｂが、署名検証サーバ装置４０及び他のコンテンツ登録サーバ装置５０に対して、登録情報の更新処理を行う。
【００９２】
図１３に、クライアント装置１０から署名付きコンテンツ３１に対してアクセス要求があった際の処理フロー例を図示する。
【００９３】
まず、クライアント装置１０から通信プロキシ装置５０に対してアクセス要求が送信される（Ｓ７０１、Ｓ７０２）と、通信プロキシ装置５０でアクセス対象コンテンツのキャッシュを記憶しているかどうかを確認し（Ｓ７０３）、キャッシュがあれば、クライアント装置１０にキャッシュを送信する（Ｓ７０４，Ｓ７０５）。キャッシュがなければ、アクセス要求をサーバ装置３０に転送する（Ｓ７０６）。
【００９４】
サーバ装置３０が署名付きコンテンツ３１を通信プロキシ装置２０に応答後（Ｓ７０７、Ｓ７０８）、通信プロキシ装置２０は該コンテンツ３１を署名検証サーバ装置４０に転送する（Ｓ７０９，Ｓ７１０）。署名検証サーバ装置４０は付加処理として署名の検証処理を行った後、結果を通知する（Ｓ７１１、Ｓ７１２）。このとき、結果通知と共に、検証済みのオリジナルコンテンツ３１１か、署名付きコンテンツ３１か、もしくはエラーメッセージを通信プロキシ装置２０に送信しても良い。
【００９５】
その後、通信プロキシ装置２０は、検証済みのオリジナルコンテンツ３１１か、署名付きコンテンツ３１か、もしくはエラーメッセージをクライアント装置１０に送信し（Ｓ７１３、Ｓ７１４）、キャッシュ可能であれば、キャッシュとしてオリジナルコンテンツ３１１、もしくは署名付きコンテンツ３１を保存する（Ｓ７１５）。
【００９６】
なお、Ｓ７１１、Ｓ７１２の処理で署名付きコンテンツ３１が送られた場合、通信プロキシ装置２０のＳ７１３での処理において、署名付きコンテンツ３１から署名３１２を除去して、オリジナルコンテンツ３１１をクライアント装置１０に送信しても良い。また、署名検証サーバ装置４０で付加処理されたオリジナルコンテンツ３１１に別のコンテンツのＵＲＬが記載されていた場合に、そのＵＲＬに記載されたＵＲＬに改めてアクセスして、受信したコンテンツをクライアント装置１０に送信しても良い。
【００９７】
なお、コンテンツ登録申請処理が行われた際に、コンテンツ登録サーバ装置５０が通信プロキシ装置２０の通信中継処理部２１に対し、検証済みコンテンツをキャッシュするように指示してもよい。この場合、コンテンツ登録サーバ装置５０が登録したコンテンツが直ぐに通信プロキシ装置２０のキャッシュに格納されるため、クライアント装置１０からこのコンテンツにアクセスがあると、キャッシュから削除されない限りは必ずキャッシュから応答されるため、高速な応答を行うことができるという利点がある。
【００９８】
図１５に示す第２の実施の形態では、通信プロキシ装置２０が多段になっており、クライアント装置１０とクライアント装置１０に各々最寄の通信プロキシ装置２０Ａ、２０Ｂ間には暗号化された通信路９０１が確立されている。
【００９９】
本実施の形態では、キャッシュを用いてクライアント装置１０に高速に応答する通信プロキシ装置２０Ａと、サーバ装置３０の近くの通信プロキシ装置２０Ｂと署名検証サーバ装置４０を分けて運用するため、機能分散の効果があり、システム全体の負荷を分散することが可能となる。また、通信プロキシ装置２０Ａを通信キャリアが保有し、通信プロキシ装置２０Ｂを企業やコンテンツ提供者が保有するなど、通信プロキシ装置２０の備える機能ごとに、運用の分担を行うことが可能となる。
【０１００】
次に第３の実施の形態として、本発明のネットワークシステム及びコンテンツ検証方法を用いたコンテンツダウンロードのフローの一例を示す。ＰＣや携帯電話が、ネットワーク経由でコンテンツをダウンロードする際、以下のようなシーケンスで行なう。
【０１０１】
本体のコンテンツをダウンロードする前に、コンテンツ本体のＵＲＬ等の補助情報が記述されているメタデータと呼ばれるファイルをダウンロードする。次に、メタデータに記述されている情報を解釈して得られた情報を基にコンテンツ本体をダウンロードし、実行する。
【０１０２】
本実施形態では、メタデータ中にコンテンツ本体の署名を付加する。メタデータは、メタデータ自身の署名と、メタデータと対になるコンテンツの署名の両方を備える。署名検証サーバ装置４０は、メタデータのダウンロード時にコンテンツ用の署名を保存しておき、その後のコンテンツダウンロード時に、保存していた署名でコンテンツを検証する。
【０１０３】
メタデータとコンテンツ本体のＵＲＬの対応付けは、コンテンツ登録サーバ５０での登録時に行う。署名検証サーバ装置４０は、この対応付け情報をコンテンツ登録サーバ５０から受信し、テーブルで管理する。また、この対応付けテーブルを用いて、メタデータに付加されているメタデータ自身の署名とコンテンツの署名の記憶場所も管理する。このテーブルに管理されている以外のＵＲＬのメタデータやコンテンツが転送されてきた場合は、署名検証サーバ装置４０は不正アクセスのエラーとして処理する。さらに、コンテンツ用の署名の記憶期限を予め署名検証サーバ装置４０に設定しておけば、サーバ装置のメモリ資源の無駄な消費を防ぐことが出来る。
【０１０４】
図１６を用いて説明する。クライアント装置１０から通信プロキシ装置５０に対してメタデータへのアクセス要求が送信される（Ｓ８０１）と、通信プロキシ装置５０でアクセス先のコンテンツのキャッシュを記憶しているかどうかを確認し、キャッシュがあれば、クライアント装置１０にキャッシュを送信する（Ｓ８０２）。キャッシュがなければ、アクセス要求をサーバ装置３０に転送する（Ｓ８０３）。
【０１０５】
サーバ装置３０が署名付きメタデータを通信プロキシ装置２０に応答後（Ｓ８０４）、通信プロキシ装置２０は該メタデータを署名検証サーバ装置４０に転送する（Ｓ８０５）。署名検証サーバ装置４０でメタデータの署名の検証処理を行い、メタデータとコンテンツの両方の署名を保存して、その記憶場所を対応付けテーブルに登録した後（Ｓ８０６）、結果を通知する（Ｓ８０７）。その後、通信プロキシ装置２０は、検証済みのメタデータもしくはエラーメッセージをクライアント装置１０に送信し（Ｓ８０８）、キャッシュ可能であれば、キャッシュとしてメタデータを保存する（Ｓ８１０）。
【０１０６】
クライアント装置１０は、受信したメタデータの内容を解析した後（Ｓ８０９）、通信プロキシ装置５０に対して、メタデータ中で指示されたコンテンツへのアクセス要求を送信する（Ｓ８１１）。通信プロキシ装置５０で（既に署名検証済みの）コンテンツのキャッシュを記憶しているかどうかを確認し、キャッシュがあれば、クライアント装置１０にキャッシュを送信する（Ｓ８１２）。キャッシュがなければ、アクセス要求をサーバ装置３０に転送する（Ｓ８１３）。サーバ装置３０がコンテンツを通信プロキシ装置２０に応答後（Ｓ８１４）、通信プロキシ装置２０は該コンテンツとアクセス先ＵＲＬ情報３２１とからなるメッセージ３２を署名検証サーバ装置４０に転送する（Ｓ８１５）。
【０１０７】
署名検証サーバ装置４０は、該コンテンツのＵＲＬをキーにして対応付けテーブルを検索し、該コンテンツの対になるメタデータのエントリで管理され、前回のメタデータダウンロードに保存しているコンテンツの署名を探す。このとき署名が記憶されていれば、コンテンツの検証処理を行い、（Ｓ８１６）、結果を通知する。署名が行き臆されていなければエラーを通知する（Ｓ８１７）。その後、通信プロキシ装置２０は、検証済みのコンテンツもしくはエラーメッセージをクライアント装置１０に送信し（Ｓ８１８）、キャッシュ可能であれば、キャッシュとしてコンテンツを保存する（Ｓ８１９）。
【０１０８】
本実施例において、署名検証サーバ装置４０が複数ある場合、コンテンツ本体の検証は、対応するメタデータを検証した署名検証サーバ装置４０で行う必要がある。そのため、通信プロキシ装置２０は、コンテンツ本体を署名検証サーバ装置４０に転送する際に、特定の署名検証サーバ装置４０に転送するための処理を行う。具体的には、Ｓ８０７の処理時に、通信プロキシ装置２０に応答するメタデータ中に記述されているコンテンツのＵＲＬや、コンテンツやメタデータを送る際に用いるＨＴＴＰヘッダに格納されているＨＴＴＰセッションの状態情報（例えばｃｏｏｋｉｅヘッダ等）を、書き換えもしくは書き加えて、署名検証サーバを識別するためのＩＤを付加する。
【０１０９】
例えば、コンテンツＵＲＬ書き換えの場合は、”ｈｔｔｐ：／／サーバＡ／メタデータ”を”ｈｔｔｐ：／／サーバＡ／メタデータ？署名検証サーバ装置＝０１”のように書き換える。クライアント装置１０は、Ｓ８１１においてその書き換えられたＵＲＬに対してリクエストを送信するため、通信プロキシ装置２０は、コンテンツ本体のダウンロード時に、そのＵＲＬの”？”以下に付加された”署名検証サーバ装置＝０１”の部分を解釈して、特定の署名検証サーバ装置４０にコンテンツを転送する。
【０１１０】
ｃｏｏｋｉｅの場合は、”Ｓｅｔ−Ｃｏｏｋｉｅ２：　署名検証サーバ装置＝０１”というヘッダを通信プロキシ装置２０と署名検証サーバ装置４０間のＨＴＴＰ中のメッセージに付加しておく。通信プロキシ装置２０がクライアント装置１０からｃｏｏｋｉｅヘッダ”Ｃｏｏｋｉｅ：　署名検証サーバ装置＝０１”が付加されたリクエストを受信すると、そのｃｏｏｋｉｅヘッダを解釈することで、ＵＲＬの場合と同様に、特定の署名検証サーバ装置４０へのコンテンツ転送を実現することができる。また、通信プロキシ装置２０は、メタデータを転送した署名検証サーバ装置４０の情報を記憶しているので、通信プロキシ装置２０がこのｃｏｏｋｉｅヘッダを付加してクライアント装置１０に送信しても良い。
【０１１１】
本実施の形態の利点としては、以下の二点がある。
【０１１２】
第一に、コンテンツが正式なメタデータによりダウンロードされているかを検証することができる。メタデータにはコンテンツのＵＲＬ情報が記述されており、クライアント装置１０はメタデータを解釈してからコンテンツを呼び出す。しかし、メタデータとコンテンツで個別に検証していたのでは、第三者が勝手にコンテンツを呼び出すメタデータを書くケースもありうる。そのため、コンテンツ自体の署名をメタデータに付加することにより、正式なコンテンツとメタデータが対でダウンロードされているということを検証することができる。
【０１１３】
第二に、コンテンツ自体には手を加えないため、本発明のネットワークシステムを用いずにコンテンツをダウンロードしても、クライアント装置１０での実行に支障がない。たとえば、携帯電話からのアクセスには本ネットワークシステムを介するが、ＰＣからのアクセスは本ネットワークシステムを介さない構成における、署名付きのメタデータとコンテンツをダウンロードする場合、メタデータに余計なデータ（ここでは署名）が付加されていても、メタデータはあくまで補助データであり、メタデータ自身を実行するわけではないので、通常、ダウンロードした装置ではエラーとはせずに無視する。しかし、署名付きのコンテンツを実行させようとすると、コンテンツとは無関係の余計なデータ（すなわち署名）が付加されているため、エラーになる可能性がある。本実施形態のようにコンテンツの署名をメタデータに付加しておくことにより、クライアント装置１０でのエラーを回避することができる。
【０１１４】
【発明の効果】
本発明によれば、クライアント装置やサーバ装置に変更を必要とせずに、高速なまたは高機能なコンテンツ検証システムを実現することができる。
【図面の簡単な説明】
【図１】コンテンツ検証システムの一論理構成図。
【図２】通信プロキシ装置２０の一機能構成図。
【図３】転送制御データベース２２の一構成図。
【図４】署名検証サーバ装置４０の一機能構成図。
【図５】登録情報データベース４５の一構成図。
【図６】コンテンツ登録サーバ装置５０の一機能構成図。
【図７】登録情報データベース４５の同期処理の一例。
【図８】コンテンツ検証システム６０の備えるセキュリティ管理テーブルの一例。
【図９】署名付きコンテンツ３１の一構成図。
【図１０】ネットワークシステムにおけるコンテンツ登録処理フローの一例。
【図１１】ネットワークシステムにおけるコンテンツ登録処理フローの一例。
【図１２】ネットワークシステムにおけるコンテンツ削除処理フローの一例。
【図１３】ネットワークシステムにおけるコンテンツダウンロード時の処理フローの一例。
【図１４】本発明における各装置を実現する情報処理装置の一構成図。
【図１５】ネットワークシステムにおける他の実施形態の構成例。
【図１６】コンテンツ検証方法における他の実施形態の処理フロー。
【符号の説明】
１０…クライアント装置、２０…通信プロキシ装置、３０…サーバ装置、４０…署名検証サーバ装置、５０…コンテンツ登録サーバ装置、６０…コンテンツ検証サーバ装置、７０…認証局、８０…コンテンツ登録者端末装置、２１…通信中継処理部、２２…転送制御データベース、２３…アプリケーションサーバ呼び出し部、４１…署名取得部、４２…証明書検証部、４３…失効証明書リストデータベース、４４…署名検証部、４５…登録情報データベース、４６…登録情報管理部、５１…コンテンツ登録処理部、５２…署名生成部、５３…鍵管理部、３１…署名付きコンテンツ、３１１…オリジナルコンテンツ、３１２…署名、３２…メッセージ、３２１…アクセス先ＵＲＬ情報、９…ネットワーク、１０…情報処理装置、１１…ＣＰＵ、１２…メモリ、１３…読取装置、１４…通信装置、１５…外部記憶装置、１６…入出力装置、１７…内部バス、１８…記憶媒体、９０１…暗号化通信路。
【図１】
2004102951.tif 000003
【図２】
2004102951.tif 000004
【図３】
2004102951.tif 000005
【図４】
2004102951.tif 000006
【図５】
2004102951.tif 000007
【図６】
2004102951.tif 000008
【図７】
2004102951.tif 000009
【図８】
2004102951.tif 000010
【図９】
2004102951.tif 000011
【図１０】
2004102951.tif 000012
【図１１】
2004102951.tif 000013
【図１２】
2004102951.tif 000014
【図１３】
2004102951.tif 000015
【図１４】
2004102951.tif 000016
【図１５】
2004102951.tif 000017
【図１６】
2004102951.tif 000018