(57)【要約】【課題】アドホックネットワーク１０上で転送された各種のデータの利用状況を客観的に監視することのできるデータ提供システムを提供する。【解決手段】提供者ノード１１は、利用許諾条件を共に設定した利用者に対して、アドホックネットワーク１０を介して、データを提供する。利用者ノード１２は、提供者ノード１１から提供されるデータを利用許諾条件に従って利用する。中継ノード１３、１４は、提供者ノード１１からのデータを利用者ノード１２まで転送する。また、中継ノードは、自身が直接利用者ノードにデータを送信する最終中継ノード１４となったとき、利用者ノード１２でデータが利用許諾条件に従って正当に利用されているか否かを監視する。【選択図】図１
2008312114.tif 000002
【特許請求の範囲】
【請求項１】
提供者と利用者の双方によって設定された利用許諾条件に従って利用するデータを、アドホックネットワークを介して提供するデータ提供システムであって、
前記利用許諾条件を共に設定した利用者に対して、前記アドホックネットワークを介して、前記データを提供する提供者ノードと、
前記提供者ノードから提供されるデータを前記利用許諾条件に従って利用する利用者ノードと、
前記提供者ノードからの前記データを前記利用者ノードまで転送し、自身が直接前記利用者ノードに前記データを送信する最終中継ノードとなったとき、前記利用者ノードで前記データが前記利用許諾条件に従って正当に利用されているか否かを監視する中継ノードと、を有するデータ提供システム。
【請求項２】
前記最終中継ノードは、前記利用者ノードで前記データが正当に利用されることを確認して前記利用者ノードに前記データの利用を承認し、
前記利用者ノードは、前記最終中継ノードによって前記データの利用が承認されてはじめて前記データを利用できるようになる、請求項１に記載のデータ提供システム。
【請求項３】
前記最終中継ノードは、前記利用者ノードにおける前記データの不正な利用を検出すると、不正な利用があった旨を前記提供者ノードに報告する、請求項１または２に記載のデータ提供システム。
【請求項４】
前記最終中継ノードは、前記利用者ノードにおける前記データの不正な利用を検出すると、前記利用者ノードに前記データの利用を中止または前記データを削除させる、請求項１から３のいずれか１項に記載のデータ提供システム。
【請求項５】
前記最終中継ノードは、前記利用者ノードに、前記データの利用状況を監査するためのエージェントプログラムを送り、前記利用者ノード上の前記エージェントプログラムによる監査結果から不正な利用の有無を判断する、請求項１から４のいずれか１項に記載のデータ提供システム。
【請求項６】
前記最終中継ノードは、前記利用者ノードにおいて前記データの利用状況の確認に関与しているプログラムの生存確認を継続的にしており、前記プログラムの生存が確認できなくなれば、前記利用者ノードに前記データの利用を中止させる、請求項１から５のいずれか１項に記載のデータ提供システム。
【請求項７】
前記最終中継ノードが、前記提供者ノードの要望により、利用許諾条件を満たす範囲で、前記利用者ノードに対して前記データを更新または削除させる、請求項１から６のいずれか１項に記載のデータ提供システム。
【請求項８】
提供者と利用者の共に設定した利用許諾条件に従って利用するデータを提供者ノードからアドホックネットワークを介して利用者ノードに提供するための中継ノードであって、
前記提供者ノードからの前記データを前記利用者ノードまで転送する中継部と、
自ノードが直接前記利用者ノードに前記データを送信する最終中継ノードとなったとき、前記利用者ノードで前記データが前記利用許諾条件に従って正当に利用されているか否かを監視する監視部と、を有する中継ノード。
【請求項９】
提供者ノードからアドホックネットワークを介して利用者ノードにデータを提供し、前記データが、提供者と利用者が共に設定した利用許諾条件に従って利用されているか否か監視するためのデータ利用監視方法であって、
前記アドホックネットワークを構成する中継ノードが前記提供者ノードからの前記データを前記利用者ノードまで転送し、
直接前記利用者ノードに前記データを送信することとなった最終中継ノードが、前記利用者ノードで前記データが前記利用許諾条件に従って正当に利用されているか否かを監視する、データ利用監視方法。
【請求項１０】
コンピュータを、提供者と利用者が共に設定した利用許諾条件に従って利用するデータを提供者ノードからアドホックネットワークを介して利用者ノードに提供するための中継ノードとして動作させるためのプログラムであって、
中継手段が、前記提供者ノードからの前記データを前記利用者ノードまで転送する手順と、
自ノードが直接前記利用者ノードに前記データを送信する最終中継ノードとなったとき、監視手段が、前記利用者ノードで前記データが前記利用許諾条件に従って正当に利用されているか否かを監視する手順と、をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アドホックネットワーク上で転送されたデータの利用が正当なものかどうか確認する技術に関する。
【背景技術】
【０００２】
今後、アドホックネットワークが普及するのに伴い、取り扱いに注意が必要なデータがアドホックネットワーク上で転送されることが増えると考えられる。取り扱いに注意が必要なデータは、例えば、プライバシ情報、著作権付きのデータ、特定の相手だけに開示されるデータ、代価を支払った者のみが利用できる有料コンテンツなどである。
【０００３】
そのようなデータを提供する者にとって、データを受け取った者がデータをどのように利用するかが気がかりである。例えば、アドホックネットワークによる転送の途中でデータを受信した第三者がそのデータを改ざんしたり、不正に複製したり、横流ししたり、解析したり等が懸念される。
【０００４】
このようなデータの不正な利用を防止する技術はこれまでにも提案されている（特許文献１）。特許文献１に開示された技術は、アドホックネットワークを構成するデバイスの移動端末による使用を認証局によって認証するものである。これによりアドホックネットワークに参加するデバイスの正当性が確保される。
【０００５】
また例えば、ＤＲＭ（Ｄｉｇｉｔａｌ  Ｒｉｇｈｔｓ  Ｍａｎａｇｅｍｅｎｔ）を利用して、データを特定のアプリケーションでしか利用できないようにする技術がある。また、そのアプリケーションによるデータの利用に一定の制限を加える技術がある。例えば、予め設定しておいた期間だけデータの利用を可能にしたり、予め設定しておいた条件通りの利用だけを可能にしたりすることができる。これによってデータの提供者はある程度は安心できる。
【特許文献１】特開２００７−７４３９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１に開示された技術はデバイスを認証するものであり、アプリケーションの認証をするものではないので、アプリケーションの改ざんによって不正な利用が行われる可能性があった。
【０００７】
また、データを特定のアプリケーションでしか利用できないようにする技術では、データの利用状況自体を客観的に監視している訳ではないので、正当な利用が客観的に担保されてはいなかった。
【０００８】
本発明の目的は、アドホックネットワーク上で転送された各種のデータの利用状況を客観的に監視することのできるデータ提供システムを提供することである。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明のデータ提供システムは、提供者と利用者の双方によって設定された利用許諾条件に従って利用するデータを、アドホックネットワークを介して提供するデータ提供システムであって、
前記利用許諾条件を共に設定した利用者に対して、前記アドホックネットワークを介して、前記データを提供する提供者ノードと、
前記提供者ノードから提供されるデータを前記利用許諾条件に従って利用する利用者ノードと、
前記提供者ノードからの前記データを前記利用者ノードまで転送し、自身が直接前記利用者ノードに前記データを送信する最終中継ノードとなったとき、前記利用者ノードで前記データが前記利用許諾条件に従って正当に利用されているか否かを監視する中継ノードと、を有している。
【００１０】
また、前記最終中継ノードは、前記利用者ノードで前記データが正当に利用されることを確認して前記利用者ノードに前記データの利用を承認し、
前記利用者ノードは、前記最終中継ノードによって前記データの利用が承認されてはじめて前記データを利用できるようになるとしてもよい。
【００１１】
また、前記最終中継ノードは、前記利用者ノードにおける前記データの不正な利用を検出すると、不正な利用があった旨を前記提供者ノードに報告することにしてもよい。
【００１２】
また、前記最終中継ノードは、前記利用者ノードにおける前記データの不正な利用を検出すると、前記利用者ノードに前記データの利用を中止させることにしてもよい。
【００１３】
また、前記最終中継ノードは、前記利用者ノードに、前記データの利用状況を監査するためのエージェントプログラムを送り、前記利用者ノード上の前記エージェントプログラムによる監査結果から不正な利用の有無を判断することにしてもよい。
【００１４】
また、前記最終中継ノードは、前記利用者ノードにおいて前記データの利用状況の確認に関与しているプログラムの生存確認を継続的にしており、前記プログラムの生存が確認できなくなれば、前記利用者ノードに前記データの利用を中止または前記データを削除させることにしてもよい。
【００１５】
また、前記最終中継ノードが、前記提供者ノードの要望により、利用許諾条件を満たす範囲で、前記利用者ノードに対して前記データを更新または削除させることにしてもよい。
【発明の効果】
【００１６】
本発明によれば、第三者である最終中継ノードが利用者ノードにおけるデータの利用を監視するので、データの利用状況の客観的な監視を担保することができる。
【発明を実施するための最良の形態】
【００１７】
本発明を実施するための形態について図面を参照して詳細に説明する。
【００１８】
図１は、本発明の一実施形態によるデータ提供システムの構成を示すブロック図である。図１を参照すると、アドホックネットワーク１０には提供者ノード１１、利用者ノード１２、および中継ノード１３、１４が含まれている。
【００１９】
提供者ノード１１は、データを提供するノードであり、アドホックネットワーク１０上でデータを利用者ノード１２へ送信する。提供者ノード１１から送出されたデータは、中継ノード１３、１４を含む複数の中継ノードを経由して利用者ノード１２に到達する。中継ノード１４がデータを利用者ノード１２へ直接送信する最終段の中継ノード（以下、最終中継ノードという）となっている。
【００２０】
アドホックネットワークを構成する各ノードの実体は、デスクトップのパーソナルコンピュータ（ＰＣ）、ノート型のＰＣ、携帯電話機（スマートフォン）、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、家庭用ゲーム機、携帯ゲーム機、ＩＣカード、ＩＣタグ等を想定している。
【００２１】
各ノードは状況に応じて提供者ノード１１、利用者ノード１２、あるいは中継ノード１３、１４となる。
【００２２】
提供者ノード１１はデータを送信するに先立ち、利用者ノード１２によるデータの利用に関する利用許諾条件を利用者ノード１２との間で設定する。利用許諾条件を参照することにより、データの利用が正当なものであるか否かを判断することができる。利用許諾条件の内容は、提供者ノード１１、利用者ノード１２、および最終中継ノード１４に保持される。利用許諾条件は他のノードに既知なデフォルトの条件であってもよく、またオンラインまたはオフラインで提供者ノード１１と利用者ノード１２の間にデータ利用契約を締結することにより決まる条件であってもよい。利用許諾条件の記述言語としては例えばＸＡＣＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）が考えられる。
【００２３】
また、利用許諾条件は後から変更することが可能であり、時間の経過や利用者ノード１２の属性が変化することにより、利用者ノード１２は、それまで利用が許可されていたデータを利用できなくなることもありうる。
【００２４】
また、提供者ノード１１は、利用者ノード１２での利用状況を最終中継ノード１４からの利用状況報告で知ることができる。利用状況報告には不正な利用の発生を知らせる報告が含まれる。
【００２５】
中継ノード１３、１４は、提供者ノード１１から利用者ノード１２へ送信されたデータを転送する。
【００２６】
その中の最終中継ノード１４は、提供者ノード１１と利用者ノード１２の間で設定された利用許諾条件を保持する。そして最終中継ノード１４は、提供者ノード１１から利用者ノード１２へのデータを転送した後、利用者ノード１２でのデータの利用状況を監視する。不正な利用があれば、それはこの利用状況の監視によって検出される。最終中継ノード１４は、不正な利用を検出すると、不正な利用があったことを示す利用状況報告を提供者ノード１１に送る。また、最終中継ノード１４は、不正な利用があったときだけでなく、そのときの利用状況を示す利用状況報告を継続的に提供者ノード１１に送ることにしてもよい。
【００２７】
利用状況の監視には、例えば利用者ノード１２でデータを利用するアプリケーションを検証することがある。また他の例として、利用者ノード１２から自律的に送られてくる利用状況報告を受信し、内容を確認することがある。利用状況報告は例えばデータの利用に関するログの報告である。その場合には内容の確認はログの解析である。また他の例として、利用者ノード１２に利用状況報告を要求し、要求に応じて送られてきた利用状況報告の内容を確認することがある。また、他の例として、利用者ノード１２へ監視エージェントを送り、その監視エージェントに利用者ノード１２内で利用状況を監視させることがある。また他の例として、利用者ノード１２へデータを利用するためのアプリケーションを送り、そのアプリケーションの非改ざん性を検証することがある。
【００２８】
また、利用許諾条件に利用者ノード１２の変動する属性情報や時刻などに関する条件が含まれていれば、適時、利用者ノード１２の属性情報や時刻などから利用許諾条件が満たされているか否か判定する。
【００２９】
最終中継ノード１４は、不正な利用を検出すると、それを提供者ノード１１に知らせるために利用状況報告を送信することにしてもよい。不正な利用を知らせる利用状況報告には、例えば、不正な利用を行った利用者ノードや、不正な利用の具体的な内容が示される。また、最終中継ノード１４は、正当な利用がされていることを提供者ノード１１に知らせるために定期的に利用状況を送信することにしてもよい。
【００３０】
また、最終中継ノード１４は、不正な利用を検出したとき、不正な利用を行っているノードに対してデータの利用中止を要請することにしてもよい。あるいは、最終中継ノード１４から送られた監視エージェントが利用者ノード１２上で自律的にデータの利用を中止することにしてもよい。
【００３１】
更に、最終中継ノード１４は、提供者ノード１１の要望により、利用許諾条件を満たす範囲で、利用者ノード１２に対してデータの訂正などの更新および削除、あるいは契約失効に伴うデータの削除を行わせてもよい。
【００３２】
利用者ノード１２は、提供者ノード１１との間で利用許諾条件を設定した後に提供者ノード１１からデータを受信する。データを受信すると、利用者ノード１２は、利用許諾条件を満たすようにしてデータを利用する。また、利用者ノード１２は、最終中継ノード１４による承認を得ることで、データの利用を開始できるようになるとしてもよい。その際、最終中継ノード１４は、利用者ノード１２にてデータが正当に利用されることを確認してから、データの利用を承認する。例えば、最終中継ノード１４は利用者ノード１２で用いられるアプリケーションの正当性を確認し、正当なものであることが確認できたらデータの利用を承認することにすればよい。
【００３３】
なお、アドホックネットワーク１０の性質上、時間経過によるネットワークトポロジの変化などにより、利用者ノード１２に直接データを送信する最終中継ノード１４は交代することがある。その場合、交代後は新たな最終中継ノードが上述した最終中継ノード１４の役割を果たすことになる。
【００３４】
図２は、本実施形態によるデータ提供システムの動作を示すフローチャートである。図２を参照すると、まず、提供者ノード１１と利用者ノード１２の間で利用許諾条件を設定する（ステップ１０１）。次に、提供ノード１１は、必要に応じてデータを暗号化し、利用者ノード１２に送信する（ステップ１０２）。その際、中継ノード１３および中継ノード１４はデータを中継する。
【００３５】
利用者ノード１２は、提供者ノード１１からデータを受信すると、そのデータの利用を開始する。最終中継ノード１４は、利用者ノード１２によるデータの利用状況を監視する（ステップ１０３）。そして、最終中継ノード１４は、利用状況の監視結果を利用状況報告として提供者ノード１１に送信する（ステップ１０４）。
【００３６】
最終中継ノード１４は、不正な利用を検出したときに利用状況報告を送ることにしてもよく、また不正な利用が無くても定期的に利用状況報告を送ることにしてもよい。
【００３７】
また不正な利用が検出されたときには、最終中継ノード１４から利用者ノード１２への要請により、あるいは最終中継ノード１４から送られた監視エージェントにより、利用者ノード１２でのデータの利用が中止される。
【００３８】
また、利用者ノード１２におけるデータの利用の前に最終中継ノード１４による承認を必要としてもよい。
【００３９】
図３は、本実施形態によるアドホックネットワークを構成するノードの構成を示すブロック図である。本ブロック図はノードが最終中継ノード１４となったときに機能する部分に着目している。
【００４０】
図３を参照すると、ノード２１は、中継部２２、監視部２３、報告部２４、および利用中止要請部２５を有している。
【００４１】
中継部２２は、提供者ノード１１から利用者ノード１２へ送信されたデータを転送する。
【００４２】
監視部２３は、提供者ノード１１と利用者ノード１２の間で設定された利用許諾条件を保持する。また監視部２３は、中継部２２が提供者ノード１１から利用者ノード１２へのデータを転送した後、利用者ノード１２でのデータの利用状況を監視する。不正な利用があれば、それはこの利用状況の監視によって検出される。利用状況の監視には上述したような様々なことが含まれる。
【００４３】
報告部２４は、中継部２３が不正な利用を検出すると、それを提供者ノード１１に知らせるために利用状況報告を提供者ノード１１に送信する。また、報告部２４は、正当な利用がされていることを提供者ノード１１に知らせるために、中継部２３にて不正な利用が検出されたか否かに関わらず、定期的に利用状況を提供者ノード１１に送信することにしてもよい。
【００４４】
利用中止要請部２５は、監視部２３で不正な利用が検出されると、不正な利用を行っているノードに対してデータの利用中止を要請する。ただし監視エージェントが利用者ノード１２上で自律的にデータの利用を中止する場合には利用中止要請部２５は不要である。
【００４５】
また、利用中止要請部２５は、利用許諾条件を満たす範囲で、提供者によるデータの書き換えや削除の指示があれば、それを利用者ノード１２に実行させてもよく、契約が失効したとき、利用者ノード１２にデータを削除させてもよい。
【００４６】
以上説明したように、本実施形態によれば、アドホックネットワーク１０で転送したデータが正当に利用されているか否かを、提供者ノード１１および利用者ノード１２以外の第三者である最終中継ノード１４が監視するので監視の客観性が担保される。
【００４７】
また、本実施形態によれば、アドホックネットワーク１０の性質上、常に同じ者が利用状況を監視するのではなく、提供者ノード１１から利用者ノード１２へデータが転送される毎にそのデータの利用状況を監視する最終中継ノード１４が変わるので、より客観性の高い監視が可能である。
【００４８】
また、本実施形態によれば、時間経過に伴うネットワークトポロジの変化により、利用者ノード１２に隣接する最終中継ノード１４が入れ替わることがある。そのときにも監視者（最終中継ノード１４）が入れ替わるので、更に監視の客観性が高いといえる。さらに、時間経過に伴うネットワークトポロジの変化により監視者（最終中継ノード１４）の役割も交代することになるため、ことさら確認処理の一極集中化が緩和されることも期待できる。
【００４９】
また、本実施形態によれば、適切に利用されているか否かの確認をデータによるのではなく、設定された利用許諾条件に基づいて行うので、利用許諾条件の設定を変更するだけで判断の条件を動的あるいは柔軟に変更することができる。また、それが外部の最終中継ノード１４によって実現されるので認証局を利用する方法に比べて適用が比較的容易である。
【００５０】
また、利用状況を監視するので、実際に不正な利用があったときにそれを検出することができ、また検出した不正な利用を中止させることができる。
【００５１】
以下、本実施形態の具体的な実施例について説明する。
【００５２】
（第１の実施例）
第１の実施例では、提供者ノード１１から利用者ノード１２へ、コピー転送を禁止したデータを提供するシステムを例示する。コピー転送の禁止は、システムのポリシーに基づくものであり、データの暗号化により実現される。
【００５３】
提供者ノード１１は特定の利用者ノード１２をあて先として選択し、暗号化したデータを送信する。データは中継ノード１３、１４を介して利用者ノード１２に送り届けられる。
【００５４】
また、最終中継ノード１４から利用者ノード１２へ、暗号化されたデータを復号するためのエージェントプログラムを送信する。これによりエージェントプログラムを受信した利用者ノード１２だけがデータを復号できるようになる。
【００５５】
エージェントプログラムを受信した利用者ノード１２上ではエージントプログラムが起動する。
【００５６】
エージェントプログラムは、データの暗号化を一時的に復号して一時領域に保持することを定期的に繰り返す。これが繰り返されている間、利用者ノード１２は復号化されたデータの利用が可能である。
【００５７】
また、エージェントプログラムは、ＯＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ）のイベントログから、データのコピーおよび転送の実行の履歴を含む監査ログを定期的に作成して最終中継ノード１４に送信する。
【００５８】
最終中継ノード１４は、利用者ノード１２のエージェントプログラムから受信した監査ログの内容を調査する。提供者ノード１１から利用者ノード１２に提供されたデータのコピーあるいは転送を検出すると、最終中継ノード１４は、利用者ノード１２上のエージェントプログラムに復号の中止を指示するとともに、提供者ノード１１に不正な利用があった旨を報告する。指示を受けたエージェントプログラムは、それ以降のデータの復号を中止する。
【００５９】
（第２の実施例）
第２の実施例では、提供者ノード１１から会員の利用者ノード１２に画像や映像等のコンテンツのデータを提供するシステムを例示する。会員は予め月額料金を支払うことにより、コンテンツのデータを１ヶ月間取得し、利用することができるようになる。期間限定によるデータの利用はシステムのポリシーに基づくものであり、専用のデータ送受信プログラムにより実現される。
【００６０】
利用者ノード１２の利用者は予め月額料金を支払って会員になっているものとする。会員による月額料金の支払いは課金サーバによって管理されているものとする。課金サーバは提供者サーバ１１の一機能として含まれていてもよく、また独立して存在してもよい。
【００６１】
提供者ノード１１は利用者ノード１２をあて先として選択し、暗号化したコンテンツのデータを送信する。データは中継ノード１３、１４を介して利用者ノード１２に送り届けられる。
【００６２】
利用者ノード１２では、予め専用のデータ送受信プログラムが動作している。このデータ送受信プログラムは、データの暗号化を復号するためのプログラムであり、不正に改変することはできないものである。利用者ノード１２は、このデータ送受信プログラムを用いてデータを復号することにより、復号化されたコンテンツのデータを利用できるようになる。
【００６３】
最終中継ノード１４は、課金サーバで管理されている月額料金支払いの状況から、利用者ノード１２がデータの利用資格を維持しているか否かを把握する。会員が月額料金の不払いにより利用資格を失ったとき、課金サーバから最終中継ノード１４へそれを通知することにしてもよく、最終中継ノード１２が課金サーバに定期的に月額料金の支払い状況を問い合わせることにしてもよい。
【００６４】
最終中継ノード１４は利用者ノード１２の利用者が利用資格を失ったことを知ると、利用者ノード１２のデータ送受信プログラムにデータ利用の中止を指示する。指示を受けたデータ送受信プログラムは、暗号化されたデータを復号する機能を停止する等により、利用者ノード１２の利用者がデータを利用できないようにする。
【００６５】
（第３の実施例）
第３の実施例は、提供者ノード１１から利用者ノード１２へプログラムのデータを提供するシステムを提示する。プログラムは不正コピーなどの不正な利用が禁止されているものとする。不正な利用の禁止はシステムのポリシーに基づくものである。プログラム自体に、不正利用の証拠等を含む利用ログを生成し、最終中継ノード１２に送信する機能があるものとする。
【００６６】
利用者ノード１２上でプログラムは利用状況に基づいて利用ログを生成し、最終中継ノード１４に送信する。最終中継ノード１４は、利用者ノード１２から受信した利用ログから、不正な利用があったことを知ると、利用者ノード１２上のプログラムに機能の停止を指示するとともに、提供者ノード１１に不正な利用があった旨を報告する。指示を受けたプログラムは、それ以降、機能を停止する。
【００６７】
（第４の実施例）
第４の実施例では、データを利用するためのアプリケーションを最終中継ノード１４から利用者ノード１４に提供する。また、本実施例では、利用者ノード１２が自律的にログを最終中継ノード１４に通知し、最終中継ノード１４がそのログを確認する。
【００６８】
図４は、第４の実施例によるデータ提供システムの動作を示すフローチャートである。図４を参照すると、提供者ノード１１と利用者ノード１２の間でデータ利用契約を締結することにより、データを利用するための利用許諾条件（ライセンス）を設定する（ステップ２０１）。ライセンスは提供者ノード１１、利用者ノード１２、および最終中継ノード１４がそれぞれ保持する。
【００６９】
ここでは一例としてライセンスの仕様は以下の通りとする。
【００７０】
ライセンス：＝｛発火条件，（ライセンスコア１｜ライセンスコア１  ＡＮＤ  ライセンスコア２  ＡＮＤ．．．）｝
発火条件：＝ライセンスが対象とするデータが満たすべき条件；データＩＤ＝ＸＸＸＸやデータ作成者ＩＤ＝ＹＹＹＹなど
ライセンスコア：＝｛条件記述部，許諾時動作記述部｝
条件記述部：＝｛条件１｜ＯＲ連結条件１  ＡＮＤ  ＯＲ連結条件２  ＡＮＤ．．．｝；利用する際に満たすべき条件群
ＯＲ連結条件：＝｛条件１｜条件１  ＯＲ  条件２  ＯＲ．．．｝
条件：＝｛メタ情報識別子，関係子，値｝
；メタ情報識別子で示されるメタ情報の値と提示された値の間の関係が、関係子で表される関係にあることが満たすべき条件
；例：利用者の名前＝ＸＸＸＸＸ、現在時刻が１８時より前、現在時刻が９時より後
許諾時動作記述部：＝｛動作｝；データ参照など、許諾された動作を記述
また、ライセンスの内容は一例として、「利用者の年齢が１８歳以上であればデータＡを参照してもよい。利用者の持っている公開鍵証明書が正当で期限切れでなければデータＢを編集してもよい。」というようなものである。
【００７１】
図４に戻り、次に最終中継ノード１２は、データを利用するためのアプリケーションを利用者ノード１２に提供する（ステップ２０２）。また、アプリケーションを提供した最終中継ノード１４はアプリケーションの正しいバイナリハッシュ値を保持しておく。なお、アプリケーションを最終中継ノード１４から提供するのは一例であり、他の中継ノード１３や提供者ノード１１から提供することにしてもよい。
【００７２】
利用者はそのアプリケーションを使わなければ、提供者ノード１１からのデータを利用できないものとする。例えば、そのアプリケーションのみが復号鍵を持っており、外部の一時領域を使わずに、暗号化されたデータを受け取って復号するなどの実装が考えられる。また、そのアプリケーションにはライセンスも埋め込まれており、利用者はそのライセンスを改変できないものとする。
【００７３】
アプリケーションを受信した利用者ノード１２は、その後、定期的にアプリケーションのバイナリハッシュ値を最終中継ノード１４に送信する（ステップ２０３）。バイナリハッシュ値を受信した最終中継ノード１４は、予め自身の保持しているバイナリハッシュ値と比較することによって、利用者ノード１２から受信したアプリケーションが正当なものかどうか確認する（ステップ２０４）。なお、ここでは利用者ノード１２から最終中継ノード１４に定期的にバイナリハッシュ値を送信する例を示した。しかし、他の例として、利用者ノード１２は、利用開始を宣言するときにアプリケーションのバイナリハッシュ値を送信することにしてもよい。また、このバイナリハッシュ値によるアプリケーションの正当性確認はオプションとし、実行しても実行しなくてもよいものとしてもよい。
【００７４】
続いて、利用者ノード１２は、アプリケーションを用いたデータの利用を開始する（ステップ２０５）。データの利用を開始した利用者ノード１２は、データの利用中逐次あるいは利用終了後に、アプリケーションによって利用ログを作成し、最終中継ノード１４に送信する（ステップ２０６）。この利用ログには、例えば、利用対象となったデータ、データの参照や編集などのオペレーション内容、利用開始および終了の時刻、利用者を特定する情報などが記録されている。
【００７５】
利用ログを受信した最終中継ノード１４は、その利用ログと自身の保持しているライセンスとを照合することにより、不正な利用があったか否か確認する（ステップ２０７）。
【００７６】
不正な利用を検出すると、最終中継ノード１４は、利用者ノード１２上のアプリケーションに利用の中止を指示し（ステップ２０８）、提供者ノード１１に不正な利用があったことを報告する（ステップ２０９）。また、利用者ノード１２によるデータの利用が終了あるいは中止されていれば、提供者の意向により、アプリケーションがデータを削除することにしてもよい。また、アプリケーションがデータを利用できない状態にすることにしてもよい。
【００７７】
（第５の実施例）
第５の実施例では、データを利用するためのアプリケーションを最終中継ノード１４から利用者ノード１２に提供する。また、本実施例では、利用者ノード１２は、最終中継ノード１４からの問合せに応じて利用ログを通知し、最終中継ノード１４がそのログを確認する。
【００７８】
図５は、第５の実施例によるデータ提供システムの動作を示すフローチャートである。図５のステップ３０１〜３０５は、図４に示したステップ２０１〜２０５と同じである。
【００７９】
続いて、最終中継ノード１４は、利用者ノード１２上のアプリケーションに利用状況問合せを送り、データの利用状況を問い合わせる（ステップ３０６）。最終中継ノード１４は利用状況問合せを定期的に送信してもよく、あるいはアドホックに送信してもよい。利用状況問合せを受信した利用者ノード１２は、アプリケーションにより利用者ログを作成し、最終中継ノード１４に送信する（ステップ３０７）。この利用者ログは第４の実施例のものと同様である。
【００８０】
それ以降のステップ３０８〜３１０は、図４に示したステップ２０７〜２０９と同じである。
【００８１】
（第６の実施例）
第６の実施例では、第４および第５の実施例のようにアプリケーションを最終中継ノード１４から利用者ノード１２に提供するのではなく、利用者ノード１２が予めアプリケーションを保持している。また、本実施例では、利用者ノード１２は、最終中継ノード１４からの問合せに応じて利用ログを通知し、最終中継ノード１４がそのログを確認する。
【００８２】
図６は、第６の実施例によるデータ提供システムの動作を示すフローチャートである。図６のステップ４０１は、図４に示したステップ２０１と同じである。
【００８３】
続いて、利用者ノード１２は、自身の保持しているアプリケーションの正当性の確認を最終中継ノード１４に依頼する（ステップ４０２）。依頼を受けた最終中継ノード１４は、利用者ノード１２のアプリケーションの正当性を確認する（ステップ４０３）。具体的には、例えば、バイナリハッシュ値の比較によりアプリケーションの正当性を確認することにすればよい。最終中継ノード１４は、利用者ノード１２で用いられる可能性のある複数の正当なアプリケーションのバイナリハッシュ値を予め保管しておく。利用者ノード１２は自身の保持しているアプリケーションのバイナリハッシュ値を最終中継ノード１４に送信する。最終中継ノード１４は、受信したバイナリハッシュ値と、自身の保管している複数のバイナリハッシュ値とを比較する。受信したバイナリハッシュ値が、最終中継ノード１４の保管しているバイナリハッシュ値のいずれかと一致すれば、アプリケーションは正当なものであると判断できる。
【００８４】
図６に戻り、ステップ４０４〜４１０は、図４に示したステップ２０３〜２０９と同じである。
【００８５】
（第７の実施例）
第７の実施例では、最終中継ノード１４から利用者ノード１２に監視エージェントを提供し、利用者ノード１２上で監視エージェントがアプリケーションによるデータの利用状況を監査する。そして利用者ノード１２の監視エージェントは最終中継ノード１４へ監査結果を送信する。
【００８６】
図７は、第７の実施例によるデータ提供システムの動作を示すフローチャートである。図７のステップ５０１は、図４に示したステップ２０１と同じである。
【００８７】
次に、最終中継ノード１４は利用者ノード１２に監視エージェントを送信する（ステップ５０２）。この監視エージェントは改変ができないようになっており、自身の生存報告を適宜、最終中継ノード１２に送信する。最終中継ノード１２は、生存報告の受信により監視エージェントの生存確認を行う。例えば監視エージェントが不用意に削除されれば、最終中継ノード１４に生存報告が届かなくなるので、それをもって最終中継ノード１４は不正があったと判断する。不正があれば最終中継ノード１４は利用者ノード１２にデータの利用を中止するように要請する。
【００８８】
また、利用者ノード１２上の監視エージェントは、アプリケーションの正当性を定期的に確認し（ステップ５０３）、確認結果を最終中継ノード１４に送信する（ステップ５０４）。ここでは一例として、監視エージェントはアプリケーションの正当性を定期的に確認することにした。しかし他の例として、監視エージェントは、アプリケーションの利用が開始される前にアプリケーションの正当性を確認することにしてもよい。また他の例として、監視エージェントは、アドホックにアプリケーションの正当性を確認することにしてもよい。また、ここでは一例として、監視エージェントは、アプリケーションの正当性を確認する毎に確認結果を最終中継ノード１４に送信することにした。しかし他の例として、監視エージュエントは、アプリケーションが正当なものでないことが検出されたときのみ確認結果を送信することにしてもよい。また、監視エージェントは、データやライセンスの不正な書き換えについても適宜チェックしてもよい。
【００８９】
次に、利用者ノード１２は、アプリケーションを用いたデータの利用を開始する（ステップ５０５）。データの利用を開始した利用者ノード１２は、データの利用中逐次、利用終了後、アプリケーションによって利用ログを作成し、監視エージェンに渡す（ステップ５０６）。この利用ログには、例えば、利用対象となったデータ、データの参照や編集などのオペレーション内容、利用開始および終了の時刻、利用者を特定する情報などが記録されている。
【００９０】
また、利用者ノード１２では、監視エージェントが、アプリケーションの吐き出した利用ログを監査し（ステップ５０７）、監査結果を最終中継ノード１４に送信する（ステップ５０８）。監視エージェントによる監査結果の送信は、利用中逐次、利用終了後、あるいは不正があったときに行えばよい。
【００９１】
最終中継ノード１４は、利用者ノード１２から不正があった旨の監査結果を受信すると、それを提供者ノード１１に報告する（ステップ５０９）。また、監視エージェントは不正を検出したとき、不正に利用されたデータを削除する。
【００９２】
（第８の実施例）
第８の実施例では、利用者ノード１２が予めアプリケーションを保持している。また、本実施例では、利用者ノード１２は最終中継ノード１４からの問合せに応じて利用ログを通知し、最終中継ノード１４がそのログを確認する。
【００９３】
図８は、第８の実施例によるデータ提供システムの動作を示すフローチャートである。図８のステップ６０１〜６０３は、図６に示したステップ４０１〜４０３と同じである。また、それに続くステップ６０４〜６１１は、図５に示したステップ３０３〜３１０と同じである。
【００９４】
（第９の実施例）
第９の実施例では、最終中継ノード１４から利用者ノード１２に監視エージェントを提供する。利用者ノード１２上の監視エージェントは、最終中継ノード１４から利用状況問合せを受けたときにアプリケーションによるデータの利用状況を監査し、監査結果を最終中継ノード１４に送信する。
【００９５】
図９は、第９の実施例によるデータ提供システムの動作を示すフローチャートである。図９のステップ７０１、７０２は、図７に示したステップ５０１、５０２と同じである。
【００９６】
次に、最終中継ノード１４は、例えば定期的に、利用者ノード１２上の監視エージェントにアプリケーションの正当性確認を起動するための確認トリガーを送信する（ステップ７０３）。確認トリガーを受信した監視エージェントは、アプリケーションの正当性を提起的に確認し（ステップ７０４）、確認結果を最終中継ノード１４に送信する（ステップ７０５）。
【００９７】
利用者ノード１２は、アプリケーションを用いたデータの利用を開始する（ステップ７０６）。
【００９８】
最終中継ノード１４は、利用者ノード１２の監視エージェントに利用状況問合せを送信することにより監査を指示する（ステップ７０７）。利用状況問い合わせを受信した利用者ノード１２の監視エージェントは、アプリケーションの利用ログを監査し（ステップ７０８）、監査結果を最終中継ノード１４に送信する（ステップ７０９）。
【００９９】
最終中継ノード１４は、利用者ノード１２から不正があった旨の監査結果を受信すると、それを提供者ノード１１に報告する（ステップ７１０）。また、監視エージェントは不正を検出したとき、不正に利用されたデータを削除する。
【０１００】
なお、本実施例では、利用状況問合せを受信した利用者ノード１２の監視エージェントが監査を行い、監査結果を最終中継ノード１４に送信する例を示した。しかし、他の例として、利用状況問合せを受信した利用者ノード１２の監視エージェントが利用ログを最終中継ノード１２に送信し、最終中継ノード１２が利用ログを監査することにしてもよい。
【０１０１】
なお、上述した実施形態および実施例では、ある１つの中継ノードが最終中継ノード１４になることを想定した例を示してきた。しかし他の例として、複数の中継ノードが協調動作することにより最終中継ノード１４としての機能を果たすことにしてもよい。
【０１０２】
また、上述した実施形態および実施例にて説明した提供者ノード１１、利用者ノード１２、中継者ノード１３、および最終中継者ノード１４はコンピュータがそれぞれのソフトウェアプログラムを実行することにより実現することができる。
【図面の簡単な説明】
【０１０３】
【図１】本発明の一実施形態によるデータ提供システムの構成を示すブロック図である。
【図２】本実施形態によるデータ提供システムの動作を示すフローチャートである。
【図３】本実施形態によるアドホックネットワークを構成するノードの構成を示すブロック図である。
【図４】第４の実施例によるデータ提供システムの動作を示すフローチャートである。
【図５】第５の実施例によるデータ提供システムの動作を示すフローチャートである。
【図６】第６の実施例によるデータ提供システムの動作を示すフローチャートである。
【図７】第７の実施例によるデータ提供システムの動作を示すフローチャートである。
【図８】第８の実施例によるデータ提供システムの動作を示すフローチャートである。
【図９】第９の実施例によるデータ提供システムの動作を示すフローチャートである。
【符号の説明】
【０１０４】
１０    アドホックネットワーク
１１    提供者ノード
１２    利用者ノード
１３、１４    中継ノード
２１    ノード
２２    中継部
２３    監視部
２４    報告部
２５    利用中止要請部
【図１】
2008312114.tif 000003
【図２】
2008312114.tif 000004
【図３】
2008312114.tif 000005
【図４】
2008312114.tif 000006
【図５】
2008312114.tif 000007
【図６】
2008312114.tif 000008
【図７】
2008312114.tif 000009
【図８】
2008312114.tif 000010
【図９】
2008312114.tif 000011