JP2005301531A - プログラム、コンピュータおよびデータ処理方法 - Google Patents
プログラム、コンピュータおよびデータ処理方法 Download PDFInfo
- Publication number
- JP2005301531A JP2005301531A JP2004114872A JP2004114872A JP2005301531A JP 2005301531 A JP2005301531 A JP 2005301531A JP 2004114872 A JP2004114872 A JP 2004114872A JP 2004114872 A JP2004114872 A JP 2004114872A JP 2005301531 A JP2005301531 A JP 2005301531A
- Authority
- JP
- Japan
- Prior art keywords
- data
- procedure
- communication destination
- program
- attribute
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】 エージェント機能に伴うサーバ装置の負荷を軽減できるプログラムを提供する。
【解決手段】 クライアント装置12_1は、ユーザの操作履歴データを基に、当該ユーザの好みなどの属性を示す公開エ−ジェントデータを生成する。そして、クライアント装置12_1は、公開エ−ジェントデータをサーバ装置10およびクライアント装置12_2に送信する。
【選択図】 図1
【解決手段】 クライアント装置12_1は、ユーザの操作履歴データを基に、当該ユーザの好みなどの属性を示す公開エ−ジェントデータを生成する。そして、クライアント装置12_1は、公開エ−ジェントデータをサーバ装置10およびクライアント装置12_2に送信する。
【選択図】 図1
Description
本発明は、通信先からデータを受信するコンピュータが実行するプログラム、そのコンピュータおよびデータ処理方法に関する。
例えば、ユーザの操作履歴データを基に、当該ユーザの動作パターンを学習した学習データを生成し、その学習データを基に、コンテンツデータの提供などの処理を当該ユーザに適合させた形態で行うエージェントプログラムがある。
このようなエージェントプログラムは、例えば、サーバ装置上で動作し、サーバ装置にアクセスしているクライアント装置のユーザの操作履歴データを蓄積し、その操作履歴データを基に上記学習データを生成している。
このようなエージェントプログラムは、例えば、サーバ装置上で動作し、サーバ装置にアクセスしているクライアント装置のユーザの操作履歴データを蓄積し、その操作履歴データを基に上記学習データを生成している。
しかしながら、上述した従来のシステムでは、サーバ装置が、多数のクライアント装置からアクセスを受ける場合に、全てのクライアント装置のユーザについての上記操作履歴データを蓄積する必要があり、その管理負担が大きいという問題がある。
本発明は、上述した従来技術に鑑みてなされ、エージェント機能に伴うサーバ装置の負荷を軽減できるプログラム、コンピュータおよびデータ処理方法を提供することを目的とする。
また、本発明は、クライアント装置間でも、少ない負荷でエージェント機能を発揮できるプログラム、コンピュータおよびデータ処理方法を提供することを目的とする。
また、本発明は、クライアント装置間でも、少ない負荷でエージェント機能を発揮できるプログラム、コンピュータおよびデータ処理方法を提供することを目的とする。
上述した従来技術の問題点を解決し、上述した目的を達成するために、第1の発明のプログラムは、通信先と通信を行うコンピュータが実行するプログラムであって、ユーザによる前記コンピュータの操作履歴を基に、前記ユーザの属性を示す属性データを生成する第1の手順と、前記第1の手順で生成した前記属性データを、前記通信先に送信する第2の手順とを前記コンピュータに実行させる。
第1の発明のプログラムの作用は以下のようになる。
第1の発明のプログラムは、コンピュータによって実行され、前記コンピュータに、ユーザによる前記コンピュータの操作履歴を基に、前記ユーザの属性を示す属性データを生成する第1の手順を実行させる。
次に、当該プログラムは、前記第1の手順で生成した前記属性データを、前記通信先に送信する第2の手順を前記コンピュータに実行させる。
第1の発明のプログラムは、コンピュータによって実行され、前記コンピュータに、ユーザによる前記コンピュータの操作履歴を基に、前記ユーザの属性を示す属性データを生成する第1の手順を実行させる。
次に、当該プログラムは、前記第1の手順で生成した前記属性データを、前記通信先に送信する第2の手順を前記コンピュータに実行させる。
第2の発明のプログラムは、ユーザによるコンピュータの操作履歴を基に得られた前記ユーザの属性を示す属性データを通信先に送信するアプリケーションプログラムの管理を前記コンピュータに実行させるプログラムであって、前記コンピュータが起動する前記アプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを生成する第1の手順と、前記アプリケーションプログラムが利用するデータを提供する通信先に、前記第1の手順で生成した前記証明データを送信する第2の手順とを前記コンピュータに実行させる。
第2の発明のプログラムの作用は以下のようになる。
第2の発明のプログラムは、コンピュータによって実行され、前記コンピュータが起動する前記アプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを生成する第1の手順を前記コンピュータに実行させる。
次に、当該プログラムは、前記アプリケーションプログラムが利用するデータを提供する通信先に、前記第1の手順で生成した前記証明データを送信する第2の手順を前記コンピュータに実行させる。
第2の発明のプログラムは、コンピュータによって実行され、前記コンピュータが起動する前記アプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを生成する第1の手順を前記コンピュータに実行させる。
次に、当該プログラムは、前記アプリケーションプログラムが利用するデータを提供する通信先に、前記第1の手順で生成した前記証明データを送信する第2の手順を前記コンピュータに実行させる。
第3の発明のプログラムは、通信先と通信を行うコンピュータが実行するプログラムであって、前記通信先のユーザの操作履歴を基に得られた当該ユーザの属性を示す属性データを前記通信先から受信する第1の手順と、前記第1の手順で受信した前記属性データを基に、前記通信先にデータを送信する第2の手順とを前記コンピュータに実行させる。
第3の発明のプログラムの作用は以下のようになる。
第3の発明のプログラムは、コンピュータによって実行され、通信先のユーザの操作履歴を基に得られた当該ユーザの属性を示す属性データを前記通信先から受信する第1の手順を前記コンピュータに実行させる。
次に、当該プログラムは、前記第1の手順で受信した前記属性データを基に、前記通信先にデータを送信する第2の手順を前記コンピュータに実行させる。
第3の発明のプログラムは、コンピュータによって実行され、通信先のユーザの操作履歴を基に得られた当該ユーザの属性を示す属性データを前記通信先から受信する第1の手順を前記コンピュータに実行させる。
次に、当該プログラムは、前記第1の手順で受信した前記属性データを基に、前記通信先にデータを送信する第2の手順を前記コンピュータに実行させる。
第4の発明のコンピュータは、アプリケーションプログラムが記憶されたメモリと、前記メモリから読み出した前記アプリケーションプログラムを実行する実行回路と、通信先とデータ授受を行うインタフェースとを有するコンピュータであって、前記実行回路は、前記アプリケーションプログラムに従って、ユーザによる前記コンピュータの操作履歴を基に前記ユーザの属性を示す属性データを生成し、当該生成した前記属性データを前記インタフェースを介して前記通信先に送信する。
第4の発明のコンピュータの作用は以下のようになる。
先ず、前記実行回路が、前記アプリケーションプログラムに従って、ユーザによる前記コンピュータの操作履歴を基に前記ユーザの属性を示す属性データを生成する。
次に、前記実行回路が、前記生成した前記属性データを前記インタフェースを介して前記通信先に送信する。
先ず、前記実行回路が、前記アプリケーションプログラムに従って、ユーザによる前記コンピュータの操作履歴を基に前記ユーザの属性を示す属性データを生成する。
次に、前記実行回路が、前記生成した前記属性データを前記インタフェースを介して前記通信先に送信する。
第5の発明のコンピュータは、通信先と通信を行うコンピュータであって、プログラムを記憶するメモリと、前記通信先のユーザの操作履歴を基に得られた当該ユーザの属性を示す属性データを前記通信先から受信するインタフェースと、前記メモリから読み出した前記プログラムを実行し、当該プログラムに従って、前記インタフェースが受信した前記属性データを基に、前記インタフェースを介して、前記通信先にデータを送信する実行回路とを有する。
第6の発明のデータ処理方法は、通信先と通信を行うコンピュータが行うデータ処理方法であって、ユーザによる前記コンピュータの操作履歴を基に、前記ユーザの属性を示す属性データを生成する第1の工程と、前記第1の工程で生成した前記属性データを、前記通信先に送信する第2の工程とを有する。
第7の発明のデータ処理方法は、通信先と通信を行うコンピュータが行うデータ処理方法であって、前記通信先のユーザの操作履歴を基に得られた当該ユーザの属性を示す属性データを前記通信先から受信する第1の工程と、前記第1の工程で受信した前記属性データを基に、前記通信先にデータを送信する第2の工程とを有する。
本発明によれば、コンピュータが少ない負荷でエージェント機能を発揮することを可能にするプログラム、コンピュータおよびデータ処理方法を提供することができる。
以下、本発明の実施形態に係わる通信システムについて説明する。
第1実施形態
図1は、本発明の実施形態に係わる通信システム1の全体構成図である。
図1に示すように、通信システム1は、例えば、サーバ装置10およびクライアント装置12_1,12_2を有する。
サーバ装置10、クライアント装置12_1およびクライアント装置12_1は、ネットワーク9を介して相互に通信を行う。
なお、本実施形態では、多数のサーバ装置10および2つのクライアント装置12_1,12_3で通信を行う場合を例示するが、本発明は、複数のサーバ装置を用いてもよいし、単数または3個以上のクライアント装置を用いてもよい。
第1実施形態
図1は、本発明の実施形態に係わる通信システム1の全体構成図である。
図1に示すように、通信システム1は、例えば、サーバ装置10およびクライアント装置12_1,12_2を有する。
サーバ装置10、クライアント装置12_1およびクライアント装置12_1は、ネットワーク9を介して相互に通信を行う。
なお、本実施形態では、多数のサーバ装置10および2つのクライアント装置12_1,12_3で通信を行う場合を例示するが、本発明は、複数のサーバ装置を用いてもよいし、単数または3個以上のクライアント装置を用いてもよい。
先ず、図1に示す通信システム1の概要を説明する。
クライアント装置12_1は、ユーザの操作履歴データを基に、当該ユーザの好みなどの属性を示す公開エ−ジェントデータAGENT_DP1を生成する。
そして、クライアント装置12_1は、公開エ−ジェントデータAGENT_DP1をサーバ装置10に送信する。
サーバ装置10は、公開エ−ジェントデータAGENT_DP1を基に、クライアント装置12_1のユーザの好みなどの特性に適合した種々のサービスデータ、例えばコンテンツデータをインタフェース21を介してクライアント装置12_1に送信する。
また、クライアント装置12_1は、クライアント装置12_2との間で通信を行う場合には、クライアント装置12_2に公開エ−ジェントデータAGENT_DP1を送信すると共に、クライアント装置12_2から公開エ−ジェントデータAGENT_DP2を受信する。
クライアント装置12_1は、公開エ−ジェントデータAGENT_DP2を基に、クライアント装置12_2のユーザの好みなどの特性に適合したデータ、あるいは適合した形態でデータをクライアント装置12_2に送信する。
通信システム1では、サーバ装置10は、各ユーザの操作履歴データを保持することなく、少ない負担で、エージェント機能を発揮できる。
また、通信システム1では、クライアント装置相互間で、記憶容量および処理の観点から少ない負担で、エ−ジェント機能を利用した円滑な通信を行うことが可能になる。
クライアント装置12_1は、ユーザの操作履歴データを基に、当該ユーザの好みなどの属性を示す公開エ−ジェントデータAGENT_DP1を生成する。
そして、クライアント装置12_1は、公開エ−ジェントデータAGENT_DP1をサーバ装置10に送信する。
サーバ装置10は、公開エ−ジェントデータAGENT_DP1を基に、クライアント装置12_1のユーザの好みなどの特性に適合した種々のサービスデータ、例えばコンテンツデータをインタフェース21を介してクライアント装置12_1に送信する。
また、クライアント装置12_1は、クライアント装置12_2との間で通信を行う場合には、クライアント装置12_2に公開エ−ジェントデータAGENT_DP1を送信すると共に、クライアント装置12_2から公開エ−ジェントデータAGENT_DP2を受信する。
クライアント装置12_1は、公開エ−ジェントデータAGENT_DP2を基に、クライアント装置12_2のユーザの好みなどの特性に適合したデータ、あるいは適合した形態でデータをクライアント装置12_2に送信する。
通信システム1では、サーバ装置10は、各ユーザの操作履歴データを保持することなく、少ない負担で、エージェント機能を発揮できる。
また、通信システム1では、クライアント装置相互間で、記憶容量および処理の観点から少ない負担で、エ−ジェント機能を利用した円滑な通信を行うことが可能になる。
以下、本実施形態を図1〜図12を参照して説明する。
先ず、本実施形態の各構成要素と本発明の構成要素との対応関係を説明する。
図2に示すアプリケーションプログラムAP_Sが第3および第5の発明のプログラムに対応している。
図5等に示すブ−トプログラムB_PRGが、第2の発明のプログラム、並びに第4の発明のブートブログラムに対応している。
また、図1に示すクライアント装置12_1が第1、第2および第4の発明のコンピュータに対応し、図1に示すサーバ装置10およびクライアント装置12_2が第1、第2および第5の発明の通信先に対応している。
また、図1に示すサーバ装置10が第3の発明および第5の発明のコンピュータに対応し、図1に示すクライアント装置12_1が第3および第5の発明の通信先に対応している。
また、公開エ−ジェントデータAGENT_DP1が本発明の属性データに対応し、証明データAP_CERが、本発明の証明データに対応している。
先ず、本実施形態の各構成要素と本発明の構成要素との対応関係を説明する。
図2に示すアプリケーションプログラムAP_Sが第3および第5の発明のプログラムに対応している。
図5等に示すブ−トプログラムB_PRGが、第2の発明のプログラム、並びに第4の発明のブートブログラムに対応している。
また、図1に示すクライアント装置12_1が第1、第2および第4の発明のコンピュータに対応し、図1に示すサーバ装置10およびクライアント装置12_2が第1、第2および第5の発明の通信先に対応している。
また、図1に示すサーバ装置10が第3の発明および第5の発明のコンピュータに対応し、図1に示すクライアント装置12_1が第3および第5の発明の通信先に対応している。
また、公開エ−ジェントデータAGENT_DP1が本発明の属性データに対応し、証明データAP_CERが、本発明の証明データに対応している。
図8に示すステップが第2の発明の第1の手順に対応し、図9に示すステップST54および図10に示すステップST68が第1の発明の第2の手順に対応している。
また、図7に示す各ステップが第2の発明の第1の手順に対応し、図9に示すステップST54および図10に示すステップST64が第2の発明の第2の手順に対応している。
また、図3に示すステップST7が第3の発明の第1の手順に対応し、ステップST9が第3の発明の第2の手順に対応している。
また、図7に示す各ステップが第2の発明の第1の手順に対応し、図9に示すステップST54および図10に示すステップST64が第2の発明の第2の手順に対応している。
また、図3に示すステップST7が第3の発明の第1の手順に対応し、ステップST9が第3の発明の第2の手順に対応している。
〔サーバ装置10〕
図2は、図1に示すサーバ装置10の構成図である。
図2に示すように、サーバ装置10は、例えば、インタフェース21、メモリ22およびCPU23を有し、これらがデータ線20を介して接続されている。
ここで、インタフェース21が第5の発明のインタフェースに対応し、メモリ22が第5の発明のメモリに対応し、CPU23が第5の発明の実行回路に対応している。
図2は、図1に示すサーバ装置10の構成図である。
図2に示すように、サーバ装置10は、例えば、インタフェース21、メモリ22およびCPU23を有し、これらがデータ線20を介して接続されている。
ここで、インタフェース21が第5の発明のインタフェースに対応し、メモリ22が第5の発明のメモリに対応し、CPU23が第5の発明の実行回路に対応している。
インタフェース21は、ネットワーク9を介して、クライアント装置12_1,12_2との間でデータ送受信を行う。
メモリ22は、アプリケーションプログラムAP_Sを記憶する。
アプリケーションプログラムAP_Sは、後述するように、クライアント装置12_1,12_2から受信した公開エ−ジェントデータAGENT_DP1,AGENT_DP2を基に、クライアント装置12_1,12_2のユーザの好みなどの特性に適合した種々のサービスをクライアント装置12_1,12_2に対して提供する。
メモリ22は、サーバ装置10の秘密鍵データSK_S、公開鍵データPK_S、公開鍵証明データPKC_S、並びに識別データID_Sを記憶する。
また、メモリ22は、クライアント装置12_1から受信した公開エ−ジェントデータAGENT_DP1を記憶する。
また、メモリ22は、クライアント装置12_1との通信などにより、クライアント装置12_1の公開鍵データPK_C1および公開鍵証明データPKC_C1を記憶する。 また、メモリ22は、クライアント装置12_2から受信した公開エ−ジェントデータAGENT_DP2を記憶する。
また、メモリ22は、クライアント装置12_2との通信などにより、クライアント装置12_2の公開鍵データPK_C2および公開鍵証明データPKC_C2を記憶する。
メモリ22は、アプリケーションプログラムAP_Sを記憶する。
アプリケーションプログラムAP_Sは、後述するように、クライアント装置12_1,12_2から受信した公開エ−ジェントデータAGENT_DP1,AGENT_DP2を基に、クライアント装置12_1,12_2のユーザの好みなどの特性に適合した種々のサービスをクライアント装置12_1,12_2に対して提供する。
メモリ22は、サーバ装置10の秘密鍵データSK_S、公開鍵データPK_S、公開鍵証明データPKC_S、並びに識別データID_Sを記憶する。
また、メモリ22は、クライアント装置12_1から受信した公開エ−ジェントデータAGENT_DP1を記憶する。
また、メモリ22は、クライアント装置12_1との通信などにより、クライアント装置12_1の公開鍵データPK_C1および公開鍵証明データPKC_C1を記憶する。 また、メモリ22は、クライアント装置12_2から受信した公開エ−ジェントデータAGENT_DP2を記憶する。
また、メモリ22は、クライアント装置12_2との通信などにより、クライアント装置12_2の公開鍵データPK_C2および公開鍵証明データPKC_C2を記憶する。
CPU23は、アプリケーションプログラムAP_Sを実行し、サーバ装置10の動作を統括的に制御する。
CPU23が行う処理については、サーバ装置10の動作例と関連付けて説明する。
CPU23が行う処理については、サーバ装置10の動作例と関連付けて説明する。
以下、図2に示すサーバ装置10がクライアント装置12_1と通信を行う場合の動作例を説明する。
図3は、図2に示すサーバ装置10がクライアント装置12_1と通信を行う場合の動作例を説明するためのフローチャートである。
以下に示す各ステップは、アプリケーションプログラムAP_Sによって規定されている。
ステップST1:
サーバ装置10のCPU23が、ユーザから指定されたアプリケーションプログラムAP_Sをメモリ22から読み出して実行する。
アプリケーションプログラムAP_Sは、例えば、検索エンジン、あるいは、ビデオやオーディオなどのコンテンツデータをクライアント装置に提供するプログラムであり、これに対応した識別データAP_IDを持つプログラムとのみデータ送受信を行う。当該データは、例えば、著作権に係わるコンテンツデータである。
図3は、図2に示すサーバ装置10がクライアント装置12_1と通信を行う場合の動作例を説明するためのフローチャートである。
以下に示す各ステップは、アプリケーションプログラムAP_Sによって規定されている。
ステップST1:
サーバ装置10のCPU23が、ユーザから指定されたアプリケーションプログラムAP_Sをメモリ22から読み出して実行する。
アプリケーションプログラムAP_Sは、例えば、検索エンジン、あるいは、ビデオやオーディオなどのコンテンツデータをクライアント装置に提供するプログラムであり、これに対応した識別データAP_IDを持つプログラムとのみデータ送受信を行う。当該データは、例えば、著作権に係わるコンテンツデータである。
ステップST2:
CPU23は、例えば、メモリ22から読み出した秘密鍵データSK_S、公開鍵データPK_C1および公開鍵証明データPKC_C1を基に、インタフェース21を介してクライアント装置12_1との間で相互認証を行う。
当該相互認証としては、例えば、ISO/IEC 9798−3方式などが用いられる。
CPU23は、当該相互認証により互いの正当性が確認されると、クライアント装置12_1との間の以後の通信に用いるセッション鍵データをクライアント装置12_1と共用し、以後の通信において当該セッション鍵データを基にデータを暗号化する。
本実施形態では、例えば、後述するように、CPU23は、クライアント装置12_1のブ−トプログラムB_PRGのハッシュデータの検証は行わないでよい。
ステップST3:
CPU23は、ステップST2で行った相互認証によって互いの正当性が確認されると、ステップST4に進み、そうでない場合には処理を終了かエラー処理を行う。
CPU23は、例えば、メモリ22から読み出した秘密鍵データSK_S、公開鍵データPK_C1および公開鍵証明データPKC_C1を基に、インタフェース21を介してクライアント装置12_1との間で相互認証を行う。
当該相互認証としては、例えば、ISO/IEC 9798−3方式などが用いられる。
CPU23は、当該相互認証により互いの正当性が確認されると、クライアント装置12_1との間の以後の通信に用いるセッション鍵データをクライアント装置12_1と共用し、以後の通信において当該セッション鍵データを基にデータを暗号化する。
本実施形態では、例えば、後述するように、CPU23は、クライアント装置12_1のブ−トプログラムB_PRGのハッシュデータの検証は行わないでよい。
ステップST3:
CPU23は、ステップST2で行った相互認証によって互いの正当性が確認されると、ステップST4に進み、そうでない場合には処理を終了かエラー処理を行う。
ステップST4:
CPU23は、インタフェース21を介してクライアント装置12_1から署名データSIGが付された証明データAP_CERを受信する。
証明データAP_CERは、例えば、後述するように、クライアント装置12_1で起動され、その正当性が確認されたアプリケーションプログラムAP_C1の識別データAP_ID、製造識別データMF_ID、バージョンVERおよびハッシュデータHASHを図4に示すように対応付けて示している。
本実施形態では、アプリケーションプログラムAP_C1の一つとして、エージェントプログラムAGENT_P1が用いられる。
CPU23は、インタフェース21を介してクライアント装置12_1から署名データSIGが付された証明データAP_CERを受信する。
証明データAP_CERは、例えば、後述するように、クライアント装置12_1で起動され、その正当性が確認されたアプリケーションプログラムAP_C1の識別データAP_ID、製造識別データMF_ID、バージョンVERおよびハッシュデータHASHを図4に示すように対応付けて示している。
本実施形態では、アプリケーションプログラムAP_C1の一つとして、エージェントプログラムAGENT_P1が用いられる。
ステップST5:
CPU23は、ステップST4で受信した証明データAP_CERの正当性を検証する。
このとき、CPU23は、例えば、証明データAP_CERのハッシュデータをハッシュ関数を基に生成する。そして、CPU23は、上記生成したハッシュデータと、図4に示す証明データAP_CERに付加された署名データSIGとが一致しているか否かを判断し、一致していれば、証明データAP_CER1が改竄されていない正当なものであると判断する。
ここで、ハッシュ関数は、与えられた原文から固定長のデータを生成する関数であり、ハッシュ値から原文を再現できず、且つ、同じハッシュ値を持つ異なるデータを生成することも極めて困難であるという特性を有している。
そして、CPU23は、証明データAP_CERが正当であると判断した場合にステップST6に進み、そうでない場合に処理を終了するかエラー処理を行う。
なお、クライアント装置12_1が上記ハッシュデータをクライアント装置12_1の
秘密鍵SK_C1で暗号化して署名データSIGを生成した場合には、CPU23は、署名データSIGをクライアント装置12_1の公開鍵PK_C1で復号し、復号されたデータと上記ハッシュデータを比較する。
なお、ネットワーク9上ではデータはセッション鍵で暗号化されているため、処理時間のかかるディジタル署名技術を用いなくても所望の目的を達成できる。すなわち、ハッシュデータそのものはセッション鍵で暗号化されており、ディジタル署名とほぼ同じ機能を実現できるからである。
また、過去にやりとりされたデータを不正に再利用することを防止するために、通常はデータ(本例では図4に示す証明データAP_CER)に乱数データを追加し、乱数を含む全データに対しハッシュデータを計算し、それを署名データSIGとして利用する。また、秘密鍵SK_C1で暗号化する場合には、この乱数データを含んだデータに対するハッシュデータに対して暗号化を行う。
CPU23は、ステップST4で受信した証明データAP_CERの正当性を検証する。
このとき、CPU23は、例えば、証明データAP_CERのハッシュデータをハッシュ関数を基に生成する。そして、CPU23は、上記生成したハッシュデータと、図4に示す証明データAP_CERに付加された署名データSIGとが一致しているか否かを判断し、一致していれば、証明データAP_CER1が改竄されていない正当なものであると判断する。
ここで、ハッシュ関数は、与えられた原文から固定長のデータを生成する関数であり、ハッシュ値から原文を再現できず、且つ、同じハッシュ値を持つ異なるデータを生成することも極めて困難であるという特性を有している。
そして、CPU23は、証明データAP_CERが正当であると判断した場合にステップST6に進み、そうでない場合に処理を終了するかエラー処理を行う。
なお、クライアント装置12_1が上記ハッシュデータをクライアント装置12_1の
秘密鍵SK_C1で暗号化して署名データSIGを生成した場合には、CPU23は、署名データSIGをクライアント装置12_1の公開鍵PK_C1で復号し、復号されたデータと上記ハッシュデータを比較する。
なお、ネットワーク9上ではデータはセッション鍵で暗号化されているため、処理時間のかかるディジタル署名技術を用いなくても所望の目的を達成できる。すなわち、ハッシュデータそのものはセッション鍵で暗号化されており、ディジタル署名とほぼ同じ機能を実現できるからである。
また、過去にやりとりされたデータを不正に再利用することを防止するために、通常はデータ(本例では図4に示す証明データAP_CER)に乱数データを追加し、乱数を含む全データに対しハッシュデータを計算し、それを署名データSIGとして利用する。また、秘密鍵SK_C1で暗号化する場合には、この乱数データを含んだデータに対するハッシュデータに対して暗号化を行う。
ステップST6:
CPU23は、指定されたアプリケーションプログラムAP_C1(本実施形態では、エージェントプログラムAGENT_P1)の識別データAP_IDが、ステップST4で受信した証明データAP_CERに含まれているか否かを判断し、当該識別データAP_IDが含まれている(クライアント装置12_1においてエージェントプログラムAGENT_P1の正当性が確認され且つ起動されている)と判断するとステップST7に進み、そうでない場合には処理を終了する。
ここで、エージェントプログラムAGENT_P1は、例えば、上述したように、クライアント装置12_1のユーザの公開エ−ジェントデータAGENT_DP1を生成するプログラムである。
なお、CPU23は、当該ステップの上記検証において、識別データAP_IDの他に製造識別データMF_IDおよびバージョンデータVERが所望のものであるか否かを検証してもよい。
なお、よりセキュリティを高めるために、識別データAP_IDが証明データAP_CERに含まれていることを検証するだけでなく、動作プログラムAP_C1に固有のプロトコルを導入して他の(正しく起動した)プログラムとの違いを認識できるようにしたり、動作プログラムAP_C1固有の秘密鍵でクライアント装置固有のID_C1を暗号化させ、このデータを適宜受信することで、通信相手のプログラムが所望のものであると認識するようにすることもできる。
CPU23は、指定されたアプリケーションプログラムAP_C1(本実施形態では、エージェントプログラムAGENT_P1)の識別データAP_IDが、ステップST4で受信した証明データAP_CERに含まれているか否かを判断し、当該識別データAP_IDが含まれている(クライアント装置12_1においてエージェントプログラムAGENT_P1の正当性が確認され且つ起動されている)と判断するとステップST7に進み、そうでない場合には処理を終了する。
ここで、エージェントプログラムAGENT_P1は、例えば、上述したように、クライアント装置12_1のユーザの公開エ−ジェントデータAGENT_DP1を生成するプログラムである。
なお、CPU23は、当該ステップの上記検証において、識別データAP_IDの他に製造識別データMF_IDおよびバージョンデータVERが所望のものであるか否かを検証してもよい。
なお、よりセキュリティを高めるために、識別データAP_IDが証明データAP_CERに含まれていることを検証するだけでなく、動作プログラムAP_C1に固有のプロトコルを導入して他の(正しく起動した)プログラムとの違いを認識できるようにしたり、動作プログラムAP_C1固有の秘密鍵でクライアント装置固有のID_C1を暗号化させ、このデータを適宜受信することで、通信相手のプログラムが所望のものであると認識するようにすることもできる。
ステップST7:
インタフェース21は、クライアント装置12_1から公開エ−ジェントデータAGENT_DP1を受信する。
ステップST8:
CPU23は、ステップST7で受信した図6に示す公開エ−ジェントデータAGENT_DP1に付された署名データSIGDの正当性を検証し、正当であると判断するとステップST9に進み、そうでない場合には処理を終了するかエラー処理を行う。
インタフェース21は、クライアント装置12_1から公開エ−ジェントデータAGENT_DP1を受信する。
ステップST8:
CPU23は、ステップST7で受信した図6に示す公開エ−ジェントデータAGENT_DP1に付された署名データSIGDの正当性を検証し、正当であると判断するとステップST9に進み、そうでない場合には処理を終了するかエラー処理を行う。
ステップST9:
CPU23は、公開エ−ジェントデータAGENT_DP1を解析して、クライアント装置12_1のユーザの好みなどの特性に適合した種々のサービスデータ、例えばコンテンツデータをインタフェース21を介してクライアント装置12_1に送信する。
CPU23は、例えば、アプリケーションプログラムAP_Sが検索エンジンである場合に、クライアント装置12_1のユーザが入力した所定の検索キーワードの他に、上記ユーザの好みを基に決定された当該検索キ−ワードに関連するキ−ワードをさらに用いて、データの検索、並びに検索結果の表示を行う。
例えば、CPU23は、ユーザが「パッケ−ジツア−」を検索キ−ワードとして入力し、公開エ−ジェントデータAGENT_DP1が当該ユーザの好みは「車」であることを示す場合に、パッケ−ジツアーのデータのなかで、車を使って現地まで行くプランや、レンタカープランに関するデータを優先して選択してクライアント装置12_1に送信する。
上述したように、サーバ装置10は、クライアント装置12_1のユーザの操作履歴データを蓄積することなく、クライアント装置12_1から受信した公開エ−ジェントデータAGENT_DP1を基に、エージェント機能を実現できる。
CPU23は、公開エ−ジェントデータAGENT_DP1を解析して、クライアント装置12_1のユーザの好みなどの特性に適合した種々のサービスデータ、例えばコンテンツデータをインタフェース21を介してクライアント装置12_1に送信する。
CPU23は、例えば、アプリケーションプログラムAP_Sが検索エンジンである場合に、クライアント装置12_1のユーザが入力した所定の検索キーワードの他に、上記ユーザの好みを基に決定された当該検索キ−ワードに関連するキ−ワードをさらに用いて、データの検索、並びに検索結果の表示を行う。
例えば、CPU23は、ユーザが「パッケ−ジツア−」を検索キ−ワードとして入力し、公開エ−ジェントデータAGENT_DP1が当該ユーザの好みは「車」であることを示す場合に、パッケ−ジツアーのデータのなかで、車を使って現地まで行くプランや、レンタカープランに関するデータを優先して選択してクライアント装置12_1に送信する。
上述したように、サーバ装置10は、クライアント装置12_1のユーザの操作履歴データを蓄積することなく、クライアント装置12_1から受信した公開エ−ジェントデータAGENT_DP1を基に、エージェント機能を実現できる。
〔クライアント装置12_1〕
図5は、図1に示すクライアント装置12_1の構成図である。
図5に示すように、クライアント装置12_1は、例えば、インタフェース31、メモリ32、CPU33、操作部37およびセキュリティモジュール回路SMを有し、これらがデータ線30を介して接続されている。
ここで、インタフェース31が第4の発明のインタフェースに対応し、メモリ32が第4の発明のメモリに対応し、セキュリティモジュール回路SMが第4の発明の回路モジュールに対応し、CPU33が第4の発明の実行回路に対応している。
本実施形態において、クライアント装置12_1は、例えば、コンピュータ、PDA(Personal Digital Assistants) 、並びに携帯電話などである。
図5は、図1に示すクライアント装置12_1の構成図である。
図5に示すように、クライアント装置12_1は、例えば、インタフェース31、メモリ32、CPU33、操作部37およびセキュリティモジュール回路SMを有し、これらがデータ線30を介して接続されている。
ここで、インタフェース31が第4の発明のインタフェースに対応し、メモリ32が第4の発明のメモリに対応し、セキュリティモジュール回路SMが第4の発明の回路モジュールに対応し、CPU33が第4の発明の実行回路に対応している。
本実施形態において、クライアント装置12_1は、例えば、コンピュータ、PDA(Personal Digital Assistants) 、並びに携帯電話などである。
インタフェース31は、ネットワーク9を介して、サーバ装置10およびクライアント装置12_2との間で通信を行う。
メモリ32は、アプリケーションプログラムAP_C1を記憶する。
メモリ32は、アプリケーションプログラムAP_C1の一つとして、エージェントプログラムAGENT_P1を記憶する。
メモリ32は、半導体メモリあるいはハードディスクドライブである。
セキュリティモジュール回路SMは、例えば、メモリ35および演算回路36を有する。
セキュリティモジュール回路SMは、耐タンパ性を有する回路であり、メモリ35の記憶データの改竄および盗み見行為、並びに演算回路36の処理の盗み見行為を防止する機能が備えられている。
耐タンパ性の回路は、外部からの当該回路に対する攻撃(内部データの不正読み出し、入力周波数や入力電圧を所定外に設定したりする攻撃)を加えたときに、誤動作や内部データの漏洩を起こさないように構成された回路である。具体的には、内部データの読み出しを防止するために、回路構成を多層構造とし、メモリを最下層に配置すると共に、上下層にダミー層(例えばアルミ層)を取り入れることで、外部からメモリ入出力I/Fにアクセスすることを困難にしている。また、回路周波数検知回路や電圧検知回路を備え、周波数や電圧が所定の範囲内にない場合に動作しなように構成されている。
メモリ32は、アプリケーションプログラムAP_C1を記憶する。
メモリ32は、アプリケーションプログラムAP_C1の一つとして、エージェントプログラムAGENT_P1を記憶する。
メモリ32は、半導体メモリあるいはハードディスクドライブである。
セキュリティモジュール回路SMは、例えば、メモリ35および演算回路36を有する。
セキュリティモジュール回路SMは、耐タンパ性を有する回路であり、メモリ35の記憶データの改竄および盗み見行為、並びに演算回路36の処理の盗み見行為を防止する機能が備えられている。
耐タンパ性の回路は、外部からの当該回路に対する攻撃(内部データの不正読み出し、入力周波数や入力電圧を所定外に設定したりする攻撃)を加えたときに、誤動作や内部データの漏洩を起こさないように構成された回路である。具体的には、内部データの読み出しを防止するために、回路構成を多層構造とし、メモリを最下層に配置すると共に、上下層にダミー層(例えばアルミ層)を取り入れることで、外部からメモリ入出力I/Fにアクセスすることを困難にしている。また、回路周波数検知回路や電圧検知回路を備え、周波数や電圧が所定の範囲内にない場合に動作しなように構成されている。
メモリ35は、クライアント装置12_1の秘密鍵データSK_C1、公開鍵データPK_C1、公開鍵証明データPKC_C1、並びに識別データID_C1を記憶する。
また、メモリ35は、サーバ装置10との通信などにより、サーバ装置10の公開鍵データPK_Sおよび公開鍵証明データPKC_Sを記憶する。
また、メモリ35は、クライアント装置12_2との通信などにより、クライアント装置12_2の公開鍵データPK_C2および公開鍵証明データPKC_C2を記憶する。 また、メモリ32は、クライアント装置12_2から受信した公開エ−ジェントデータAGENT_DP2を記憶する。
また、メモリ35は、サーバ装置10との通信などにより、サーバ装置10の公開鍵データPK_Sおよび公開鍵証明データPKC_Sを記憶する。
また、メモリ35は、クライアント装置12_2との通信などにより、クライアント装置12_2の公開鍵データPK_C2および公開鍵証明データPKC_C2を記憶する。 また、メモリ32は、クライアント装置12_2から受信した公開エ−ジェントデータAGENT_DP2を記憶する。
操作部37は、キ−ボード、マウス、タッチパネルなどの操作手段であり、ユーザの操作に応じた操作信号をCPU33に出力する。
CPU33は、ブ−トプログラムB_PRG、アプリケーションプログラムAP_C1、並びに操作部37からの操作信号に基づいて種々の処理を行う。
CPU33は、セキュリティモジュール回路SM内のメモリ35から、データ線30を介してブ−トプログラムB_PRGをセキュアな状態で読み出し、これを実行する。
CPU33は、ブ−トプログラムB_PRGに従って、図4に示す証明データAP_CERを生成し、これをサーバ装置10およびクライアント装置12_2に送信する。
なお、上記セキュアな状態での読み出しを実現するために、CPU33とセキュリティモジュール回路SMとで共通の暗号鍵データを共有し、データ線30上のデータを暗号化したり、CPU33とセキュリティモジュール回路SMとの間で相互認証を行い、互いに共有したセッション鍵データでデータ線30上のデータを暗号化したり、CPU33とセキュリティモジュール回路SMとを1つのパッケージにモールドし、外部からデータ線30上のデータへのアクセスを防止するなどの手法が用いられる。
また、セキュリティモジュール回路SMを、他のクライアント装置に組み込むことを防止するために、クライアント装置12_1に装置固有のメモリデータ(ID、乱数、鍵などのデータ)を分散化して保持させ、起動時にセキュリティモジュール回路SMが上記メモリデータの検証を行うようにしてもよい。また、インタフェース31への入出力動作を複雑化するなどして、CPU33のブートメカニズムを複雑化し、許諾を受けた製造者のみが、そのメカニズムを知るようにすることで、ブ−トプログラムB_PRGの起動の信頼性をさらに高めてもよい。
CPU33は、セキュリティモジュール回路SM内のメモリ35から、データ線30を介してブ−トプログラムB_PRGをセキュアな状態で読み出し、これを実行する。
CPU33は、ブ−トプログラムB_PRGに従って、図4に示す証明データAP_CERを生成し、これをサーバ装置10およびクライアント装置12_2に送信する。
なお、上記セキュアな状態での読み出しを実現するために、CPU33とセキュリティモジュール回路SMとで共通の暗号鍵データを共有し、データ線30上のデータを暗号化したり、CPU33とセキュリティモジュール回路SMとの間で相互認証を行い、互いに共有したセッション鍵データでデータ線30上のデータを暗号化したり、CPU33とセキュリティモジュール回路SMとを1つのパッケージにモールドし、外部からデータ線30上のデータへのアクセスを防止するなどの手法が用いられる。
また、セキュリティモジュール回路SMを、他のクライアント装置に組み込むことを防止するために、クライアント装置12_1に装置固有のメモリデータ(ID、乱数、鍵などのデータ)を分散化して保持させ、起動時にセキュリティモジュール回路SMが上記メモリデータの検証を行うようにしてもよい。また、インタフェース31への入出力動作を複雑化するなどして、CPU33のブートメカニズムを複雑化し、許諾を受けた製造者のみが、そのメカニズムを知るようにすることで、ブ−トプログラムB_PRGの起動の信頼性をさらに高めてもよい。
また、CPU33は、メモリ32からアプリケーションプログラムAP_C1を読み出し、これを実行する。
本実施形態では、CPU33は、メモリ32からエージェントプログラムAGENT_P1を読み出し、これを実行する。
CPU33は、エージェントプログラムAGENT_P1に従って、図6に示す公開エ−ジェントデータAGENT_DP1を生成し、これをサーバ装置10およびクライアント装置12_2に送信する。
図6に示すように、公開エ−ジェントデータAGENT_DP1は、例えば、エージェントプログラムAGENT_P1の識別データID(Agent Software ID) 、製造識別データ(Agent Software Manufacture ID) 、バージョンデータ、その他、当該エージェントプログラムAGENT_P1に関する情報、エージェンデータAGENT_D1、エージェンデータAGENT_D1の更新履歴データPRP、セキュリティモジュールSMのバージョン、並びにエージェントプログラムAGENT_P1の署名データSIGDを有する。
ここで、更新履歴データPRPは、公開エ−ジェントデータAGENT_DP1の更新履歴を示し、各更新について、その履歴番号と、その更新後のエージェントデータAGENT_D1のハッシュデータHASH_D1を示している。
また、エージェントデータAGENT_D1は、後述するように、クライアント装置12_1のユーザの操作履歴を解析して得られた当該ユーザの好みなどの属性データを基に逐次更新されるデータである。
なお、CPU33は、クライアント装置12_1のデバイス、例えば、セキュリティモジュール回路SMを特定できる識別データを公開エ−ジェントデータAGENT_DP1内に含ませるか否かを、ユーザからの指示に応じて決定してもよい。
本実施形態では、CPU33は、メモリ32からエージェントプログラムAGENT_P1を読み出し、これを実行する。
CPU33は、エージェントプログラムAGENT_P1に従って、図6に示す公開エ−ジェントデータAGENT_DP1を生成し、これをサーバ装置10およびクライアント装置12_2に送信する。
図6に示すように、公開エ−ジェントデータAGENT_DP1は、例えば、エージェントプログラムAGENT_P1の識別データID(Agent Software ID) 、製造識別データ(Agent Software Manufacture ID) 、バージョンデータ、その他、当該エージェントプログラムAGENT_P1に関する情報、エージェンデータAGENT_D1、エージェンデータAGENT_D1の更新履歴データPRP、セキュリティモジュールSMのバージョン、並びにエージェントプログラムAGENT_P1の署名データSIGDを有する。
ここで、更新履歴データPRPは、公開エ−ジェントデータAGENT_DP1の更新履歴を示し、各更新について、その履歴番号と、その更新後のエージェントデータAGENT_D1のハッシュデータHASH_D1を示している。
また、エージェントデータAGENT_D1は、後述するように、クライアント装置12_1のユーザの操作履歴を解析して得られた当該ユーザの好みなどの属性データを基に逐次更新されるデータである。
なお、CPU33は、クライアント装置12_1のデバイス、例えば、セキュリティモジュール回路SMを特定できる識別データを公開エ−ジェントデータAGENT_DP1内に含ませるか否かを、ユーザからの指示に応じて決定してもよい。
CPU33は、クライアント装置12_1の動作を統括的に制御する。
CPU33が行う処理については、クライアント装置12_1の動作例と関連付けて説明する。
CPU33が行う処理については、クライアント装置12_1の動作例と関連付けて説明する。
以下、図5に示すクライアント装置12_1がブ−トプログラムB_PRGに従って証明データAP_CERを生成する動作を説明する。
図7は、図5に示すクライアント装置12_1が証明データAP_CERを生成する動作を説明するためのフローチャートである。
以下に示す各ステップは、ブ−トプログラムB_PRGによって規定されている。
ステップST11:
クライアント装置12_1が起動されると、セキュリティモジュール回路SMの演算回路36が、メモリ35からブ−トプログラムB_PRGを読み出し、当該ブ−トプログラムB_PRGの正当性を検証する。
このとき、演算回路36は、例えば、ブ−トプログラムB_PRGのハッシュデータをハッシュ関数を基に生成し、当該生成したハッシュデータと、予め用意されたブ−トプログラムB_PRGのハッシュデータとを比較し、一致していれば、メモリ35に記憶されているブ−トプログラムB_PRGが正当である(改竄されていない)と判断する。
ステップST12:
クライアント装置12_1は、ステップST11でブ−トプログラムB_PRGが正当であると判断されるとステップST13に進み、そうでない場合にはエラー処理を行う。
図7は、図5に示すクライアント装置12_1が証明データAP_CERを生成する動作を説明するためのフローチャートである。
以下に示す各ステップは、ブ−トプログラムB_PRGによって規定されている。
ステップST11:
クライアント装置12_1が起動されると、セキュリティモジュール回路SMの演算回路36が、メモリ35からブ−トプログラムB_PRGを読み出し、当該ブ−トプログラムB_PRGの正当性を検証する。
このとき、演算回路36は、例えば、ブ−トプログラムB_PRGのハッシュデータをハッシュ関数を基に生成し、当該生成したハッシュデータと、予め用意されたブ−トプログラムB_PRGのハッシュデータとを比較し、一致していれば、メモリ35に記憶されているブ−トプログラムB_PRGが正当である(改竄されていない)と判断する。
ステップST12:
クライアント装置12_1は、ステップST11でブ−トプログラムB_PRGが正当であると判断されるとステップST13に進み、そうでない場合にはエラー処理を行う。
ステップST13:
クライアント装置12_1のCPU33が、データ線30を介して、メモリ35からブ−トプログラムB_PRGをセキュアな状態で読み出す。
ステップST14:
CPU33が、ステップST13で読み出したブ−トプログラムB_PRGを実行する。
ステップST15:
CPU33が、ブ−トプログラムB_PRGに従って、ユーザにより指定された複数のアプリケーションプログラムAP_C1のうち未選択のアプリケーションプログラムAP_C1を選択する。 本実施形態では、アプリケーションプログラムAP_C1として、エージェントプログラムAGENT_P1が指定される。
クライアント装置12_1のCPU33が、データ線30を介して、メモリ35からブ−トプログラムB_PRGをセキュアな状態で読み出す。
ステップST14:
CPU33が、ステップST13で読み出したブ−トプログラムB_PRGを実行する。
ステップST15:
CPU33が、ブ−トプログラムB_PRGに従って、ユーザにより指定された複数のアプリケーションプログラムAP_C1のうち未選択のアプリケーションプログラムAP_C1を選択する。 本実施形態では、アプリケーションプログラムAP_C1として、エージェントプログラムAGENT_P1が指定される。
ステップST16:
CPU33が、ステップST15で選択したアプリケーションプログラムAP_C1をメモリ32から読み出して、その正当性を検証する。
このとき、CPU33は、例えば、アプリケーションプログラムAP_C1のハッシュデータをハッシュ関数を基に生成し、当該生成したハッシュデータと、予め用意されたアプリケーションプログラムAP_C1のハッシュデータとを比較し、一致していれば、メモリ32に記憶されているアプリケーションプログラムAP_C1が正当であると判断する。
また、CPU33は、アプリケーションプログラムAP_C1に対応付けられた所定の署名データを公開鍵データを基に検証してもよい。当該署名データは、アプリケーションプログラムAP_C1に付加されていてもよいし、メモリ32に、アプリケーションプログラムAP_C1とは別に記憶されていてもよい。
CPU33が、ステップST15で選択したアプリケーションプログラムAP_C1をメモリ32から読み出して、その正当性を検証する。
このとき、CPU33は、例えば、アプリケーションプログラムAP_C1のハッシュデータをハッシュ関数を基に生成し、当該生成したハッシュデータと、予め用意されたアプリケーションプログラムAP_C1のハッシュデータとを比較し、一致していれば、メモリ32に記憶されているアプリケーションプログラムAP_C1が正当であると判断する。
また、CPU33は、アプリケーションプログラムAP_C1に対応付けられた所定の署名データを公開鍵データを基に検証してもよい。当該署名データは、アプリケーションプログラムAP_C1に付加されていてもよいし、メモリ32に、アプリケーションプログラムAP_C1とは別に記憶されていてもよい。
ステップST17:
CPU33は、ステップST16でアプリケーションプログラムAP_C1が正当であると判断するとステップST18に進み、そうでない場合にはステップST20に進む。 ステップST18:
CPU33は、ステップST16で正当であると判断したアプリケーションプログラムAP_C1の識別データAP_ID、製造識別データMF_ID,バージョンデータVERおよびハッシュデータHASH(以下、単に、識別データAP_IDとも記す)を、証明データAP_CERに追加する。
ステップST19:
CPU33は、ステップST16で正当性であると判断されたアプリケーションプログラムAP_C1を起動する。
本実施形態では、アプリケーションプログラムAP_C1が正当であるとステップST16で判断したことを条件に、アプリケーションプログラムAP_C1を起動する場合を例示するが、その他、アプリケーションプログラムAP_C1が正当であると判断されなかった場合に、その旨をユーザに通知し、ユーザの同意を得てアプリケーションプログラムAP_C1を起動してもよい。但し、この場合には、CPU33は、アプリケーションプログラムAP_C1の識別データAP_IDを、証明データAP_CERに追加しない。
ステップST20:
CPU33は、ユーザにより指定された全てのアプリケーションプログラムAP_C1がステップST15で選択されたか否かを判断し、選択されたと判断すると処理を終了し、そうでない場合にはステップST15に戻る。
本実施形態では、エージェントプログラムAGENT_P1が正当であられば、CPU33がエージェントプログラムAGENT_P1を起動すると共に、その識別データAP_IDが証明データAP_CER内に追加される。
CPU33は、ステップST16でアプリケーションプログラムAP_C1が正当であると判断するとステップST18に進み、そうでない場合にはステップST20に進む。 ステップST18:
CPU33は、ステップST16で正当であると判断したアプリケーションプログラムAP_C1の識別データAP_ID、製造識別データMF_ID,バージョンデータVERおよびハッシュデータHASH(以下、単に、識別データAP_IDとも記す)を、証明データAP_CERに追加する。
ステップST19:
CPU33は、ステップST16で正当性であると判断されたアプリケーションプログラムAP_C1を起動する。
本実施形態では、アプリケーションプログラムAP_C1が正当であるとステップST16で判断したことを条件に、アプリケーションプログラムAP_C1を起動する場合を例示するが、その他、アプリケーションプログラムAP_C1が正当であると判断されなかった場合に、その旨をユーザに通知し、ユーザの同意を得てアプリケーションプログラムAP_C1を起動してもよい。但し、この場合には、CPU33は、アプリケーションプログラムAP_C1の識別データAP_IDを、証明データAP_CERに追加しない。
ステップST20:
CPU33は、ユーザにより指定された全てのアプリケーションプログラムAP_C1がステップST15で選択されたか否かを判断し、選択されたと判断すると処理を終了し、そうでない場合にはステップST15に戻る。
本実施形態では、エージェントプログラムAGENT_P1が正当であられば、CPU33がエージェントプログラムAGENT_P1を起動すると共に、その識別データAP_IDが証明データAP_CER内に追加される。
以下、図5に示すクライアント装置12_1がエージェントプログラムAGENT_P1に従って、公開エ−ジェントデータAGENT_DPを生成する場合の動作例を説明する。
図8は、図5に示すクライアント装置12_1が公開エ−ジェントデータAGENT_DPを生成する場合の動作例を説明するためのフローチャートである。
図8に示す各ステップは、CPU33が、エージェントプログラムAGENT_P1に従って実行する。
以下の動作は、例えば、検索エンジンなどの他のアプリケーションプログラムAP_C1の動作と並行して実行される。
図8は、図5に示すクライアント装置12_1が公開エ−ジェントデータAGENT_DPを生成する場合の動作例を説明するためのフローチャートである。
図8に示す各ステップは、CPU33が、エージェントプログラムAGENT_P1に従って実行する。
以下の動作は、例えば、検索エンジンなどの他のアプリケーションプログラムAP_C1の動作と並行して実行される。
ステップST31:
CPU33は、メモリ32からエージェントデータAGENT_D1を読み出す。
ステップST32:
CPU33は、操作部37からの操作信号を基に、クライアント装置12_1のユーザの操作履歴データを更新する。
そして、CPU33が、当該更新した操作履歴データを解析し、上記ユーザの好みなどの属性データを生成する。
CPU33は、当該生成した属性データを基に、現エージェントデータAGENT_D1を更新する。
CPU33は、メモリ32からエージェントデータAGENT_D1を読み出す。
ステップST32:
CPU33は、操作部37からの操作信号を基に、クライアント装置12_1のユーザの操作履歴データを更新する。
そして、CPU33が、当該更新した操作履歴データを解析し、上記ユーザの好みなどの属性データを生成する。
CPU33は、当該生成した属性データを基に、現エージェントデータAGENT_D1を更新する。
ステップST33:
CPU33は、時間カウンタ(図示せず)のカウタン値を基に、所定の時間が経過したか否かを判断し、経過したと判断するとステップST36に進み、そうでない場合にステップST34に進む。
本実施形態において、上記所定の時間は、例えば、1週間、1か月あるいは3か月などである。
ステップST34:
CPU33は、更新回数カウンタのカウンタ値が示す値(ステップST32の更新回数)、あるいは属性データが更新された内容の程度(更新量)が所定のしきい値を越えたか否かを判断し、越えたと判断するとステップST36に進み、そうでない場合にはステップST35に進む。
ステップST35:
CPU33は、操作部37からの操作信号を基に、公開エ−ジェントデータAGENT_DP1の更新指示をユーザから受けたか否かを判断し、更新指示を受けたと判断するとステップST36に進み、そうでない場合にはステップST32に戻る。
CPU33は、時間カウンタ(図示せず)のカウタン値を基に、所定の時間が経過したか否かを判断し、経過したと判断するとステップST36に進み、そうでない場合にステップST34に進む。
本実施形態において、上記所定の時間は、例えば、1週間、1か月あるいは3か月などである。
ステップST34:
CPU33は、更新回数カウンタのカウンタ値が示す値(ステップST32の更新回数)、あるいは属性データが更新された内容の程度(更新量)が所定のしきい値を越えたか否かを判断し、越えたと判断するとステップST36に進み、そうでない場合にはステップST35に進む。
ステップST35:
CPU33は、操作部37からの操作信号を基に、公開エ−ジェントデータAGENT_DP1の更新指示をユーザから受けたか否かを判断し、更新指示を受けたと判断するとステップST36に進み、そうでない場合にはステップST32に戻る。
ステップST36:
CPU33は、メモリ32から図6に示す公開エ−ジェントデータAGENT_DP1を読み出し、そのエージェントデータAGENT_D1を、ステップST32で更新したエージェントデータAGENT_D1で更新する。
ステップST37:
CPU33は、更新後のエージェントデータAGENT_D1のハッシュデータHASH_D1を生成するとともに、更新前のエージェントデータAGENT_D1のハッシュデータHASH_D1を生成し、それを基に図6に示す更新履歴データPRPを更新する。
CPU33は、メモリ32から図6に示す公開エ−ジェントデータAGENT_DP1を読み出し、そのエージェントデータAGENT_D1を、ステップST32で更新したエージェントデータAGENT_D1で更新する。
ステップST37:
CPU33は、更新後のエージェントデータAGENT_D1のハッシュデータHASH_D1を生成するとともに、更新前のエージェントデータAGENT_D1のハッシュデータHASH_D1を生成し、それを基に図6に示す更新履歴データPRPを更新する。
ステップST38:
CPU33は、ステップST37で更新した公開エ−ジェントデータAGENT_DP1の署名データSIGDを生成し、これを図6に示す公開エ−ジェントデータAGENT_DP1に付加する。
ステップST39:
CPU33は、時間カウンタおよび更新回数カウンタのカウンタ値をリセットする。
CPU33は、ステップST37で更新した公開エ−ジェントデータAGENT_DP1の署名データSIGDを生成し、これを図6に示す公開エ−ジェントデータAGENT_DP1に付加する。
ステップST39:
CPU33は、時間カウンタおよび更新回数カウンタのカウンタ値をリセットする。
以下、図5に示すクライアント装置12_1がサーバ装置10と通信を行う場合の動作例を説明する。
図9は、図5に示すクライアント装置12_1がサーバ装置10と通信を行う場合の動作例を説明するためのフローチャートである。
以下に示すステップST51〜ST55は、ブ−トプログラムB_PRGによって規定されている。
図9は、図5に示すクライアント装置12_1がサーバ装置10と通信を行う場合の動作例を説明するためのフローチャートである。
以下に示すステップST51〜ST55は、ブ−トプログラムB_PRGによって規定されている。
ステップST51:
クライアント装置12_1のCPU33は、セキュリティモジュール回路SMのメモリ35から読み出した秘密鍵データSK_C1、公開鍵データPK_Sおよび公開鍵証明データPKC_Sを基に、インタフェース31を介してサーバ装置10との間で相互認証を行う。
CPU33は、当該相互認証により互いの正当性が確認されると、サーバ装置10との間の以後の通信に用いるセッション鍵データをサーバ装置10と共用し、以後の通信において当該セッション鍵データを基にデータを暗号化する。
なお、上記相互認証において、CPU33は、サーバ装置10のAC(Attribute Certificate) やURL(Uniform Resource Locator)を基に、サーバ装置10の正当性を認証してもよい。ここで、ACは、所定の認証機関(AC発行機関)が公開鍵証明データの識別データIDにリンクして被発行者の機能や属性を証明する電子データであり、本例では、所定のコンテンツデータを配信するサーバであることを示している。
ステップST52:
CPU33は、ステップST51で行った相互認証によって互いの正当性が確認されるとステップST53に進み、そうでない場合には処理を終了する。
クライアント装置12_1のCPU33は、セキュリティモジュール回路SMのメモリ35から読み出した秘密鍵データSK_C1、公開鍵データPK_Sおよび公開鍵証明データPKC_Sを基に、インタフェース31を介してサーバ装置10との間で相互認証を行う。
CPU33は、当該相互認証により互いの正当性が確認されると、サーバ装置10との間の以後の通信に用いるセッション鍵データをサーバ装置10と共用し、以後の通信において当該セッション鍵データを基にデータを暗号化する。
なお、上記相互認証において、CPU33は、サーバ装置10のAC(Attribute Certificate) やURL(Uniform Resource Locator)を基に、サーバ装置10の正当性を認証してもよい。ここで、ACは、所定の認証機関(AC発行機関)が公開鍵証明データの識別データIDにリンクして被発行者の機能や属性を証明する電子データであり、本例では、所定のコンテンツデータを配信するサーバであることを示している。
ステップST52:
CPU33は、ステップST51で行った相互認証によって互いの正当性が確認されるとステップST53に進み、そうでない場合には処理を終了する。
ステップST53:
CPU33は、図7を基に説明した処理を経て生成した証明データAP_CERのハッシュデータを生成し、これを署名データSIGとして証明データAP_CERに付加する。
ステップST54:
CPU33は、ステップST53で生成した署名付き証明データAP_CERと公開エ−ジェントデータAGENT_DP1とを、インタフェース31を介してサーバ装置10に送信する。
ステップST55:
CPU33は、所定のアプリケーションプログラムAP_C1あるいはエージェントプログラムAGENT_P1に従って、インタフェース31を介してサーバ装置10から受信したデータ、例えばコンテンツデータを利用する。
このとき、サーバ装置10からクライアント装置12_1へのデータ送信は、前述したように、クライアント装置12_1がサーバ装置10に送信した公開エ−ジェントデータAGENT_DP1を基に行われているため、クライアント装置12_1のユーザの好みなどの属性を反映したものになっている。
CPU33は、図7を基に説明した処理を経て生成した証明データAP_CERのハッシュデータを生成し、これを署名データSIGとして証明データAP_CERに付加する。
ステップST54:
CPU33は、ステップST53で生成した署名付き証明データAP_CERと公開エ−ジェントデータAGENT_DP1とを、インタフェース31を介してサーバ装置10に送信する。
ステップST55:
CPU33は、所定のアプリケーションプログラムAP_C1あるいはエージェントプログラムAGENT_P1に従って、インタフェース31を介してサーバ装置10から受信したデータ、例えばコンテンツデータを利用する。
このとき、サーバ装置10からクライアント装置12_1へのデータ送信は、前述したように、クライアント装置12_1がサーバ装置10に送信した公開エ−ジェントデータAGENT_DP1を基に行われているため、クライアント装置12_1のユーザの好みなどの属性を反映したものになっている。
なお、アプリケーションプログラムAP_C1には、例えば、著作権保護機能が備えられており、その機能により、コンテンツデータの著作権が保護される。
なお、上述した実施形態では、CPU33が、セキュリティモジュール回路SMから読み出したブ−トプログラムB_PRGを基に、認証処理、並びに署名データSIGの生成処理を行う場合を例示したが、セキュリティモジュール回路SMの演算回路36が当該処理を行ってもよい。
この場合には、クライアント装置12_1は、サーバ装置10から受信したデータのうち、認証に必要なデータをセキュリティモジュール回路SMに提供する。そして、セキュリティモジュール回路SMの演算回路36が、当該データを基に演算処理を行い、その結果をインタフェース31を介してサーバ装置10に送信する。また、セキュリティモジュール回路SMの演算回路36が、証明データAP_CERの署名データSIGを生成し、署名データSIGが付加させた証明データAP_CERをインタフェース31を介してサーバ装置10に送信する。
なお、上述した実施形態では、CPU33が、セキュリティモジュール回路SMから読み出したブ−トプログラムB_PRGを基に、認証処理、並びに署名データSIGの生成処理を行う場合を例示したが、セキュリティモジュール回路SMの演算回路36が当該処理を行ってもよい。
この場合には、クライアント装置12_1は、サーバ装置10から受信したデータのうち、認証に必要なデータをセキュリティモジュール回路SMに提供する。そして、セキュリティモジュール回路SMの演算回路36が、当該データを基に演算処理を行い、その結果をインタフェース31を介してサーバ装置10に送信する。また、セキュリティモジュール回路SMの演算回路36が、証明データAP_CERの署名データSIGを生成し、署名データSIGが付加させた証明データAP_CERをインタフェース31を介してサーバ装置10に送信する。
以下、図5に示すクライアント装置12_1が図1に示すクライアント装置12_2との間でコンテンツデータの送受信を行う場合の動作例を説明する。
図10は、図5に示すクライアント装置12_1が図1に示すクライアント装置12_2との間でコンテンツデータの送受信を行う場合の動作例を説明するためのフローチャートである。
図10に示すステップST61〜ST67はブ−トプログラムB_PRGに従って実行され、ステップST68〜ST70はエージェントプログラムAGENT_P1に従って実行される。
ステップST61:
クライアント装置12_1のCPU33は、セキュリティモジュール回路SMのメモリ35から読み出した秘密鍵データSK_C1、公開鍵データPK_C2および公開鍵証明データPKC_C2を基に、インタフェース31を介してクライアント装置12_2との間で相互認証を行う。
CPU33は、当該相互認証により互いの正当性が確認されると、クライアント装置12_2との間の以後の通信に用いるセッション鍵データをクライアント装置12_2と共用し、以後の通信において当該セッション鍵データを基にデータを暗号化する。
なお、本実施形態では、メモリ35に公開鍵データPK_C2および公開鍵証明データPKC_C2が記憶されているとしたが、認証に先立って、クライアント装置12_2から受信するようにしてもよい。
ステップST62:
CPU33は、ステップST61で行った相互認証によって互いの正当性が確認されるとステップST63に進み、そうでない場合には処理を終了かエラー処理を行う。
図10は、図5に示すクライアント装置12_1が図1に示すクライアント装置12_2との間でコンテンツデータの送受信を行う場合の動作例を説明するためのフローチャートである。
図10に示すステップST61〜ST67はブ−トプログラムB_PRGに従って実行され、ステップST68〜ST70はエージェントプログラムAGENT_P1に従って実行される。
ステップST61:
クライアント装置12_1のCPU33は、セキュリティモジュール回路SMのメモリ35から読み出した秘密鍵データSK_C1、公開鍵データPK_C2および公開鍵証明データPKC_C2を基に、インタフェース31を介してクライアント装置12_2との間で相互認証を行う。
CPU33は、当該相互認証により互いの正当性が確認されると、クライアント装置12_2との間の以後の通信に用いるセッション鍵データをクライアント装置12_2と共用し、以後の通信において当該セッション鍵データを基にデータを暗号化する。
なお、本実施形態では、メモリ35に公開鍵データPK_C2および公開鍵証明データPKC_C2が記憶されているとしたが、認証に先立って、クライアント装置12_2から受信するようにしてもよい。
ステップST62:
CPU33は、ステップST61で行った相互認証によって互いの正当性が確認されるとステップST63に進み、そうでない場合には処理を終了かエラー処理を行う。
ステップST63:
CPU33は、図7を基に説明した処理を経て生成した証明データAP_CER1のハッシュデータを生成し、これを署名データSIGとして証明データAP_CER1に付加する。
ステップST64:
CPU33は、ステップST63で生成した署名付き証明データAP_CER1を、インタフェース31を介してクライアント装置12_2に送信する。
ステップST65:
CPU33は、図7を用いて説明した処理と同様の処理をクライアント装置12_2が行って生成された署名データSIGが付された証明データAP_CER2(図示せず)を、インタフェース31を介してクライアント装置12_2から受信する。
証明データAP_CER2は、前述したように、クライアント装置12_2で起動され、その正当性が確認されたアプリケーションプログラムAP_C2の識別データAP_ID、製造識別データMF_ID、バージョンVERおよびハッシュデータHASHを図4に示すように、対応付けて示している。
CPU33は、図7を基に説明した処理を経て生成した証明データAP_CER1のハッシュデータを生成し、これを署名データSIGとして証明データAP_CER1に付加する。
ステップST64:
CPU33は、ステップST63で生成した署名付き証明データAP_CER1を、インタフェース31を介してクライアント装置12_2に送信する。
ステップST65:
CPU33は、図7を用いて説明した処理と同様の処理をクライアント装置12_2が行って生成された署名データSIGが付された証明データAP_CER2(図示せず)を、インタフェース31を介してクライアント装置12_2から受信する。
証明データAP_CER2は、前述したように、クライアント装置12_2で起動され、その正当性が確認されたアプリケーションプログラムAP_C2の識別データAP_ID、製造識別データMF_ID、バージョンVERおよびハッシュデータHASHを図4に示すように、対応付けて示している。
ステップST66:
CPU33は、ステップST64で受信した証明データAP_CER2の正当性を検証する。
このとき、CPU33は、例えば、証明データAP_CER2のハッシュデータをハッシュ関数を基に生成する。そして、CPU33は、上記生成したハッシュデータと、署名データSIGとが一致しているか否かを判断し、一致していれば、証明データAP_CER2が改竄されていない正当なものであると判断する。
そして、CPU33は、証明データAP_CER2が正当であると判断した場合にステップST67に進み、そうでない場合に処理を終了するかエラー処理を行う。
CPU33は、ステップST64で受信した証明データAP_CER2の正当性を検証する。
このとき、CPU33は、例えば、証明データAP_CER2のハッシュデータをハッシュ関数を基に生成する。そして、CPU33は、上記生成したハッシュデータと、署名データSIGとが一致しているか否かを判断し、一致していれば、証明データAP_CER2が改竄されていない正当なものであると判断する。
そして、CPU33は、証明データAP_CER2が正当であると判断した場合にステップST67に進み、そうでない場合に処理を終了するかエラー処理を行う。
ステップST67:
CPU33は、ユーザによって指定されたアプリケーションプログラムAP_C2の識別データAP_IDが、ステップST65で受信した証明データAP_CER2に含まれているか否かを判断し、当該識別データAP_IDが含まれている(クライアント装置12_2においてアプリケーションプログラムAP_C2の正当性が確認され且つ起動されている)と判断するとステップST68に進み、そうでない場合には処理を終了するかエラー処理を行う。
なお、CPU33は、当該ステップにおいて、識別データAP_IDの他に製造識別データMF_IDおよびバージョンデータVERが所望のものであるか否かを判断してもよい。
CPU33は、ユーザによって指定されたアプリケーションプログラムAP_C2の識別データAP_IDが、ステップST65で受信した証明データAP_CER2に含まれているか否かを判断し、当該識別データAP_IDが含まれている(クライアント装置12_2においてアプリケーションプログラムAP_C2の正当性が確認され且つ起動されている)と判断するとステップST68に進み、そうでない場合には処理を終了するかエラー処理を行う。
なお、CPU33は、当該ステップにおいて、識別データAP_IDの他に製造識別データMF_IDおよびバージョンデータVERが所望のものであるか否かを判断してもよい。
ステップST68:
CPU33は、例えば、既に起動しているエージェントプログラムAGENT_P1に従って、図8に示す手順で生成した公開エ−ジェントデータAGENT_DP1を、インタフェース31を介してクライアント装置12_2に送信する。
インタフェース31は、クライアント装置12_2から、当該クライアント装置12_1が生成した公開エ−ジェントデータAGENT_DP2を受信する。
CPU33は、例えば、既に起動しているエージェントプログラムAGENT_P1に従って、図8に示す手順で生成した公開エ−ジェントデータAGENT_DP1を、インタフェース31を介してクライアント装置12_2に送信する。
インタフェース31は、クライアント装置12_2から、当該クライアント装置12_1が生成した公開エ−ジェントデータAGENT_DP2を受信する。
ステップST69:
CPU33は、ステップST68で受信した公開エ−ジェントデータAGENT_DP2に付された署名データSIGDの正当性を検証する。
CPU33は、署名データSIGDが正当であると判断するとステップST70に進み、そうでない場合には処理を終了するかエラー処理を行う。
CPU33は、ステップST68で受信した公開エ−ジェントデータAGENT_DP2に付された署名データSIGDの正当性を検証する。
CPU33は、署名データSIGDが正当であると判断するとステップST70に進み、そうでない場合には処理を終了するかエラー処理を行う。
ステップST70:
CPU33は、エージェントプログラムAGENT_P1に従って、所定のコンテンツデータなどのデータを暗号化して、インタフェース31を介してクライアント装置12_2に送信する。
このとき、CPU33は、ステップST68で受信した公開エ−ジェントデータAGENT_DP2を基に、クライアント装置12_1のユーザの好みなどの特性に適合したデータをクライアント装置12_2に送信する。
CPU33は、その他、例えば、公開エ−ジェントデータAGENT_DP2を基に、クライアント装置12_2のユーザがメール、チャット、ボイスメールおよび通話の何れの利用頻度が高いかを判断し、利用頻度が高い媒体を用いて当該ユーザと通信を行うようにしてもよい。
また、CPU33は、インタフェース31を介してクライアント装置12_2から受信したコンテンツデータなどのデータを利用する。
CPU33は、エージェントプログラムAGENT_P1に従って、所定のコンテンツデータなどのデータを暗号化して、インタフェース31を介してクライアント装置12_2に送信する。
このとき、CPU33は、ステップST68で受信した公開エ−ジェントデータAGENT_DP2を基に、クライアント装置12_1のユーザの好みなどの特性に適合したデータをクライアント装置12_2に送信する。
CPU33は、その他、例えば、公開エ−ジェントデータAGENT_DP2を基に、クライアント装置12_2のユーザがメール、チャット、ボイスメールおよび通話の何れの利用頻度が高いかを判断し、利用頻度が高い媒体を用いて当該ユーザと通信を行うようにしてもよい。
また、CPU33は、インタフェース31を介してクライアント装置12_2から受信したコンテンツデータなどのデータを利用する。
なお、クライアント装置12_2は、上述したクライアント装置12_1と同じ構成を有している。
以下、図1に示す通信システム1の全体動作例を説明する。
クライアント装置12_1,12_2は、前述した図7に示す処理を行って証明データAP_CER1,AP_CER2を、それぞれクライアント装置12_1,12_2の図5に示すセキュリティモジュール回路SM内のメモリ35に書き込む。
また、クライアント装置12_1,12_2の各々は、図8に示す処理を行ってユーザの好みなどの属性を示す公開エ−ジェントデータAGENT_DP1,AGENT_DP2を生成し、これをメモリ32に書き込む。
そして、クライアント装置12_1,12_2は、公開エ−ジェントデータAGENT_DP1,AGENT_DP2をサーバ装置10に送信する。
サーバ装置10は、公開エ−ジェントデータAGENT_DP1を基に、クライアント装置12_1のユーザの好みなどの特性に適合した種々のサービスデータ、例えばコンテンツデータをインタフェース21を介してクライアント装置12_1に送信する。
また、サーバ装置10は、公開エ−ジェントデータAGENT_DP2を基に、クライアント装置12_2のユーザの好みなどの特性に適合した種々のサービスデータ、例えばコンテンツデータをインタフェース21を介してクライアント装置12_2に送信する。 一方、クライアント装置12_1は、クライアント装置12_2との間で通信を行う場合には、クライアント装置12_2に公開エ−ジェントデータAGENT_DP1を送信すると共に、クライアント装置12_2から公開エ−ジェントデータAGENT_DP2を受信する。
そして、クライアント装置12_1は、公開エ−ジェントデータAGENT_DP2を基に、クライアント装置12_2のユーザの好みなどの特性に適合したデータ、あるいは適合した形態でデータをクライアント装置12_2に送信する。
クライアント装置12_1,12_2は、前述した図7に示す処理を行って証明データAP_CER1,AP_CER2を、それぞれクライアント装置12_1,12_2の図5に示すセキュリティモジュール回路SM内のメモリ35に書き込む。
また、クライアント装置12_1,12_2の各々は、図8に示す処理を行ってユーザの好みなどの属性を示す公開エ−ジェントデータAGENT_DP1,AGENT_DP2を生成し、これをメモリ32に書き込む。
そして、クライアント装置12_1,12_2は、公開エ−ジェントデータAGENT_DP1,AGENT_DP2をサーバ装置10に送信する。
サーバ装置10は、公開エ−ジェントデータAGENT_DP1を基に、クライアント装置12_1のユーザの好みなどの特性に適合した種々のサービスデータ、例えばコンテンツデータをインタフェース21を介してクライアント装置12_1に送信する。
また、サーバ装置10は、公開エ−ジェントデータAGENT_DP2を基に、クライアント装置12_2のユーザの好みなどの特性に適合した種々のサービスデータ、例えばコンテンツデータをインタフェース21を介してクライアント装置12_2に送信する。 一方、クライアント装置12_1は、クライアント装置12_2との間で通信を行う場合には、クライアント装置12_2に公開エ−ジェントデータAGENT_DP1を送信すると共に、クライアント装置12_2から公開エ−ジェントデータAGENT_DP2を受信する。
そして、クライアント装置12_1は、公開エ−ジェントデータAGENT_DP2を基に、クライアント装置12_2のユーザの好みなどの特性に適合したデータ、あるいは適合した形態でデータをクライアント装置12_2に送信する。
以上説明したように、通信システム1によれば、サーバ装置10が各ユーザの操作履歴データを保持することなく、少ない負担で、エージェント機能を実現できる。
また、通信システム1によれば、クライアント装置12_1,12_2の相互間で、記憶容量および処理の観点から少ない負担で、エ−ジェント機能を利用した円滑な通信を行うことが可能になる。
例えば、クライアント装置12_1,12_2との間でデータ交換を行う場合に、相手の好みに適合したデータを送信することができる。
また、通信システム1によれば、クライアント装置12_1,12_2の相互間で、記憶容量および処理の観点から少ない負担で、エ−ジェント機能を利用した円滑な通信を行うことが可能になる。
例えば、クライアント装置12_1,12_2との間でデータ交換を行う場合に、相手の好みに適合したデータを送信することができる。
また、通信システム1によれば、クライアント装置12_1,12_2の各々が自らが起動するアプリケーションプログラムAP_C1,AP_C2の正当性を検証し、その結果を示す証明データAP_CER1、AP_CER2をサーバ装置10に送信する。
そのため、サーバ装置10は、クライアント装置12_1,12_2が実行するアプリケーションプログラムのハッシュデータを全て保持する必要がなく、また、その正当性の検証処理を行う必要がない。従って、クライアント装置12_1,12_2で起動されているアプリケーションプログラムの正当性の判断に伴うサーバ装置10の負荷を軽減できる。
そのため、サーバ装置10は、クライアント装置12_1,12_2が実行するアプリケーションプログラムのハッシュデータを全て保持する必要がなく、また、その正当性の検証処理を行う必要がない。従って、クライアント装置12_1,12_2で起動されているアプリケーションプログラムの正当性の判断に伴うサーバ装置10の負荷を軽減できる。
また、通信システム1によれば、クライアント装置12_1,12_2において、図5に示すように、上述した証明データAP_CERを生成するブ−トプログラムB_PRGが証明データAP_CER1,AP_CER2内に記憶され、且つ、それがデータ線30を介してセキュアな状態でCPU33に読み出されるので、証明データAP_CER1,AP_CER2の信頼性を高めることができる。
また、通信システム1によれば、サーバ装置10は、クライアント装置12_1,12_2と相互認証を行ってから、署名付きの証明データAP_CER1,AP_CER2を受信し、その署名データSIGを検証するため、サーバ装置10は、クライアント装置12_1,12_2で起動されているアプリケーションプログラムの正当性を高い信頼性で判断できる。
また、通信システム1によれば、サーバ装置10は、クライアント装置12_1,12_2と相互認証を行ってから、署名付きの証明データAP_CER1,AP_CER2を受信し、その署名データSIGを検証するため、サーバ装置10は、クライアント装置12_1,12_2で起動されているアプリケーションプログラムの正当性を高い信頼性で判断できる。
また、通信システム1によれば、サーバ装置10とクライアント装置12_1,12_2との間のみならず、クライアント装置12_1と12_2との間でコンテンツデータを送受信する場合にも、クライアント装置12_1,12_2の一方は、他方で起動されているアプリケーションプログラムの正当性を小さな負荷で判断できる。
本発明は上述した実施形態には限定されない。
例えば、クライアント装置12_1等は、エージェントプログラムAGENT_P1に従って、ユーザの操作履歴の他に、ユーザが直接入力されたユーザの好み、年齢、性別などに関する情報をさらに含めてエージェントデータAGENT_D1を生成してもよい。
また、クライアント装置12_1等は、エージェントプログラムAGENT_P1に従って、ユーザが直接入力した当該ユーザの個人データ、例えば、パスワード、氏名、住所、電話番号、並びにメ−ルアドレスなどの情報をさらに含めてエージェントデータAGENT_D1を生成してもよい。
例えば、クライアント装置12_1等は、エージェントプログラムAGENT_P1に従って、ユーザの操作履歴の他に、ユーザが直接入力されたユーザの好み、年齢、性別などに関する情報をさらに含めてエージェントデータAGENT_D1を生成してもよい。
また、クライアント装置12_1等は、エージェントプログラムAGENT_P1に従って、ユーザが直接入力した当該ユーザの個人データ、例えば、パスワード、氏名、住所、電話番号、並びにメ−ルアドレスなどの情報をさらに含めてエージェントデータAGENT_D1を生成してもよい。
この場合に、クライアント装置12_1等は、上述した個人データなどのプライバシーに係わるデータは、エージェントデータAGENT_D1には含ませるが、公開エ−ジェントデータAGENT_DP1には含ませないなどの処理を行う。
また、クライアント装置12_1等は、ユーザからの指示に応じて、当該ユーザの好みおよびアクセス履歴などの情報を、公開する情報と非公開の情報とに分類し、公開する情報のみを公開エ−ジェントデータAGENT_DP1に含ませてもよい。この場合に、クライアント装置12_1等は、非公開の情報は、暗号化して図5に示すメモリ32に記憶する。
また、クライアント装置12_1等は、ユーザからの指示に応じて、当該ユーザの好みおよびアクセス履歴などの情報を、公開する情報と非公開の情報とに分類し、公開する情報のみを公開エ−ジェントデータAGENT_DP1に含ませてもよい。この場合に、クライアント装置12_1等は、非公開の情報は、暗号化して図5に示すメモリ32に記憶する。
また、クライアント装置12_1等は、図6に示す公開エ−ジェントデータAGENT_DP1のエージェントデータAGENT_D1内に、図11に示すように、暗号化されたデータEDと、暗号化されていないデータUEDとを含めてもよい。
この場合に、クライアント装置12_1等は、例えば、暗号化されたデータEDとして、複数の暗号レベルを規定してもよい。
すなわち、クライアント装置12_1等は、例えば、図12に示すように、鍵データとしてK1,K2,K3,K4を規定する。
そして、クライアント装置12_1等は、鍵データを暗号化した暗号データT2,T3,T4、並びに暗号データED1,ED2,ED3,ED4を、サーバ装置10あるいはクライアント装置12_2に送信する。
この場合に、例えば、下記(1)に示すようにEnc,Decを定義し、下記(2)、(3)に示すように、鍵データK1〜K4、被暗号化データD1〜D4、並びに暗号データED1〜ED4,T2〜T4を規定する。
この場合に、クライアント装置12_1等は、例えば、暗号化されたデータEDとして、複数の暗号レベルを規定してもよい。
すなわち、クライアント装置12_1等は、例えば、図12に示すように、鍵データとしてK1,K2,K3,K4を規定する。
そして、クライアント装置12_1等は、鍵データを暗号化した暗号データT2,T3,T4、並びに暗号データED1,ED2,ED3,ED4を、サーバ装置10あるいはクライアント装置12_2に送信する。
この場合に、例えば、下記(1)に示すようにEnc,Decを定義し、下記(2)、(3)に示すように、鍵データK1〜K4、被暗号化データD1〜D4、並びに暗号データED1〜ED4,T2〜T4を規定する。
(数1)
(暗号データ)=Enc(鍵データ、被暗号化データ)
(被暗号化データ)=Dec(鍵データ、暗号データ)
…(1)
(暗号データ)=Enc(鍵データ、被暗号化データ)
(被暗号化データ)=Dec(鍵データ、暗号データ)
…(1)
(数2)
ED1=Enc(K1,D1)
T1=Enc(K1,K2)
ED2=Enc(K2,D2)
T2=Enc(K2,K3)
ED3=Enc(K3,D3)
T3=Enc(K3,K4)
ED4=Enc(K4,D4)
…(2)
ED1=Enc(K1,D1)
T1=Enc(K1,K2)
ED2=Enc(K2,D2)
T2=Enc(K2,K3)
ED3=Enc(K3,D3)
T3=Enc(K3,K4)
ED4=Enc(K4,D4)
…(2)
(数3)
K4=Dec(K3,T3)
D4=Dec(K4,ED4)
K3=Dec(K2,T2)
D3=Dec(K3,ED3)
K2=Dec(K1,T1)
D2=Dec(K2,ED2)
D1=Dec(K1,ED1)
…(3)
K4=Dec(K3,T3)
D4=Dec(K4,ED4)
K3=Dec(K2,T2)
D3=Dec(K3,ED3)
K2=Dec(K1,T1)
D2=Dec(K2,ED2)
D1=Dec(K1,ED1)
…(3)
サーバ装置10あるいはクライアント装置12_2は、鍵データK1を保持している場合には鍵データK2,K3,K4を取得でき、鍵データK2を保持している場合には鍵データK3,K4を取得でき、鍵データK3を保持している場合には鍵データK4を取得できる。従って、これらの鍵データK1〜K4を基に暗号レベルを設定できる。
すなわち、クライアント装置12_1等は、サーバ装置10およびクライアント装置12_2に、鍵データK1〜K4のうち自らが指定した鍵データを提供し、図11に示す暗号化されているデータEDを何れかの鍵データで暗号化することで、自らが指定したサーバ装置10およびクライアント装置12_2にのみ、データEDを復号させることができる。
例えば、クライアント装置12_1は、クライアント装置12_2に鍵データK2を提供して保持させた場合に、鍵データK2,K3あるいはK4を用いて暗号化したデータEDはクライアント装置12_2に復号させ、鍵データK1を用いて暗号化したデータEDはクライアント装置12_2に復号させないようにできる。
すなわち、クライアント装置12_1等は、サーバ装置10およびクライアント装置12_2に、鍵データK1〜K4のうち自らが指定した鍵データを提供し、図11に示す暗号化されているデータEDを何れかの鍵データで暗号化することで、自らが指定したサーバ装置10およびクライアント装置12_2にのみ、データEDを復号させることができる。
例えば、クライアント装置12_1は、クライアント装置12_2に鍵データK2を提供して保持させた場合に、鍵データK2,K3あるいはK4を用いて暗号化したデータEDはクライアント装置12_2に復号させ、鍵データK1を用いて暗号化したデータEDはクライアント装置12_2に復号させないようにできる。
また、上述した相互認証は、公開鍵認証に限定されるのではなく、相互認証できる方法またはシステムであればどのような認証方法でもよい。
本発明は、コンピュータ間で通信を行うシステムに適用可能である。
1…通信システム、10…サーバ装置、12_1,12_2…クライアント装置、20…データ線、21…インタフェース、22…メモリ、23…CPU、30…データ線、31…インタフェース、32…メモリ、33…CPU、SM…セキュリティモジュール回路、35…メモリ、36…演算回路、AP_S,AP_C1…アプリケーションプログラム、B_PRG…ブ−トプログラム、AP_CER…証明データ、AGENT_DP1…公開エ−ジェントデータ、AGENT_D…エージェントデータ、AGENT_P1…エージェントプログラム
Claims (19)
- 通信先と通信を行うコンピュータが実行するプログラムであって、
ユーザによる前記コンピュータの操作履歴を基に、前記ユーザの属性を示す属性データを生成する第1の手順と、
前記第1の手順で生成した前記属性データを、前記通信先に送信する第2の手順と
を前記コンピュータに実行させるプログラム。 - 前記第1の手順は、前記操作履歴を基に、前記ユーザの好みを判断する指標となる前記属性データを生成する
請求項1に記載のプログラム。 - 前記第1の手順は、前記ユーザから入力されたデータを基に、前記ユーザの個人データをさらに示す前記属性データを生成する
請求項1に記載のプログラム。 - 前記第1の手順で生成した前記属性データのハッシュデータを生成し、当該ハッシュデータを前記属性データに付加する第3の手順
をさらに有し、
前記第2の手順は、前記第3の手順で前記ハッシュデータが付加された前記属性データを前記通信先に送信する
請求項1に記載のプログラム。 - 前記第1の手順は、前記ユーザからの指示に応じて、公開属性データと非公開属性データとを含む前記属性データを生成し、
前記第2の手順は、前記第1の手順で生成した前記属性データのうち前記公開属性データのみを前記通信先に送信する
請求項1に記載のプログラム。 - 前記第1の手順で生成した前記属性データに署名データを付加する第4の手順
をさらに有し、
前記第2の手順は、前記第4の手順で前記署名データが付加された前記属性データを前記通信先に送信する
請求項1に記載のプログラム。 - ユーザによるコンピュータの操作履歴を基に得られた前記ユーザの属性を示す属性データを通信先に送信するアプリケーションプログラムの管理を前記コンピュータに実行させるプログラムであって、
前記コンピュータが起動する前記アプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを生成する第1の手順と、
前記アプリケーションプログラムが利用するデータを提供する通信先に、前記第1の手順で生成した前記証明データを送信する第2の手順と
を前記コンピュータに実行させるプログラム。 - 前記第1の手順は、前記アプリケーションプログラムが改竄されているか否かを検証し、改竄されていないと判断した場合に、前記識別データを示す前記証明データを生成する 請求項7に記載のプログラム。
- 記憶データの改竄および監視を防止する機能が備えられたメモリに記憶されており、
前記コンピュータによって前記メモリからセキュアな状態で読み出されて当該コンピュータに実行される
請求項7に記載のプログラム。 - 通信先と通信を行うコンピュータが実行するプログラムであって、
前記通信先のユーザの操作履歴を基に得られた当該ユーザの属性を示す属性データを前記通信先から受信する第1の手順と、
前記第1の手順で受信した前記属性データを基に、前記通信先にデータを送信する第2の手順と
を前記コンピュータに実行させるプログラム。 - 前記第2の手順は、前記属性データを基に、前記他のコンテンツデータのユーザの属性に適合したデータ、あるいは適合した形態でデータを送信する
請求項10に記載のプログラム。 - 前記第1の手順は、前記ユーザの好みを判断する指標となる前記属性データを受信する 請求項10に記載のプログラム。
- 前記通信先の正当性を認証する第3の手順と、
前記第3の手順で正当であると認証したことを条件に、前記通信先によって正当であると判断され当該通信先で起動されるアプリケーションプログラムの識別データを示す証明データを前記通信先から受信する第4の手順と、
所望の識別データが、前記第4の手順で受信した前記証明データに含まれているか否かを判断する第5の手順と、
前記第5の手順で前記所望の識別データが含まれていると判断したことを条件に、前記第2の手順を前記コンピュータに実行させる
請求項10に記載のプログラム。 - アプリケーションプログラムが記憶されたメモリと、
前記メモリから読み出した前記アプリケーションプログラムを実行する実行回路と、
通信先とデータ授受を行うインタフェースと
を有するコンピュータであって、
前記実行回路は、前記アプリケーションプログラムに従って、ユーザによる前記コンピュータの操作履歴を基に前記ユーザの属性を示す属性データを生成し、当該生成した前記属性データを前記インタフェースを介して前記通信先に送信する
コンピュータ。 - 記憶データの改竄および監視を防止する機能が備えられ、ブ−トプログラムを記憶する回路モジュール
をさらに有し、
前記実行回路は、前記回路モジュールからセキュアな状態で読み出した前記ブ−トプログラムをさらに実行し、当該ブ−トプログラムに従って、前記アプリケーションプログラムの正当性を検証し、正当であると判断した前記アプリケーションプログラムの識別データを示す証明データを前記回路モジュールに記憶させ、前記回路モジュールから読み出した前記証明データを,前記インタフェースを介して前記通信先に送信する
請求項14に記載のコンピュータ。 - 通信先と通信を行うコンピュータであって、
プログラムを記憶するメモリと、
前記通信先のユーザの操作履歴を基に得られた当該ユーザの属性を示す属性データを前記通信先から受信するインタフェースと、
前記メモリから読み出した前記プログラムを実行し、当該プログラムに従って、前記インタフェースが受信した前記属性データを基に、前記インタフェースを介して、前記通信先にデータを送信する実行回路と
を有するコンピュータ。 - 前記インタフェースは、前記通信先で起動され当該通信先に
よって正当性が認められたアプリケーションプログラムの識別データを示す証明データを前記通信先から受信し、
前記実行回路は、前記プログラムに従って、通信先が正当であると認証したことを条件に、前記インタフェースを介して受信した前記証明データに所望の識別データが含まれているか否かを判断し、前記所望の識別データが含まれていると判断したことを条件に、前記インタフェースを介して前記通信先にデータを送信する
請求項16に記載のコンピュータ。 - 通信先と通信を行うコンピュータが行うデータ処理方法であって、
ユーザによる前記コンピュータの操作履歴を基に、前記ユーザの属性を示す属性データを生成する第1の工程と、
前記第1の工程で生成した前記属性データを、前記通信先に送信する第2の工程と
を有するデータ処理方法。 - 通信先と通信を行うコンピュータが行うデータ処理方法であって、
前記通信先のユーザの操作履歴を基に得られた当該ユーザの属性を示す属性データを前記通信先から受信する第1の工程と、
前記第1の工程で受信した前記属性データを基に、前記通信先にデータを送信する第2の工程と
を有するデータ処理方法。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004114872A JP2005301531A (ja) | 2004-04-09 | 2004-04-09 | プログラム、コンピュータおよびデータ処理方法 |
TW094110747A TW200607288A (en) | 2004-04-05 | 2005-04-04 | Program, computer, and data processing method |
PCT/JP2005/006633 WO2005098640A1 (ja) | 2004-04-05 | 2005-04-05 | プログラム、コンピュータおよびデータ処理方法 |
EP05728436A EP1736892A1 (en) | 2004-04-05 | 2005-04-05 | Program, computer, and data processing method |
KR1020057022195A KR20070009371A (ko) | 2004-04-05 | 2005-04-05 | 프로그램, 컴퓨터, 및 데이터 처리 방법 |
US10/557,169 US20070044160A1 (en) | 2004-04-05 | 2005-04-05 | Program, computer, and data processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004114872A JP2005301531A (ja) | 2004-04-09 | 2004-04-09 | プログラム、コンピュータおよびデータ処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005301531A true JP2005301531A (ja) | 2005-10-27 |
Family
ID=35333008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004114872A Abandoned JP2005301531A (ja) | 2004-04-05 | 2004-04-09 | プログラム、コンピュータおよびデータ処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005301531A (ja) |
-
2004
- 2004-04-09 JP JP2004114872A patent/JP2005301531A/ja not_active Abandoned
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240039714A1 (en) | Secure Circuit For Encryption Key Generation | |
CN109951489B (zh) | 一种数字身份认证方法、设备、装置、系统及存储介质 | |
JP6151402B2 (ja) | データセンタへのプラットフォームの内包検証 | |
US9281949B2 (en) | Device using secure processing zone to establish trust for digital rights management | |
CN109639427B (zh) | 一种数据发送的方法及设备 | |
US20040088541A1 (en) | Digital-rights management system | |
US7263608B2 (en) | System and method for providing endorsement certificate | |
JP4818664B2 (ja) | 機器情報送信方法、機器情報送信装置、機器情報送信プログラム | |
WO2005098640A1 (ja) | プログラム、コンピュータおよびデータ処理方法 | |
KR101452708B1 (ko) | Ce 장치 관리 서버, ce 장치 관리 서버를 이용한drm 키 발급 방법, 및 그 방법을 실행하기 위한프로그램 기록매체 | |
US20090271625A1 (en) | System and method for pool-based identity generation and use for service access | |
JP2004508619A (ja) | トラステッド・デバイス | |
JP2004280284A (ja) | 制御プロセッサ、電子機器及び電子機器のプログラム起動方法、並びに電子機器のシステムモジュール更新方法 | |
CN108335105B (zh) | 数据处理方法及相关设备 | |
JP6522842B1 (ja) | 情報処理装置、方法及びプログラム | |
CN115037480A (zh) | 设备认证和校验的方法、装置、设备和存储介质 | |
JP2005293504A (ja) | プログラム、コンピュータおよびデータ処理方法 | |
JP2009543210A5 (ja) | ||
CN114223176B (zh) | 一种证书管理方法及装置 | |
JP4337608B2 (ja) | プログラム、コンピュータおよびデータ処理方法 | |
JP2005301531A (ja) | プログラム、コンピュータおよびデータ処理方法 | |
JP2005301530A (ja) | プログラム、コンピュータおよびデータ処理方法 | |
JP2002132145A (ja) | 認証方法、認証システム、記録媒体及び情報処理装置 | |
CN113987461A (zh) | 身份认证方法、装置和电子设备 | |
CN115618412A (zh) | 一种基于区块链的医疗隐私数据保护方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061012 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090630 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20090820 |