(57)【要約】  サービスプロバイダによる利用条件バイトコード生成の自由度を担保しながら、利用条件バイトコードの動作を保証することができる端末装置を提供する。  端末装置（３００）であって、ライセンス（１２００）は利用条件判定ロジックコード（１２０４）とバージョン番号（１２０２）とを含み、端末装置（３００）は、ライセンス（１２００）を取得するライセンス取得部（３０４）と、バージョン番号（１２０２）から利用条件判定ロジックコード（１２０４）が動作することを確認済みであるか否かを判定する利用条件検証部（３０２）と、利用条件判定ロジックコード（１２０４）が動作することを確認済みであると判定された場合に利用条件判定ロジックコード（１２０４）を実行する利用条件バイトコード実行部（３０３）と、利用条件判定ロジックコード（１２０４）に基づきコンテンツを再生するコンテンツ再生部（３０６）とを備える。
2009019895.tif 000002
【特許請求の範囲】
【請求項１】
ライセンスを用いて、デジタル著作物であるコンテンツを利用する端末装置であって、
前記ライセンスは、コンテンツの利用可否を判定するためのプログラムである利用条件判定コードと、前記利用条件判定コードが動作することを確認済みであるか否かを判定するための判定情報とを含み、
前記端末装置は、
前記ライセンスを取得するライセンス取得部と、
前記取得されたライセンスに含まれる前記判定情報から、前記利用条件判定コードが動作することを確認済みであるか否かを判定する動作確認判定部と、
前記利用条件判定コードが動作することを確認済みであると判定された場合に、前記利用条件判定コードを実行する利用条件判定コード実行部と、
前記実行された利用条件判定コードに基づきコンテンツの利用可否を判定し、コンテンツが利用可の場合にコンテンツを再生するコンテンツ再生部と
を備える端末装置。
【請求項２】
前記判定情報は、前記取得されたライセンスに含まれる前記利用条件判定コードのバージョンを示す情報であるバージョン情報を含み、
前記端末装置は、さらに、
当該端末装置で動作可能な前記利用条件判定コードのバージョンを示す情報である動作可能バージョン情報を管理する動作可能バージョン管理部を備え、
前記動作確認判定部は、前記バージョン情報と前記動作可能バージョン情報とを比較することで、前記利用条件判定コードが動作することを確認済みであるか否かを判定する
請求項１に記載の端末装置。
【請求項３】
前記バージョン情報は、利用条件判定コードのバージョン番号を示す情報であり、前記動作可能バージョン情報は、動作可能な前記利用条件判定コードのバージョン番号を示す情報であり、
前記動作確認判定部は、
前記バージョン情報で示されるバージョン番号が、前記動作可能バージョン情報で示されるバージョン番号以下の場合に、前記利用条件判定コードが動作することを確認済みであると判定し、
前記バージョン情報で示されるバージョン番号が、前記動作可能バージョン情報で示されるバージョン番号よりも大きい場合に、前記利用条件判定コードが動作することを確認済みでないと判定する
請求項２に記載の端末装置。
【請求項４】
前記判定情報は、前記取得されたライセンスに含まれる前記利用条件判定コードのプロファイルを示す情報であるプロファイル情報を含み、
前記端末装置は、さらに、
当該端末装置で動作可能な前記利用条件判定コードのプロファイルを示す情報である動作可能プロファイル情報を管理する動作可能プロファイル管理部を備え、
前記動作確認判定部は、前記プロファイル情報と前記動作可能プロファイル情報とを比較することで、前記利用条件判定コードが動作することを確認済みであるか否かを判定する
請求項１に記載の端末装置。
【請求項５】
前記判定情報は、前記利用条件判定コードが動作可能な端末装置の情報を含み、
前記動作確認判定部は、前記判定情報に含まれる端末装置の情報を用いて、前記コンテンツを利用する端末装置で前記利用条件判定コードが動作することを確認済みであるか否かを判定する
請求項１に記載の端末装置。
【請求項６】
前記ライセンス取得部は、サーバによって生成された前記判定情報を含む前記ライセンスを、前記サーバから取得する
請求項１に記載の端末装置。
【請求項７】
端末装置からのライセンス配信要求に応じてライセンスを配信するサーバであって、
デジタル著作物であるコンテンツの利用可否を判定するためのプログラムである利用条件判定コードが動作することを検証する利用条件判定コード動作検証部と、
前記利用条件判定コード動作検証部が検証した結果に基づき、前記端末装置で前記利用条件判定コードが動作することを確認済みであるか否かを前記端末装置が判定するための判定情報を生成する判定情報生成部と、
前記利用条件判定コードと前記生成された判定情報とを含む前記ライセンスを前記端末装置に配信するライセンス配信部と
を備えるサーバ。
【請求項８】
端末装置からのライセンス配信要求に応じてライセンスを配信するサーバと、配信されたライセンスを用いてデジタル著作物であるコンテンツを利用する端末装置とを備えるシステムであって、
前記サーバは、
デジタル著作物であるコンテンツの利用可否を判定するためのプログラムである利用条件判定コードが動作することを検証する利用条件判定コード動作検証部と、
前記利用条件判定コード動作検証部が検証した結果に基づき、前記端末装置で前記利用条件判定コードが動作することを確認済みであるか否かを前記端末装置が判定するための判定情報を生成する判定情報生成部と、
前記利用条件判定コードと前記生成された判定情報とを含む前記ライセンスを前記端末装置に配信するライセンス配信部とを備え、
前記端末装置は、
前記ライセンス配信部が配信するライセンスを取得するライセンス取得部と、
前記取得されたライセンスに含まれる前記判定情報から、前記利用条件判定コードが動作することを確認済みであるか否かを判定する動作確認判定部と、
前記利用条件判定コードが動作することを確認済みであると判定された場合に、前記利用条件判定コードを実行する利用条件判定コード実行部と、
前記実行された利用条件判定コードに基づきコンテンツの利用可否を判定し、コンテンツが利用可の場合にコンテンツを再生するコンテンツ再生部とを備える
システム。
【請求項９】
デジタル著作物であるコンテンツの利用可否を判定するためのプログラムである利用条件判定コードと、前記利用条件判定コードが動作することを確認済みであるか否かを判定するための判定情報とを含むライセンスを用いて、コンテンツを利用するコンテンツ利用方法であって、
前記ライセンスを取得するライセンス取得ステップと、
前記取得されたライセンスに含まれる前記判定情報から、前記利用条件判定コードが動作することを確認済みであるか否かを判定する動作確認判定ステップと、
前記利用条件判定コードが動作することを確認済みであると判定された場合に、前記利用条件判定コードを実行する利用条件判定コード実行ステップと、
前記実行された利用条件判定コードに基づきコンテンツの利用可否を判定し、コンテンツが利用可の場合にコンテンツを再生するコンテンツ再生ステップと
を含むコンテンツ利用方法。
【請求項１０】
デジタル著作物であるコンテンツの利用可否を判定するためのプログラムである利用条件判定コードと、前記利用条件判定コードが動作することを確認済みであるか否かを判定するための判定情報とを含むライセンスを用いて、コンテンツを利用するためのプログラムであって、
前記ライセンスを取得するライセンス取得ステップと、
前記取得されたライセンスに含まれる前記判定情報から、前記利用条件判定コードが動作することを確認済みであるか否かを判定する動作確認判定ステップと、
前記利用条件判定コードが動作することを確認済みであると判定された場合に、前記利用条件判定コードを実行する利用条件判定コード実行ステップと、
前記実行された利用条件判定コードに基づきコンテンツの利用可否を判定し、コンテンツが利用可の場合にコンテンツを再生するコンテンツ再生ステップと
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、著作権保護されているコンテンツの配信システムにおけるコンテンツ利用制御に関する。
【背景技術】
【０００２】
近年、音楽や映像、ゲームなどのデジタル著作物であるコンテンツを、インターネットやデジタル放送などで配信するコンテンツ配信システムが開発され、その一部は、実用化の段階を迎えている（例えば、特許文献１参照）。また、これらのコンテンツの配信にあたり、著作権保護等の観点から、配信したコンテンツの再生回数や再生可能期間、コンテンツの移動、複製、書き出しなどを制限するコンテンツの利用制御方法が併せて検討されている。【０００３】
従来システムでは、サーバが、コンテンツを利用するために必要であってコンテンツの利用条件やコンテンツ鍵などを含む情報（以下、「ライセンス」と呼ぶ）を配信し、家庭内の端末装置が、サーバから配信されたライセンスを用いてコンテンツの再生、書き出しなどを行うようにモデル化されている。また、サーバから配信されたライセンスは、個々の端末装置に保有され、端末装置は、自らが保有するライセンスを用いてコンテンツを利用する。具体的には、端末装置は、回数制御、有効期限といった利用可否判定ロジックを実装したセキュアなモジュールなどを用いて、ライセンスに含まれる利用条件を解釈した上で利用可否を判断し、利用条件の範囲内で、コンテンツを利用する。【０００４】
一方、上記のように固定的な利用可否判定ロジックのみを実装したモジュールで利用可否を判定するモデルでは、利用条件制御の汎用性が失われるといった問題点がある。前記問題点の解決策として、次のようなモデルが提案されている。サーバは、利用可否判定ロジック、および利用条件を含むプログラムを、端末装置に配信する。端末装置は、前記プログラムを受信し、実行することにより、汎用的な利用条件制御を実現する。例えば、サーバは、バーチャルマシン（以下、「ＶＭ」と呼ぶ）上で実行可能なプログラム表現であるバイトコードを、端末装置に配信する。端末装置は、端末装置のＶＭ上で前記バイトコードを実行することにより、汎用的な利用条件制御を可能とする。ここで、バイトコードとは、特定のＯＳやハードウェアに依存しないように定義された命令の集合により記述され、ＶＭが解釈および実行可能な中間プログラムである。具体的には、バイトコードは、「現在時刻が２００８年８月８日よりも前ならば、利用可と判定する」といった利用条件、および利用可否判定ロジックを実現するプログラムである。【０００５】
次に、バイトコードを用いた利用可否制御における問題点について説明する。バイトコードを用いた利用可否制御では、利用可否判定の汎用性が増す一方で、端末装置における動作を保証できないケースが、固定的な利用可否判定ロジックで判定した場合と比較して、相対的に増加すると考えられる。具体的には、バイトコードに記述された利用可否判定ロジックに不備があり、端末装置のＶＭ上で無限ループに陥り処理が終了しない、即ち、コンテンツ再生ができない場合などが挙げられる。【０００６】
従来、このような課題は、ライセンス配信サーバが、技術仕様を熟知した上でバイトコードを作成し、種々のテスト実施を行なうなど、コストをかけることにより、信頼性の高いバイトコードを生成し、配信することにより、解決していた。【０００７】
このように、信頼性が高く、且つ、汎用的な利用可否判定が可能なコンテンツ配信システムが求められている。
【特許文献１】特開２０００−４８０７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来のコンテンツ配信システムには、次のような問題点がある。【０００９】
一般に、ライセンス配信サーバを設置し、コンテンツ配信サービスを提供するサービスプロバイダ（以下、「ＳＰ」と呼ぶ）にとって、利用可否判定の自由度、即ち、利用条件設定の自由度が高く、且つ、信頼性の高いバイトコードの生成が可能な、コンテンツ配信システムが望ましいと考えられる。【００１０】
しかし、従来技術では、ＳＰにとっては、信頼性の高いバイトコードの作成に多くのコストがかかるといった問題点があった。また、端末装置の製造事業者にとっては、ＳＰが自由に作成したバイトコードに対する端末装置の品質保証、すなわち、任意のバイトコードに対する動作確認テストが困難で動作保証ができないといった問題点があった。【００１１】
本発明は、こうした従来の問題点を解決するものであり、ＳＰにとっては、利用条件設定の自由度を担保しつつ、ローコストで信頼性の高いバイトコードの作成を可能とし、また、端末装置の製造事業者にとっては、該端末装置におけるバイトコードの実行に対する品質保証の範囲を規定することを可能とする端末装置、サーバおよびシステムを提供することを目的としている。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明における端末装置は、ライセンスを用いて、デジタル著作物であるコンテンツを利用する端末装置であって、前記ライセンスは、コンテンツの利用可否を判定するためのプログラムである利用条件判定コードと、前記利用条件判定コードが動作することを確認済みであるか否かを判定するための判定情報とを含む。そして、前記端末装置は、前記ライセンスを取得するライセンス取得部と、前記取得されたライセンスに含まれる前記判定情報から、前記利用条件判定コードが動作することを確認済みであるか否かを判定する動作確認判定部と、前記利用条件判定コードが動作することを確認済みであると判定された場合に、前記利用条件判定コードを実行する利用条件判定コード実行部と、前記実行された利用条件判定コードに基づきコンテンツの利用可否を判定し、コンテンツが利用可の場合にコンテンツを再生するコンテンツ再生部とを備える。【００１３】
これによれば、端末装置が、判定情報を用いて、バイトコードの利用条件判定コードが動作することを確認済みであるか否かを判定した上で、利用条件判定コードを実行することができる。つまり、利用条件判定コードが動作することを確認済みでないと判定された場合に、利用条件判定コードを実行しないようにすることで、端末装置の品質を向上させることができる。このため、ＳＰにとっては、利用条件設定の自由度を担保しつつ、ローコストで信頼性の高いバイトコードの作成を可能とする。また、端末装置の製造事業者にとっては、該端末装置におけるバイトコードの実行に対する品質保証の範囲を規定することを可能とする。【００１４】
また、好ましくは、前記判定情報は、前記取得されたライセンスに含まれる前記利用条件判定コードのバージョンを示す情報であるバージョン情報を含む。前記端末装置は、さらに、当該端末装置で動作可能な前記利用条件判定コードのバージョンを示す情報である動作可能バージョン情報を管理する動作可能バージョン管理部を備える。前記動作確認判定部は、前記バージョン情報と前記動作可能バージョン情報とを比較することで、前記利用条件判定コードが動作することを確認済みであるか否かを判定する。前記バージョン情報は、利用条件判定コードのバージョン番号を示す情報であり、前記動作可能バージョン情報は、動作可能な前記利用条件判定コードのバージョン番号を示す情報である。前記動作確認判定部は、前記バージョン情報で示されるバージョン番号が、前記動作可能バージョン情報で示されるバージョン番号以下の場合に、前記利用条件判定コードが動作することを確認済みであると判定する。そして、前記バージョン情報で示されるバージョン番号が、前記動作可能バージョン情報で示されるバージョン番号よりも大きい場合に、前記利用条件判定コードが動作することを確認済みでないと判定する。【００１５】
これによれば、バージョン番号によって、バイトコードの利用条件判定コードが動作することを確認済みであるか否かが判定される。このため、端末装置が、容易に、利用条件判定コードを実行するか否かを判定することができる。【００１６】
また、本発明は、このような端末装置として実現するだけでなく、その端末装置に配信するためのライセンスに含まれる判定情報を生成するサーバ、その端末装置とサーバとを備えたシステム、またはそれらの装置を構成する処理部をステップとする方法として実現することができる。さらに、本発明は、それらステップをコンピュータに実行させるプログラムとして実現すること、そのプログラムを記録したコンピュータ読み取り可能なＣＤ−ＲＯＭなどの記録媒体として実現すること、そのプログラムを示す情報、データ又は信号として実現することもできる。そして、それらプログラム、情報、データ及び信号は、インターネット等の通信ネットワークを介して配信してもよい。
【発明の効果】
【００１７】
本発明によれば、サーバは、判定情報が付加された利用条件判定コードを用いた利用条件作成によりローコスト、且つ、信頼性の高いバイトコードの作成を可能としながら、利用条件設定を自由に行なうことができる。また、端末装置は、利用条件判定コードに付加された判定情報を用いた判定により、端末装置での動作を確認できていない利用条件判定コードの判別が可能となり、当該利用条件判定コードを含むバイトコードを該端末装置で実行しないように制御することで、端末装置の品質を向上させることができる。
【図面の簡単な説明】
【００１８】
【図１】図１は、本発明の実施の形態１に係るコンテンツ配信システムの全体の概略構成を示す図である。
【図２】図２は、本発明の実施の形態１に係るライセンス配信サーバの構成を示す機能ブロック図である。
【図３】図３は、本発明の実施の形態１に係るコンテンツ配信サーバの構成を示す機能ブロック図である。
【図４】図４は、本発明の実施の形態１に係る端末装置の構成を示す機能ブロック図である。
【図５】図５は、本発明の実施の形態１に係る利用条件管理サーバの構成を示す機能ブロック図である。
【図６Ａ】図６Ａは、本発明の実施の形態１に係る利用条件判定ロジックコード格納部のテーブル構成を示す図である。
【図６Ｂ】図６Ｂは、本発明の実施の形態１に係る利用条件判定ロジックコード格納部のテーブル構成を示す図である。
【図７Ａ】図７Ａは、本発明の実施の形態１に係る利用条件判定パラメータ格納部のテーブル構成を示す図である。
【図７Ｂ】図７Ｂは、本発明の実施の形態１に係る利用条件判定パラメータ格納部のテーブル構成を示す図である。
【図８】図８は、本発明の実施の形態１に係るコンテンツ鍵格納部のテーブル構成を示す図である。
【図９】図９は、本発明の実施の形態１に係るコンテンツ格納部のテーブル構成を示す図である。
【図１０】図１０は、本発明の実施の形態１に係るライセンス格納部のテーブル構成を示す図である。
【図１１】図１１は、本発明の実施の形態１に係るバージョン番号格納部のテーブル構成を示す図である。
【図１２】図１２は、本発明の実施の形態１に係るライセンス配信サーバが配信するライセンスのデータ構造を示す図である。
【図１３】図１３は、本発明の実施の形態１に係る通信メッセージの構成を示す図である。
【図１４】図１４は、本発明の実施の形態１に係るロジックコード更新要求メッセージ本体の構成を示す図である。
【図１５】図１５は、本発明の実施の形態１に係るロジックコード送信メッセージ本体の構成を示す図である。
【図１６】図１６は、本発明の実施の形態１に係るライセンス取得要求メッセージ本体の構成を示す図である。
【図１７】図１７は、本発明の実施の形態１に係るライセンス送信メッセージ本体の構成を示す図である。
【図１８】図１８は、本発明の実施の形態１に係るコンテンツ取得要求メッセージ本体の構成を示す図である。
【図１９】図１９は、本発明の実施の形態１に係るコンテンツ送信メッセージ本体の構成を示す図である。
【図２０】図２０は、本発明の実施の形態１に係るライセンス配信サーバが利用条件管理サーバより更新用利用条件判定ロジックコードを取得し、利用条件判定ロジックコードを更新する処理を示すフローチャートである。
【図２１】図２１は、本発明の実施の形態１に係る端末装置がライセンス配信サーバよりライセンスを取得する処理を示すフローチャートである。
【図２２】図２２は、本発明の実施の形態１に係る端末装置がコンテンツ配信サーバよりコンテンツを取得する処理を示すフローチャートである。
【図２３】図２３は、本発明の実施の形態１に係る端末装置がコンテンツを再生し、ライセンスを更新する処理を示すフローチャートである。
【図２４】図２４は、本発明の実施の形態１に係るバイトコード利用可否判定プロセスを示すフローチャートである。
【図２５】図２５は、本発明の実施の形態１に係る利用条件管理サーバが利用条件判定ロジックコードを更新する処理を示すフローチャートである。
【図２６】図２６は、実施の形態２におけるコンテンツ配信システムの構成を示すブロック図である。
【図２７】図２７は、実施の形態２における利用条件判定ロジックコード管理情報の一例を示す図である。
【図２８】図２８は、実施の形態２におけるライセンス配信サーバの構成を示すブロック図である。
【図２９】図２９は、実施の形態２における利用権利管理データベースの一例を示す図である。
【図３０】図３０は、実施の形態２におけるライセンスの一例を示す図である。
【図３１】図３１は、実施の形態２における端末装置の構成を示すブロック図である。
【図３２】図３２は、実施の形態２におけるライセンス要求メッセージの構成を示す図である。
【図３３】図３３は、実施の形態２におけるライセンス要求レスポンスメッセージの構成を示す図である。
【図３４】図３４は、実施の形態２におけるライセンス取得処理の動作を示すフローチャートである。
【図３５】図３５は、実施の形態２におけるライセンス生成プロセスの動作を示すフローチャートである。
【図３６】図３６は、実施の形態２における利用条件バイトコード実行可否判定プロセスの動作を示すフローチャートである。
【図３７】図３７は、実施の形態２におけるコンテンツ利用処理の動作を示すフローチャートである。
【図３８】図３８は、実施の形態２におけるライセンス要求メッセージの構成を示す図である。
【図３９】図３９は、実施の形態２におけるライセンスの一例を示す図である。
【図４０】図４０は、実施の形態３におけるライセンス配信サーバの構成を示すブロック図である。
【図４１】図４１は、実施の形態３におけるライセンスの一例を示す図である。
【図４２】図４２は、実施の形態３における利用条件バイトコード実行可否判定プロセスの動作を示すフローチャートである。
【図４３】図４３は、動作検証状況情報の一例を示す図である。
【符号の説明】
【００１９】
１００ａ、１００ｂ  ライセンス配信サーバ
１０１、２０１、３０１、４０１  通信部
１０２  ライセンス生成・送信部
１０３  利用条件判定ロジックコード更新部
１１１  利用条件判定ロジックコード格納部
１１２  利用条件判定パラメータ格納部
１１３  コンテンツ鍵格納部
２００  コンテンツ配信サーバ
２０２  コンテンツ取得・送信部
２１１、３１１  コンテンツ格納部
３００ａ、３００ｂ、３００ｃ  端末装置
３０２  利用条件検証部
３０３  利用条件バイトコード実行部
３０４  ライセンス取得部
３０５  コンテンツ取得部
３０６  コンテンツ再生部
３１２  ライセンス格納部
４００  利用条件管理サーバ
４０２  利用条件バイトコード入力部
４０３  利用条件バイトコード分離部
４０４  利用条件判定ロジックコード送信部
４０５  利用条件判定ロジックコード管理情報生成部
４０６  利用条件判定ロジックコード動作検証部
５００  伝送路
１２００  ライセンス
１２０２  バージョン番号
１２０４  利用条件判定ロジックコード
２１００  コンテンツ配信サーバ
２１１０  ライセンス配信サーバ
２１２０  利用条件判定ロジックコード管理サーバ
２１３０  端末装置
２１４０  伝送路
２２００  利用条件判定ロジックコード管理情報
２２０１  ロジックコードＩＤ
２２０２、２５０１  プロファイル
２２０３、２５０２  バージョン
２２０４、２５０３  利用条件判定ロジックコード
２２０５、３６０１、３８００  動作検証状況情報
２３０１、２６０１  通信部
２３０２  利用条件判定ロジックコード管理データベース
２３０３  利用権利管理データベース
２３０４  ライセンス生成・送信部
２３０５  動作検証状況確認部
２３０６  動作検証状況フラグ設定部
２４０１、２７０３  端末ＩＤ
２４０２、２７０２  利用権利ＩＤ
２４０３  ロジックコードＩＤ
２４０４  利用条件パラメータ
２４０５、２５０６  コンテンツ鍵
２５００  ライセンス
２５０４  利用条件パラメータ
２５０５  動作検証状況フラグ
２５０７  署名
２６０２  コンテンツ取得部
２６０３  ライセンス取得部
２６０４  利用条件バイトコード実行可否判定部
２６０５  利用条件バイトコード実行部
２６０６  ライセンス利用可否判定部
２６０７  コンテンツ利用部
２６０８  動作検証済みプロファイル・バージョン情報管理部
２６０９  ライセンス管理部
２６１０  コンテンツ管理部
２７００  ライセンス要求メッセージ
２７０１  ライセンス要求メッセージ識別子
２８００  ライセンス要求レスポンスメッセージ
２８０１  ライセンス要求レスポンスメッセージ識別子
２８０２  ステータスコード
３８０１  マスクビット数
３８０２  比較ＩＤ
【発明を実施するための最良の形態】
【００２０】
（実施の形態１）
以下、本発明における実施の形態１について、図面を用いて詳細に説明する。【００２１】
図１は、本発明における実施の形態１に関わるコンテンツ配信システムの全体の概略構成を示す図である。【００２２】
このコンテンツ配信システムは、端末装置３００においてコンテンツを利用するシステムであって、利用条件バイトコード、およびライセンスの生成、配信を行なうライセンス配信サーバ１００ａ〜１００ｂと、コンテンツの保持、配信を行なうコンテンツ配信サーバ２００と、コンテンツおよびライセンスを取得し、コンテンツを利用する端末装置３００ａ〜３００ｃと、ライセンス配信サーバ１００における利用条件バイトコード生成で用いる情報の配布、管理を行なう利用条件管理サーバ４００と、これらを相互に接続する伝送路５００と、から構成されている。【００２３】
ライセンス配信サーバ１００は、伝送路５００と接続する機能を有する。ライセンス配信サーバ１００は、利用条件判定パラメータ、利用条件判定ロジックコードなどを保持し、端末装置３００からの要求に基づき、利用条件バイトコード、およびライセンスを生成し、ライセンスの送信を行うサーバ装置であり、ワークステーション等により実現される。また、ライセンス配信サーバ１００は、ＳＰが運営するとして以降の説明を行う。【００２４】
コンテンツ配信サーバ２００は、伝送路５００と接続する機能を有する。コンテンツ配信サーバ２００は、コンテンツ情報を保持し、端末装置３００からの要求に基づき、コンテンツの送信を行うサーバ装置であり、ワークステーション等により実現される。また、コンテンツ配信サーバ２００は、コンテンツプロバイダ（以下、「ＣＰ」と呼ぶ）が運営するとして以降の説明を行う。【００２５】
端末装置３００は、伝送路５００と接続する機能を有し、コンテンツやライセンスを保持し、ライセンスに含まれる利用条件バイトコードに基づく利用可否判定の後、モニター画面などにコンテンツを出力するなど、コンテンツの利用に関する処理を行う装置である。具体的には、端末装置３００は、デジタル放送を受信するためのＳＴＢ（Ｓｅｔ  Ｔｏｐ  Ｂｏｘ）、デジタルＴＶ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）レコーダ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）レコーダ、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｃｅ）、携帯電話などのデータ再生装置、記録装置、あるいは、これらの複合機器である。本実施の形態では、上記機器が利用条件バイトコードを実行するためのＶＭを備えるとして説明する。【００２６】
利用条件管理サーバ４００は、伝送路５００と接続する機能を有し、信頼性の高い署名付き利用条件判定ロジックコードなどを保持し、ライセンス配信サーバ１００からの要求に基づき、ライセンス配信サーバ１００が保持する利用条件判定ロジックコードの更新を行うサーバ装置であり、ワークステーション等により実現される。また、利用条件管理サーバ４００は、コンテンツ配信システムに技術仕様を提供する技術管理団体が運営するとして以降の説明を行う。【００２７】
伝送路５００は、ライセンス配信サーバ１００と、コンテンツ配信サーバ２００と、端末装置３００と、利用条件管理サーバ４００と、を相互に接続するネットワークである。具体的には、伝送路５００は、イーサネット（登録商標）等の有線ネットワークや、無線ＬＡＮなどの無線ネットワーク、あるいは、これらが複合したネットワークで構成される。【００２８】
本実施の形態では、このようなコンテンツ配信システムにおけるライセンスの取得、コンテンツの再生に関する次の５つの処理について図２から図２５の図面を用いて詳細に説明する。
（１）ライセンス配信サーバ１００が、利用条件判定ロジックコードを更新する処理
（２）端末装置３００が、ライセンスを取得する処理
（３）端末装置３００が、コンテンツを取得する処理
（４）端末装置３００が、コンテンツを再生する処理
（５）利用条件管理サーバ４００が、新たな利用条件判定ロジックコードを追加する処理【００２９】
ここで詳細な説明に先立ち、本発明において端末装置３００上でのコンテンツの利用可否判定に用いる情報の定義を行なう。【００３０】
まず、端末装置３００において利用可否判定を行なう利用条件バイトコードについて説明する。利用条件バイトコードは、端末装置３００上のＶＭで動作するプログラムであり、少なくとも利用可否判定を行なうロジックと、前記ロジックが参照するパラメータを含む。具体的には、「現在時刻＜パラメータならば、利用可」というロジックと、「２００７年８月８日」というパラメータからなり、「現在時刻が、２００７年８月８日より前ならば、利用可、そうでなければ利用不可」といった利用可否判定を行なうプログラムである。【００３１】
なお、利用条件バイトコードは、該利用条件バイトコードを２つ以上組み合わせる形で新たな利用条件バイトコードとしてもよい。具体的には、「現在時刻＜パラメータならば、利用可」というロジックと、「２００７年８月８日」というパラメータからなる第１の利用条件バイトコードと、「再生回数＜パラメータならば、利用可」というロジックと、「１０回」というパラメータからなる第２の利用条件バイトコードを組み合わせて利用して、「現在時刻＜第１のパラメータ、かつ、再生回数＜第２のパラメータならば、利用可」というロジックと、「第１のパラメータ＝２００７年８月８日、第２のパラメータ＝１０回」というパラメータからなる第３の利用条件バイトコードであってもよい。【００３２】
本実施の形態では、前記ロジックを示すプログラム、およびデータを、利用条件判定ロジックコードと呼び、前記パラメータを示すプログラム、およびデータを、利用条件判定パラメータと呼ぶこととする。具体的には、利用条件判定ロジックコードは、前述の例の他に、「現在利用回数＜パラメータならば、利用可」、「初回利用時刻＋パラメータ＜現在時刻ならば、利用可」、「２００７年７月７日＜現在時刻＜パラメータならば、利用可」などがある。また、利用条件判定パラメータは、前述の例の他に、「１０回」、「２日間」、「ライセンス取得時刻＋３日」などがある。具体例で説明したように、利用条件判定ロジックコードに「２００７年７月７日」のような数値データを含む、あるいは、利用条件判定パラメータに「ライセンス取得時刻＋」といった演算プログラムを含む、としても良い。【００３３】
一般に、コンテンツ配信システムにおいては、権利保護の観点から、コンテンツ利用に関する情報は、セキュアに管理する必要がある。【００３４】
そのため、ライセンス、利用条件バイトコードや利用条件判定ロジックコード、利用条件判定パラメータといったセキュアに管理する必要のあるデータを、伝送路５００を通じて送受信する場合、セキュリティを確保するため、安全な認証チャネル（Ｓｅｃｕｒｅ  Ａｕｔｈｅｎｔｉｃａｔｅｄ  Ｃｈａｎｎｅｌ、以下、「ＳＡＣ」と呼ぶ）を確立してから、前記データの送受信を行うことが望ましい。ＳＡＣの確立には、例えばＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ）やＴＬＳ（Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ）を利用することができる。【００３５】
次に、本実施の形態における識別子の定義を行う。【００３６】
ユーザ識別子とは、コンテンツ配信システムにおいてユーザを一意に特定するための情報である。なお、本実施の形態では端末装置３００を使用するユーザのユーザ識別子は「ＵＳＥＲ−ＩＤ−０００１」として説明する。また、ユーザ識別子は端末装置購入時に入力され、端末装置３００の記憶領域に記憶されているとして以降の説明を行う。【００３７】
コンテンツ識別子とは、コンテンツ配信システムにおいてコンテンツを一意に特定するための情報である。【００３８】
ライセンス識別子とは、端末装置３００においてライセンスを一意に特定するための情報である。【００３９】
ロジック識別子とは、コンテンツ配信システムにおいて利用条件判定ロジックコードを一意に特定するための情報である。【００４０】
他の識別子、および識別子の具体的な値については、必要な箇所で適宜、定義、および説明する。【００４１】
以上で各識別子の定義についての説明を終える。【００４２】
次に、ライセンス配信サーバ１００と、コンテンツ配信サーバ２００と、端末装置３００と、利用条件管理サーバ４００の詳細な構成について説明する。【００４３】
まず、ライセンス配信サーバ１００の詳細な構成について説明する。【００４４】
図２は、図１に示されるライセンス配信サーバ１００の詳細な構成を示す機能ブロック図である。なお、ライセンス配信サーバ１００ａ〜１００ｂの機能構成は、ライセンス配信サーバ１００ａをその代表とし、ライセンス配信サーバ１００として説明する。【００４５】
ライセンス配信サーバ１００は、利用条件判定ロジックコードを格納する利用条件判定ロジックコード格納部１１１と、利用条件判定パラメータを格納する利用条件判定パラメータ格納部１１２と、コンテンツ鍵を格納するコンテンツ鍵格納部１１３と、伝送路５００と接続し端末装置３００、および利用条件管理サーバ４００と通信を行う通信部１０１と、端末装置３００の要求に基づき、利用条件判定ロジックコードと利用条件判定パラメータから利用条件バイトコードを生成し、利用条件バイトコードとコンテンツ鍵からライセンスを生成し、送信するライセンス生成・送信部１０２と、利用条件管理サーバ４００から更新用利用条件判定ロジックコードを取得し、利用条件判定ロジックコードを更新する利用条件判定ロジックコード更新部１０３と、から構成される。ここで、ライセンス生成・送信部１０２は、請求の範囲に記載の「ライセンス配信部」の機能を有する。【００４６】
次に、コンテンツ配信サーバ２００の詳細な構成について説明する。【００４７】
図３は、図１に示されるコンテンツ配信サーバ２００の詳細な構成を示す機能ブロック図である。【００４８】
コンテンツ配信サーバ２００は、コンテンツを格納するコンテンツ格納部２１１と、伝送路５００と接続し端末装置３００と通信を行う通信部２０１と、端末装置３００からの要求に基づきコンテンツ格納部２１１からコンテンツを取得し、送信するコンテンツ取得・送信部２０２と、から構成される。【００４９】
次に、端末装置３００の詳細な構成について説明する。【００５０】
図４は、図１に示される端末装置３００の詳細な構成を示す機能ブロック図である。なお、端末装置３００ａ〜３００ｃの機能構成は、端末装置３００ａをその代表とし、端末装置３００として説明する。【００５１】
端末装置３００は、コンテンツ配信サーバ２００から取得したコンテンツを格納するコンテンツ格納部３１１と、ライセンス配信サーバ１００から取得したライセンスを格納するライセンス格納部３１２と、伝送路５００と接続しライセンス配信サーバ１００、およびコンテンツ配信サーバ２００と通信を行う通信部３０１と、ライセンスに含まれる利用条件判定ロジックコードを検証し、利用条件バイトコードとして実行してよいか否かの判定を行なう利用条件検証部３０２と、利用条件検証部３０２の検証結果を受けて利用可の場合に、利用条件バイトコードを実行する利用条件バイトコード実行部３０３と、ライセンス配信サーバ１００よりライセンスを取得するライセンス取得部３０４と、コンテンツ配信サーバ２００よりコンテンツを取得するコンテンツ取得部３０５と、利用条件バイトコード実行部３０３において実行される利用条件バイトコードの制御の下でコンテンツの復号を行い、コンテンツを再生するコンテンツ再生部３０６と、から構成される。【００５２】
ここで、利用条件検証部３０２は、請求の範囲に記載の「動作確認判定部」の機能を有する。また、利用条件バイトコード実行部３０３は、請求の範囲に記載の「利用条件判定コード実行部」及び「動作可能バージョン管理部」の機能を有する。【００５３】
最後に、利用条件管理サーバ４００の詳細な構成について説明する。【００５４】
図５は、図１に示される利用条件管理サーバ４００の詳細な構成を示す機能ブロック図である。【００５５】
利用条件管理サーバ４００は、利用条件判定ロジックコード格納部４１１と、バージョン番号格納部４１２と、伝送路５００と接続しライセンス配信サーバ１００と通信を行う通信部４０１と、利用条件バイトコード入力部４０２と、利用条件バイトコード分離部４０３と、利用条件判定ロジックコード送信部４０４と、利用条件判定ロジックコード管理情報生成部４０５と、利用条件判定ロジックコード動作検証部４０６と、から構成される。【００５６】
利用条件判定ロジックコード格納部４１１は、利用条件判定ロジックコードを格納する。バージョン番号格納部４１２は、バージョン番号を格納する。利用条件バイトコード入力部４０２は、ライセンス配信サーバ１００、あるいはサーバ管理者等からの利用条件バイトコード入力を受け付ける。【００５７】
利用条件バイトコード分離部４０３は、利用条件バイトコード入力部４０２に入力された利用条件バイトコードの、利用条件判定ロジックコードと、利用条件判定パラメータの分離ポリシーを決定し、利用条件判定ロジックコードを分離、抽出する。【００５８】
利用条件判定ロジックコード送信部４０４は、ライセンス配信サーバ１００の要求に基づき利用条件判定ロジックコードの更新要否を判定し、更新が必要と判断した場合、更新用利用条件判定ロジックコードを送信する。【００５９】
利用条件判定ロジックコード管理情報生成部４０５は、利用条件バイトコード分離部４０３で抽出された利用条件判定ロジックコードに対してロジック識別子、およびバージョン番号を付与する。さらに、利用条件判定ロジックコード管理情報生成部４０５は、前記ロジック識別子、前記バージョン番号、および前記利用条件判定ロジックコードを含むデータに対して、利用条件管理サーバ４００の秘密鍵でデジタル署名を付与し、前記データと関連付けて利用条件判定ロジックコード格納部４１１に格納する。【００６０】
利用条件判定ロジックコード動作検証部４０６は、利用条件バイトコード分離部４０３で分離された利用条件判定ロジックコードの動作検証を行う。【００６１】
ここで、利用条件判定ロジックコード管理情報生成部４０５は、請求の範囲に記載の「判定情報生成部」の機能を有する。また、利用条件判定ロジックコード動作検証部４０６は、請求の範囲に記載の「利用条件判定コード動作検証部」の機能を有する。【００６２】
以上で、ライセンス配信サーバ１００、コンテンツ配信サーバ２００、端末装置３００、および利用条件管理サーバ４００の詳細な構成について説明した。各サーバ、および端末装置３００は、各データ格納部、および各処理部から構成される。各データ格納部は、ＨＤＤ等の記憶媒体で実現され、各処理部はＬＳＩ等のハードウェアあるいはＣＰＵ、ＲＡＭ、ＲＯＭ等を利用して実行されるプログラム等によって実現される。なお、端末装置３００および利用条件管理サーバ４００において各格納部、各処理部は、ハード的あるいはソフト的に耐タンパされていることが望ましい。【００６３】
次に、本実施の形態で扱うデータ、およびデータ構造について説明する。まず、各格納部が保持するデータのデータ構造を、ライセンス配信サーバ１００、コンテンツ配信サーバ２００、端末装置３００、利用条件管理サーバ４００の順で説明する。最後に本実施の形態においてライセンス配信サーバ１００から端末装置３００に配信されるライセンスのデータ構造について説明する。【００６４】
まず、ライセンス配信サーバ１００の格納部が保持するデータについて図面を参照して説明する。【００６５】
利用条件判定ロジックコード格納部１１１は、利用条件判定ロジックコードに関する情報を管理するための利用条件判定ロジックコード管理テーブルを有するデータベースであって、端末装置３００からのライセンス配信要求に対して、発行可能な場合に利用条件バイトコードを生成するために用いられる。【００６６】
具体的には、利用条件判定ロジックコード格納部１１１は、図６Ａに示すように、ロジック識別子Ｄ６０１と、ロジック識別子Ｄ６０１に対応するロジックコードＤ６０３と、ロジックコードＤ６０３のバージョン番号Ｄ６０２と、ロジック識別子Ｄ６０１とバージョン番号Ｄ６０２とロジックコードＤ６０３からなるデータに対するデジタル署名である署名Ｄ６０４と、からなる利用条件判定ロジックコード管理テーブルＤ６００ａを有する。例えば、図６Ａにおいて、ロジック識別子Ｄ６０１が「ＬＯＧＩＣ−ＩＤ−０００１」であるロジックコードＤ６０３は、「現在時刻＜パラメータ」を示すバイトコードであり、バージョン番号Ｄ６０２が「１．０」であり、それらに対する署名Ｄ６０４が「３２３ｂｆ３ｂｂｃ」であることを示している。なお、利用条件判定ロジックコード格納部１１１へのデータ登録は、ライセンス配信サーバ１００の管理者指示、あるいは定期的に、利用条件管理サーバ４００に利用条件判定ロジックコードの更新要否を確認し、更新用利用条件判定ロジックコードを取得した際に行われる。詳細な処理は後述する。【００６７】
利用条件判定パラメータ格納部１１２は、ユーザ毎のコンテンツに対する利用条件を管理するデータベースであって、端末装置３００からのライセンス配信要求に対して、ユーザが所有する利用条件が発行可能か否かを判定し、発行可能な場合に利用条件バイトコードを生成するために用いられる。【００６８】
具体的には、利用条件判定パラメータ格納部１１２は、図７Ａに示すように、利用条件の所有者を示すユーザ識別子Ｄ７０１と、利用条件が利用を許諾するコンテンツのコンテンツ識別子Ｄ７０２と、コンテンツ識別子Ｄ７０２で示されるコンテンツの利用可否判定を行なう利用条件判定ロジックコードのロジック識別子Ｄ７０３と、ロジック識別子Ｄ７０３に対応する利用条件判定ロジックコードが利用可否判定の際に参照するパラメータＤ７０４と、からなる利用条件判定パラメータ管理テーブルＤ７００ａを有する。例えば、ユーザ識別子Ｄ７０１が「ＵＳＥＲ−ＩＤ−０００１」であるユーザは、利用許諾されたコンテンツがコンテンツ識別子Ｄ７０２に示される「ＣＯＮＴＥＮＴ−ＩＤ−０００１」なるコンテンツであり、利用可否判定を行なう利用条件判定ロジックコードが、ロジック識別子Ｄ７０３で示される「ＬＯＧＩＣ−ＩＤ−０００１」で特定される利用条件判定ロジックコードであり、前記利用条件判定ロジックコードが参照するパラメータが、パラメータＤ７０４で示される「〜２００７／８／１５」であることを示している。また複数のコンテンツ識別子に対して、一つのロジック識別子を対応付けることも可能である。【００６９】
なお、利用条件判定パラメータ格納部１１２へのデータ登録は、コンテンツ配信サービスを運営するＳＰにより、ユーザがコンテンツを利用する権利を購入する際に行われる。この購入処理は、ユーザが伝送路５００を通じて、ＳＰのＷｅｂサイトに接続し、コンテンツ購入画面により、オンラインで購入を行うとしても良いし、購入用の葉書を用いる等、オフラインで行っても良い。購入処理では、まずユーザが購入対象であるコンテンツのコンテンツ識別子Ｄ７０２を指定し、利用条件を確認後、購入処理を行う。購入処理を行ったユーザのユーザ識別子Ｄ７０１とコンテンツ識別子Ｄ７０２と利用条件から一意に特定されるロジック識別子Ｄ７０３と、パラメータＤ７０４と、が関連付けられて、利用条件判定パラメータ格納部１１２の利用条件判定パラメータ管理テーブルＤ７００ａに登録される。【００７０】
以上のような購入処理を行った結果、利用条件判定パラメータ格納部１１２の利用条件判定パラメータ管理テーブルＤ７００ａが構築される。また、一つのコンテンツに対して、複数のロジック識別子Ｄ７０３、および複数のパラメータを設定するとしても良い。図７Ｂを参照して説明する。Ｄ７０１からＤ７０４までの説明は、図６Ａで説明したため、省略する。パラメータ２Ｄ７０５は、第２のロジック識別子に対応するパラメータを示している。優先順位Ｄ７０６は、利用条件判定ロジックコードが複数ある場合、何れか一つの利用条件判定ロジックコードにより可否判定をする場合、何れを優先的に実行するかを示す。また、２つ以上の利用条件判定ロジックコードが連携して可否判定を行なう場合、どのロジックを実行するのか、複数の条件をＡＮＤ条件で実行するのか、ＯＲ条件で実行するのか、などを示している。【００７１】
コンテンツ鍵格納部１１３は、暗号化コンテンツを復号するためのコンテンツ鍵を管理するデータベースであって、端末装置３００からのライセンス取得要求に対してライセンスを生成する際に、ライセンス取得要求に含まれるコンテンツ識別子に対応したコンテンツ鍵を取得するために用いられる。【００７２】
具体的には、コンテンツ鍵格納部１１３は、図８に示すように、コンテンツ識別子Ｄ８０１と、コンテンツ識別子Ｄ８０１に対応するコンテンツ鍵Ｄ８０２とからなるコンテンツ鍵管理テーブルＤ８００を有する。例えば、コンテンツ識別子Ｄ８０１が「ＣＯＮＴＥＮＴ−ＩＤ−０００１」の暗号化コンテンツを復号するためのコンテンツ鍵Ｄ８０２は、「ＣＯＮＴＥＮＴ−ＫＥＹ−０００１」であることを示している。なお、コンテンツ鍵格納部１１３へのデータ登録は、コンテンツの暗号化を行うＣＰなどによって行われる。【００７３】
次に、コンテンツ配信サーバ２００の格納部が保持するデータについて図面を参照して説明する。【００７４】
コンテンツ格納部２１１は、暗号化コンテンツを管理するデータベースであって、端末装置３００からのコンテンツ取得要求に対してコンテンツを送信する際に、コンテンツ取得要求に含まれるコンテンツ識別子に対応した暗号化コンテンツを取得するために用いられる。【００７５】
具体的には、コンテンツ格納部２１１は、図９に示すように、コンテンツ識別子Ｄ９０１と、コンテンツ識別子Ｄ９０１に対応する暗号化コンテンツＤ９０２とからなるコンテンツ管理テーブルＤ９００を有する。例えば、コンテンツ識別子Ｄ９０１が「ＣＯＮＴＥＮＴ−ＩＤ−０００１」の暗号化コンテンツＤ９０２は、「ＣＯＮＴＥＮＴ−ＤＡＴＡ−０００１」であることを示している。なお、コンテンツ格納部２１１へのデータ登録は、コンテンツの暗号化を行うＣＰなどによって行われる。【００７６】
次に、端末装置３００の格納部が保持するデータについて図面を参照して説明する。【００７７】
コンテンツ格納部３１１は、暗号化コンテンツを管理するデータベースであって、端末装置３００においてコンテンツを利用する際に、暗号化コンテンツを取得するために用いられる。具体的な内容は、コンテンツ配信サーバ２００のコンテンツ格納部２１１で説明した通りである。なお、コンテンツ格納部３１１へのデータ登録は、端末装置３００がコンテンツ配信サーバ２００からコンテンツを取得する際に行われる。【００７８】
ライセンス格納部３１２は、ライセンスを管理するデータベースであって、端末装置３００においてコンテンツを利用する際に、コンテンツ識別子に対応したライセンスを取得するために用いられる。【００７９】
具体的には、ライセンス格納部３１２は、図１０に示すように、ライセンス識別子Ｄ１００１と、ライセンス識別子Ｄ１００１に対応するライセンスＤ１００２とからなるライセンス管理テーブルＤ１０００を有する。例えば、ライセンス識別子Ｄ１００１が「ＬＩＣＥＮＳＥ−ＩＤ−０００１」のライセンスＤ１００２は、「ＬＩＣＥＮＳＥ−０００１」であることを示している。なお、ライセンス格納部３１２へのデータ登録は、端末装置３００がライセンス配信サーバ１００からライセンスを取得する際に行われる。ライセンスＤ１００２のデータ構造については後述する。【００８０】
最後に、利用条件管理サーバ４００の格納部が保持するデータについて図面を参照して説明する。【００８１】
利用条件判定ロジックコード格納部４１１は、利用条件判定ロジックコードに関する情報を管理するための利用条件判定ロジックコード管理テーブルを有するデータベースであって、ライセンス配信サーバ１００からの利用条件判定ロジックコード更新要求に対して、更新用利用条件判定ロジックコードを送信する際に、更新用の利用条件判定ロジックコードを取得するために用いられる。具体的な内容は、ライセンス配信サーバ１００の利用条件判定ロジックコード格納部１１１で説明した通りである。なお、利用条件判定ロジックコード格納部４１１へのデータ登録は、サーバ管理者指示、ライセンス配信サーバ１００の要求等により、新しい利用条件判定ロジックコードを追加する際に行われる。処理の詳細は、後述する。【００８２】
バージョン番号格納部４１２は、利用条件判定ロジックコードのバージョンを管理するデータベースであって、利用条件管理サーバ４００において利用条件判定ロジックコードを追加する際に、新たなバージョン番号を付与するために用いられる。【００８３】
具体的には、バージョン番号格納部４１２は、図１１に示すように、バージョン番号Ｄ１１０１と、バージョン番号Ｄ１１０１を付与した日時を示す更新日時Ｄ１１０２と、からなるバージョン番号管理テーブルＤ１１００を有する。例えば、バージョン番号Ｄ１１０１「１．０」を付与した更新日時Ｄ１１０２が「２００７／１／１」であることを示している。なお、バージョン番号格納部４１２へのデータ登録は、サーバ管理者指示、ライセンス配信サーバ１００の要求等により、新しい利用条件判定ロジックコードを追加する際に行われる。処理の詳細は、後述する。【００８４】
最後に本実施の形態においてライセンス配信サーバ１００から端末装置３００に配信されるライセンスのデータ構造について説明する。【００８５】
まず、ライセンス配信サーバ１００が発行するライセンスのデータ構造について図１２を参照して説明する。【００８６】
ライセンス１２００は、コンテンツの利用可否判定を行なうロジックである利用条件判定ロジックコード１２０４と、利用条件判定ロジックコード１２０４が参照する利用条件判定パラメータ１２０１と、利用条件判定ロジックコード１２０４のバージョンを示すバージョン番号１２０２と、利用条件判定ロジックコード１２０４を一意に特定するロジックコード識別子１２０３と、署名１２０５と、ライセンス１２００に対応する暗号化コンテンツの復号を行うためのコンテンツ鍵１２０６と、からなる。【００８７】
ここで、署名１２０５は、バージョン番号１２０２とロジックコード識別子１２０３と利用条件判定ロジックコード１２０４からなるデータに対するデジタル署名である。また、利用条件判定ロジックコード１２０４は、請求の範囲に記載の「利用条件判定コード」に相当する。バージョン番号１２０２は、請求の範囲に記載の「判定情報」に包含される。【００８８】
ここで、ライセンス１２００における利用条件バイトコードについて説明する。ライセンス１２００では、利用条件判定パラメータ１２０１と、バージョン番号１２０２と、ロジックコード識別子１２０３と、利用条件判定ロジックコード１２０４と、署名１２０５とからなるデータを、利用条件バイトコード１２１１と呼ぶ。【００８９】
また、以上の説明では、ライセンス１２００は、一つのデータの塊として説明したが、ライセンス１２００の各項目、例えば、署名対象データである「バージョン番号１２０２とロジックコード識別子１２０３と利用条件判定ロジックコード１２０４」と「署名１２０５」、「コンテンツ鍵１２０６」と「その他のデータ」など、データを分解し、別々に配信するなどしても良い。その場合、デジタル署名付きのリンク情報を用いるなどにより、改ざん検出可能な状態で分離する必要がある。なお、上記で説明したライセンス１２００は、ライセンス格納部３１２、およびライセンスに関する処理において、ライセンス識別子、およびコンテンツ識別子と関連付ける必要がある。そこで、端末装置３００におけるライセンス１２００とライセンス識別子と、コンテンツ識別子と、の関連付け処理を不要とするため、ライセンス１２００にライセンス識別子、およびコンテンツ識別子を含めるとしても良い。以上で、ライセンスのデータ構造について説明した。【００９０】
以上で、本実施の形態で扱うデータのデータ構造について説明した。【００９１】
次に、コンテンツ配信システムにおけるライセンスの取得、コンテンツの再生に関する次の５つの処理について説明する。
（１）ライセンス配信サーバ１００が、利用条件判定ロジックコードを更新する処理
（２）端末装置３００が、ライセンスを取得する処理
（３）端末装置３００が、コンテンツを取得する処理
（４）端末装置３００が、コンテンツを再生する処理
（５）利用条件管理サーバ４００が、新たな利用条件判定ロジックコードを追加する処理【００９２】
以上の構成のコンテンツ配信システムにおける上記処理について、上記順番で図２０から図２５を参照して説明する。【００９３】
各処理の説明に先立ち、本実施の形態で扱う通信メッセージについて説明する。【００９４】
図１３は、ライセンス配信サーバ１００、コンテンツ配信サーバ２００、端末装置３００、利用条件管理サーバ４００の各サーバ、装置間の通信において送受信される通信メッセージＭ１３００のメッセージフォーマットの内容を示す図である。【００９５】
図１３の通信メッセージＭ１３００は、メッセージヘッダＭ１３０１と、メッセージ本体Ｍ１３０２と、からなる。【００９６】
ここで、メッセージヘッダＭ１３０１は、少なくとも送信先を特定する情報と、送信元を特定する情報と、を含んでいる。前記送信先を特定する情報は、メッセージの宛先として参照され、前記送信元を特定する情報は、前記メッセージに対して返信のメッセージを送信する際にあて先として参照される。前記送信元、あるいは送信先を特定するための情報の典型例としてＩＰアドレスがある。メッセージ本体Ｍ１３０２は、各々のメッセージで固有の情報を含む。メッセージ本体固有の情報についてはメッセージが必要となる処理の説明において説明する。【００９７】
まず、ライセンス配信サーバ１００が、利用条件判定ロジックコードを更新する処理について説明する。【００９８】
利用条件判定ロジックコード更新処理の説明に先立ち、利用条件判定ロジックコード更新処理に関係する通信メッセージのデータ構造について図１４および図１５を参照して説明する。【００９９】
図１４のロジックコード更新要求メッセージ本体Ｍ１４００は、バージョン番号Ｍ１４０１からなる。図１５のロジックコード送信メッセージ本体Ｍ１５００は、利用条件判定ロジックコード情報リストＭ１５０１からなる。利用条件判定ロジックコード情報リストＭ１５０１は、１以上の利用条件判定ロジックコード情報Ｍ１５０２を含む。利用条件判定ロジックコード情報Ｍ１５０２は、コンテンツの利用可否判定を行なうロジックである利用条件判定ロジックコードＭ１５１３と、利用条件判定ロジックコードＭ１５１３のバージョンを示すバージョン番号Ｍ１５１１と、利用条件判定ロジックコードＭ１５１３を一意に特定するロジックコード識別子Ｍ１５１２と、署名Ｍ１５１４と、からなる。ここで、署名Ｍ１５１４は、バージョン番号Ｍ１５１１とロジックコード識別子Ｍ１５１２と利用条件判定ロジックコードＭ１５１３からなるデータに対するデジタル署名である。【０１００】
以上で、利用条件判定ロジックコード更新処理に関係する通信メッセージのデータ構造について説明した。【０１０１】
次に、ライセンス配信サーバ１００が、利用条件管理サーバ４００から更新用の利用条件判定ロジックコードを取得するまでの各部の処理について図２０を参照して説明する。【０１０２】
ライセンス配信サーバ１００は、サーバ管理者指示、あるいはシステムの定期的な更新指示等により、利用条件判定ロジックコード更新処理を開始する。利用条件判定ロジックコード更新部１０３は、利用条件判定ロジックコード格納部１１１のバージョン番号Ｄ６０２の中で、最も大きなバージョン番号を取得する（図２０：ステップＳ２０１１）。【０１０３】
例えば、図６Ａの利用条件判定ロジックコード管理テーブルＤ６００ａの場合、バージョン番号として「２．０」を取得する。利用条件判定ロジックコード更新部１０３は、ロジックコード更新要求メッセージを生成し、通信部１０１を通じて利用条件管理サーバ４００に送信する（図２０：ステップＳ２０１２）。ロジックコード更新要求メッセージ本体Ｍ１４００に含まれるバージョン番号Ｍ１４０１は、ステップＳ２０１１で取得したバージョン番号、例えば「２．０」を設定する。【０１０４】
利用条件管理サーバ４００は、通信部４０１を通じて前記ロジックコード更新要求メッセージを受信する（図２０：ステップＳ２０４１）。【０１０５】
利用条件判定ロジックコード送信部４０４は、ロジックコード更新要求メッセージ本体Ｍ１４００から、バージョン番号Ｍ１４０１を抽出し、利用条件判定ロジックコード格納部４１１のバージョン番号Ｄ６０２の中で最も値が大きいバージョン番号を取得し、バージョン番号Ｍ１４０１がバージョン番号格納部４１２より取得したバージョン番号より古いか（値が小さいか）否かを判定する（図２０：ステップＳ２０４２）。【０１０６】
バージョン番号Ｍ１４０１が利用条件判定ロジックコード格納部４１１より取得したバージョン番号より古くない場合、利用条件判定ロジックコード送信部４０４は、更新処理は不要と判断し、処理を終了し、更新処理が不要である旨をメッセージ本体に含む返信メッセージをライセンス配信サーバ１００に送信する（図２０：ステップＳ２０４Ａ）。【０１０７】
ライセンス配信サーバ１００は、利用条件管理サーバ４００より更新不要通知を含む返信メッセージを受信した場合は、返信メッセージに含まれる更新不要の理由を管理者に通知、あるいはシステム上のログとして記録して、処理を終了する。なお、バージョン番号Ｍ１４０１が利用条件判定ロジックコード格納部４１１より取得したバージョン番号より大きい場合、ライセンス配信サーバ１００が不正を行なっていると判断し、以降の更新処理を認めないといった処理をしても良い。【０１０８】
バージョン番号Ｍ１４０１が利用条件判定ロジックコード格納部４１１より取得したバージョン番号より古い場合、利用条件判定ロジックコード送信部４０４は、更新処理が必要と判断し、利用条件判定ロジックコード格納部４１１のバージョン番号Ｄ６０２の中で、バージョン番号Ｍ１４０１より値の大きいバージョン番号を特定する。前記バージョン番号に関連付けられた「ロジック識別子Ｄ６０１、バージョン番号Ｄ６０２、ロジックコードＤ６０３、署名Ｄ６０４」からなる利用条件判定ロジックコード情報の組を、配信対象の利用条件判定ロジックコード情報として特定する（図２０：ステップＳ２０４３）。【０１０９】
利用条件判定ロジックコード送信部４０４は、特定した前記配信対象の利用条件判定ロジックコード情報の各々を、ロジックコード送信メッセージ本体Ｍ１５００の利用条件判定ロジックコード情報Ｍ１５０２に設定し、通信部４０１を通じてライセンス配信サーバ１００に送信する（図２０：ステップＳ２０４４）。なお、署名Ｄ６０４は、利用条件判定ロジックコード管理テーブルＤ６００ａから読み込み、メッセージに設定するとして説明したが、署名Ｄ６０４を動的に生成し、付与するとしても良い。署名Ｄ６０４の動的生成は、署名に用いる鍵が、変更する際に有効である。【０１１０】
ライセンス配信サーバ１００は、通信部１０１を通じてロジックコード送信メッセージ本体Ｍ１５００を受信し、利用条件判定ロジックコード情報リストＭ１５０１を取得する（図２０：ステップＳ２０１４）。【０１１１】
ライセンス配信サーバ１００は、取得した利用条件判定ロジックコード情報リストＭ１５０１を利用条件判定ロジックコード格納部１１１に格納する（図２０：ステップＳ２０１５）。【０１１２】
以上の説明では、利用条件管理サーバ４００がライセンス配信サーバ１００より取得したバージョン番号Ｍ１４０１より値が大きいバージョン番号を持つ利用条件判定ロジックコード情報のみを送信する、すなわち、更新データのみを送信するとして説明した。これを、利用条件管理サーバ４００が保持する全ての利用条件判定ロジックコード情報を送信するとしても良い。【０１１３】
また、利用条件管理サーバ４００が、ライセンス配信サーバ１００を運営するＳＰを識別するＳＰ識別子、あるいはライセンス配信サーバ識別子と、利用条件管理サーバ４００との契約状態、信頼度、当該ＳＰが提供するサービスの運用ルール、当該ＳＰが提供するサービスに必要なロジック識別子などを、関連付けて保持し、ロジックコード更新要求Ｍを送信してきた相手に応じて、配信する利用条件判定ロジックコード情報を選択的に抽出するとしても良い。【０１１４】
また、利用条件判定ロジックコード情報と共に、ライセンス配信サーバ１００の利用条件判定パラメータの設定に関する制限情報を送信するとしても良い。具体的には、パラメータの型制限や、定義域の制限などがある。また、ＳＰ識別子、あるいはライセンス配信サーバ識別子に応じて、制限を設定するなどしても良い。例えば、再生回数制限ロジックに対するパラメータの場合、ＳＰ１は１０回まで設定可能とするが、ＳＰ２は５０回まで設定可能などである。【０１１５】
以上で、サーバ管理者指示、あるいはシステムの定期的な更新指示等により、ユーザがライセンス取得指示を行い、ライセンス配信サーバ１００が、利用条件管理サーバ４００より利用条件判定ロジックコード情報を取得するまでの処理について説明した。【０１１６】
次に、端末装置３００が、ライセンス配信サーバ１００からライセンスを取得する処理について説明する。【０１１７】
ライセンス取得処理の説明に先立ち、ライセンス取得処理に関係する通信メッセージのデータ構造について図１６および図１７を参照して説明する。図１６のライセンス取得要求メッセージ本体Ｍ１６００はユーザ識別子Ｍ１６０１と、コンテンツ識別子Ｍ１６０２と、からなる。図１７のライセンス送信メッセージ本体Ｍ１７００はライセンスＭ１７０１からなる。【０１１８】
以上で、ライセンス取得処理に関係する通信メッセージのデータ構造について説明した。【０１１９】
次に、端末装置３００が、ライセンス配信サーバ１００からライセンスを取得するまでの各部の処理について図２１を参照して説明する。【０１２０】
端末装置３００は、ユーザからの端末装置３００のアプリケーションへの情報入力、およびライセンス取得指示により、ライセンス取得処理を開始する（図２１：ステップＳ２１３１）。ユーザは端末装置３００のアプリケーションに対して、少なくとも取得対象であるライセンスを特定する情報の１つであるコンテンツ識別子または、コンテンツ識別子に準ずる情報を入力しなければならない。ユーザが、コンテンツ識別子「ＣＯＮＴＥＮＴ−ＩＤ−０００１」を入力し、ライセンス取得処理を開始したとして、以下の説明を行う。【０１２１】
ユーザからの情報入力を受けた端末装置３００は、ライセンス取得部３０４においてライセンス取得要求メッセージを生成し、通信部３０１を通じてライセンス配信サーバ１００に送信する（図２１：ステップＳ２１３２）。ライセンス取得要求メッセージ本体Ｍ１６００に含まれるユーザ識別子Ｍ１６０１は、ライセンス取得指示を行なったユーザのユーザ識別子、例えば「ＵＳＥＲ−ＩＤ−０００１」を設定し、コンテンツ識別子Ｍ１６０２は、ユーザが入力したコンテンツ識別子「ＣＯＮＴＥＮＴ−ＩＤ−０００１」を設定する。ここでユーザ識別子は、ユーザが入力しても良いし、予め端末装置３００の記憶領域（図示せず）に記憶していても良い。また、ライセンス取得要求メッセージ本体Ｍ１６００に端末装置３００を一意に特定する端末識別子を設定し、ライセンス配信サーバ１００において、前記端末識別子に対応するユーザ識別子を特定するなどしても良い。【０１２２】
ライセンス配信サーバ１００は、通信部１０１を通じて前記ライセンス取得要求メッセージを受信する（図２１：ステップＳ２１１１）。【０１２３】
ライセンス生成・送信部１０２は、ライセンス取得要求メッセージ本体Ｍ１６００から、コンテンツ識別子Ｍ１６０２を抽出し、コンテンツ識別子Ｍ１６０２に対応するコンテンツ鍵がコンテンツ鍵格納部１１３に存在するか否かを判定する（図２１：ステップＳ２１１２）。【０１２４】
前記コンテンツ鍵が存在しない場合は、ライセンスを生成できないため、処理を終了し、コンテンツ鍵が存在しない、すなわちコンテンツ識別子が不正である旨をメッセージ本体に含む返信メッセージを端末装置３００に送信する（図２１：ステップＳ２１１Ａ）。ライセンス生成・送信部１０２は、前記コンテンツ鍵が存在する場合は、以降の処理を行う。なお、本実施の形態では、図８にあるように、コンテンツ識別子「ＣＯＮＴＥＮＴ−ＩＤ−０００１」に対応するコンテンツ鍵「ＣＯＮＴＥＮＴ−ＫＥＹ−０００１」が存在するとして、以降の説明を続ける。【０１２５】
ライセンス生成・送信部１０２は、ライセンス取得要求メッセージ本体Ｍ１６００から、ユーザ識別子Ｍ１６０１を抽出し、利用条件判定パラメータ格納部１１２が保持する利用条件判定パラメータ管理テーブルＤ７００からユーザ識別子Ｍ１６０１をキーとして、対応するユーザ識別子Ｄ７０１が存在するか否かを判定する（図２１：ステップＳ２１１３）。ユーザ識別子Ｍ１６０１が利用条件判定パラメータ管理テーブルＤ７００に存在しない場合は、前記ライセンス配信要求メッセージを送信した端末装置３００のユーザが、コンテンツ配信サービスに登録されていないと判断し、ライセンス利用条件が生成できないため、処理を終了し、ユーザ識別子が存在しない旨をメッセージ本体に含む返信メッセージを、端末装置３００に送信する（図２１：ステップＳ２１１Ａ）。【０１２６】
ユーザ識別子Ｄ７０１が存在する場合は、以降の処理を行う。なお、本実施の形態では図７Ａ及び７Ｂにあるように、ユーザ識別子「ＵＳＥＲ−ＩＤ−０００１」が存在するとして、以降の説明を続ける。【０１２７】
ライセンス生成・送信部１０２は、ユーザ識別子Ｄ７０１、およびライセンス取得要求メッセージ本体Ｍ１６００から抽出したコンテンツ識別子Ｍ１６０２に基づき、利用条件判定パラメータ格納部１１２が保持する利用条件判定パラメータ管理テーブルＤ７００ａから対象となる利用条件が存在するか否かを判定する（図２１：ステップＳ２１１４）。【０１２８】
具体的には、ライセンス生成・送信部１０２は、利用条件判定パラメータ管理テーブルＤ７００ａのユーザ識別子Ｄ７０１、およびコンテンツ識別子Ｄ７０２と、ユーザ識別子Ｄ７０１およびコンテンツ識別子Ｍ１６０２とが共に一致しているレコードを特定する。該当するレコードがない場合、ライセンス生成・送信部１０２は、利用条件が存在しない旨を含む返信メッセージを、端末装置３００に送信する（図２１：ステップＳ２１１Ａ）。【０１２９】
該当するレコードが存在する場合、ライセンス生成・送信部１０２は、格納されているロジック識別子Ｄ７０３、およびパラメータＤ７０４を取得し、パラメータＤ７０４が有効か否かを判定する（図２１：ステップＳ２１１４）。【０１３０】
具体的には、ライセンス生成・送信部１０２は、パラメータＤ７０４が、利用条件として意味がない場合に、有効でないと判断する。例えば、再生回数制御ロジックに対応するパラメータＤ７０４の値が０の場合、有効でないと判断する。また、パラメータＤ７０４に関連付けて配信可能期間などを保持し、有効か否かを判定するとしても良い。パラメータＤ７０４が有効でない場合、ライセンス生成・送信部１０２は、利用条件が有効でない旨を含む返信メッセージを、端末装置３００に送信する（図２１：ステップＳ２１１Ａ）。【０１３１】
パラメータＤ７０４が有効な場合、ライセンス生成・送信部１０２は、利用条件判定ロジックコード格納部１１１が保持する利用条件判定ロジックコード管理テーブルＤ６００から前記ロジック識別子Ｄ７０３をキーとして、一致する対応するロジック識別子Ｄ６０１を特定し、該当するレコードのロジックコードＤ６０３と、前記パラメータＤ７０４と、から利用条件バイトコードを生成する（図２１：ステップＳ２１１５）。ここでは、レコードに記述されるパラメータＤ７０４を用いて、利用条件バイトコードを生成するとしたが、レコードに記述されるパラメータＤ７０４の一部を用いて生成するとしても良い。例えば、再生回数制御ロジックに対応するパラメータＤ７０４の値が１０の場合、３回分を用いて、利用条件バイトコードを生成し、前記パラメータＤ７０４を７回分に減算しても良い。【０１３２】
ライセンス生成・送信部１０２は、コンテンツ鍵格納部１１３が保持するコンテンツ鍵管理テーブルＤ８００から前記コンテンツ識別子Ｍ１６０２をキーとして、一致する対応するコンテンツ識別子Ｄ８０１を特定し、該当するレコードのコンテンツ鍵Ｄ８０２を取得する。【０１３３】
ライセンス生成・送信部１０２は、前記利用条件バイトコードと、前記コンテンツ鍵Ｄ８０２と、からライセンスを生成する（図２１：ステップＳ２１１６）。【０１３４】
ここで、具体例を用いて説明する。利用条件判定パラメータ管理テーブルＤ７００ａにおいて、ユーザ識別子「ＵＳＥＲ−ＩＤ−０００１」、コンテンツ識別子「ＣＯＮＴＥＮＴ−ＩＤ−０００１」で特定されたレコードのロジック識別子は、「ＬＯＧＩＣ−ＩＤ−０００１」で、パラメータは、「〜２００７／８／１５」である。判定日時を、２００７／８／１とすると、パラメータは有効と判定され、２００７／８／２０とすると有効でないと判断される。利用条件判定ロジックコード管理テーブルＤ６００ａにおいて、ロジック識別子は、「ＬＯＧＩＣ−ＩＤ−０００１」で特定されたレコードのバージョン番号は、「１．０」、ロジックコードは、「現在時刻＜パラメータ」、署名は、「３２３ｂｆ３ｂｂｃ」である。コンテンツ鍵管理テーブルＤ８００において、コンテンツ識別子「ＣＯＮＴＥＮＴ−ＩＤ−０００１」で特定されるコンテンツ鍵は「ＣＯＮＴＥＮＴ−ＫＥＹ−０００１」である。【０１３５】
ここで、ユーザ識別子「ＵＳＥＲ−ＩＤ−０００１」、コンテンツ識別子「ＣＯＮＴＥＮＴ−ＩＤ−０００１」からなるライセンス取得要求メッセージに応じて生成されるライセンスについて、図１２を用いて説明する。前記ライセンスは、利用条件判定パラメータ１２０１「〜２００７／８／１５」、バージョン番号１２０２「１．０」、ロジックコード識別子１２０３「ＬＯＧＩＣ−ＩＤ−０００１」、利用条件判定ロジックコード１２０４「現在時刻＜パラメータ」、署名１２０５「３２３ｂｆ３ｂｂｃ」、コンテンツ鍵１２０６「ＣＯＮＴＥＮＴ−ＫＥＹ−０００１」から構成される。【０１３６】
ライセンス生成・送信部１０２は、前記ライセンスをライセンス送信メッセージ本体Ｍ１７００のライセンスＭ１７０１に設定し、通信部１０１を通じて端末装置３００に送信する（図２１：ステップＳ２１１７）。【０１３７】
端末装置３００は、通信部３０１を通じてライセンス送信メッセージ本体Ｍ１７００を受信し、ライセンスＭ１７０１を取得する（図２１：ステップＳ２１３４）。【０１３８】
端末装置３００は、端末装置内で一意なライセンス識別子を生成する（図２１：ステップＳ２１３５）。【０１３９】
端末装置３００は、取得したライセンスＭ１７０１をライセンス取得要求メッセージのコンテンツ識別子Ｍ１６０２と同じコンテンツ識別子と、前記ライセンス識別子と、を関連付けてライセンス格納部３１２に格納する（図２１：ステップＳ２１３６）。なお、ライセンスＭ１７０１にコンテンツ識別子を含める場合はコンテンツ識別子との関連付け処理が不要である。【０１４０】
以上の説明では、ライセンス識別子を端末装置３００においてライセンスを一意に特定するための情報であると定義し、端末装置３００が生成するとした。これを、ライセンス識別子をライセンス利用システムにおいてライセンスを一意に特定するための情報であると定義し、ライセンス配信サーバ１００がライセンス生成時に作成しライセンスに付与するとしても良い。この場合、端末装置３００におけるライセンス識別子の生成処理、およびライセンス識別子との関連付け処理は不要となる。【０１４１】
また、端末装置３００はライセンス配信サーバ１００より生成不可通知を含む返信メッセージを受信した場合は、返信メッセージに含まれる生成不可の理由をユーザに提示し、処理を終了する。【０１４２】
以上で、ユーザがライセンス取得指示を行い、端末装置３００が、ライセンス配信サーバ１００よりライセンスを取得するまでの処理について説明した。【０１４３】
次に、コンテンツ取得処理について説明する。【０１４４】
コンテンツ取得処理の説明に先立ち、コンテンツ取得処理に関係する通信メッセージのデータ構造について図１８および図１９を参照して説明する。図１８のコンテンツ取得要求メッセージ本体Ｍ１８００はコンテンツ識別子Ｍ１８０１からなる。図１９のコンテンツ送信メッセージ本体Ｍ１９００はコンテンツＭ１９０１からなる。以上で、コンテンツ取得処理に関係する通信メッセージのデータ構造について説明した。【０１４５】
次に、端末装置３００が、コンテンツ配信サーバ２００からコンテンツを取得するまでの各部の処理について図２２を参照して説明する。【０１４６】
端末装置３００は、ユーザからの端末装置３００のアプリケーションへの情報入力、およびコンテンツ取得指示により、コンテンツ取得処理を開始する（図２２：ステップＳ２２３１）。ユーザは端末装置３００のアプリケーションに対して、少なくとも取得対象であるコンテンツを特定する情報の１つであるコンテンツ識別子または、コンテンツ識別子に準ずる情報を入力しなければならない。ユーザが、コンテンツ識別子「ＣＯＮＴＥＮＴ−ＩＤ−０００１」を入力し、コンテンツ取得処理を開始したとして、以下の説明を行う。【０１４７】
ユーザからの情報入力を受けた端末装置３００は、コンテンツ取得部３０５においてコンテンツ取得要求メッセージを生成し、通信部３０１を通じてコンテンツ配信サーバ２００に送信する（図２２：ステップＳ２２３２）。コンテンツ取得要求メッセージ本体Ｍ１８００に含まれるコンテンツ識別子Ｍ１８０１は、ユーザが入力したコンテンツ識別子「ＣＯＮＴＥＮＴ−ＩＤ−０００１」を設定する。【０１４８】
コンテンツ配信サーバ２００は、通信部２０１を通じて前記コンテンツ取得要求メッセージを受信する（図２２：ステップＳ２２１１）。【０１４９】
コンテンツ取得・送信部２０２は、コンテンツ取得要求メッセージ本体Ｍ１８００から、コンテンツ識別子Ｍ１８０１を抽出し、コンテンツ識別子Ｍ１８０１に対応するコンテンツがコンテンツ格納部２１１に存在するか否かを判定する（図２２：ステップＳ２２１２）。【０１５０】
前記コンテンツが存在しない場合は、コンテンツを取得できないため、処理を終了し、コンテンツが存在しない、すなわちコンテンツ識別子が不正である旨をメッセージ本体に含む返信メッセージを端末装置３００に送信する（図２２：ステップＳ２２１Ａ）。コンテンツ取得・送信部２０２は、前記コンテンツが存在する場合は、前記コンテンツを取得し、以降の処理を行う。なお、本実施の形態では、図９にあるように、コンテンツ識別子「ＣＯＮＴＥＮＴ−ＩＤ−０００１」に対応するコンテンツ「ＣＯＮＴＥＮＴ−ＤＡＴＡ−０００１」が存在するとして、以降の説明を続ける。【０１５１】
コンテンツ取得・送信部２０２は、前記コンテンツをコンテンツ送信メッセージ本体Ｍ１９００のコンテンツＭ１９０１に設定し、通信部２０１を通じて端末装置３００に送信する（図２２：ステップＳ２２１３）。【０１５２】
端末装置３００は、通信部３０１を通じてコンテンツ送信メッセージ本体Ｍ１９００を受信し、コンテンツＭ１９０１を取得する（図２２：ステップＳ２２３４）。【０１５３】
端末装置３００は、取得したコンテンツＭ１９０１をコンテンツ取得要求メッセージのコンテンツ識別子Ｍ１８０１と同じコンテンツ識別子と関連付けてライセンス格納部３１２に格納する（図２２：ステップＳ２２３５）。なお、コンテンツＭ１９０１にコンテンツ識別子を含める場合はコンテンツ識別子との関連付け処理が不要である。【０１５４】
また、端末装置３００はコンテンツ配信サーバ２００より配信不可通知を含む返信メッセージを受信した場合は、返信メッセージに含まれる生成不可の理由をユーザに提示し、処理を終了する。【０１５５】
以上で、ユーザがコンテンツ取得指示を行い、端末装置３００が、コンテンツ配信サーバ２００よりコンテンツを取得するまでの処理について説明した。【０１５６】
次に、端末装置３００が、コンテンツを再生し、終了するまでの各部の処理について図２３、および図２４を参照して説明する。【０１５７】
端末装置３００は、ユーザからの端末装置３００のアプリケーションへの情報入力、およびコンテンツ再生指示により、コンテンツ再生処理を開始する（図２３：ステップＳ２３０１）。ユーザは端末装置３００のアプリケーションに対して、少なくとも再生対象であるコンテンツを特定する情報の１つであるコンテンツ識別子または、ライセンス識別子を入力しなければならない。ユーザが、ライセンス識別子を入力し、コンテンツ再生処理を開始したとして、以下の説明を行う。【０１５８】
ユーザからの情報入力を受けた端末装置３００は、利用条件検証部３０２が、前記ライセンス識別子に基づきライセンスを特定（図２３：ステップＳ２３０２）する。利用条件検証部３０２は、特定したライセンスに含まれる利用条件判定ロジックコード情報を抽出し、前記利用条件バイトコードの利用可否判定を行なうバイトコード利用可否判定プロセスを実施する（図２３：ステップＳ２３０３）。【０１５９】
利用条件バイトコード実行部３０３は、バイトコード利用可否判定プロセスの判定結果を確認し、利用条件バイトコードの実行可否を判定する（図２３：ステップＳ２３０４）。【０１６０】
利用条件バイトコードの実行が許可されない場合、処理を終了し、許可されない理由と共にユーザに通知する。なお、利用条件バイトコードの実行が許可されない場合、許可されない理由と共にユーザに通知し、ユーザが処理継続を望むならば、以降の処理を行うとしても良い。例えば、「対象コンテンツに対応する利用条件の動作は、技術管理団体による確認をされていませんが、処理を継続しますか？」と言った通知を行う。ＶＭ上での動作エラーリスクをとってでもコンテンツ利用を行いたいユーザに対して有効である。また、利用条件バイトコードの実行が利用可でないということは、技術管理団体が動作を保証していないだけであって、動作しないことを示すわけではないことをユーザに通知することもユーザ利便性の観点から重要である。【０１６１】
利用条件バイトコードの実行が許可される場合、利用条件バイトコード実行部３０３における当該利用条件バイトコードの動作を利用条件管理サーバ４００、および技術管理団体が確認済み、すなわち当該利用条件バイトコードの実行による端末装置３００のトラブルリスクは低いと判断する。【０１６２】
利用条件バイトコード実行部３０３は、前記利用条件バイトコードを実行し、コンテンツ利用可否を判定する（図２３：ステップＳ２３０５）。ここで、利用条件バイトコードによるコンテンツ利用可否判定について簡単に説明する。先に説明したように、利用条件バイトコードには、少なくとも、利用条件判定ロジックコードと利用条件判定パラメータが含まれる。本可否判定では、利用条件判定ロジックコードが利用条件判定パラメータを参照しながら、利用可否の判定を実施する。【０１６３】
具体的には、利用条件バイトコード実行部３０３は、利用条件判定ロジックコードとして「現在時刻＜パラメータならば、利用可」、利用条件判定パラメータとして「２００７年８月８日」を含む利用条件バイトコードの場合、「現在時刻が、２００７年８月８日より前ならば、利用可、そうでなければ利用不可」といった利用可否判定を行なう。コンテンツ利用が許可されない場合、処理を終了し、許可されない理由と共にユーザに通知する。【０１６４】
コンテンツ利用が許可される場合、コンテンツ再生部３０６は、前記ライセンスに関連付けられているコンテンツ識別子をキーとして、コンテンツ格納部３１１から対応するコンテンツを特定する（図２３：ステップＳ２３０６）。【０１６５】
コンテンツ再生部３０６は、前記ライセンスに含まれるコンテンツ鍵を用いて前記コンテンツを復号し、再生する（図２３：ステップＳ２３０７）。【０１６６】
利用条件バイトコード実行部３０３上で動作する利用条件バイトコードは、コンテンツの再生中、あるいは終了時に、利用条件判定パラメータの更新要否を判定する（図２３：ステップＳ２３０８）。例えば、利用条件判定ロジックコードが再生可能回数制御を行なう場合、更新要と判定し、利用条件判定ロジックコードが再生可能期間制御を行なう場合、更新不要といった判定を行なう。【０１６７】
更新不要であれば、再生を継続する、あるいは処理を終了する。【０１６８】
更新要であれば、利用条件バイトコードは利用条件判定パラメータを更新する（図２３：ステップＳ２３０９）。例えば、利用条件判定ロジックコードが再生可能回数制御を行ない、利用条件判定パラメータが「５回」の場合、再生終了時に、利用条件判定パラメータを「４回」と更新する。また、利用条件判定パラメータを更新するのではなく、端末装置３００内の記憶領域に利用実績として「１回」を記録するとしても良い。この場合、利用条件判定ロジックコードは、前記利用実績と、利用条件判定パラメータに基づき利用可否を判定するプログラムとなる。再生可能回数に相当するデータが、利用条件判定ロジックコードに含まれる場合は、利用条件判定ロジックコードのデータを更新すると署名検証が失敗してしまうので、端末装置３００内の記憶領域に記録する必要がある。【０１６９】
以上で、端末装置３００においてコンテンツを再生し、終了するまでの処理について説明した。【０１７０】
次に、図２４のフローチャートを参照して、図２３におけるステップ２３０３の、バイトコード利用可否判定プロセスについて説明を行う。【０１７１】
利用条件検証部３０２は、前記利用条件判定ロジックコード情報の署名検証を行なう（図２４：ステップＳ２４０１）。具体的には、利用条件検証部３０２は、端末装置３００の記憶領域（図示せず）に記録されている利用条件管理サーバ４００の公開鍵を用いて、利用条件判定ロジックコード情報の検証を行なう。【０１７２】
利用条件判定ロジックコード情報の検証が失敗した場合、許可されない理由と共に、利用不可を返す（図２４：ステップＳ２４０５）。【０１７３】
利用条件判定ロジックコード情報の検証が成功した場合、以降の処理を行なう。【０１７４】
利用条件検証部３０２は、前記利用条件判定ロジックコード情報からバージョン番号を抽出すると共に、利用条件バイトコード実行部３０３から利用条件バイトコード実行部３０３上で実行可能な利用条件バイトコードのバージョン番号を示すバイトコード実行部バージョン番号を取得する。ここで、バイトコード実行部バージョン番号は、請求の範囲に記載の「動作可能バージョン情報」に包含され、請求の範囲に記載の「動作可能バージョン情報で示されるバージョン番号」に相当する。【０１７５】
利用条件検証部３０２は、前記バージョン番号と、バイトコード実行部バージョン番号と、から利用条件バイトコード実行部３０３が、利用条件判定ロジックコードに対応しているか否かを判定する（図２４：ステップＳ２４０２）。【０１７６】
具体的には、利用条件検証部３０２は、前記バージョン番号が、バイトコード実行部バージョン番号以下の場合は、利用条件バイトコード実行部３０３が、利用条件判定ロジックコードの実行に対応していると判定する。そして、利用条件検証部３０２は、前記バージョン番号が、バイトコード実行部バージョン番号よりも大きい場合は、利用条件バイトコード実行部３０３が、利用条件判定ロジックコードの実行に対応していないと判定する。【０１７７】
利用条件バイトコード実行部３０３が対応していないと判定した場合、許可されない理由と共に、利用不可を返す（図２４：ステップＳ２４０５）。【０１７８】
利用条件バイトコード実行部３０３が対応していると判定した場合、以降の処理を行なう。【０１７９】
利用条件検証部３０２は、前記利用条件判定ロジックコード情報からロジック識別子を抽出すると共に、利用条件バイトコード実行部３０３から利用条件バイトコード実行部３０３上で実行可能な利用条件判定ロジックコードのロジック識別子のリストであるロジック識別子リストを取得する。【０１８０】
利用条件検証部３０２は、前記ロジック識別子と、ロジック識別子リストと、から利用条件バイトコード実行部３０３が、前記ロジック識別子に対応する利用条件判定ロジックコードに対応しているか否かを判定する（図２４：ステップＳ２４０３）。【０１８１】
具体的には、利用条件検証部３０２は、前記ロジック識別子が、ロジック識別子リストに含まれる場合は、利用条件バイトコード実行部３０３が、前記利用条件判定ロジックコードの実行に対応していると判定する。そして、利用条件検証部３０２は、前記ロジック識別子が、ロジック識別子リストに含まれない場合は、利用条件バイトコード実行部３０３が、前記利用条件判定ロジックコードの実行に対応していないと判定する。なお、ここでは利用条件判定ロジックコードを特定する情報として、ロジック識別子を用いる場合について説明したが、利用条件判定ロジックコードの処理内容を示す文字列、例えば、有効期間制御や、回数制御相当の情報を示す文字列を用いて、利用条件判定ロジックコードを特定するとしても良い。この場合、前記文字列は、利用条件バイトコード実行部３０３の対応判定に利用できるとともに、ユーザに提示する情報としても使うことができる。【０１８２】
利用条件バイトコード実行部３０３が対応していないと判定した場合、許可されない理由と共に、利用不可を返す（図２４：ステップＳ２４０５）。【０１８３】
利用条件バイトコード実行部３０３が対応していると判定した場合、利用可を返す（図２４：ステップＳ２４０４）。【０１８４】
以上の説明では、署名検証に成功した後、バージョン番号、あるいは、ロジック識別子を用いて、当該利用条件バイトコードの動作が利用条件バイトコード実行部３０３において、技術管理団体により確認されているか、否かを判定する方法について説明した。【０１８５】
次に、上記と異なる判定方法について説明する。ここで詳細の説明に先立ち、利用条件判定ロジックコード格納部１１１が保持する図６Ｂについて説明する。Ｄ６０１からＤ６０４までの説明は、図６Ａで説明したため、省略する。使用機能識別子Ｄ６０５は、ロジック識別子Ｄ６０１で特定されるロジックコードＤ６０３を端末装置３００上で実行する際に、必要とするリソース、および機能を特定する識別子、あるいは識別子リストである。例えば、図６Ｂにおいて、ロジック識別子Ｄ６０１が「ＬＯＧＩＣ−ＩＤ−０００２」であるロジックコードＤ６０３が使用するリソースは、「セキュアクロックと、不揮発性メモリ」であることを示している。プロバイダ識別子Ｄ６０６は、対応するロジックコードＤ６０３を作成したＳＰを特定する識別子である。例えば、ロジック識別子Ｄ６０１が「ＬＯＧＩＣ−ＩＤ−０００４」であるロジックコードＤ６０３は、プロバイダ識別子Ｄ６０６がＳＰ３であるＳＰにより作成されたことを示している。なお、利用条件判定ロジックコード格納部１１１へのデータ登録は、ライセンス配信サーバ１００が、利用条件管理サーバ４００に利用条件判定ロジックコードの追加を要求した際に行われる。追加された利用条件判定ロジックコードと関連付けて、前記ライセンス配信サーバ１００を運営しているＳＰの識別子がプロバイダ識別子Ｄ６０６に登録される。【０１８６】
次に、使用機能識別子Ｄ６０５を用いて、当該利用条件バイトコードの動作が利用条件バイトコード実行部３０３において保証されているか、否かを判定する方法について説明する。【０１８７】
利用条件検証部３０２は、当該利用条件バイトコードを特定するロジック識別子に対応する使用機能識別子Ｄ６０５を抽出すると共に、利用条件バイトコード実行部３０３から利用可能なリソース、および機能を特定する識別子のリストである使用可能機能識別子リストを取得する。【０１８８】
利用条件検証部３０２は、前記使用機能識別子Ｄ６０５と、使用可能機能識別子リストと、から利用条件バイトコード実行部３０３が、前記ロジック識別子に対応する利用条件判定ロジックコードに対応しているか否かを判定する。【０１８９】
具体的には、利用条件検証部３０２は、前記使用機能識別子Ｄ６０５が、全て使用可能機能識別子リストに含まれる場合は、利用条件バイトコード実行部３０３が、前記利用条件判定ロジックコードの実行に対応していると判定する。そして、利用条件検証部３０２は、前記使用機能識別子Ｄ６０５の少なくとも一つの識別子が、使用可能機能識別子リストに含まれていない場合、利用条件バイトコード実行部３０３が、前記利用条件判定ロジックコードの実行に対応していないと判定する。なお、ここでは使用機能識別子Ｄ６０５が、ライセンスに含まれるとして説明したが、端末装置３００が、ロジック識別子と、対応利用条件判定ロジックコードの使用に必要なリソース、機能識別子リストを保持し、保持リストに基づき、上記判定を行うとしても良い。例えば、同一メーカーＡが製造した端末装置３００が製品ラインナップとして、保持するリソース、機能が異なる場合などに、使用機能識別子Ｄ６０５による判定が、有効である。【０１９０】
次に、プロバイダ識別子Ｄ６０６を用いて、当該利用条件バイトコードの動作が利用条件バイトコード実行部３０３において保証されているか、否かを判定する方法について説明する。【０１９１】
利用条件検証部３０２は、当該利用条件バイトコードを特定するロジック識別子に対応するプロバイダ識別子Ｄ６０６を抽出すると共に、端末装置３００内の記憶領域（図示せず）に記録された、動作保証済みプロバイダ識別子リストを取得する。【０１９２】
利用条件検証部３０２は、前記プロバイダ識別子Ｄ６０６と、動作保証済みプロバイダ識別子リストと、から利用条件バイトコード実行部３０３が、前記ロジック識別子に対応する利用条件判定ロジックコードに対応しているか否かを判定する。【０１９３】
具体的には、利用条件検証部３０２は、前記プロバイダ識別子Ｄ６０６が、動作保証済みプロバイダ識別子リストに含まれる場合は、利用条件バイトコード実行部３０３が、前記利用条件判定ロジックコードの実行に対応していると判定する。そして、利用条件検証部３０２は、前記プロバイダ識別子Ｄ６０６が、動作保証済みプロバイダ識別子リストに含まれていない場合、利用条件バイトコード実行部３０３が、前記利用条件判定ロジックコードの実行に対応していないと判定する。例えば、メーカーＡが製造した端末装置３００は、メーカーＡのグループ会社であるサービスプロバイダＡＡが運営するライセンス配信サーバとは、種々のテストを実施し、特別に信頼できる場合などに、プロバイダ識別子Ｄ６０６による判定が有効である。なお、以上で説明した識別情報以外にも、ＶＭ種別、端末メーカー種別といった情報により判定することも可能である。また、これらの判定に用いる情報は、利用条件管理サーバ４００におけるデジタル署名の対象領域に含まれることが望ましい。デジタル署名の対象領域に含まれないと、改ざんが検出できないため、ウイルス的な効果をもった利用条件バイトコードを実行するリスクが考えられるためである。【０１９４】
また、以上の説明では、複数の判定方法において、何れも対応済みと判定された場合のみ、利用可とするとして説明したが、何れか一つの判定方法において対応済みならば、利用可とするとしても良い。例えば、バージョン番号を用いた判定で対応済みでなくとも、ロジック識別子を用いた判定で対応済みであれば、利用可とする。また、以上の説明では、複数の方法で判定を行い、利用可否を判定するとして説明したが、前述した何れか一つの方法で判定を行っても良いし、２つ以上の判定方法を組み合わせて、ＡＮＤあるいはＯＲ条件で判定するとしても良い。【０１９５】
以上で、バイトコード利用可否判定プロセスについて説明した。【０１９６】
次に、利用条件管理サーバ４００において、利用条件判定ロジックコードを追加する際の各部の処理について図２５を参照して説明する。【０１９７】
利用条件管理サーバ４００は、サーバ管理者、あるいはライセンス配信サーバ１００（以下、「追加指示者」と呼ぶ）からの利用条件判定ロジックコード追加指示により、利用条件判定ロジックコード追加処理を開始する（図２５：ステップＳ２５０１）。追加指示者は、利用条件管理サーバ４００の利用条件バイトコード入力部４０２に対して、少なくとも利用条件判定ロジックコードを含む利用条件バイトコードを入力しなければならない。なお、利用条件バイトコードではなく、利用条件判定ロジックコードや、「＊泊＊日の再生可否判定をしたい」といった利用条件の要件を入力するとしても良い。その場合、利用条件バイトコード分離部４０３の処理は不要となる。また、利用条件の要件が入力された場合、前記要件を、利用条件判定ロジックコードに変換する処理が必要となる。【０１９８】
利用条件バイトコード入力部４０２からの情報入力を受けた利用条件バイトコード分離部４０３は、入力された利用条件バイトコードの内容、あるいは追加申請を行ったライセンス配信サーバ１００を運営するＳＰとの関係などに応じて、利用条件判定ロジックコードと、利用条件判定パラメータとの分離ポリシーを決定する（図２５：ステップＳ２５０２）。そして、利用条件バイトコード分離部４０３は、前記分離ポリシーに基づき、利用条件バイトコードを、利用条件判定ロジックコードと、利用条件判定パラメータと、に分離する（図２５：ステップＳ２５０３）。より本質的には、ＳＰと技術管理団体との責任範囲を明確にする。すなわち、ＳＰの責任範囲のコードは、利用条件判定パラメータに、技術管理団体の責任範囲のコードは、利用条件判定ロジックコードに分離する。【０１９９】
つまり、例えば、ＳＰの信頼度が極めて低い場合など、全てのデータを利用条件判定ロジックコードに含める、あるいは信頼度が極めて高いＳＰには、データを利用条件判定パラメータに含めるといった運用も想定される。利用条件バイトコードを、利用条件判定ロジックコードと、利用条件判定パラメータと、に分離する具体例については、先の利用条件バイトコードの説明において記述したため、ここでは省略する。【０２００】
利用条件判定ロジックコード動作検証部４０６は、利用条件バイトコード分離部４０３で分離、抽出された利用条件判定ロジックコードに対して種々のテストを実施するなどして、動作確認を行い、動作確認ができない場合は、処理を終了する。【０２０１】
利用条件判定ロジックコード管理情報生成部４０５は、バージョン番号格納部４１２の更新日時が一番新しい、バージョン番号を取得し、バージョン番号を加算し、新たなバージョン番号を生成する（図２５：ステップＳ２５０４）。【０２０２】
具体的には、利用条件判定ロジックコード管理情報生成部４０５は、一番新しいバージョン番号が「２．０」ならば、新たなバージョン番号として「３．０」を付与する。また、既存の利用条件判定ロジックコードの相違点の度合いによって加算する値を変えるとしても良い。例えば、使用する機能が変わるなど、大きな変更の場合、「１．０」を加算し、参照する利用条件判定パラメータの変更など、相違点が軽微で端末装置３００上での動作に影響がないと判断される場合、「０．１」を加算する。【０２０３】
利用条件判定ロジックコード管理情報生成部４０５は、新たに追加する利用条件判定ロジックコードに対して新たなロジック識別子を付与する（図２５：ステップＳ２５０５）。【０２０４】
利用条件判定ロジックコード管理情報生成部４０５は、少なくとも先に分離した利用条件判定ロジックコードと、前記新たなバージョン番号と、前記新たなロジック識別子を含むデータに対して、利用条件管理サーバ４００の記憶領域（図示せず）に記憶される利用条件管理サーバ４００秘密鍵を用いてデジタル署名を付与し、利用条件判定ロジックコード格納部４１１に格納する（図２５：ステップＳ２５０６）。より本質的には、技術管理団体の責任範囲のデータに対して、利用条件管理サーバ４００秘密鍵を用いてデジタル署名を付与し、利用条件判定ロジックコード格納部４１１に格納する。【０２０５】
以上で、利用条件管理サーバ４００において利用条件判定ロジックコードを追加する際の処理について説明した。【０２０６】
以上の説明では、バージョン番号は、コンテンツ配信システムにおいて一意として説明したが、利用条件判定ロジックコード、あるいはロジック識別子毎に、バージョン番号を管理するとしても良い。この場合、ロジック識別子毎に、バージョン番号を管理し、利用条件判定ロジックコード動作検証部４０６において、動作確認が完了したバージョン番号を付与し、利用条件判定ロジックコード、ロジック識別子、バージョン番号に対してデジタル署名を付与する。【０２０７】
また、バージョン番号の他に、端末メーカー識別子、ＶＭ識別子も関連付け、動作確認が完了したＶＭを特定可能としても良い。この場合、バージョン番号、端末メーカー識別子、ＶＭ識別子の全てを満たす場合、何れか一つを満たせばよいなど、種々の制御が想定される。【０２０８】
また、以上の説明では、技術管理団体が認定した利用条件判定ロジックコードに対して、技術管理団体が署名を行うモデルについて説明した。技術管理団体ではなく、端末装置メーカーが認定した利用条件判定ロジックコードに対して、端末装置メーカーが署名を行い、端末装置３００において検証の後、利用条件バイトコードを実行するとしても良い。また、技術管理団体が署名した利用条件判定ロジックコードと、端末装置メーカーが署名した利用条件判定ロジックコードと、が共存するとしても良い。この場合、端末装置３００は、技術管理団体の公開鍵、および端末装置メーカーの公開鍵が必要となる。【０２０９】
また、同一の利用条件判定ロジックコードに対して端末装置メーカー毎に署名を付与するモデルでは、例えば、署名検証が３社以上成功すれば、実行するなどと、しても良い。【０２１０】
また、複数団体による署名付き利用条件判定ロジックコードが共存する場合、端末装置の独自ルール、あるいはユーザの意思により、どの団体を優先的に判定するかを決めても良い。また、通常、技術管理団体の署名検証を最初に実施する端末装置において、特定条件下では、異なる団体の署名検証を優先するとしても良い。例えば、メーカーＡが製造した端末装置３００は、メーカーＡのグループ会社であるサービスプロバイダＡＡの署名判定を最優先する、などである。【０２１１】
また、２以上の利用条件バイトコードが連携して利用可否判断を行うとしても良い。複数の利用条件バイトコードが連携する場合、署名検証などによる検証結果や、対象とするコンテンツ種別等により、連携要否を判断するとしても良い。【０２１２】
以上の説明では、端末装置３００は、ライセンス配信サーバ１００から取得したライセンスに含まれる利用条件判定ロジックコードを実行するとして説明した。これを、端末装置３００は予め、動作確認済みの利用条件判定ロジックコードを保持しており、前記ライセンスに含まれるロジック識別子と一致する、利用条件判定ロジックコードを端末内に保持する場合、端末内で保持する利用条件判定ロジックコードを実行するとしても良い。署名付き利用条件判定ロジックコードは、受信した利用条件判定ロジックコードを実行し、署名が付いていない、あるいは、検証に失敗した場合、端末内で保持する利用条件判定ロジックコードを実行するとしても良い。【０２１３】
また、以上の説明では、利用条件バイトコードについて説明したが、異なる用途のバイトコードであっても、責任範囲により、バイトコードを分解し、責任範囲のデータに対して署名することにより、バイトコードの信頼性を向上させることが可能である。【０２１４】
また、以上の説明では、利用条件バイトコードを構成する要素のうち、ロジック識別子、バージョン番号、利用条件判定ロジックコードを署名対象要素として、該署名対象要素に対して利用条件管理サーバが署名を付与すると説明した。利用条件管理サーバが利用する署名アルゴリズムでは署名対象部分と署名対象でない部分を分割できない形で利用条件バイトコードが構成されている場合、典型的には、利用条件バイトコードが第１のＸＭＬ要素の内容として符号化されており、利用条件管理サーバが該第１のＸＭＬ要素に対してＸＭＬ署名を付与する場合がある。この場合には、署名対象部分に対応する部分、具体的には、ロジック識別子、バージョン番号、利用条件判定ロジックコードのうち、少なくとも利用条件判定ロジックコードを内容に含む第２のＸＭＬ要素を新たに設けて、該第２のＸＭＬ要素に対して署名を付与してもよい。この際、端末装置は第２のＸＭＬ要素に対して付与された署名を検証するとともに、第１のＸＭＬ要素の内容のうち、第２のＸＭＬ要素の内容に相当する部分のデータの改竄を検証するものとする。【０２１５】
（実施の形態２）
本発明の実施の形態２におけるコンテンツ配信システムについて説明を行う。【０２１６】
図２６は、本発明の実施の形態２におけるコンテンツ配信システムの全体構成を示す図である。【０２１７】
図２６において、コンテンツ配信システムは、コンテンツ配信サーバ２１００と、ライセンス配信サーバ２１１０と、利用条件判定ロジックコード管理サーバ２１２０と、複数の端末装置２１３０（図２６では、簡略化して１つのみ図示する）と、伝送路２１４０を備えている。以下、コンテンツ配信システムの各構成要素について説明を行う。【０２１８】
コンテンツ配信サーバ２１００は、端末装置２１３０に対し、暗号化されたコンテンツを配信するサーバである。コンテンツには、コンテンツ配信システムにおいて、それを一意に特定することが可能なコンテンツＩＤが付与され配信されるものとする。【０２１９】
ライセンス配信サーバ２１１０は、各ユーザのコンテンツに対する契約（利用権利）を管理し、端末装置２１３０に対し、図３０を用いて後述するライセンス２５００を配信するサーバである。このライセンス２５００がライセンス配信サーバ２１１０から端末装置２１３０に配信される際には、ＳＡＣを通じてセキュアに配信される。ＳＡＣとしては、例えば、ＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ）を用いることができる。【０２２０】
利用条件判定ロジックコード管理サーバ２１２０は、図２７を用いて後述する利用条件判定ロジックコード管理情報２２００を生成・管理し、必要に応じて、ライセンス配信サーバ２１１０に対しそれを送信するサーバである。【０２２１】
端末装置２１３０は、ユーザによって使用される装置であり、ライセンス配信サーバ２１１０から配信されたライセンス２５００を用いて、コンテンツ配信サーバ２１００から配信されたコンテンツを利用する装置である。各端末装置２１３０にはコンテンツ配信システムにおいて、それを一意に特定することが可能なＩＤが付与されているものとする。【０２２２】
伝送路２１４０は、インターネット、ＣＡＴＶ（Ｃａｂｌｅ  Ｔｅｌｅｖｉｓｉｏｎ）、放送波等の有線伝送媒体、無線伝送媒体、または可搬型記録媒体などであり、コンテンツ配信サーバ２１００、ライセンス配信サーバ２１１０、利用条件判定ロジックコード管理サーバ２１２０、端末装置２１３０間をデータ交換可能に接続するものである。【０２２３】
なお、本実施の形態においては、コンテンツ配信サーバ２１００とライセンス配信サーバ２１１０は、サービス事業者によって運営され、利用条件判定ロジックコード管理サーバ２１２０はコンテンツ配信システムに技術仕様を提供する技術管理団体によって運営されることとするが、勿論これに限るわけではない。【０２２４】
以上で、コンテンツ配信システムの全体構成に関する説明を終了する。【０２２５】
ここで以降の詳細な説明に先立ち、本実施の形態において端末装置２１３０上でのコンテンツの利用可否判定に用いる情報の定義を行なう。【０２２６】
まず、端末装置２１３０において利用可否判定を行なう利用条件バイトコードについて説明する。利用条件バイトコードは、端末装置２１３０上で動作するプログラムであり、少なくとも利用可否判定を行なうロジックと、前記ロジックが参照するパラメータを含む。具体的には、「現在時刻＜パラメータならば、利用可」というロジックと、「２００７年８月８日」といったパラメータからなり、「現在時刻が、２００７年８月８日より前ならば、利用可、そうでなければ利用不可」といった利用可否判定を行なうプログラムである。【０２２７】
本実施の形態では、前記ロジックを示すプログラム、およびデータを、利用条件判定ロジックコード、前記パラメータを示すプログラム、およびデータを、利用条件判定パラメータと呼ぶこととする。具体的には、利用条件判定ロジックコードは、前述の例の他に、「現在利用回数＜パラメータならば、利用可」、「初回利用時刻＋パラメータ＜現在時刻ならば、利用可」、「２００７年７月７日＜現在時刻＜パラメータならば、利用可」などがある。また、利用条件判定パラメータは、前述の例の他に、「１０回」、「２日間」、「ライセンス取得時刻＋３日」などがある。具体例で説明したように、利用条件判定ロジックコードに「２００７年７月７日」のような数値データを含む、あるいは、利用条件判定パラメータに「ライセンス取得時刻＋」といった演算プログラムを含む、としても良いものとする。【０２２８】
以上で利用条件バイトコードに関する説明を終わる。【０２２９】
次に、図２７を用いて、利用条件判定ロジックコード管理情報２２００について説明を行う。利用条件判定ロジックコード管理情報２２００は、ロジックコードＩＤ２２０１と、プロファイル２２０２と、バージョン２２０３と、利用条件判定ロジックコード２２０４と、動作検証状況情報２２０５を含む情報である。【０２３０】
ロジックコードＩＤ２２０１とは、利用条件判定ロジックコード２２０４を一意に特定するＩＤである。プロファイル２２０２は、利用条件判定ロジックコード２２０４のプロファイルを示す情報であり、例えば、「期限判定」や「回数判定」といった利用条件の種別や、「サブスクリプション」や「レンタル」といったサービスの種別などを設定することが想定される。バージョン２２０３は、利用条件判定ロジックコード２２０４のバージョンを示す情報である。利用条件判定ロジックコード２２０４は、前述の利用条件バイトコードに含まれる利用条件判定ロジックコードのことである。動作検証状況情報２２０５は、利用条件判定ロジックコード２２０４の各端末装置２１３０における動作検証状況を示す情報である。本実施の形態においては、出荷済みの端末装置２１３０のうち、動作検証が完了していない端末装置２１３０の端末ＩＤを列挙した情報であるとする。【０２３１】
図２７においては、例えば、ロジックコードＩＤ２２０１が「０００２」である利用条件判定ロジックコード２２０４は「現在日時＜初回利用時刻＋パラメータ」であり、そのプロファイル２２０２は「期限」、バージョン２２０３は「２．０」であり、動作検証状況情報２２０５に記載されている動作未検証の端末装置２１３０のＩＤは「０００１００００」であることを示している。【０２３２】
利用条件判定ロジックコード管理情報２２００は、次に説明する通り、利用条件判定ロジックコード管理サーバ２１２０によって、生成・管理されることとする。【０２３３】
利用条件判定ロジックコード管理サーバ２１２０は、利用条件判定ロジックコード２２０４を生成し、それにロジックコードＩＤ２２０１、プロファイル２２０２、バージョン２２０３を付与するとともに利用条件判定ロジックコード管理情報２２００にこれらの情報を登録する。また、利用条件判定ロジックコード管理サーバ２１２０は、端末装置２１３０の製造事業者にこれらの情報を提供する。【０２３４】
端末装置２１３０の製造事業者は、利用条件判定ロジックコード２２０４について端末装置２１３０における動作検証を行い、適宜その完了状況を利用条件判定ロジックコード管理サーバ２１２０に通知する。【０２３５】
利用条件判定ロジックコード管理サーバ２１２０は、端末装置２１３０の製造事業者から通知された情報をもとに、動作検証状況情報２２０５を生成・更新し、利用条件判定ロジックコード管理情報２２００に登録する。【０２３６】
以上で、利用条件判定ロジックコード管理情報２２００に関する説明を終わる。【０２３７】
次に、図２８を用いて、ライセンス配信サーバ２１１０の全体構成について説明する。図２８においてライセンス配信サーバ２１１０は、通信部２３０１と、利用条件判定ロジックコード管理データベース２３０２と、利用権利管理データベース２３０３と、ライセンス生成・送信部２３０４と、動作検証状況確認部２３０５と、動作検証状況フラグ設定部２３０６とから構成される。以下、各構成要素について説明を行う。【０２３８】
通信部２３０１は、伝送路２１４０を通じて利用条件判定ロジックコード管理サーバ２１２０や端末装置２１３０と通信を行う処理部である。【０２３９】
利用条件判定ロジックコード管理データベース２３０２は、前述の利用条件判定ロジックコード管理情報２２００を管理するデータベースである。利用条件判定ロジックコード管理データベース２３０２は、必要に応じて、適宜、利用条件判定ロジックコード管理サーバ２１２０にアクセスし、利用条件判定ロジックコード管理情報２２００を更新する。【０２４０】
利用権利管理データベース２３０３は、ユーザが購入したコンテンツの利用権利を管理するデータベースである。図２９にその一例を示す。図２９において、利用権利管理データベース２３０３は、端末ＩＤ２４０１と、利用権利ＩＤ２４０２と、ロジックコードＩＤ２４０３と、利用条件パラメータ２４０４と、コンテンツ鍵２４０５とから構成される。【０２４１】
端末ＩＤ２４０１には、各ユーザが所有する端末装置２１３０のＩＤが記述される。利用権利ＩＤ２４０２には、各ユーザが購入した利用権利のＩＤが記述される。ロジックコードＩＤ２４０３には、利用権利ＩＤ２４０２によって特定される利用権利において使用される利用条件判定ロジックコード２２０４のＩＤが記述される。利用条件パラメータ２４０４には、利用権利ＩＤ２４０２によって特定される利用権利において使用される利用条件パラメータが記述される。コンテンツ鍵２４０５には、利用権利ＩＤ２４０２によって特定される利用権利を用いて利用可能なコンテンツを復号するための鍵が記述される。【０２４２】
図２９においては、例えば、端末ＩＤ２４０１が「０００１０００２」である端末装置２１３０を有するユーザは、利用権利ＩＤ２４０２が「００２１」の利用権利を購入していることを示している。そして、その利用権利で使用される、利用条件判定ロジックコードのロジックコードＩＤ２４０３は「０００３」、利用条件パラメータ２４０４は「１回」であり、その利用権利を用いて利用するコンテンツの復号鍵は「３３３３３３」であることを示している。【０２４３】
図２８に戻り、ライセンス生成・送信部２３０４は、端末装置２１３０からの要求に応じて、図３０を用いて説明するライセンス２５００を生成し、ユーザ端末装置２１３０に送信する処理部である。【０２４４】
ここで、ライセンス生成・送信部２３０４が生成・送信するライセンス２５００について説明を行う。【０２４５】
図３０に示す通り、ライセンス２５００は、プロファイル２５０１と、バージョン２５０２と、利用条件判定ロジックコード２５０３と利用条件パラメータ２５０４とから構成される利用条件バイトコード２５０８と、動作検証状況フラグ２５０５と、コンテンツ鍵２５０６と、署名２５０７を含むデータである。【０２４６】
プロファイル２５０１、バージョン２５０２には、ライセンス２５００に含まれる利用条件判定ロジックコード２５０３に付与されたプロファイル、バージョンが記述される。利用条件バイトコード２５０８には、ライセンス２５００の利用可否判定にあたり実行される利用条件バイトコードが記述される。動作検証状況フラグ２５０５には、ライセンス２５００を要求している端末装置２１３０において、利用条件判定ロジックコード２５０３の動作検証が済んでいるか否かを示す情報が記述される。コンテンツ鍵２５０６には、ライセンス２５００を用いて利用するコンテンツの復号鍵が記述される。署名２５０７には、プロファイル２５０１と、バージョン２５０２と、利用条件判定ロジックコード２５０３と、利用条件パラメータ２５０４と、動作検証状況フラグ２５０５と、コンテンツ鍵２５０６をまとめたデータに対する、サービス事業者の署名データが記述される。【０２４７】
なお、ライセンス２５００の生成にあたり、プロファイル２５０１と、バージョン２５０２と、利用条件バイトコード２５０８と、コンテンツ鍵２５０６と、署名２５０７については、ライセンス生成・送信部２３０４が値の設定を行うが、動作検証状況フラグ２５０５については、後述する動作検証状況フラグ設定部２３０６が値の設定を行うものとする。【０２４８】
図２８に戻り、動作検証状況確認部２３０５は、ライセンス２５００を要求している端末装置２１３０において、ライセンス２５００に含まれる利用条件判定ロジックコード２５０３の動作検証が済んでいるか否かを判定する処理部である。【０２４９】
動作検証状況フラグ設定部２３０６は、動作検証状況確認部２３０５の判定結果に基づいて、ライセンス２５００の動作検証状況フラグ２５０５に、値を設定する処理部である。【０２５０】
以上で、本実施の形態におけるライセンス配信サーバ２１１０の全体構成に関する説明を終了する。【０２５１】
次に、図３１を参照して、端末装置２１３０の全体構成について説明を行う。端末装置２１３０は、通信部２６０１と、コンテンツ取得部２６０２と、ライセンス取得部２６０３と、利用条件バイトコード実行可否判定部２６０４と、利用条件バイトコード実行部２６０５と、ライセンス利用可否判定部２６０６と、コンテンツ利用部２６０７と、動作検証済みプロファイル・バージョン情報管理部２６０８と、ライセンス管理部２６０９と、コンテンツ管理部２６１０から構成される。以下、各構成要素について説明を行う。【０２５２】
通信部２６０１は、伝送路２１４０を通じてライセンス配信サーバ２１１０や他の端末装置２１３０と通信を行う処理部である。【０２５３】
コンテンツ取得部２６０２は、コンテンツ配信サーバ２１００からコンテンツを取得し、コンテンツ管理部２６１０に蓄積する処理部である。【０２５４】
ライセンス取得部２６０３は、ライセンス配信サーバ２１１０からライセンス２５００を取得し、ライセンス管理部２６０９に蓄積する処理部である。ライセンス取得部２６０３は、ライセンス配信サーバ２１１０に対し、図３２に示すライセンス要求メッセージ２７００を送信し、そのレスポンスとして図３３に示すライセンス要求レスポンスメッセージ２８００を受信することで、ライセンス２５００を取得するものとする。【０２５５】
ここで、ライセンス要求メッセージ２７００とライセンス要求レスポンスメッセージ２８００について説明する。【０２５６】
図３２において、ライセンス要求メッセージ２７００は、ライセンス要求メッセージ識別子２７０１と、利用権利ＩＤ２７０２と、端末ＩＤ２７０３とから構成される。ライセンス要求メッセージ識別子２７０１には、このデータがライセンス要求メッセージ２７００であることを示す情報が記述される。利用権利ＩＤ２７０２は、要求するライセンス２５００の発行するもととなる利用権利のＩＤが記述される。端末ＩＤ２７０３には、ライセンス２５００を要求する端末装置２１３０のＩＤが記述される。【０２５７】
図３３において、ライセンス要求レスポンスメッセージ２８００は、ライセンス要求レスポンスメッセージ識別子２８０１と、ステータスコード２８０２と、ライセンス２５００とから構成される。ライセンス要求レスポンスメッセージ識別子２８０１には、このデータがライセンス要求レスポンスメッセージ２８００であることを示す情報が記述される。ステータスコード２８０２には、発行を要求されたライセンス２５００の発行に成功したか否かを示す情報が記述される。ライセンス２５００には、発行を要求されたライセンス２５００が記述される。【０２５８】
図３１に戻り、利用条件バイトコード実行可否判定部２６０４は、ライセンス２５００に含まれる利用条件バイトコード２５０８が実行可能であるかどうかを判定する処理部である。利用条件バイトコード実行可否判定部２６０４は、動作検証状況フラグ２５０５、及び、後述する動作検証済みプロファイル・バージョン情報管理部２６０８に管理されている動作検証済みプロファイル・バージョン情報に基づき、利用条件バイトコード２５０８に含まれる利用条件判定ロジックコード２５０３が端末装置２１３０で動作検証済みであるかどうかを確認し、検証済みである場合に実行可であると判定するものとする。【０２５９】
利用条件バイトコード実行部２６０５は、ライセンス２５００に含まれる利用条件バイトコード２５０８を実行する処理部である。【０２６０】
ライセンス利用可否判定部２６０６は、ライセンス２５００の利用可否を判定する処理部である。ライセンス利用可否判定部２６０６は、利用条件バイトコード実行部２６０５が利用条件バイトコード２５０８を実行し、その結果が「ＯＫ」であった場合に、ライセンス２５００の利用が可であると判定するものとする。【０２６１】
コンテンツ利用部２６０７は、コンテンツを利用する処理部であり、コンテンツを再生したり、記録媒体に書き出したりする処理部である。【０２６２】
動作検証済みプロファイル・バージョン情報管理部２６０８は、端末装置２１３０で動作検証が完了している利用条件判定ロジックコードのプロファイル・バージョンを示す情報である動作検証済みプロファイル・バージョン情報を管理している。なお、動作検証済みプロファイル・バージョン情報は端末装置２１３０出荷時に記録されるものであるが、ソフトウェア更新機能を有する端末装置２１３０では、ソフトウェアの更新に伴って、動作検証済みプロファイル・バージョン情報も適宜更新されるものとする。【０２６３】
ライセンス管理部２６０９は、ライセンス取得部２６０３により取得されたライセンス２５００を蓄積・管理する処理部である。【０２６４】
コンテンツ管理部２６１０は、コンテンツ取得部２６０２により取得されたコンテンツを蓄積・管理する処理部である。【０２６５】
以上で、本実施の形態における端末装置２１３０の全体構成についての説明を終わる。【０２６６】
次に、フローチャートを参照して、本実施の形態におけるコンテンツ配信システムの動作について説明を行う。【０２６７】
まず、図３４に示すフローチャートを参照して、端末装置２１３０がライセンス配信サーバ２１１０からライセンス２５００を取得するライセンス取得処理の動作について説明する。【０２６８】
Ｓ９０１： ライセンス取得部２６０３は、ユーザからのライセンス取得指示により、ライセンス取得処理を開始する。ユーザは端末装置２１３０のアプリケーションに対して、取得対象であるライセンス２５００を生成する元となる利用権利のＩＤを特定する情報を入力することとする。ここで、ユーザの入力は、例えば、利用権利の購入時に端末装置２１３０に取得されたデータをもとに行われるものとし、そのデータとしては、例えばコンテンツのＩＤと利用権利のＩＤとを含むデータなどが考えられる。【０２６９】
ライセンス取得処理が開始されると、ライセンス取得部２６０３は、ライセンス要求メッセージ２７００を生成し、ライセンス配信サーバ２１１０に送信する。ここで、ライセンス取得部２６０３は、ライセンス要求メッセージ２７００の利用権利ＩＤ２７０２には、ユーザから入力された利用権利のＩＤを特定する情報をもとに値を設定し、端末ＩＤ２７０３には端末装置２１３０のＩＤを設定することとする。【０２７０】
Ｓ９２１：ライセンス生成・送信部２３０４は、ライセンス要求メッセージ２７００を受信する。【０２７１】
Ｓ９２２：ライセンス生成・送信部２３０４は、利用権利管理データベース２３０３を参照し、ライセンス２５００を発行する元となる利用権利が登録されているかどうかを確認することで、ライセンス２５００の発行可否を判定する。【０２７２】
具体的には、ライセンス生成・送信部２３０４は、利用権利管理データベース２３０３を参照し、ライセンス要求メッセージ２７００に含まれる端末ＩＤ２７０３に設定されたＩＤと同一のＩＤが端末ＩＤ２４０１として登録されているかを確認する。登録されている場合には、更に、利用権利ＩＤ２７０２に設定されているＩＤと同一のＩＤが、利用権利ＩＤ２４０２として、その端末ＩＤ２４０１と関連づけられて登録されているかを確認する。登録されている場合には、そのＩＤを持つ利用権利を、ライセンスを発行する元となる利用権利であると特定すると共に、ライセンス発行可と判定するものとする。【０２７３】
Ｓ９２３：Ｓ９２２における判定の結果、ライセンス発行可の場合には、Ｓ９２４の処理に進む。Ｓ９２２における判定の結果、ライセンス発行不可の場合には、Ｓ９２５の処理に進む。【０２７４】
Ｓ９２４：図３５を用いて後述するラインセンス生成プロセスを実行し、ライセンス２５００を生成する。【０２７５】
Ｓ９２５：ライセンス生成・送信部２３０４は、ライセンス要求レスポンスメッセージ２８００を生成し、端末装置２１３０に送信する。ライセンス生成・送信部２３０４は、ライセンス要求レスポンスメッセージ２８００の生成にあたっては、Ｓ９２３でライセンス発行不可と判定した場合には、ステータスコード２８０２には「失敗」と設定する（ライセンス２５００は設定しない）こととする。Ｓ９２３でライセンス発行可と判定した場合には、ステータスコード２８０２には「成功」と設定し、ライセンス２５００にはＳ９２４で生成したライセンス２５００を設定することとする。【０２７６】
Ｓ９０２：ライセンス取得部２６０３は、ライセンス要求レスポンスメッセージ２８００を受信する。【０２７７】
Ｓ９０３：ライセンス取得部２６０３は、ライセンス要求レスポンスメッセージ２８００のステータスコード２８０２を参照し、ライセンス取得に成功したか否かを判定する。ライセンス取得が成功している場合、Ｓ９０４の処理に進む。ライセンス取得に失敗している場合、その旨を図示しないディスプレイなどを通じてユーザに通知し処理を終了する。【０２７８】
Ｓ９０４：利用条件バイトコード実行可否判定部２６０４は、図３６を用いて後述する利用条件バイトコード実行可否判定プロセスを実行し、ライセンス２５００に含まれる利用条件バイトコード２５０８を実行可能か否か判定する。【０２７９】
Ｓ９０５：Ｓ９０４で「実行可」と判定された場合、Ｓ９０６の処理に進む。Ｓ９０４で「実行不可」と判定された場合、その旨を図示しないディスプレイなどを通じてユーザに通知し処理を終了する。【０２８０】
Ｓ９０６：ライセンス取得部２６０３は、取得したライセンス２５００を、そのライセンス２５００を用いて利用するコンテンツのコンテンツＩＤと関連付けてライセンス管理部２６０９に蓄積する。【０２８１】
Ｓ９０７：ライセンス取得部２６０３は、ライセンス２５００を受け取ったことを通知するライセンス受信完了通知メッセージを生成し、ライセンス配信サーバ２１１０に送信する。【０２８２】
Ｓ９２６：ライセンス生成・送信部２３０４は、ライセンス受信完了通知メッセージを受信する。【０２８３】
Ｓ９２７：ライセンス生成・送信部２３０４は、ライセンス発行確定処理を行う。この処理としては、例えば、ライセンス２５００の発行回数を「１」加算するといった処理などが考えられる。【０２８４】
Ｓ９２８：ライセンス生成・送信部２３０４は、ＡＣＫメッセージを生成し、端末装置２１３０に送信する。【０２８５】
Ｓ９０８：ライセンス取得部２６０３は、ＡＣＫメッセージを受信する。【０２８６】
なお、Ｓ９０４で実行可と判定した場合に、Ｓ９０７でライセンス受信完了通知メッセージを生成・送信すると説明したが、Ｓ９０４で実行不可と判定した場合に、ライセンス取得のキャンセルを通知するメッセージをライセンス配信サーバ２１１０に送信することとしてもよい。【０２８７】
なお、Ｓ９０７でライセンス受信完了通知メッセージを送信後に、そのレスポンスとしてＡＣＫメッセージを受信できない場合には、続けて再送を行ったり、また、一旦処理を終了し、後日処理を再開可能な情報を記憶し再送するようにしたりしても良いものとする。【０２８８】
以上で、本実施の形態におけるライセンス取得処理の動作についての説明を終わる。【０２８９】
次に、図３５に示すフローチャートを参照して、本実施の形態におけるライセンス生成プロセスの動作（図３４のＳ９２４の詳細）について説明する。【０２９０】
Ｓ１００１：ライセンス生成・送信部２３０４は、生成するライセンス２５００に、動作検証状況フラグ２５０５、署名２５０７以外の各情報を設定する。【０２９１】
具体的には、ライセンス生成・送信部２３０４は、まず、利用権利管理データベース２３０３を参照し、ライセンス２５００を発行する元となる利用権利のロジックコードＩＤ２４０３を確認する。次に、利用条件判定ロジックコード管理データベース２３０２を参照し、そのロジックコードＩＤ２４０３と同一のロジックコードＩＤ２２０１をもつ利用条件判定ロジックコード２２０４をライセンス２５００に設定するものとして特定する。ライセンス生成・送信部２３０４は、特定した利用条件判定ロジックコード２２０４のプロファイル２２０２、バージョン２２０３、をライセンス２５００のプロファイル２５０１、バージョン２５０２に設定し、利用条件判定ロジックコード２５０３には、特定した利用条件判定ロジックコード２２０４を設定する。また、ライセンス生成・送信部２３０４は、ライセンス２５００の利用条件パラメータ２５０４、コンテンツ鍵２５０６には、ライセンス２５００を発行する元となる利用権利の利用条件パラメータ２４０４、コンテンツ鍵２４０５を設定する。【０２９２】
Ｓ１００２：動作検証状況確認部２３０５は、利用条件判定ロジックコード管理データベース２３０２を参照し、ライセンス要求メッセージ２７００に含まれる端末ＩＤ２７０３で特定される端末装置２１３０において、利用条件判定ロジックコード２２０４が動作検証済みであるか否かを判定する。【０２９３】
具体的には、動作検証状況確認部２３０５は、Ｓ１００１でライセンス２５００に設定するものとして特定した利用条件判定ロジックコード２２０４の動作検証状況情報２２０５を参照し、ライセンス要求メッセージ２７００に含まれる端末ＩＤ２７０３に設定されたＩＤと同一のＩＤが、検証未である端末装置２１３０のＩＤであるとして記載されているか否かを判定する。ここで、検証未である端末装置２１３０のＩＤであるとして記載がある場合には、検証未であると判定し、記載が無い場合には、検証済みであると判定することとする。【０２９４】
Ｓ１００３：Ｓ１００２で、「検証未」と判定した場合には、Ｓ１００５の処理に進む。Ｓ１００２で「検証済み」と判定した場合には、Ｓ１００４の処理に進む。【０２９５】
Ｓ１００４：動作検証状況フラグ設定部２３０６は、動作検証状況フラグ２５０５に、「検証済み」と設定する。【０２９６】
Ｓ１００５：動作検証状況フラグ設定部２３０６は、動作検証状況フラグ２５０５に、「検証未」と設定する。【０２９７】
Ｓ１００６：ライセンス生成・送信部２３０４は、プロファイル２５０１と、バージョン２５０２と、利用条件判定ロジックコード２５０３と、利用条件パラメータ２５０４と、動作検証状況フラグ２５０５と、コンテンツ鍵２５０６をまとめたデータに対して、サービス事業者の秘密鍵を用いて署名データを生成し、ライセンス２５００の署名２５０７に設定する。【０２９８】
以上で、本実施の形態におけるライセンス生成プロセスの動作についての説明を終わる。【０２９９】
次に、図３６に示すフローチャートを参照して、本実施の形態における利用条件バイトコード実行可否判定プロセスの動作（図３４のＳ９０４の詳細）について説明する。【０３００】
Ｓ１１０１：利用条件バイトコード実行可否判定部２６０４は、図示しない記憶領域に記録されているサービス事業者の公開鍵を用いてライセンス２５００の署名２５０７の検証を行う。【０３０１】
Ｓ１１０２：Ｓ１１０１で署名検証の結果が「ＯＫ」の場合、Ｓ１１０３の処理に進む。Ｓ１１０１で署名検証の結果が「ＮＧ」の場合、Ｓ１１０８の処理に進む。【０３０２】
Ｓ１１０３：利用条件バイトコード実行可否判定部２６０４は、ライセンス２５００の動作検証状況フラグ２５０５の値を確認する。動作検証状況フラグ２５０５の値が「検証済み」の場合、Ｓ１１０７の処理に進む。動作検証状況フラグ２５０５の値が「検証未」の場合、Ｓ１１０４の処理に進む。【０３０３】
Ｓ１１０４：端末装置２１３０がソフトウェア更新機能を有している場合には、Ｓ１１０５の処理に進む。端末装置２１３０がソフトウェア更新機能を有していない場合には、Ｓ１１０８の処理に進む。【０３０４】
Ｓ１１０５：利用条件バイトコード実行可否判定部２６０４は、動作検証済みプロファイル・バージョン情報管理部２６０８に管理されている動作検証済みプロファイル・バージョン情報を参照し、ライセンス２５００に含まれるプロファイル２５０１、バージョン２５０２が端末装置２１３０で検証済みのプロファイル、バージョンであるか否かを確認する。【０３０５】
Ｓ１１０６：Ｓ１１０５で、検証済みのプロファイル、バージョンであると判定された場合には、Ｓ１１０７の処理に進む。Ｓ１１０５で、検証済みのプロファイル、バージョンでないと判定された場合には、Ｓ１１０８の処理に進む。【０３０６】
Ｓ１１０７：利用条件バイトコード実行可否判定部２６０４は、ライセンス２５００に含まれる利用条件バイトコード２５０８は「実行可」であると判定する。【０３０７】
Ｓ１１０８：利用条件バイトコード実行可否判定部２６０４は、ライセンス２５００に含まれる利用条件バイトコード２５０８は「実行不可」であると判定する。【０３０８】
以上で、本実施の形態における利用条件バイトコード実行可否判定プロセスの動作についての説明を終わる。【０３０９】
次に、図３７に示すフローチャートを参照して、端末装置２１３０がコンテンツを利用するコンテンツ利用処理の動作について説明する。【０３１０】
Ｓ１２０１：ライセンス利用可否判定部２６０６は、ライセンス管理部２６０９から、ユーザが利用を所望したコンテンツのコンテンツＩＤと関連付けられて記憶されているライセンス２５００を取り出す。【０３１１】
Ｓ１２０２：利用条件バイトコード実行可否判定部２６０４は、前述した利用条件バイトコード実行可否判定プロセスを実行する。【０３１２】
Ｓ１２０３：Ｓ１２０２で「実行可」と判定された場合、Ｓ１２０４の処理に進む。Ｓ１２０２で「実行不可」と判定された場合、その旨を図示しないディスプレイなどを通じてユーザに通知し処理を終了する。【０３１３】
Ｓ１２０４：利用条件バイトコード実行部２６０５は利用条件バイトコード２５０８を実行する。【０３１４】
Ｓ１２０５：ライセンス利用可否判定部２６０６は、Ｓ１２０４の実行結果が「ＯＫ」の場合、「ライセンス利用可」と判定し、Ｓ１２０６の処理に進む。ライセンス利用可否判定部２６０６は、Ｓ１２０４の実行結果が「ＮＧ」の場合には、「ライセンス利用不可」と判定し、その旨を図示しないディスプレイなどを通じてユーザに通知し処理を終了する。【０３１５】
Ｓ１２０６：コンテンツ利用部２６０７は、コンテンツ管理部２６１０からユーザが利用を所望しているコンテンツを取り出し、ライセンス２５００のコンテンツ鍵２５０６を用いて、それを復号し利用を行う。【０３１６】
以上で、本実施の形態におけるコンテンツ利用処理の動作についての説明を終わる。【０３１７】
以上で、本実施の形態におけるコンテンツ配信システムの動作についての説明を終わる。【０３１８】
なお、本実施の形態の変形例として、図３８に示す通り、ライセンス要求メッセージ２７００ａに端末ＩＤ２７０３を複数含め、図３９に示す通り、ライセンス２５００ａに端末ＩＤ２７０３と動作検証状況フラグ２５０５との組を複数含める形態が考えられる。この変形例は、端末装置２１３０間でライセンス２５００の転送を行うことを想定した実施の形態である。【０３１９】
本変形例においては、Ｓ９０１においてライセンス取得部２６０３は、ライセンス２５００を転送する可能性のある端末装置２１３０のＩＤを収集し、ライセンス要求メッセージ２７００に含めるものとする。また、Ｓ９２４のライセンス生成プロセスにおいて、動作検証状況確認部２３０５は、ライセンス要求メッセージ２７００に含まれる端末ＩＤ２７０３で特定される端末装置２１３０毎に、利用条件判定ロジックコードの動作検証状況を確認する。そして、動作検証状況フラグ設定部２３０６は、その結果を、端末ＩＤ２７０３と組となる動作検証状況フラグ２５０５に設定するものとする。（Ｓ１００２〜Ｓ１００５の処理を端末装置２１３０毎に行う）この場合、Ｓ１１０３で利用条件バイトコード実行可否判定部２６０４が確認する動作検証状況フラグ２５０５は、自端末装置２１３０の端末ＩＤ２７０３と組となっている動作検証状況フラグ２５０５であるとする。このようにすることによって、ライセンス２５００を他の端末装置２１３０に転送した場合でも、その転送先端末装置２１３０において、そのライセンス２５００に含まれる利用条件判定ロジックコード２５０３の動作検証状況を確認することが可能となる、という効果が得られる。【０３２０】
以上で、実施の形態２におけるコンテンツ配信システムの説明を終わる。【０３２１】
（実施の形態３）
実施の形態３におけるコンテンツ配信システムについて説明を行う。なお、実施の形態３におけるコンテンツ配信システムは、実施の形態２のコンテンツ配信システムと一部のみ異なる為、その差異のみ説明することとする。【０３２２】
実施の形態３におけるコンテンツ配信システムが実施の形態２におけるコンテンツ配信システムと異なる点は、ライセンス配信サーバ２１１０において利用条件判定ロジックコードの動作検証状況を確認（図３５におけるＳ１００２〜Ｓ１００５の処理）せず、かわりに端末装置２１３０においてその処理を行う点である。この為、図４１に示す通り実施の形態３におけるライセンス３６００は、動作検証状況フラグ２５０５を含まず、かわりに動作検証状況情報３６０１を含む。動作検証状況情報３６０１には、ライセンス３６００に含まれる利用条件判定ロジックコード２５０３に対応した動作検証状況情報２２０５が設定されるものとする。【０３２３】
図４０に実施の形態３におけるライセンス配信サーバ３５１０の構成図を示す。ライセンス配信サーバ３５１０が実施の形態２におけるライセンス配信サーバ２１１０と異なる点は、動作検証状況確認部２３０５と動作検証状況フラグ設定部２３０６を有さず、代わりに動作検証状況情報設定部３５０１を有する点である。動作検証状況情報設定部３５０１は、ライセンス３６００の動作検証状況情報３６０１に情報を設定する処理部である。動作検証状況情報設定部３５０１は、利用条件判定ロジックコード管理データベース２３０２を参照し、ライセンス３６００に設定された利用条件判定ロジックコード２５０３に対応した動作検証状況情報２２０５を、動作検証状況情報３６０１に設定するものとする。【０３２４】
実施の形態３における端末装置２１３０が実施の形態２の端末装置２１３０と異なる点は、図４２に示す通り、利用条件バイトコード実行可否判定プロセスの動作が異なる点である。実施の形態３における利用条件バイトコード実行可否判定プロセスが実施の形態２の利用条件バイトコード実行可否判定プロセスと異なる点は、Ｓ１１０３の処理が無く、かわりにＳ１７０１、Ｓ１７０２の処理が追加されている点である。他のステップの処理については、実施の形態２の利用条件バイトコード実行可否判定プロセスと同様である。【０３２５】
以下、Ｓ１７０１、及び、Ｓ１７０２の処理について説明を行う。【０３２６】
Ｓ１７０１：利用条件バイトコード実行可否判定部２６０４は、ライセンス３６００の動作検証状況情報３６０１を参照し、自らのＩＤが、検証未である端末装置２１３０のＩＤであるとして記載されているか否かを判定する。ここで、検証未である端末装置２１３０のＩＤであるとして記載がある場合には、検証未であると判定し、記載が無い場合には、検証済みであると判定することとする。【０３２７】
Ｓ１７０２：Ｓ１７０１で「検証未」と判定した場合には、Ｓ１１０４の処理に進む。Ｓ１７０２で「検証済み」と判定した場合には、Ｓ１１０７の処理に進む。【０３２８】
以上で、実施の形態３における利用条件バイトコード実行可否判定プロセスの動作についての説明を終わる。【０３２９】
以上で、実施の形態３におけるコンテンツ配信システムの説明を終わる。【０３３０】
なお、本実施の形態２及び３における動作検証状況情報２２０５、３６０１の変形例として、図４３にその一例を示す動作検証状況情報３８００を使用しても良い。図４３において、動作検証状況情報３８００は、マスクビット数３８０１と比較ＩＤ３８０２とから構成される。マスクビット数３８０１は、マスクデータを導出する為の情報であり、マスクビット数３８０１の値をＮとした場合、比較するビット列のうち上位Ｎビットを「１」にし残りの下位ビットがあればその下位ビット全てを「０」とした形式のマスクデータを導出するものとする。比較ＩＤ３８０２は、端末のＩＤと、導出したマスクデータとのビット毎の論理積を求めた結果と比較する為のＩＤであり、これが一致した場合には、動作未検証であることを示すこととする。マスクビット数３８０１と組をなす比較ＩＤ３８０２は、これを構成するビット列のうち上位Ｎビットの内容のみが有用であり、その他の値は例えば「０」とした形式のデータとなる。ここで、動作検証状況情報３８００を用い、端末装置２１３０における利用条件判定ロジックコードの検証状況を確認する際の動作について説明する。【０３３１】
（１）マスクビット数３８０１からマスクデータを導出する。
（２）動作検証状況の確認対象の端末装置２１３０のＩＤと導出したマスクデータとのビット毎の論理積を求める。
（３）（２）で求めた論理積と比較ＩＤ３８０２とを比較する。
（４）比較の結果一致する場合には、動作未検証であると判定する。比較の結果が一致しない場合には、次のマスクビット数３８０１と比較ＩＤ３８０２の組について（１）〜（４）の処理を繰り返す。
（５）全てのマスクビット数３８０１と比較ＩＤ３８０２の組について処理を行っても（４）で比較結果が一致しない場合には、動作検証済みであると判定する。【０３３２】
以上で、動作検証状況情報３８００を用いた、端末装置２１３０における利用条件判定ロジックコードの検証状況を確認する際の動作についての説明を終わる。この動作検証状況情報３８００を用いることによって、動作検証状況情報のデータサイズを削減することができるという効果を得ることができる。【０３３３】
なお、動作検証状況情報の別の変形例として、次のような構成としてもよい。各端末装置２１３０には互いに素な数字がＩＤとして割り当てられ、動作検証状況情報としては、動作検証済みの端末に割り当てられたＩＤを掛け合わせたものを設定する。この場合には、端末装置２１３０は動作検証状況情報設定された数字が、自らに割り当てられたＩＤで割りきれた場合に、動作検証済みであると判断することとする。【０３３４】
なお、本実施の形態２及び３において、動作検証状況情報２２０５、及び、動作検証状況情報３６０１には、検証未である端末装置２１３０のＩＤを記載するとして説明を行ったがこれに限るわけではなく、検証済みである端末装置２１３０のＩＤを記載するとしても良い。また、端末装置２１３０のＩＤを記載するとしたが、ＩＤに限るわけではなく、製造事業者名、機種名、ロット番号など、端末装置２１３０を特定可能な他の情報であっても良いものとする。また、端末装置２１３０を特定可能な情報ではなく、利用条件バイトコード実行部２６０５を特定可能な情報を記述しても良いものとする。【０３３５】
なお、動作検証状況情報２２０５、及び、動作検証状況情報３６０１に記載するＩＤは、利用条件判定ロジックコード管理サーバ２１２０において所定のルールに従って変形を行い記載しても良いものとする。この場合、端末装置２１３０においても、自身のＩＤを所定のルールに従って変形することでＳ１７０１の処理を行うこととする。これにより、サービス事業者に対し、各端末装置２１３０での検証状況を秘匿することが可能となるという効果が得られる。【０３３６】
なお、実施の形態３において、動作検証状況情報２２０５、及び、動作検証状況情報３６０１は、次のような変形例であってもよいものとする。【０３３７】
動作検証状況情報２２０５、及び、動作検証状況情報３６０１は、端末装置２１３０の各製造事業者が独自に作成したデータの集合であるとする。この場合、各製造事業者は、端末装置２１３０において、利用条件判定ロジックコードの検証状況が判断可能なデータを独自のルールで作成し、それを利用条件判定ロジックコード管理サーバ２１２０に送信するものとする。【０３３８】
利用条件判定ロジックコード管理サーバ２１２０は、端末装置製造事業者からの独自データを収集して、その集合を動作検証状況情報２２０５として利用条件判定ロジックコード管理情報２２００に登録するものとする。ライセンス配信サーバ２１１０は、利用条件判定ロジックコード管理情報２２００を利用条件判定ロジックコード管理サーバ２１２０から取得して利用条件判定ロジックコード管理データベース２３０２に管理する。ライセンス３６００発行時には、動作検証状況情報３６０１として、上記動作検証状況情報２２０５を設定するものとする。この場合、端末装置２１３０では、動作検証状況情報３６０１に設定されたデータのうち自端末装置の製造事業者が作成した独自データ部分を参照し、動作検証状況を判定することとする。【０３３９】
具体的には、Ｓ１７０１において、端末装置２１３０の利用条件バイトコード実行可否判定部２６０４は、動作検証状況情報３６０１に設定されたデータのうち自端末装置の製造事業者が作成した独自データ部分を参照する。そして、利用条件バイトコード実行可否判定部２６０４は、製造事業者の独自ルールに従って、端末装置２１３０での利用条件判定ロジックコード２５０３の動作検証状況を判定することとする。【０３４０】
なお、本変形例において、動作検証状況情報２２０５、及び、動作検証状況情報３６０１は、共に端末装置２１３０の各製造事業者が独自に作成したデータの集合であるとして説明を行った。これを、ライセンス３６００に含める動作検証状況情報３６０１には、ライセンス３６００を要求している端末装置２１３０の製造事業者が生成したデータのみを抜き出して含めることとしてもよいものとする。本変形例により、各端末装置２１３０での動作検証状況が、サービス事業者や他の端末装置製造事業者に対し、秘匿することが可能となる、という効果が得られる。【０３４１】
なお、実施の形態３において、動作検証状況情報２２０５、及び、動作検証状況情報３６０１は、動作未検証な端末装置のＩＤのリストであると説明を行ったが、次のような変形例であってもよいものとする。【０３４２】
動作検証状況情報２２０５、及び、動作検証状況情報３６０１は、予め端末装置２１３０毎にビットが割り当てられたビット列から成るデータであり、端末装置で動作検証済みの場合にビットに「１」を設定する。この場合、Ｓ１７０１において、端末装置２１３０の利用条件バイトコード実行可否判定部２６０４は、自端末装置２１３０に割り当てられているビットを参照し、その値が「１」である場合には、動作検証済みであると判定することとする。【０３４３】
なお、本変形例において、ビットは端末装置２１３０毎に割り当てられるとしたが、それに限るわけではなく、端末装置製造事業者毎や機種毎、ロット毎などの単位で割り当てられるとしてもよい。また、該ビット列を所定の符号化方法で符号化し、サイズを削減することも考えられる。また、該ビット列を事業者毎の独自の暗号化手法等で変形し、サービス事業者や他の端末製造事業者に対して秘匿とすることも考えられる。【０３４４】
なお、本実施の形態２において、動作検証状況フラグ２５０５は、ライセンス２５００に含まれるとして説明を行った。これを、ライセンス要求レスポンスメッセージ２８００の一つのパラメータとして設定されるものとしてもよいこととする。【０３４５】
なお、本実施の形態３において、動作検証状況情報３６０１はライセンス３６００に含まれるとして説明を行った。これを、ライセンス要求レスポンスメッセージ２８００の一つのパラメータとして設定されるものとしてもよいこととする。【０３４６】
なお、本実施の形態２において、Ｓ１００３において動作検証未と判定された場合、Ｓ１００５において動作検証状況フラグ２５０５に「検証未」と設定するとして説明を行った。その変形例として、ライセンス２５００に設定する利用条件判定ロジックコード２５０３を、端末装置２１３０で動作検証済みである利用条件判定ロジックコード２５０３に変更し、動作検証状況フラグ２５０５に「検証済み」と設定するようにしてもよいものとする。なお、利用条件判定ロジックコード２５０３を変更する場合は、利用条件パラメータ２５０４も必要に応じて修正し、変更前と同等の利用条件となるような変更が望ましい。【０３４７】
なお、実施の形態２及び３において、ライセンス全体を署名対象として説明を行ったが、それに限るわけではなく、一部のみを対象としてもよいこととする。またライセンス発行時に動的に署名データを生成することとして説明を行ったが、予め署名データを生成しておき、発行時にはそれを付加するとしてもよいこととする。また、サービス事業者の秘密鍵で署名を行うとして説明を行ったが、技術管理団体や端末装置製造事業者の秘密鍵で署名を行うとしてもよいものとする。【０３４８】
なお、実施の形態２及び３において、利用条件バイトコード実行可否判定プロセスはライセンス取得時とコンテンツ利用時の双方で行うとして説明を行ったが、何れか一方のみで行うこととしてもよい。【０３４９】
なお、本発明を上記実施の形態１〜３に基づいて説明してきたが、本発明は、上記の実施の形態１〜３に限定されないのはもちろんである。以下のような場合も本発明に含まれる。【０３５０】
（１）上記の各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ＲＡＭまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。【０３５１】
（２）上記の各装置を構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。【０３５２】
（３）上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしてもよい。前記ＩＣカードまたは前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。前記ＩＣカードまたは前記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ＩＣカードまたは前記モジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。【０３５３】
（４）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。【０３５４】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。【０３５５】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。【０３５６】
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。【０３５７】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。【０３５８】
（５）上記実施の形態１〜３及び上記変形例をそれぞれ組み合わせるとしてもよい。例えば、実施の形態１のライセンス１２００に実施の形態２のプロファイル２５０１が含まれ、利用条件検証部３０２は、端末装置で動作可能なプロファイルの情報を取得することで、利用条件判定ロジックコード１２０４が動作することを確認済みであるか否かを判定することにしてもよい。また、実施の形態１のライセンス１２００に実施の形態２の端末ＩＤ２７０３が含まれ、利用条件検証部３０２は、端末ＩＤ２７０３の中にコンテンツを利用する端末装置のＩＤが含まれているか否かを判定することによって、利用条件判定ロジックコード１２０４が動作することを確認済みであるか否かを判定することにしてもよい。つまり、プロファイル２５０１や端末ＩＤ２７０３は、請求の範囲に記載の「判定情報」に包含されることにしてもよい。
【産業上の利用可能性】
【０３５９】
本発明にかかるコンテンツ配信システムにおける端末装置は、ＤＶＤ等のパッケージメディアによるコンテンツ配信サービス受信端末や、デジタル放送、ＣＡＴＶ、インターネット等によるコンテンツ配信サービス受信端末等において有用である。
【図１】
2009019895.tif 000003
【図２】
2009019895.tif 000004
【図３】
2009019895.tif 000005
【図４】
2009019895.tif 000006
【図５】
2009019895.tif 000007
【図６Ａ】
2009019895.tif 000008
【図６Ｂ】
2009019895.tif 000009
【図７Ａ】
2009019895.tif 000010
【図７Ｂ】
2009019895.tif 000011
【図８】
2009019895.tif 000012
【図９】
2009019895.tif 000013
【図１０】
2009019895.tif 000014
【図１１】
2009019895.tif 000015
【図１２】
2009019895.tif 000016
【図１３】
2009019895.tif 000017
【図１４】
2009019895.tif 000018
【図１５】
2009019895.tif 000019
【図１６】
2009019895.tif 000020
【図１７】
2009019895.tif 000021
【図１８】
2009019895.tif 000022
【図１９】
2009019895.tif 000023
【図２０】
2009019895.tif 000024
【図２１】
2009019895.tif 000025
【図２２】
2009019895.tif 000026
【図２３】
2009019895.tif 000027
【図２４】
2009019895.tif 000028
【図２５】
2009019895.tif 000029
【図２６】
2009019895.tif 000030
【図２７】
2009019895.tif 000031
【図２８】
2009019895.tif 000032
【図２９】
2009019895.tif 000033
【図３０】
2009019895.tif 000034
【図３１】
2009019895.tif 000035
【図３２】
2009019895.tif 000036
【図３３】
2009019895.tif 000037
【図３４】
2009019895.tif 000038
【図３５】
2009019895.tif 000039
【図３６】
2009019895.tif 000040
【図３７】
2009019895.tif 000041
【図３８】
2009019895.tif 000042
【図３９】
2009019895.tif 000043
【図４０】
2009019895.tif 000044
【図４１】
2009019895.tif 000045
【図４２】
2009019895.tif 000046
【図４３】
2009019895.tif 000047
【手続補正書】
【提出日】平成21年3月30日(2009.3.30)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、著作権保護されているコンテンツの配信システムにおけるコンテンツ利用制御に関する。
【背景技術】
【０００２】
近年、音楽や映像、ゲームなどのデジタル著作物であるコンテンツを、インターネットやデジタル放送などで配信するコンテンツ配信システムが開発され、その一部は、実用化の段階を迎えている（例えば、特許文献１参照）。また、これらのコンテンツの配信にあたり、著作権保護等の観点から、配信したコンテンツの再生回数や再生可能期間、コンテンツの移動、複製、書き出しなどを制限するコンテンツの利用制御方法が併せて検討されている。
【０００３】
従来システムでは、サーバが、コンテンツを利用するために必要であってコンテンツの利用条件やコンテンツ鍵などを含む情報（以下、「ライセンス」と呼ぶ）を配信し、家庭内の端末装置が、サーバから配信されたライセンスを用いてコンテンツの再生、書き出しなどを行うようにモデル化されている。また、サーバから配信されたライセンスは、個々の端末装置に保有され、端末装置は、自らが保有するライセンスを用いてコンテンツを利用する。具体的には、端末装置は、回数制御、有効期限といった利用可否判定ロジックを実装したセキュアなモジュールなどを用いて、ライセンスに含まれる利用条件を解釈した上で利用可否を判断し、利用条件の範囲内で、コンテンツを利用する。
【０００４】
一方、上記のように固定的な利用可否判定ロジックのみを実装したモジュールで利用可否を判定するモデルでは、利用条件制御の汎用性が失われるといった問題点がある。前記問題点の解決策として、次のようなモデルが提案されている。サーバは、利用可否判定ロジック、および利用条件を含むプログラムを、端末装置に配信する。端末装置は、前記プログラムを受信し、実行することにより、汎用的な利用条件制御を実現する。例えば、サーバは、バーチャルマシン（以下、「ＶＭ」と呼ぶ）上で実行可能なプログラム表現であるバイトコードを、端末装置に配信する。端末装置は、端末装置のＶＭ上で前記バイトコードを実行することにより、汎用的な利用条件制御を可能とする。ここで、バイトコードとは、特定のＯＳやハードウェアに依存しないように定義された命令の集合により記述され、ＶＭが解釈および実行可能な中間プログラムである。具体的には、バイトコードは、「現在時刻が２００８年８月８日よりも前ならば、利用可と判定する」といった利用条件、および利用可否判定ロジックを実現するプログラムである。
【０００５】
次に、バイトコードを用いた利用可否制御における問題点について説明する。バイトコードを用いた利用可否制御では、利用可否判定の汎用性が増す一方で、端末装置における動作を保証できないケースが、固定的な利用可否判定ロジックで判定した場合と比較して、相対的に増加すると考えられる。具体的には、バイトコードに記述された利用可否判定ロジックに不備があり、端末装置のＶＭ上で無限ループに陥り処理が終了しない、即ち、コンテンツ再生ができない場合などが挙げられる。
【０００６】
従来、このような課題は、ライセンス配信サーバが、技術仕様を熟知した上でバイトコードを作成し、種々のテスト実施を行なうなど、コストをかけることにより、信頼性の高いバイトコードを生成し、配信することにより、解決していた。
【０００７】
このように、信頼性が高く、且つ、汎用的な利用可否判定が可能なコンテンツ配信システムが求められている。
【特許文献１】特開２０００−４８０７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来のコンテンツ配信システムには、次のような問題点がある。
【０００９】
一般に、ライセンス配信サーバを設置し、コンテンツ配信サービスを提供するサービスプロバイダ（以下、「ＳＰ」と呼ぶ）にとって、利用可否判定の自由度、即ち、利用条件設定の自由度が高く、且つ、信頼性の高いバイトコードの生成が可能な、コンテンツ配信システムが望ましいと考えられる。
【００１０】
しかし、従来技術では、ＳＰにとっては、信頼性の高いバイトコードの作成に多くのコストがかかるといった問題点があった。また、端末装置の製造事業者にとっては、ＳＰが自由に作成したバイトコードに対する端末装置の品質保証、すなわち、任意のバイトコードに対する動作確認テストが困難で動作保証ができないといった問題点があった。
【００１１】
本発明は、こうした従来の問題点を解決するものであり、ＳＰにとっては、利用条件設定の自由度を担保しつつ、ローコストで信頼性の高いバイトコードの作成を可能とし、また、端末装置の製造事業者にとっては、該端末装置におけるバイトコードの実行に対する品質保証の範囲を規定することを可能とする端末装置、サーバおよびシステムを提供することを目的としている。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明における端末装置は、ライセンスを用いて、デジタル著作物であるコンテンツを利用する端末装置であって、前記ライセンスは、コンテンツの利用可否を判定するためのプログラムである利用条件判定コードと、前記利用条件判定コードが動作することを確認済みであるか否かを判定するための判定情報とを含む。そして、前記端末装置は、前記ライセンスを取得するライセンス取得部と、前記取得されたライセンスに含まれる前記判定情報から、前記利用条件判定コードが動作することを確認済みであるか否かを判定する動作確認判定部と、前記利用条件判定コードが動作することを確認済みであると判定された場合に、前記利用条件判定コードを実行する利用条件判定コード実行部と、前記実行された利用条件判定コードに基づきコンテンツの利用可否を判定し、コンテンツが利用可の場合にコンテンツを再生するコンテンツ再生部とを備える。
【００１３】
これによれば、端末装置が、判定情報を用いて、バイトコードの利用条件判定コードが動作することを確認済みであるか否かを判定した上で、利用条件判定コードを実行することができる。つまり、利用条件判定コードが動作することを確認済みでないと判定された場合に、利用条件判定コードを実行しないようにすることで、端末装置の品質を向上させることができる。このため、ＳＰにとっては、利用条件設定の自由度を担保しつつ、ローコストで信頼性の高いバイトコードの作成を可能とする。また、端末装置の製造事業者にとっては、該端末装置におけるバイトコードの実行に対する品質保証の範囲を規定することを可能とする。
【００１４】
また、好ましくは、前記判定情報は、前記取得されたライセンスに含まれる前記利用条件判定コードのバージョンを示す情報であるバージョン情報を含む。前記端末装置は、さらに、当該端末装置で動作可能な前記利用条件判定コードのバージョンを示す情報である動作可能バージョン情報を管理する動作可能バージョン管理部を備える。前記動作確認判定部は、前記バージョン情報と前記動作可能バージョン情報とを比較することで、前記利用条件判定コードが動作することを確認済みであるか否かを判定する。前記バージョン情報は、利用条件判定コードのバージョン番号を示す情報であり、前記動作可能バージョン情報は、動作可能な前記利用条件判定コードのバージョン番号を示す情報である。前記動作確認判定部は、前記バージョン情報で示されるバージョン番号が、前記動作可能バージョン情報で示されるバージョン番号以下の場合に、前記利用条件判定コードが動作することを確認済みであると判定する。そして、前記バージョン情報で示されるバージョン番号が、前記動作可能バージョン情報で示されるバージョン番号よりも大きい場合に、前記利用条件判定コードが動作することを確認済みでないと判定する。
【００１５】
これによれば、バージョン番号によって、バイトコードの利用条件判定コードが動作することを確認済みであるか否かが判定される。このため、端末装置が、容易に、利用条件判定コードを実行するか否かを判定することができる。
【００１６】
また、本発明は、このような端末装置として実現するだけでなく、その端末装置に配信するためのライセンスに含まれる判定情報を生成するサーバ、その端末装置とサーバとを備えたシステム、またはそれらの装置を構成する処理部をステップとする方法として実現することができる。さらに、本発明は、それらステップをコンピュータに実行させるプログラムとして実現すること、そのプログラムを記録したコンピュータ読み取り可能なＣＤ−ＲＯＭなどの記録媒体として実現すること、そのプログラムを示す情報、データ又は信号として実現することもできる。そして、それらプログラム、情報、データ及び信号は、インターネット等の通信ネットワークを介して配信してもよい。
【発明の効果】
【００１７】
本発明によれば、サーバは、判定情報が付加された利用条件判定コードを用いた利用条件作成によりローコスト、且つ、信頼性の高いバイトコードの作成を可能としながら、利用条件設定を自由に行なうことができる。また、端末装置は、利用条件判定コードに付加された判定情報を用いた判定により、端末装置での動作を確認できていない利用条件判定コードの判別が可能となり、当該利用条件判定コードを含むバイトコードを該端末装置で実行しないように制御することで、端末装置の品質を向上させることができる。
【発明を実施するための最良の形態】
【００１８】
（実施の形態１）
以下、本発明における実施の形態１について、図面を用いて詳細に説明する。
【００１９】
図１は、本発明における実施の形態１に関わるコンテンツ配信システムの全体の概略構成を示す図である。
【００２０】
このコンテンツ配信システムは、端末装置３００においてコンテンツを利用するシステムであって、利用条件バイトコード、およびライセンスの生成、配信を行なうライセンス配信サーバ１００ａ〜１００ｂと、コンテンツの保持、配信を行なうコンテンツ配信サーバ２００と、コンテンツおよびライセンスを取得し、コンテンツを利用する端末装置３００ａ〜３００ｃと、ライセンス配信サーバ１００における利用条件バイトコード生成で用いる情報の配布、管理を行なう利用条件管理サーバ４００と、これらを相互に接続する伝送路５００と、から構成されている。
【００２１】
ライセンス配信サーバ１００は、伝送路５００と接続する機能を有する。ライセンス配信サーバ１００は、利用条件判定パラメータ、利用条件判定ロジックコードなどを保持し、端末装置３００からの要求に基づき、利用条件バイトコード、およびライセンスを生成し、ライセンスの送信を行うサーバ装置であり、ワークステーション等により実現される。また、ライセンス配信サーバ１００は、ＳＰが運営するとして以降の説明を行う。
【００２２】
コンテンツ配信サーバ２００は、伝送路５００と接続する機能を有する。コンテンツ配信サーバ２００は、コンテンツ情報を保持し、端末装置３００からの要求に基づき、コンテンツの送信を行うサーバ装置であり、ワークステーション等により実現される。また、コンテンツ配信サーバ２００は、コンテンツプロバイダ（以下、「ＣＰ」と呼ぶ）が運営するとして以降の説明を行う。
【００２３】
端末装置３００は、伝送路５００と接続する機能を有し、コンテンツやライセンスを保持し、ライセンスに含まれる利用条件バイトコードに基づく利用可否判定の後、モニター画面などにコンテンツを出力するなど、コンテンツの利用に関する処理を行う装置である。具体的には、端末装置３００は、デジタル放送を受信するためのＳＴＢ（Ｓｅｔ  Ｔｏｐ  Ｂｏｘ）、デジタルＴＶ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）レコーダ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）レコーダ、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｃｅ）、携帯電話などのデータ再生装置、記録装置、あるいは、これらの複合機器である。本実施の形態では、上記機器が利用条件バイトコードを実行するためのＶＭを備えるとして説明する。
【００２４】
利用条件管理サーバ４００は、伝送路５００と接続する機能を有し、信頼性の高い署名付き利用条件判定ロジックコードなどを保持し、ライセンス配信サーバ１００からの要求に基づき、ライセンス配信サーバ１００が保持する利用条件判定ロジックコードの更新を行うサーバ装置であり、ワークステーション等により実現される。また、利用条件管理サーバ４００は、コンテンツ配信システムに技術仕様を提供する技術管理団体が運営するとして以降の説明を行う。
【００２５】
伝送路５００は、ライセンス配信サーバ１００と、コンテンツ配信サーバ２００と、端末装置３００と、利用条件管理サーバ４００と、を相互に接続するネットワークである。具体的には、伝送路５００は、イーサネット（登録商標）等の有線ネットワークや、無線ＬＡＮなどの無線ネットワーク、あるいは、これらが複合したネットワークで構成される。
【００２６】
本実施の形態では、このようなコンテンツ配信システムにおけるライセンスの取得、コンテンツの再生に関する次の５つの処理について図２から図２５の図面を用いて詳細に説明する。
（１）ライセンス配信サーバ１００が、利用条件判定ロジックコードを更新する処理
（２）端末装置３００が、ライセンスを取得する処理
（３）端末装置３００が、コンテンツを取得する処理
（４）端末装置３００が、コンテンツを再生する処理
（５）利用条件管理サーバ４００が、新たな利用条件判定ロジックコードを追加する処理
【００２７】
ここで詳細な説明に先立ち、本発明において端末装置３００上でのコンテンツの利用可否判定に用いる情報の定義を行なう。
【００２８】
まず、端末装置３００において利用可否判定を行なう利用条件バイトコードについて説明する。利用条件バイトコードは、端末装置３００上のＶＭで動作するプログラムであり、少なくとも利用可否判定を行なうロジックと、前記ロジックが参照するパラメータを含む。具体的には、「現在時刻＜パラメータならば、利用可」というロジックと、「２００７年８月８日」というパラメータからなり、「現在時刻が、２００７年８月８日より前ならば、利用可、そうでなければ利用不可」といった利用可否判定を行なうプログラムである。
【００２９】
なお、利用条件バイトコードは、該利用条件バイトコードを２つ以上組み合わせる形で新たな利用条件バイトコードとしてもよい。具体的には、「現在時刻＜パラメータならば、利用可」というロジックと、「２００７年８月８日」というパラメータからなる第１の利用条件バイトコードと、「再生回数＜パラメータならば、利用可」というロジックと、「１０回」というパラメータからなる第２の利用条件バイトコードを組み合わせて利用して、「現在時刻＜第１のパラメータ、かつ、再生回数＜第２のパラメータならば、利用可」というロジックと、「第１のパラメータ＝２００７年８月８日、第２のパラメータ＝１０回」というパラメータからなる第３の利用条件バイトコードであってもよい。
【００３０】
本実施の形態では、前記ロジックを示すプログラム、およびデータを、利用条件判定ロジックコードと呼び、前記パラメータを示すプログラム、およびデータを、利用条件判定パラメータと呼ぶこととする。具体的には、利用条件判定ロジックコードは、前述の例の他に、「現在利用回数＜パラメータならば、利用可」、「初回利用時刻＋パラメータ＜現在時刻ならば、利用可」、「２００７年７月７日＜現在時刻＜パラメータならば、利用可」などがある。また、利用条件判定パラメータは、前述の例の他に、「１０回」、「２日間」、「ライセンス取得時刻＋３日」などがある。具体例で説明したように、利用条件判定ロジックコードに「２００７年７月７日」のような数値データを含む、あるいは、利用条件判定パラメータに「ライセンス取得時刻＋」といった演算プログラムを含む、としても良い。
【００３１】
一般に、コンテンツ配信システムにおいては、権利保護の観点から、コンテンツ利用に関する情報は、セキュアに管理する必要がある。
【００３２】
そのため、ライセンス、利用条件バイトコードや利用条件判定ロジックコード、利用条件判定パラメータといったセキュアに管理する必要のあるデータを、伝送路５００を通じて送受信する場合、セキュリティを確保するため、安全な認証チャネル（Ｓｅｃｕｒｅ  Ａｕｔｈｅｎｔｉｃａｔｅｄ  Ｃｈａｎｎｅｌ、以下、「ＳＡＣ」と呼ぶ）を確立してから、前記データの送受信を行うことが望ましい。ＳＡＣの確立には、例えばＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ）やＴＬＳ（Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ）を利用することができる。
【００３３】
次に、本実施の形態における識別子の定義を行う。
【００３４】
ユーザ識別子とは、コンテンツ配信システムにおいてユーザを一意に特定するための情報である。なお、本実施の形態では端末装置３００を使用するユーザのユーザ識別子は「ＵＳＥＲ−ＩＤ−０００１」として説明する。また、ユーザ識別子は端末装置購入時に入力され、端末装置３００の記憶領域に記憶されているとして以降の説明を行う。
【００３５】
コンテンツ識別子とは、コンテンツ配信システムにおいてコンテンツを一意に特定するための情報である。
【００３６】
ライセンス識別子とは、端末装置３００においてライセンスを一意に特定するための情報である。
【００３７】
ロジック識別子とは、コンテンツ配信システムにおいて利用条件判定ロジックコードを一意に特定するための情報である。
【００３８】
他の識別子、および識別子の具体的な値については、必要な箇所で適宜、定義、および説明する。
【００３９】
以上で各識別子の定義についての説明を終える。
【００４０】
次に、ライセンス配信サーバ１００と、コンテンツ配信サーバ２００と、端末装置３００と、利用条件管理サーバ４００の詳細な構成について説明する。
【００４１】
まず、ライセンス配信サーバ１００の詳細な構成について説明する。
【００４２】
図２は、図１に示されるライセンス配信サーバ１００の詳細な構成を示す機能ブロック図である。なお、ライセンス配信サーバ１００ａ〜１００ｂの機能構成は、ライセンス配信サーバ１００ａをその代表とし、ライセンス配信サーバ１００として説明する。
【００４３】
ライセンス配信サーバ１００は、利用条件判定ロジックコードを格納する利用条件判定ロジックコード格納部１１１と、利用条件判定パラメータを格納する利用条件判定パラメータ格納部１１２と、コンテンツ鍵を格納するコンテンツ鍵格納部１１３と、伝送路５００と接続し端末装置３００、および利用条件管理サーバ４００と通信を行う通信部１０１と、端末装置３００の要求に基づき、利用条件判定ロジックコードと利用条件判定パラメータから利用条件バイトコードを生成し、利用条件バイトコードとコンテンツ鍵からライセンスを生成し、送信するライセンス生成・送信部１０２と、利用条件管理サーバ４００から更新用利用条件判定ロジックコードを取得し、利用条件判定ロジックコードを更新する利用条件判定ロジックコード更新部１０３と、から構成される。ここで、ライセンス生成・送信部１０２は、特許請求の範囲に記載の「ライセンス配信部」の機能を有する。
【００４４】
次に、コンテンツ配信サーバ２００の詳細な構成について説明する。
【００４５】
図３は、図１に示されるコンテンツ配信サーバ２００の詳細な構成を示す機能ブロック図である。
【００４６】
コンテンツ配信サーバ２００は、コンテンツを格納するコンテンツ格納部２１１と、伝送路５００と接続し端末装置３００と通信を行う通信部２０１と、端末装置３００からの要求に基づきコンテンツ格納部２１１からコンテンツを取得し、送信するコンテンツ取得・送信部２０２と、から構成される。
【００４７】
次に、端末装置３００の詳細な構成について説明する。
【００４８】
図４は、図１に示される端末装置３００の詳細な構成を示す機能ブロック図である。なお、端末装置３００ａ〜３００ｃの機能構成は、端末装置３００ａをその代表とし、端末装置３００として説明する。
【００４９】
端末装置３００は、コンテンツ配信サーバ２００から取得したコンテンツを格納するコンテンツ格納部３１１と、ライセンス配信サーバ１００から取得したライセンスを格納するライセンス格納部３１２と、伝送路５００と接続しライセンス配信サーバ１００、およびコンテンツ配信サーバ２００と通信を行う通信部３０１と、ライセンスに含まれる利用条件判定ロジックコードを検証し、利用条件バイトコードとして実行してよいか否かの判定を行なう利用条件検証部３０２と、利用条件検証部３０２の検証結果を受けて利用可の場合に、利用条件バイトコードを実行する利用条件バイトコード実行部３０３と、ライセンス配信サーバ１００よりライセンスを取得するライセンス取得部３０４と、コンテンツ配信サーバ２００よりコンテンツを取得するコンテンツ取得部３０５と、利用条件バイトコード実行部３０３において実行される利用条件バイトコードの制御の下でコンテンツの復号を行い、コンテンツを再生するコンテンツ再生部３０６と、から構成される。
【００５０】
ここで、利用条件検証部３０２は、特許請求の範囲に記載の「動作確認判定部」の機能を有する。また、利用条件バイトコード実行部３０３は、特許請求の範囲に記載の「利用条件判定コード実行部」及び「動作可能バージョン管理部」の機能を有する。
【００５１】
最後に、利用条件管理サーバ４００の詳細な構成について説明する。
【００５２】
図５は、図１に示される利用条件管理サーバ４００の詳細な構成を示す機能ブロック図である。
【００５３】
利用条件管理サーバ４００は、利用条件判定ロジックコード格納部４１１と、バージョン番号格納部４１２と、伝送路５００と接続しライセンス配信サーバ１００と通信を行う通信部４０１と、利用条件バイトコード入力部４０２と、利用条件バイトコード分離部４０３と、利用条件判定ロジックコード送信部４０４と、利用条件判定ロジックコード管理情報生成部４０５と、利用条件判定ロジックコード動作検証部４０６と、から構成される。
【００５４】
利用条件判定ロジックコード格納部４１１は、利用条件判定ロジックコードを格納する。バージョン番号格納部４１２は、バージョン番号を格納する。利用条件バイトコード入力部４０２は、ライセンス配信サーバ１００、あるいはサーバ管理者等からの利用条件バイトコード入力を受け付ける。
【００５５】
利用条件バイトコード分離部４０３は、利用条件バイトコード入力部４０２に入力された利用条件バイトコードの、利用条件判定ロジックコードと、利用条件判定パラメータの分離ポリシーを決定し、利用条件判定ロジックコードを分離、抽出する。
【００５６】
利用条件判定ロジックコード送信部４０４は、ライセンス配信サーバ１００の要求に基づき利用条件判定ロジックコードの更新要否を判定し、更新が必要と判断した場合、更新用利用条件判定ロジックコードを送信する。
【００５７】
利用条件判定ロジックコード管理情報生成部４０５は、利用条件バイトコード分離部４０３で抽出された利用条件判定ロジックコードに対してロジック識別子、およびバージョン番号を付与する。さらに、利用条件判定ロジックコード管理情報生成部４０５は、前記ロジック識別子、前記バージョン番号、および前記利用条件判定ロジックコードを含むデータに対して、利用条件管理サーバ４００の秘密鍵でデジタル署名を付与し、前記データと関連付けて利用条件判定ロジックコード格納部４１１に格納する。
【００５８】
利用条件判定ロジックコード動作検証部４０６は、利用条件バイトコード分離部４０３で分離された利用条件判定ロジックコードの動作検証を行う。
【００５９】
ここで、利用条件判定ロジックコード管理情報生成部４０５は、特許請求の範囲に記載の「判定情報生成部」の機能を有する。また、利用条件判定ロジックコード動作検証部４０６は、特許請求の範囲に記載の「利用条件判定コード動作検証部」の機能を有する。
【００６０】
以上で、ライセンス配信サーバ１００、コンテンツ配信サーバ２００、端末装置３００、および利用条件管理サーバ４００の詳細な構成について説明した。各サーバ、および端末装置３００は、各データ格納部、および各処理部から構成される。各データ格納部は、ＨＤＤ等の記憶媒体で実現され、各処理部はＬＳＩ等のハードウェアあるいはＣＰＵ、ＲＡＭ、ＲＯＭ等を利用して実行されるプログラム等によって実現される。なお、端末装置３００および利用条件管理サーバ４００において各格納部、各処理部は、ハード的あるいはソフト的に耐タンパされていることが望ましい。
【００６１】
次に、本実施の形態で扱うデータ、およびデータ構造について説明する。まず、各格納部が保持するデータのデータ構造を、ライセンス配信サーバ１００、コンテンツ配信サーバ２００、端末装置３００、利用条件管理サーバ４００の順で説明する。最後に本実施の形態においてライセンス配信サーバ１００から端末装置３００に配信されるライセンスのデータ構造について説明する。
【００６２】
まず、ライセンス配信サーバ１００の格納部が保持するデータについて図面を参照して説明する。
【００６３】
利用条件判定ロジックコード格納部１１１は、利用条件判定ロジックコードに関する情報を管理するための利用条件判定ロジックコード管理テーブルを有するデータベースであって、端末装置３００からのライセンス配信要求に対して、発行可能な場合に利用条件バイトコードを生成するために用いられる。
【００６４】
具体的には、利用条件判定ロジックコード格納部１１１は、図６Ａに示すように、ロジック識別子Ｄ６０１と、ロジック識別子Ｄ６０１に対応するロジックコードＤ６０３と、ロジックコードＤ６０３のバージョン番号Ｄ６０２と、ロジック識別子Ｄ６０１とバージョン番号Ｄ６０２とロジックコードＤ６０３からなるデータに対するデジタル署名である署名Ｄ６０４と、からなる利用条件判定ロジックコード管理テーブルＤ６００ａを有する。例えば、図６Ａにおいて、ロジック識別子Ｄ６０１が「ＬＯＧＩＣ−ＩＤ−０００１」であるロジックコードＤ６０３は、「現在時刻＜パラメータ」を示すバイトコードであり、バージョン番号Ｄ６０２が「１．０」であり、それらに対する署名Ｄ６０４が「３２３ｂｆ３ｂｂｃ」であることを示している。なお、利用条件判定ロジックコード格納部１１１へのデータ登録は、ライセンス配信サーバ１００の管理者指示、あるいは定期的に、利用条件管理サーバ４００に利用条件判定ロジックコードの更新要否を確認し、更新用利用条件判定ロジックコードを取得した際に行われる。詳細な処理は後述する。
【００６５】
利用条件判定パラメータ格納部１１２は、ユーザ毎のコンテンツに対する利用条件を管理するデータベースであって、端末装置３００からのライセンス配信要求に対して、ユーザが所有する利用条件が発行可能か否かを判定し、発行可能な場合に利用条件バイトコードを生成するために用いられる。
【００６６】
具体的には、利用条件判定パラメータ格納部１１２は、図７Ａに示すように、利用条件の所有者を示すユーザ識別子Ｄ７０１と、利用条件が利用を許諾するコンテンツのコンテンツ識別子Ｄ７０２と、コンテンツ識別子Ｄ７０２で示されるコンテンツの利用可否判定を行なう利用条件判定ロジックコードのロジック識別子Ｄ７０３と、ロジック識別子Ｄ７０３に対応する利用条件判定ロジックコードが利用可否判定の際に参照するパラメータＤ７０４と、からなる利用条件判定パラメータ管理テーブルＤ７００ａを有する。例えば、ユーザ識別子Ｄ７０１が「ＵＳＥＲ−ＩＤ−０００１」であるユーザは、利用許諾されたコンテンツがコンテンツ識別子Ｄ７０２に示される「ＣＯＮＴＥＮＴ−ＩＤ−０００１」なるコンテンツであり、利用可否判定を行なう利用条件判定ロジックコードが、ロジック識別子Ｄ７０３で示される「ＬＯＧＩＣ−ＩＤ−０００１」で特定される利用条件判定ロジックコードであり、前記利用条件判定ロジックコードが参照するパラメータが、パラメータＤ７０４で示される「〜２００７／８／１５」であることを示している。また複数のコンテンツ識別子に対して、一つのロジック識別子を対応付けることも可能である。
【００６７】
なお、利用条件判定パラメータ格納部１１２へのデータ登録は、コンテンツ配信サービスを運営するＳＰにより、ユーザがコンテンツを利用する権利を購入する際に行われる。この購入処理は、ユーザが伝送路５００を通じて、ＳＰのＷｅｂサイトに接続し、コンテンツ購入画面により、オンラインで購入を行うとしても良いし、購入用の葉書を用いる等、オフラインで行っても良い。購入処理では、まずユーザが購入対象であるコンテンツのコンテンツ識別子Ｄ７０２を指定し、利用条件を確認後、購入処理を行う。購入処理を行ったユーザのユーザ識別子Ｄ７０１とコンテンツ識別子Ｄ７０２と利用条件から一意に特定されるロジック識別子Ｄ７０３と、パラメータＤ７０４と、が関連付けられて、利用条件判定パラメータ格納部１１２の利用条件判定パラメータ管理テーブルＤ７００ａに登録される。
【００６８】
以上のような購入処理を行った結果、利用条件判定パラメータ格納部１１２の利用条件判定パラメータ管理テーブルＤ７００ａが構築される。また、一つのコンテンツに対して、複数のロジック識別子Ｄ７０３、および複数のパラメータを設定するとしても良い。図７Ｂを参照して説明する。Ｄ７０１からＤ７０４までの説明は、図６Ａで説明したため、省略する。パラメータ２Ｄ７０５は、第２のロジック識別子に対応するパラメータを示している。優先順位Ｄ７０６は、利用条件判定ロジックコードが複数ある場合、何れか一つの利用条件判定ロジックコードにより可否判定をする場合、何れを優先的に実行するかを示す。また、２つ以上の利用条件判定ロジックコードが連携して可否判定を行なう場合、どのロジックを実行するのか、複数の条件をＡＮＤ条件で実行するのか、ＯＲ条件で実行するのか、などを示している。
【００６９】
コンテンツ鍵格納部１１３は、暗号化コンテンツを復号するためのコンテンツ鍵を管理するデータベースであって、端末装置３００からのライセンス取得要求に対してライセンスを生成する際に、ライセンス取得要求に含まれるコンテンツ識別子に対応したコンテンツ鍵を取得するために用いられる。
【００７０】
具体的には、コンテンツ鍵格納部１１３は、図８に示すように、コンテンツ識別子Ｄ８０１と、コンテンツ識別子Ｄ８０１に対応するコンテンツ鍵Ｄ８０２とからなるコンテンツ鍵管理テーブルＤ８００を有する。例えば、コンテンツ識別子Ｄ８０１が「ＣＯＮＴＥＮＴ−ＩＤ−０００１」の暗号化コンテンツを復号するためのコンテンツ鍵Ｄ８０２は、「ＣＯＮＴＥＮＴ−ＫＥＹ−０００１」であることを示している。なお、コンテンツ鍵格納部１１３へのデータ登録は、コンテンツの暗号化を行うＣＰなどによって行われる。
【００７１】
次に、コンテンツ配信サーバ２００の格納部が保持するデータについて図面を参照して説明する。
【００７２】
コンテンツ格納部２１１は、暗号化コンテンツを管理するデータベースであって、端末装置３００からのコンテンツ取得要求に対してコンテンツを送信する際に、コンテンツ取得要求に含まれるコンテンツ識別子に対応した暗号化コンテンツを取得するために用いられる。
【００７３】
具体的には、コンテンツ格納部２１１は、図９に示すように、コンテンツ識別子Ｄ９０１と、コンテンツ識別子Ｄ９０１に対応する暗号化コンテンツＤ９０２とからなるコンテンツ管理テーブルＤ９００を有する。例えば、コンテンツ識別子Ｄ９０１が「ＣＯＮＴＥＮＴ−ＩＤ−０００１」の暗号化コンテンツＤ９０２は、「ＣＯＮＴＥＮＴ−ＤＡＴＡ−０００１」であることを示している。なお、コンテンツ格納部２１１へのデータ登録は、コンテンツの暗号化を行うＣＰなどによって行われる。
【００７４】
次に、端末装置３００の格納部が保持するデータについて図面を参照して説明する。
【００７５】
コンテンツ格納部３１１は、暗号化コンテンツを管理するデータベースであって、端末装置３００においてコンテンツを利用する際に、暗号化コンテンツを取得するために用いられる。具体的な内容は、コンテンツ配信サーバ２００のコンテンツ格納部２１１で説明した通りである。なお、コンテンツ格納部３１１へのデータ登録は、端末装置３００がコンテンツ配信サーバ２００からコンテンツを取得する際に行われる。
【００７６】
ライセンス格納部３１２は、ライセンスを管理するデータベースであって、端末装置３００においてコンテンツを利用する際に、コンテンツ識別子に対応したライセンスを取得するために用いられる。
【００７７】
具体的には、ライセンス格納部３１２は、図１０に示すように、ライセンス識別子Ｄ１００１と、ライセンス識別子Ｄ１００１に対応するライセンスＤ１００２とからなるライセンス管理テーブルＤ１０００を有する。例えば、ライセンス識別子Ｄ１００１が「ＬＩＣＥＮＳＥ−ＩＤ−０００１」のライセンスＤ１００２は、「ＬＩＣＥＮＳＥ−０００１」であることを示している。なお、ライセンス格納部３１２へのデータ登録は、端末装置３００がライセンス配信サーバ１００からライセンスを取得する際に行われる。ライセンスＤ１００２のデータ構造については後述する。
【００７８】
最後に、利用条件管理サーバ４００の格納部が保持するデータについて図面を参照して説明する。
【００７９】
利用条件判定ロジックコード格納部４１１は、利用条件判定ロジックコードに関する情報を管理するための利用条件判定ロジックコード管理テーブルを有するデータベースであって、ライセンス配信サーバ１００からの利用条件判定ロジックコード更新要求に対して、更新用利用条件判定ロジックコードを送信する際に、更新用の利用条件判定ロジックコードを取得するために用いられる。具体的な内容は、ライセンス配信サーバ１００の利用条件判定ロジックコード格納部１１１で説明した通りである。なお、利用条件判定ロジックコード格納部４１１へのデータ登録は、サーバ管理者指示、ライセンス配信サーバ１００の要求等により、新しい利用条件判定ロジックコードを追加する際に行われる。処理の詳細は、後述する。
【００８０】
バージョン番号格納部４１２は、利用条件判定ロジックコードのバージョンを管理するデータベースであって、利用条件管理サーバ４００において利用条件判定ロジックコードを追加する際に、新たなバージョン番号を付与するために用いられる。
【００８１】
具体的には、バージョン番号格納部４１２は、図１１に示すように、バージョン番号Ｄ１１０１と、バージョン番号Ｄ１１０１を付与した日時を示す更新日時Ｄ１１０２と、からなるバージョン番号管理テーブルＤ１１００を有する。例えば、バージョン番号Ｄ１１０１「１．０」を付与した更新日時Ｄ１１０２が「２００７／１／１」であることを示している。なお、バージョン番号格納部４１２へのデータ登録は、サーバ管理者指示、ライセンス配信サーバ１００の要求等により、新しい利用条件判定ロジックコードを追加する際に行われる。処理の詳細は、後述する。
【００８２】
最後に本実施の形態においてライセンス配信サーバ１００から端末装置３００に配信されるライセンスのデータ構造について説明する。
【００８３】
まず、ライセンス配信サーバ１００が発行するライセンスのデータ構造について図１２を参照して説明する。
【００８４】
ライセンス１２００は、コンテンツの利用可否判定を行なうロジックである利用条件判定ロジックコード１２０４と、利用条件判定ロジックコード１２０４が参照する利用条件判定パラメータ１２０１と、利用条件判定ロジックコード１２０４のバージョンを示すバージョン番号１２０２と、利用条件判定ロジックコード１２０４を一意に特定するロジックコード識別子１２０３と、署名１２０５と、ライセンス１２００に対応する暗号化コンテンツの復号を行うためのコンテンツ鍵１２０６と、からなる。
【００８５】
ここで、署名１２０５は、バージョン番号１２０２とロジックコード識別子１２０３と利用条件判定ロジックコード１２０４からなるデータに対するデジタル署名である。また、利用条件判定ロジックコード１２０４は、特許請求の範囲に記載の「利用条件判定コード」に相当する。バージョン番号１２０２は、特許請求の範囲に記載の「判定情報」に包含される。
【００８６】
ここで、ライセンス１２００における利用条件バイトコードについて説明する。ライセンス１２００では、利用条件判定パラメータ１２０１と、バージョン番号１２０２と、ロジックコード識別子１２０３と、利用条件判定ロジックコード１２０４と、署名１２０５とからなるデータを、利用条件バイトコード１２１１と呼ぶ。
【００８７】
また、以上の説明では、ライセンス１２００は、一つのデータの塊として説明したが、ライセンス１２００の各項目、例えば、署名対象データである「バージョン番号１２０２とロジックコード識別子１２０３と利用条件判定ロジックコード１２０４」と「署名１２０５」、「コンテンツ鍵１２０６」と「その他のデータ」など、データを分解し、別々に配信するなどしても良い。その場合、デジタル署名付きのリンク情報を用いるなどにより、改ざん検出可能な状態で分離する必要がある。なお、上記で説明したライセンス１２００は、ライセンス格納部３１２、およびライセンスに関する処理において、ライセンス識別子、およびコンテンツ識別子と関連付ける必要がある。そこで、端末装置３００におけるライセンス１２００とライセンス識別子と、コンテンツ識別子と、の関連付け処理を不要とするため、ライセンス１２００にライセンス識別子、およびコンテンツ識別子を含めるとしても良い。以上で、ライセンスのデータ構造について説明した。
【００８８】
以上で、本実施の形態で扱うデータのデータ構造について説明した。
【００８９】
次に、コンテンツ配信システムにおけるライセンスの取得、コンテンツの再生に関する次の５つの処理について説明する。
（１）ライセンス配信サーバ１００が、利用条件判定ロジックコードを更新する処理
（２）端末装置３００が、ライセンスを取得する処理
（３）端末装置３００が、コンテンツを取得する処理
（４）端末装置３００が、コンテンツを再生する処理
（５）利用条件管理サーバ４００が、新たな利用条件判定ロジックコードを追加する処理
【００９０】
以上の構成のコンテンツ配信システムにおける上記処理について、上記順番で図２０から図２５を参照して説明する。
【００９１】
各処理の説明に先立ち、本実施の形態で扱う通信メッセージについて説明する。
【００９２】
図１３は、ライセンス配信サーバ１００、コンテンツ配信サーバ２００、端末装置３００、利用条件管理サーバ４００の各サーバ、装置間の通信において送受信される通信メッセージＭ１３００のメッセージフォーマットの内容を示す図である。
【００９３】
図１３の通信メッセージＭ１３００は、メッセージヘッダＭ１３０１と、メッセージ本体Ｍ１３０２と、からなる。
【００９４】
ここで、メッセージヘッダＭ１３０１は、少なくとも送信先を特定する情報と、送信元を特定する情報と、を含んでいる。前記送信先を特定する情報は、メッセージの宛先として参照され、前記送信元を特定する情報は、前記メッセージに対して返信のメッセージを送信する際にあて先として参照される。前記送信元、あるいは送信先を特定するための情報の典型例としてＩＰアドレスがある。メッセージ本体Ｍ１３０２は、各々のメッセージで固有の情報を含む。メッセージ本体固有の情報についてはメッセージが必要となる処理の説明において説明する。
【００９５】
まず、ライセンス配信サーバ１００が、利用条件判定ロジックコードを更新する処理について説明する。
【００９６】
利用条件判定ロジックコード更新処理の説明に先立ち、利用条件判定ロジックコード更新処理に関係する通信メッセージのデータ構造について図１４および図１５を参照して説明する。
【００９７】
図１４のロジックコード更新要求メッセージ本体Ｍ１４００は、バージョン番号Ｍ１４０１からなる。図１５のロジックコード送信メッセージ本体Ｍ１５００は、利用条件判定ロジックコード情報リストＭ１５０１からなる。利用条件判定ロジックコード情報リストＭ１５０１は、１以上の利用条件判定ロジックコード情報Ｍ１５０２を含む。利用条件判定ロジックコード情報Ｍ１５０２は、コンテンツの利用可否判定を行なうロジックである利用条件判定ロジックコードＭ１５１３と、利用条件判定ロジックコードＭ１５１３のバージョンを示すバージョン番号Ｍ１５１１と、利用条件判定ロジックコードＭ１５１３を一意に特定するロジックコード識別子Ｍ１５１２と、署名Ｍ１５１４と、からなる。ここで、署名Ｍ１５１４は、バージョン番号Ｍ１５１１とロジックコード識別子Ｍ１５１２と利用条件判定ロジックコードＭ１５１３からなるデータに対するデジタル署名である。
【００９８】
以上で、利用条件判定ロジックコード更新処理に関係する通信メッセージのデータ構造について説明した。
【００９９】
次に、ライセンス配信サーバ１００が、利用条件管理サーバ４００から更新用の利用条件判定ロジックコードを取得するまでの各部の処理について図２０を参照して説明する。
【０１００】
ライセンス配信サーバ１００は、サーバ管理者指示、あるいはシステムの定期的な更新指示等により、利用条件判定ロジックコード更新処理を開始する。利用条件判定ロジックコード更新部１０３は、利用条件判定ロジックコード格納部１１１のバージョン番号Ｄ６０２の中で、最も大きなバージョン番号を取得する（図２０：ステップＳ２０１１）。
【０１０１】
例えば、図６Ａの利用条件判定ロジックコード管理テーブルＤ６００ａの場合、バージョン番号として「２．０」を取得する。利用条件判定ロジックコード更新部１０３は、ロジックコード更新要求メッセージを生成し、通信部１０１を通じて利用条件管理サーバ４００に送信する（図２０：ステップＳ２０１２）。ロジックコード更新要求メッセージ本体Ｍ１４００に含まれるバージョン番号Ｍ１４０１は、ステップＳ２０１１で取得したバージョン番号、例えば「２．０」を設定する。
【０１０２】
利用条件管理サーバ４００は、通信部４０１を通じて前記ロジックコード更新要求メッセージを受信する（図２０：ステップＳ２０４１）。
【０１０３】
利用条件判定ロジックコード送信部４０４は、ロジックコード更新要求メッセージ本体Ｍ１４００から、バージョン番号Ｍ１４０１を抽出し、利用条件判定ロジックコード格納部４１１のバージョン番号Ｄ６０２の中で最も値が大きいバージョン番号を取得し、バージョン番号Ｍ１４０１がバージョン番号格納部４１２より取得したバージョン番号より古いか（値が小さいか）否かを判定する（図２０：ステップＳ２０４２）。
【０１０４】
バージョン番号Ｍ１４０１が利用条件判定ロジックコード格納部４１１より取得したバージョン番号より古くない場合、利用条件判定ロジックコード送信部４０４は、更新処理は不要と判断し、処理を終了し、更新処理が不要である旨をメッセージ本体に含む返信メッセージをライセンス配信サーバ１００に送信する（図２０：ステップＳ２０４Ａ）。
【０１０５】
ライセンス配信サーバ１００は、利用条件管理サーバ４００より更新不要通知を含む返信メッセージを受信した場合は、返信メッセージに含まれる更新不要の理由を管理者に通知、あるいはシステム上のログとして記録して、処理を終了する。なお、バージョン番号Ｍ１４０１が利用条件判定ロジックコード格納部４１１より取得したバージョン番号より大きい場合、ライセンス配信サーバ１００が不正を行なっていると判断し、以降の更新処理を認めないといった処理をしても良い。
【０１０６】
バージョン番号Ｍ１４０１が利用条件判定ロジックコード格納部４１１より取得したバージョン番号より古い場合、利用条件判定ロジックコード送信部４０４は、更新処理が必要と判断し、利用条件判定ロジックコード格納部４１１のバージョン番号Ｄ６０２の中で、バージョン番号Ｍ１４０１より値の大きいバージョン番号を特定する。前記バージョン番号に関連付けられた「ロジック識別子Ｄ６０１、バージョン番号Ｄ６０２、ロジックコードＤ６０３、署名Ｄ６０４」からなる利用条件判定ロジックコード情報の組を、配信対象の利用条件判定ロジックコード情報として特定する（図２０：ステップＳ２０４３）。
【０１０７】
利用条件判定ロジックコード送信部４０４は、特定した前記配信対象の利用条件判定ロジックコード情報の各々を、ロジックコード送信メッセージ本体Ｍ１５００の利用条件判定ロジックコード情報Ｍ１５０２に設定し、通信部４０１を通じてライセンス配信サーバ１００に送信する（図２０：ステップＳ２０４４）。なお、署名Ｄ６０４は、利用条件判定ロジックコード管理テーブルＤ６００ａから読み込み、メッセージに設定するとして説明したが、署名Ｄ６０４を動的に生成し、付与するとしても良い。署名Ｄ６０４の動的生成は、署名に用いる鍵が、変更する際に有効である。
【０１０８】
ライセンス配信サーバ１００は、通信部１０１を通じてロジックコード送信メッセージ本体Ｍ１５００を受信し、利用条件判定ロジックコード情報リストＭ１５０１を取得する（図２０：ステップＳ２０１４）。
【０１０９】
ライセンス配信サーバ１００は、取得した利用条件判定ロジックコード情報リストＭ１５０１を利用条件判定ロジックコード格納部１１１に格納する（図２０：ステップＳ２０１５）。
【０１１０】
以上の説明では、利用条件管理サーバ４００がライセンス配信サーバ１００より取得したバージョン番号Ｍ１４０１より値が大きいバージョン番号を持つ利用条件判定ロジックコード情報のみを送信する、すなわち、更新データのみを送信するとして説明した。これを、利用条件管理サーバ４００が保持する全ての利用条件判定ロジックコード情報を送信するとしても良い。
【０１１１】
また、利用条件管理サーバ４００が、ライセンス配信サーバ１００を運営するＳＰを識別するＳＰ識別子、あるいはライセンス配信サーバ識別子と、利用条件管理サーバ４００との契約状態、信頼度、当該ＳＰが提供するサービスの運用ルール、当該ＳＰが提供するサービスに必要なロジック識別子などを、関連付けて保持し、ロジックコード更新要求Ｍを送信してきた相手に応じて、配信する利用条件判定ロジックコード情報を選択的に抽出するとしても良い。
【０１１２】
また、利用条件判定ロジックコード情報と共に、ライセンス配信サーバ１００の利用条件判定パラメータの設定に関する制限情報を送信するとしても良い。具体的には、パラメータの型制限や、定義域の制限などがある。また、ＳＰ識別子、あるいはライセンス配信サーバ識別子に応じて、制限を設定するなどしても良い。例えば、再生回数制限ロジックに対するパラメータの場合、ＳＰ１は１０回まで設定可能とするが、ＳＰ２は５０回まで設定可能などである。
【０１１３】
以上で、サーバ管理者指示、あるいはシステムの定期的な更新指示等により、ユーザがライセンス取得指示を行い、ライセンス配信サーバ１００が、利用条件管理サーバ４００より利用条件判定ロジックコード情報を取得するまでの処理について説明した。
【０１１４】
次に、端末装置３００が、ライセンス配信サーバ１００からライセンスを取得する処理について説明する。
【０１１５】
ライセンス取得処理の説明に先立ち、ライセンス取得処理に関係する通信メッセージのデータ構造について図１６および図１７を参照して説明する。図１６のライセンス取得要求メッセージ本体Ｍ１６００はユーザ識別子Ｍ１６０１と、コンテンツ識別子Ｍ１６０２と、からなる。図１７のライセンス送信メッセージ本体Ｍ１７００はライセンスＭ１７０１からなる。
【０１１６】
以上で、ライセンス取得処理に関係する通信メッセージのデータ構造について説明した。
【０１１７】
次に、端末装置３００が、ライセンス配信サーバ１００からライセンスを取得するまでの各部の処理について図２１を参照して説明する。
【０１１８】
端末装置３００は、ユーザからの端末装置３００のアプリケーションへの情報入力、およびライセンス取得指示により、ライセンス取得処理を開始する（図２１：ステップＳ２１３１）。ユーザは端末装置３００のアプリケーションに対して、少なくとも取得対象であるライセンスを特定する情報の１つであるコンテンツ識別子または、コンテンツ識別子に準ずる情報を入力しなければならない。ユーザが、コンテンツ識別子「ＣＯＮＴＥＮＴ−ＩＤ−０００１」を入力し、ライセンス取得処理を開始したとして、以下の説明を行う。
【０１１９】
ユーザからの情報入力を受けた端末装置３００は、ライセンス取得部３０４においてライセンス取得要求メッセージを生成し、通信部３０１を通じてライセンス配信サーバ１００に送信する（図２１：ステップＳ２１３２）。ライセンス取得要求メッセージ本体Ｍ１６００に含まれるユーザ識別子Ｍ１６０１は、ライセンス取得指示を行なったユーザのユーザ識別子、例えば「ＵＳＥＲ−ＩＤ−０００１」を設定し、コンテンツ識別子Ｍ１６０２は、ユーザが入力したコンテンツ識別子「ＣＯＮＴＥＮＴ−ＩＤ−０００１」を設定する。ここでユーザ識別子は、ユーザが入力しても良いし、予め端末装置３００の記憶領域（図示せず）に記憶していても良い。また、ライセンス取得要求メッセージ本体Ｍ１６００に端末装置３００を一意に特定する端末識別子を設定し、ライセンス配信サーバ１００において、前記端末識別子に対応するユーザ識別子を特定するなどしても良い。
【０１２０】
ライセンス配信サーバ１００は、通信部１０１を通じて前記ライセンス取得要求メッセージを受信する（図２１：ステップＳ２１１１）。
【０１２１】
ライセンス生成・送信部１０２は、ライセンス取得要求メッセージ本体Ｍ１６００から、コンテンツ識別子Ｍ１６０２を抽出し、コンテンツ識別子Ｍ１６０２に対応するコンテンツ鍵がコンテンツ鍵格納部１１３に存在するか否かを判定する（図２１：ステップＳ２１１２）。
【０１２２】
前記コンテンツ鍵が存在しない場合は、ライセンスを生成できないため、処理を終了し、コンテンツ鍵が存在しない、すなわちコンテンツ識別子が不正である旨をメッセージ本体に含む返信メッセージを端末装置３００に送信する（図２１：ステップＳ２１１Ａ）。ライセンス生成・送信部１０２は、前記コンテンツ鍵が存在する場合は、以降の処理を行う。なお、本実施の形態では、図８にあるように、コンテンツ識別子「ＣＯＮＴＥＮＴ−ＩＤ−０００１」に対応するコンテンツ鍵「ＣＯＮＴＥＮＴ−ＫＥＹ−０００１」が存在するとして、以降の説明を続ける。
【０１２３】
ライセンス生成・送信部１０２は、ライセンス取得要求メッセージ本体Ｍ１６００から、ユーザ識別子Ｍ１６０１を抽出し、利用条件判定パラメータ格納部１１２が保持する利用条件判定パラメータ管理テーブルＤ７００からユーザ識別子Ｍ１６０１をキーとして、対応するユーザ識別子Ｄ７０１が存在するか否かを判定する（図２１：ステップＳ２１１３）。ユーザ識別子Ｍ１６０１が利用条件判定パラメータ管理テーブルＤ７００に存在しない場合は、前記ライセンス配信要求メッセージを送信した端末装置３００のユーザが、コンテンツ配信サービスに登録されていないと判断し、ライセンス利用条件が生成できないため、処理を終了し、ユーザ識別子が存在しない旨をメッセージ本体に含む返信メッセージを、端末装置３００に送信する（図２１：ステップＳ２１１Ａ）。
【０１２４】
ユーザ識別子Ｄ７０１が存在する場合は、以降の処理を行う。なお、本実施の形態では図７Ａ及び７Ｂにあるように、ユーザ識別子「ＵＳＥＲ−ＩＤ−０００１」が存在するとして、以降の説明を続ける。
【０１２５】
ライセンス生成・送信部１０２は、ユーザ識別子Ｄ７０１、およびライセンス取得要求メッセージ本体Ｍ１６００から抽出したコンテンツ識別子Ｍ１６０２に基づき、利用条件判定パラメータ格納部１１２が保持する利用条件判定パラメータ管理テーブルＤ７００ａから対象となる利用条件が存在するか否かを判定する（図２１：ステップＳ２１１４）。
【０１２６】
具体的には、ライセンス生成・送信部１０２は、利用条件判定パラメータ管理テーブルＤ７００ａのユーザ識別子Ｄ７０１、およびコンテンツ識別子Ｄ７０２と、ユーザ識別子Ｄ７０１およびコンテンツ識別子Ｍ１６０２とが共に一致しているレコードを特定する。該当するレコードがない場合、ライセンス生成・送信部１０２は、利用条件が存在しない旨を含む返信メッセージを、端末装置３００に送信する（図２１：ステップＳ２１１Ａ）。
【０１２７】
該当するレコードが存在する場合、ライセンス生成・送信部１０２は、格納されているロジック識別子Ｄ７０３、およびパラメータＤ７０４を取得し、パラメータＤ７０４が有効か否かを判定する（図２１：ステップＳ２１１４）。
【０１２８】
具体的には、ライセンス生成・送信部１０２は、パラメータＤ７０４が、利用条件として意味がない場合に、有効でないと判断する。例えば、再生回数制御ロジックに対応するパラメータＤ７０４の値が０の場合、有効でないと判断する。また、パラメータＤ７０４に関連付けて配信可能期間などを保持し、有効か否かを判定するとしても良い。パラメータＤ７０４が有効でない場合、ライセンス生成・送信部１０２は、利用条件が有効でない旨を含む返信メッセージを、端末装置３００に送信する（図２１：ステップＳ２１１Ａ）。
【０１２９】
パラメータＤ７０４が有効な場合、ライセンス生成・送信部１０２は、利用条件判定ロジックコード格納部１１１が保持する利用条件判定ロジックコード管理テーブルＤ６００から前記ロジック識別子Ｄ７０３をキーとして、一致する対応するロジック識別子Ｄ６０１を特定し、該当するレコードのロジックコードＤ６０３と、前記パラメータＤ７０４と、から利用条件バイトコードを生成する（図２１：ステップＳ２１１５）。ここでは、レコードに記述されるパラメータＤ７０４を用いて、利用条件バイトコードを生成するとしたが、レコードに記述されるパラメータＤ７０４の一部を用いて生成するとしても良い。例えば、再生回数制御ロジックに対応するパラメータＤ７０４の値が１０の場合、３回分を用いて、利用条件バイトコードを生成し、前記パラメータＤ７０４を７回分に減算しても良い。
【０１３０】
ライセンス生成・送信部１０２は、コンテンツ鍵格納部１１３が保持するコンテンツ鍵管理テーブルＤ８００から前記コンテンツ識別子Ｍ１６０２をキーとして、一致する対応するコンテンツ識別子Ｄ８０１を特定し、該当するレコードのコンテンツ鍵Ｄ８０２を取得する。
【０１３１】
ライセンス生成・送信部１０２は、前記利用条件バイトコードと、前記コンテンツ鍵Ｄ８０２と、からライセンスを生成する（図２１：ステップＳ２１１６）。
【０１３２】
ここで、具体例を用いて説明する。利用条件判定パラメータ管理テーブルＤ７００ａにおいて、ユーザ識別子「ＵＳＥＲ−ＩＤ−０００１」、コンテンツ識別子「ＣＯＮＴＥＮＴ−ＩＤ−０００１」で特定されたレコードのロジック識別子は、「ＬＯＧＩＣ−ＩＤ−０００１」で、パラメータは、「〜２００７／８／１５」である。判定日時を、２００７／８／１とすると、パラメータは有効と判定され、２００７／８／２０とすると有効でないと判断される。利用条件判定ロジックコード管理テーブルＤ６００ａにおいて、ロジック識別子は、「ＬＯＧＩＣ−ＩＤ−０００１」で特定されたレコードのバージョン番号は、「１．０」、ロジックコードは、「現在時刻＜パラメータ」、署名は、「３２３ｂｆ３ｂｂｃ」である。コンテンツ鍵管理テーブルＤ８００において、コンテンツ識別子「ＣＯＮＴＥＮＴ−ＩＤ−０００１」で特定されるコンテンツ鍵は「ＣＯＮＴＥＮＴ−ＫＥＹ−０００１」である。
【０１３３】
ここで、ユーザ識別子「ＵＳＥＲ−ＩＤ−０００１」、コンテンツ識別子「ＣＯＮＴＥＮＴ−ＩＤ−０００１」からなるライセンス取得要求メッセージに応じて生成されるライセンスについて、図１２を用いて説明する。前記ライセンスは、利用条件判定パラメータ１２０１「〜２００７／８／１５」、バージョン番号１２０２「１．０」、ロジックコード識別子１２０３「ＬＯＧＩＣ−ＩＤ−０００１」、利用条件判定ロジックコード１２０４「現在時刻＜パラメータ」、署名１２０５「３２３ｂｆ３ｂｂｃ」、コンテンツ鍵１２０６「ＣＯＮＴＥＮＴ−ＫＥＹ−０００１」から構成される。
【０１３４】
ライセンス生成・送信部１０２は、前記ライセンスをライセンス送信メッセージ本体Ｍ１７００のライセンスＭ１７０１に設定し、通信部１０１を通じて端末装置３００に送信する（図２１：ステップＳ２１１７）。
【０１３５】
端末装置３００は、通信部３０１を通じてライセンス送信メッセージ本体Ｍ１７００を受信し、ライセンスＭ１７０１を取得する（図２１：ステップＳ２１３４）。
【０１３６】
端末装置３００は、端末装置内で一意なライセンス識別子を生成する（図２１：ステップＳ２１３５）。
【０１３７】
端末装置３００は、取得したライセンスＭ１７０１をライセンス取得要求メッセージのコンテンツ識別子Ｍ１６０２と同じコンテンツ識別子と、前記ライセンス識別子と、を関連付けてライセンス格納部３１２に格納する（図２１：ステップＳ２１３６）。なお、ライセンスＭ１７０１にコンテンツ識別子を含める場合はコンテンツ識別子との関連付け処理が不要である。
【０１３８】
以上の説明では、ライセンス識別子を端末装置３００においてライセンスを一意に特定するための情報であると定義し、端末装置３００が生成するとした。これを、ライセンス識別子をライセンス利用システムにおいてライセンスを一意に特定するための情報であると定義し、ライセンス配信サーバ１００がライセンス生成時に作成しライセンスに付与するとしても良い。この場合、端末装置３００におけるライセンス識別子の生成処理、およびライセンス識別子との関連付け処理は不要となる。
【０１３９】
また、端末装置３００はライセンス配信サーバ１００より生成不可通知を含む返信メッセージを受信した場合は、返信メッセージに含まれる生成不可の理由をユーザに提示し、処理を終了する。
【０１４０】
以上で、ユーザがライセンス取得指示を行い、端末装置３００が、ライセンス配信サーバ１００よりライセンスを取得するまでの処理について説明した。
【０１４１】
次に、コンテンツ取得処理について説明する。
【０１４２】
コンテンツ取得処理の説明に先立ち、コンテンツ取得処理に関係する通信メッセージのデータ構造について図１８および図１９を参照して説明する。図１８のコンテンツ取得要求メッセージ本体Ｍ１８００はコンテンツ識別子Ｍ１８０１からなる。図１９のコンテンツ送信メッセージ本体Ｍ１９００はコンテンツＭ１９０１からなる。以上で、コンテンツ取得処理に関係する通信メッセージのデータ構造について説明した。
【０１４３】
次に、端末装置３００が、コンテンツ配信サーバ２００からコンテンツを取得するまでの各部の処理について図２２を参照して説明する。
【０１４４】
端末装置３００は、ユーザからの端末装置３００のアプリケーションへの情報入力、およびコンテンツ取得指示により、コンテンツ取得処理を開始する（図２２：ステップＳ２２３１）。ユーザは端末装置３００のアプリケーションに対して、少なくとも取得対象であるコンテンツを特定する情報の１つであるコンテンツ識別子または、コンテンツ識別子に準ずる情報を入力しなければならない。ユーザが、コンテンツ識別子「ＣＯＮＴＥＮＴ−ＩＤ−０００１」を入力し、コンテンツ取得処理を開始したとして、以下の説明を行う。
【０１４５】
ユーザからの情報入力を受けた端末装置３００は、コンテンツ取得部３０５においてコンテンツ取得要求メッセージを生成し、通信部３０１を通じてコンテンツ配信サーバ２００に送信する（図２２：ステップＳ２２３２）。コンテンツ取得要求メッセージ本体Ｍ１８００に含まれるコンテンツ識別子Ｍ１８０１は、ユーザが入力したコンテンツ識別子「ＣＯＮＴＥＮＴ−ＩＤ−０００１」を設定する。
【０１４６】
コンテンツ配信サーバ２００は、通信部２０１を通じて前記コンテンツ取得要求メッセージを受信する（図２２：ステップＳ２２１１）。
【０１４７】
コンテンツ取得・送信部２０２は、コンテンツ取得要求メッセージ本体Ｍ１８００から、コンテンツ識別子Ｍ１８０１を抽出し、コンテンツ識別子Ｍ１８０１に対応するコンテンツがコンテンツ格納部２１１に存在するか否かを判定する（図２２：ステップＳ２２１２）。
【０１４８】
前記コンテンツが存在しない場合は、コンテンツを取得できないため、処理を終了し、コンテンツが存在しない、すなわちコンテンツ識別子が不正である旨をメッセージ本体に含む返信メッセージを端末装置３００に送信する（図２２：ステップＳ２２１Ａ）。コンテンツ取得・送信部２０２は、前記コンテンツが存在する場合は、前記コンテンツを取得し、以降の処理を行う。なお、本実施の形態では、図９にあるように、コンテンツ識別子「ＣＯＮＴＥＮＴ−ＩＤ−０００１」に対応するコンテンツ「ＣＯＮＴＥＮＴ−ＤＡＴＡ−０００１」が存在するとして、以降の説明を続ける。
【０１４９】
コンテンツ取得・送信部２０２は、前記コンテンツをコンテンツ送信メッセージ本体Ｍ１９００のコンテンツＭ１９０１に設定し、通信部２０１を通じて端末装置３００に送信する（図２２：ステップＳ２２１３）。
【０１５０】
端末装置３００は、通信部３０１を通じてコンテンツ送信メッセージ本体Ｍ１９００を受信し、コンテンツＭ１９０１を取得する（図２２：ステップＳ２２３４）。
【０１５１】
端末装置３００は、取得したコンテンツＭ１９０１をコンテンツ取得要求メッセージのコンテンツ識別子Ｍ１８０１と同じコンテンツ識別子と関連付けてライセンス格納部３１２に格納する（図２２：ステップＳ２２３５）。なお、コンテンツＭ１９０１にコンテンツ識別子を含める場合はコンテンツ識別子との関連付け処理が不要である。
【０１５２】
また、端末装置３００はコンテンツ配信サーバ２００より配信不可通知を含む返信メッセージを受信した場合は、返信メッセージに含まれる生成不可の理由をユーザに提示し、処理を終了する。
【０１５３】
以上で、ユーザがコンテンツ取得指示を行い、端末装置３００が、コンテンツ配信サーバ２００よりコンテンツを取得するまでの処理について説明した。
【０１５４】
次に、端末装置３００が、コンテンツを再生し、終了するまでの各部の処理について図２３、および図２４を参照して説明する。
【０１５５】
端末装置３００は、ユーザからの端末装置３００のアプリケーションへの情報入力、およびコンテンツ再生指示により、コンテンツ再生処理を開始する（図２３：ステップＳ２３０１）。ユーザは端末装置３００のアプリケーションに対して、少なくとも再生対象であるコンテンツを特定する情報の１つであるコンテンツ識別子または、ライセンス識別子を入力しなければならない。ユーザが、ライセンス識別子を入力し、コンテンツ再生処理を開始したとして、以下の説明を行う。
【０１５６】
ユーザからの情報入力を受けた端末装置３００は、利用条件検証部３０２が、前記ライセンス識別子に基づきライセンスを特定（図２３：ステップＳ２３０２）する。利用条件検証部３０２は、特定したライセンスに含まれる利用条件判定ロジックコード情報を抽出し、前記利用条件バイトコードの利用可否判定を行なうバイトコード利用可否判定プロセスを実施する（図２３：ステップＳ２３０３）。
【０１５７】
利用条件バイトコード実行部３０３は、バイトコード利用可否判定プロセスの判定結果を確認し、利用条件バイトコードの実行可否を判定する（図２３：ステップＳ２３０４）。
【０１５８】
利用条件バイトコードの実行が許可されない場合、処理を終了し、許可されない理由と共にユーザに通知する。なお、利用条件バイトコードの実行が許可されない場合、許可されない理由と共にユーザに通知し、ユーザが処理継続を望むならば、以降の処理を行うとしても良い。例えば、「対象コンテンツに対応する利用条件の動作は、技術管理団体による確認をされていませんが、処理を継続しますか？」と言った通知を行う。ＶＭ上での動作エラーリスクをとってでもコンテンツ利用を行いたいユーザに対して有効である。また、利用条件バイトコードの実行が利用可でないということは、技術管理団体が動作を保証していないだけであって、動作しないことを示すわけではないことをユーザに通知することもユーザ利便性の観点から重要である。
【０１５９】
利用条件バイトコードの実行が許可される場合、利用条件バイトコード実行部３０３における当該利用条件バイトコードの動作を利用条件管理サーバ４００、および技術管理団体が確認済み、すなわち当該利用条件バイトコードの実行による端末装置３００のトラブルリスクは低いと判断する。
【０１６０】
利用条件バイトコード実行部３０３は、前記利用条件バイトコードを実行し、コンテンツ利用可否を判定する（図２３：ステップＳ２３０５）。ここで、利用条件バイトコードによるコンテンツ利用可否判定について簡単に説明する。先に説明したように、利用条件バイトコードには、少なくとも、利用条件判定ロジックコードと利用条件判定パラメータが含まれる。本可否判定では、利用条件判定ロジックコードが利用条件判定パラメータを参照しながら、利用可否の判定を実施する。
【０１６１】
具体的には、利用条件バイトコード実行部３０３は、利用条件判定ロジックコードとして「現在時刻＜パラメータならば、利用可」、利用条件判定パラメータとして「２００７年８月８日」を含む利用条件バイトコードの場合、「現在時刻が、２００７年８月８日より前ならば、利用可、そうでなければ利用不可」といった利用可否判定を行なう。コンテンツ利用が許可されない場合、処理を終了し、許可されない理由と共にユーザに通知する。
【０１６２】
コンテンツ利用が許可される場合、コンテンツ再生部３０６は、前記ライセンスに関連付けられているコンテンツ識別子をキーとして、コンテンツ格納部３１１から対応するコンテンツを特定する（図２３：ステップＳ２３０６）。
【０１６３】
コンテンツ再生部３０６は、前記ライセンスに含まれるコンテンツ鍵を用いて前記コンテンツを復号し、再生する（図２３：ステップＳ２３０７）。
【０１６４】
利用条件バイトコード実行部３０３上で動作する利用条件バイトコードは、コンテンツの再生中、あるいは終了時に、利用条件判定パラメータの更新要否を判定する（図２３：ステップＳ２３０８）。例えば、利用条件判定ロジックコードが再生可能回数制御を行なう場合、更新要と判定し、利用条件判定ロジックコードが再生可能期間制御を行なう場合、更新不要といった判定を行なう。
【０１６５】
更新不要であれば、再生を継続する、あるいは処理を終了する。
【０１６６】
更新要であれば、利用条件バイトコードは利用条件判定パラメータを更新する（図２３：ステップＳ２３０９）。例えば、利用条件判定ロジックコードが再生可能回数制御を行ない、利用条件判定パラメータが「５回」の場合、再生終了時に、利用条件判定パラメータを「４回」と更新する。また、利用条件判定パラメータを更新するのではなく、端末装置３００内の記憶領域に利用実績として「１回」を記録するとしても良い。この場合、利用条件判定ロジックコードは、前記利用実績と、利用条件判定パラメータに基づき利用可否を判定するプログラムとなる。再生可能回数に相当するデータが、利用条件判定ロジックコードに含まれる場合は、利用条件判定ロジックコードのデータを更新すると署名検証が失敗してしまうので、端末装置３００内の記憶領域に記録する必要がある。
【０１６７】
以上で、端末装置３００においてコンテンツを再生し、終了するまでの処理について説明した。
【０１６８】
次に、図２４のフローチャートを参照して、図２３におけるステップＳ２３０３の、バイトコード利用可否判定プロセスについて説明を行う。
【０１６９】
利用条件検証部３０２は、前記利用条件判定ロジックコード情報の署名検証を行なう（図２４：ステップＳ２４０１）。具体的には、利用条件検証部３０２は、端末装置３００の記憶領域（図示せず）に記録されている利用条件管理サーバ４００の公開鍵を用いて、利用条件判定ロジックコード情報の検証を行なう。
【０１７０】
利用条件判定ロジックコード情報の検証が失敗した場合、許可されない理由と共に、利用不可を返す（図２４：ステップＳ２４０５）。
【０１７１】
利用条件判定ロジックコード情報の検証が成功した場合、以降の処理を行なう。
【０１７２】
利用条件検証部３０２は、前記利用条件判定ロジックコード情報からバージョン番号を抽出すると共に、利用条件バイトコード実行部３０３から利用条件バイトコード実行部３０３上で実行可能な利用条件バイトコードのバージョン番号を示すバイトコード実行部バージョン番号を取得する。ここで、バイトコード実行部バージョン番号は、特許請求の範囲に記載の「動作可能バージョン情報」に包含され、特許請求の範囲に記載の「動作可能バージョン情報で示されるバージョン番号」に相当する。
【０１７３】
利用条件検証部３０２は、前記バージョン番号と、バイトコード実行部バージョン番号と、から利用条件バイトコード実行部３０３が、利用条件判定ロジックコードに対応しているか否かを判定する（図２４：ステップＳ２４０２）。
【０１７４】
具体的には、利用条件検証部３０２は、前記バージョン番号が、バイトコード実行部バージョン番号以下の場合は、利用条件バイトコード実行部３０３が、利用条件判定ロジックコードの実行に対応していると判定する。そして、利用条件検証部３０２は、前記バージョン番号が、バイトコード実行部バージョン番号よりも大きい場合は、利用条件バイトコード実行部３０３が、利用条件判定ロジックコードの実行に対応していないと判定する。
【０１７５】
利用条件バイトコード実行部３０３が対応していないと判定した場合、許可されない理由と共に、利用不可を返す（図２４：ステップＳ２４０５）。
【０１７６】
利用条件バイトコード実行部３０３が対応していると判定した場合、以降の処理を行なう。
【０１７７】
利用条件検証部３０２は、前記利用条件判定ロジックコード情報からロジック識別子を抽出すると共に、利用条件バイトコード実行部３０３から利用条件バイトコード実行部３０３上で実行可能な利用条件判定ロジックコードのロジック識別子のリストであるロジック識別子リストを取得する。
【０１７８】
利用条件検証部３０２は、前記ロジック識別子と、ロジック識別子リストと、から利用条件バイトコード実行部３０３が、前記ロジック識別子に対応する利用条件判定ロジックコードに対応しているか否かを判定する（図２４：ステップＳ２４０３）。
【０１７９】
具体的には、利用条件検証部３０２は、前記ロジック識別子が、ロジック識別子リストに含まれる場合は、利用条件バイトコード実行部３０３が、前記利用条件判定ロジックコードの実行に対応していると判定する。そして、利用条件検証部３０２は、前記ロジック識別子が、ロジック識別子リストに含まれない場合は、利用条件バイトコード実行部３０３が、前記利用条件判定ロジックコードの実行に対応していないと判定する。なお、ここでは利用条件判定ロジックコードを特定する情報として、ロジック識別子を用いる場合について説明したが、利用条件判定ロジックコードの処理内容を示す文字列、例えば、有効期間制御や、回数制御相当の情報を示す文字列を用いて、利用条件判定ロジックコードを特定するとしても良い。この場合、前記文字列は、利用条件バイトコード実行部３０３の対応判定に利用できるとともに、ユーザに提示する情報としても使うことができる。
【０１８０】
利用条件バイトコード実行部３０３が対応していないと判定した場合、許可されない理由と共に、利用不可を返す（図２４：ステップＳ２４０５）。
【０１８１】
利用条件バイトコード実行部３０３が対応していると判定した場合、利用可を返す（図２４：ステップＳ２４０４）。
【０１８２】
以上の説明では、署名検証に成功した後、バージョン番号、あるいは、ロジック識別子を用いて、当該利用条件バイトコードの動作が利用条件バイトコード実行部３０３において、技術管理団体により確認されているか、否かを判定する方法について説明した。
【０１８３】
次に、上記と異なる判定方法について説明する。ここで詳細の説明に先立ち、利用条件判定ロジックコード格納部１１１が保持する図６Ｂについて説明する。Ｄ６０１からＤ６０４までの説明は、図６Ａで説明したため、省略する。使用機能識別子Ｄ６０５は、ロジック識別子Ｄ６０１で特定されるロジックコードＤ６０３を端末装置３００上で実行する際に、必要とするリソース、および機能を特定する識別子、あるいは識別子リストである。例えば、図６Ｂにおいて、ロジック識別子Ｄ６０１が「ＬＯＧＩＣ−ＩＤ−０００２」であるロジックコードＤ６０３が使用するリソースは、「セキュアクロックと、不揮発性メモリ」であることを示している。プロバイダ識別子Ｄ６０６は、対応するロジックコードＤ６０３を作成したＳＰを特定する識別子である。例えば、ロジック識別子Ｄ６０１が「ＬＯＧＩＣ−ＩＤ−０００４」であるロジックコードＤ６０３は、プロバイダ識別子Ｄ６０６がＳＰ３であるＳＰにより作成されたことを示している。なお、利用条件判定ロジックコード格納部１１１へのデータ登録は、ライセンス配信サーバ１００が、利用条件管理サーバ４００に利用条件判定ロジックコードの追加を要求した際に行われる。追加された利用条件判定ロジックコードと関連付けて、前記ライセンス配信サーバ１００を運営しているＳＰの識別子がプロバイダ識別子Ｄ６０６に登録される。
【０１８４】
次に、使用機能識別子Ｄ６０５を用いて、当該利用条件バイトコードの動作が利用条件バイトコード実行部３０３において保証されているか、否かを判定する方法について説明する。
【０１８５】
利用条件検証部３０２は、当該利用条件バイトコードを特定するロジック識別子に対応する使用機能識別子Ｄ６０５を抽出すると共に、利用条件バイトコード実行部３０３から利用可能なリソース、および機能を特定する識別子のリストである使用可能機能識別子リストを取得する。
【０１８６】
利用条件検証部３０２は、前記使用機能識別子Ｄ６０５と、使用可能機能識別子リストと、から利用条件バイトコード実行部３０３が、前記ロジック識別子に対応する利用条件判定ロジックコードに対応しているか否かを判定する。
【０１８７】
具体的には、利用条件検証部３０２は、前記使用機能識別子Ｄ６０５が、全て使用可能機能識別子リストに含まれる場合は、利用条件バイトコード実行部３０３が、前記利用条件判定ロジックコードの実行に対応していると判定する。そして、利用条件検証部３０２は、前記使用機能識別子Ｄ６０５の少なくとも一つの識別子が、使用可能機能識別子リストに含まれていない場合、利用条件バイトコード実行部３０３が、前記利用条件判定ロジックコードの実行に対応していないと判定する。なお、ここでは使用機能識別子Ｄ６０５が、ライセンスに含まれるとして説明したが、端末装置３００が、ロジック識別子と、対応利用条件判定ロジックコードの使用に必要なリソース、機能識別子リストを保持し、保持リストに基づき、上記判定を行うとしても良い。例えば、同一メーカーＡが製造した端末装置３００が製品ラインナップとして、保持するリソース、機能が異なる場合などに、使用機能識別子Ｄ６０５による判定が、有効である。
【０１８８】
次に、プロバイダ識別子Ｄ６０６を用いて、当該利用条件バイトコードの動作が利用条件バイトコード実行部３０３において保証されているか、否かを判定する方法について説明する。
【０１８９】
利用条件検証部３０２は、当該利用条件バイトコードを特定するロジック識別子に対応するプロバイダ識別子Ｄ６０６を抽出すると共に、端末装置３００内の記憶領域（図示せず）に記録された、動作保証済みプロバイダ識別子リストを取得する。
【０１９０】
利用条件検証部３０２は、前記プロバイダ識別子Ｄ６０６と、動作保証済みプロバイダ識別子リストと、から利用条件バイトコード実行部３０３が、前記ロジック識別子に対応する利用条件判定ロジックコードに対応しているか否かを判定する。
【０１９１】
具体的には、利用条件検証部３０２は、前記プロバイダ識別子Ｄ６０６が、動作保証済みプロバイダ識別子リストに含まれる場合は、利用条件バイトコード実行部３０３が、前記利用条件判定ロジックコードの実行に対応していると判定する。そして、利用条件検証部３０２は、前記プロバイダ識別子Ｄ６０６が、動作保証済みプロバイダ識別子リストに含まれていない場合、利用条件バイトコード実行部３０３が、前記利用条件判定ロジックコードの実行に対応していないと判定する。例えば、メーカーＡが製造した端末装置３００は、メーカーＡのグループ会社であるサービスプロバイダＡＡが運営するライセンス配信サーバとは、種々のテストを実施し、特別に信頼できる場合などに、プロバイダ識別子Ｄ６０６による判定が有効である。なお、以上で説明した識別情報以外にも、ＶＭ種別、端末メーカー種別といった情報により判定することも可能である。また、これらの判定に用いる情報は、利用条件管理サーバ４００におけるデジタル署名の対象領域に含まれることが望ましい。デジタル署名の対象領域に含まれないと、改ざんが検出できないため、ウイルス的な効果をもった利用条件バイトコードを実行するリスクが考えられるためである。
【０１９２】
また、以上の説明では、複数の判定方法において、何れも対応済みと判定された場合のみ、利用可とするとして説明したが、何れか一つの判定方法において対応済みならば、利用可とするとしても良い。例えば、バージョン番号を用いた判定で対応済みでなくとも、ロジック識別子を用いた判定で対応済みであれば、利用可とする。また、以上の説明では、複数の方法で判定を行い、利用可否を判定するとして説明したが、前述した何れか一つの方法で判定を行っても良いし、２つ以上の判定方法を組み合わせて、ＡＮＤあるいはＯＲ条件で判定するとしても良い。
【０１９３】
以上で、バイトコード利用可否判定プロセスについて説明した。
【０１９４】
次に、利用条件管理サーバ４００において、利用条件判定ロジックコードを追加する際の各部の処理について図２５を参照して説明する。
【０１９５】
利用条件管理サーバ４００は、サーバ管理者、あるいはライセンス配信サーバ１００（以下、「追加指示者」と呼ぶ）からの利用条件判定ロジックコード追加指示により、利用条件判定ロジックコード追加処理を開始する（図２５：ステップＳ２５０１）。追加指示者は、利用条件管理サーバ４００の利用条件バイトコード入力部４０２に対して、少なくとも利用条件判定ロジックコードを含む利用条件バイトコードを入力しなければならない。なお、利用条件バイトコードではなく、利用条件判定ロジックコードや、「＊泊＊日の再生可否判定をしたい」といった利用条件の要件を入力するとしても良い。その場合、利用条件バイトコード分離部４０３の処理は不要となる。また、利用条件の要件が入力された場合、前記要件を、利用条件判定ロジックコードに変換する処理が必要となる。
【０１９６】
利用条件バイトコード入力部４０２からの情報入力を受けた利用条件バイトコード分離部４０３は、入力された利用条件バイトコードの内容、あるいは追加申請を行ったライセンス配信サーバ１００を運営するＳＰとの関係などに応じて、利用条件判定ロジックコードと、利用条件判定パラメータとの分離ポリシーを決定する（図２５：ステップＳ２５０２）。そして、利用条件バイトコード分離部４０３は、前記分離ポリシーに基づき、利用条件バイトコードを、利用条件判定ロジックコードと、利用条件判定パラメータと、に分離する（図２５：ステップＳ２５０３）。より本質的には、ＳＰと技術管理団体との責任範囲を明確にする。すなわち、ＳＰの責任範囲のコードは、利用条件判定パラメータに、技術管理団体の責任範囲のコードは、利用条件判定ロジックコードに分離する。
【０１９７】
つまり、例えば、ＳＰの信頼度が極めて低い場合など、全てのデータを利用条件判定ロジックコードに含める、あるいは信頼度が極めて高いＳＰには、データを利用条件判定パラメータに含めるといった運用も想定される。利用条件バイトコードを、利用条件判定ロジックコードと、利用条件判定パラメータと、に分離する具体例については、先の利用条件バイトコードの説明において記述したため、ここでは省略する。
【０１９８】
利用条件判定ロジックコード動作検証部４０６は、利用条件バイトコード分離部４０３で分離、抽出された利用条件判定ロジックコードに対して種々のテストを実施するなどして、動作確認を行い、動作確認ができない場合は、処理を終了する。
【０１９９】
利用条件判定ロジックコード管理情報生成部４０５は、バージョン番号格納部４１２の更新日時が一番新しい、バージョン番号を取得し、バージョン番号を加算し、新たなバージョン番号を生成する（図２５：ステップＳ２５０４）。
【０２００】
具体的には、利用条件判定ロジックコード管理情報生成部４０５は、一番新しいバージョン番号が「２．０」ならば、新たなバージョン番号として「３．０」を付与する。また、既存の利用条件判定ロジックコードの相違点の度合いによって加算する値を変えるとしても良い。例えば、使用する機能が変わるなど、大きな変更の場合、「１．０」を加算し、参照する利用条件判定パラメータの変更など、相違点が軽微で端末装置３００上での動作に影響がないと判断される場合、「０．１」を加算する。
【０２０１】
利用条件判定ロジックコード管理情報生成部４０５は、新たに追加する利用条件判定ロジックコードに対して新たなロジック識別子を付与する（図２５：ステップＳ２５０５）。
【０２０２】
利用条件判定ロジックコード管理情報生成部４０５は、少なくとも先に分離した利用条件判定ロジックコードと、前記新たなバージョン番号と、前記新たなロジック識別子を含むデータに対して、利用条件管理サーバ４００の記憶領域（図示せず）に記憶される利用条件管理サーバ４００秘密鍵を用いてデジタル署名を付与し、利用条件判定ロジックコード格納部４１１に格納する（図２５：ステップＳ２５０６）。より本質的には、技術管理団体の責任範囲のデータに対して、利用条件管理サーバ４００秘密鍵を用いてデジタル署名を付与し、利用条件判定ロジックコード格納部４１１に格納する。
【０２０３】
以上で、利用条件管理サーバ４００において利用条件判定ロジックコードを追加する際の処理について説明した。
【０２０４】
以上の説明では、バージョン番号は、コンテンツ配信システムにおいて一意として説明したが、利用条件判定ロジックコード、あるいはロジック識別子毎に、バージョン番号を管理するとしても良い。この場合、ロジック識別子毎に、バージョン番号を管理し、利用条件判定ロジックコード動作検証部４０６において、動作確認が完了したバージョン番号を付与し、利用条件判定ロジックコード、ロジック識別子、バージョン番号に対してデジタル署名を付与する。
【０２０５】
また、バージョン番号の他に、端末メーカー識別子、ＶＭ識別子も関連付け、動作確認が完了したＶＭを特定可能としても良い。この場合、バージョン番号、端末メーカー識別子、ＶＭ識別子の全てを満たす場合、何れか一つを満たせばよいなど、種々の制御が想定される。
【０２０６】
また、以上の説明では、技術管理団体が認定した利用条件判定ロジックコードに対して、技術管理団体が署名を行うモデルについて説明した。技術管理団体ではなく、端末装置メーカーが認定した利用条件判定ロジックコードに対して、端末装置メーカーが署名を行い、端末装置３００において検証の後、利用条件バイトコードを実行するとしても良い。また、技術管理団体が署名した利用条件判定ロジックコードと、端末装置メーカーが署名した利用条件判定ロジックコードと、が共存するとしても良い。この場合、端末装置３００は、技術管理団体の公開鍵、および端末装置メーカーの公開鍵が必要となる。
【０２０７】
また、同一の利用条件判定ロジックコードに対して端末装置メーカー毎に署名を付与するモデルでは、例えば、署名検証が３社以上成功すれば、実行するなどと、しても良い。
【０２０８】
また、複数団体による署名付き利用条件判定ロジックコードが共存する場合、端末装置の独自ルール、あるいはユーザの意思により、どの団体を優先的に判定するかを決めても良い。また、通常、技術管理団体の署名検証を最初に実施する端末装置において、特定条件下では、異なる団体の署名検証を優先するとしても良い。例えば、メーカーＡが製造した端末装置３００は、メーカーＡのグループ会社であるサービスプロバイダＡＡの署名判定を最優先する、などである。
【０２０９】
また、２以上の利用条件バイトコードが連携して利用可否判断を行うとしても良い。複数の利用条件バイトコードが連携する場合、署名検証などによる検証結果や、対象とするコンテンツ種別等により、連携要否を判断するとしても良い。
【０２１０】
以上の説明では、端末装置３００は、ライセンス配信サーバ１００から取得したライセンスに含まれる利用条件判定ロジックコードを実行するとして説明した。これを、端末装置３００は予め、動作確認済みの利用条件判定ロジックコードを保持しており、前記ライセンスに含まれるロジック識別子と一致する、利用条件判定ロジックコードを端末内に保持する場合、端末内で保持する利用条件判定ロジックコードを実行するとしても良い。署名付き利用条件判定ロジックコードは、受信した利用条件判定ロジックコードを実行し、署名が付いていない、あるいは、検証に失敗した場合、端末内で保持する利用条件判定ロジックコードを実行するとしても良い。
【０２１１】
また、以上の説明では、利用条件バイトコードについて説明したが、異なる用途のバイトコードであっても、責任範囲により、バイトコードを分解し、責任範囲のデータに対して署名することにより、バイトコードの信頼性を向上させることが可能である。
【０２１２】
また、以上の説明では、利用条件バイトコードを構成する要素のうち、ロジック識別子、バージョン番号、利用条件判定ロジックコードを署名対象要素として、該署名対象要素に対して利用条件管理サーバが署名を付与すると説明した。利用条件管理サーバが利用する署名アルゴリズムでは署名対象部分と署名対象でない部分を分割できない形で利用条件バイトコードが構成されている場合、典型的には、利用条件バイトコードが第１のＸＭＬ要素の内容として符号化されており、利用条件管理サーバが該第１のＸＭＬ要素に対してＸＭＬ署名を付与する場合がある。この場合には、署名対象部分に対応する部分、具体的には、ロジック識別子、バージョン番号、利用条件判定ロジックコードのうち、少なくとも利用条件判定ロジックコードを内容に含む第２のＸＭＬ要素を新たに設けて、該第２のＸＭＬ要素に対して署名を付与してもよい。この際、端末装置は第２のＸＭＬ要素に対して付与された署名を検証するとともに、第１のＸＭＬ要素の内容のうち、第２のＸＭＬ要素の内容に相当する部分のデータの改竄を検証するものとする。
【０２１３】
（実施の形態２）
本発明の実施の形態２におけるコンテンツ配信システムについて説明を行う。
【０２１４】
図２６は、本発明の実施の形態２におけるコンテンツ配信システムの全体構成を示す図である。
【０２１５】
図２６において、コンテンツ配信システムは、コンテンツ配信サーバ２１００と、ライセンス配信サーバ２１１０と、利用条件判定ロジックコード管理サーバ２１２０と、複数の端末装置２１３０（図２６では、簡略化して１つのみ図示する）と、伝送路２１４０を備えている。以下、コンテンツ配信システムの各構成要素について説明を行う。
【０２１６】
コンテンツ配信サーバ２１００は、端末装置２１３０に対し、暗号化されたコンテンツを配信するサーバである。コンテンツには、コンテンツ配信システムにおいて、それを一意に特定することが可能なコンテンツＩＤが付与され配信されるものとする。
【０２１７】
ライセンス配信サーバ２１１０は、各ユーザのコンテンツに対する契約（利用権利）を管理し、端末装置２１３０に対し、図３０を用いて後述するライセンス２５００を配信するサーバである。このライセンス２５００がライセンス配信サーバ２１１０から端末装置２１３０に配信される際には、ＳＡＣを通じてセキュアに配信される。ＳＡＣとしては、例えば、ＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ）を用いることができる。
【０２１８】
利用条件判定ロジックコード管理サーバ２１２０は、図２７を用いて後述する利用条件判定ロジックコード管理情報２２００を生成・管理し、必要に応じて、ライセンス配信サーバ２１１０に対しそれを送信するサーバである。
【０２１９】
端末装置２１３０は、ユーザによって使用される装置であり、ライセンス配信サーバ２１１０から配信されたライセンス２５００を用いて、コンテンツ配信サーバ２１００から配信されたコンテンツを利用する装置である。各端末装置２１３０にはコンテンツ配信システムにおいて、それを一意に特定することが可能なＩＤが付与されているものとする。
【０２２０】
伝送路２１４０は、インターネット、ＣＡＴＶ（Ｃａｂｌｅ  Ｔｅｌｅｖｉｓｉｏｎ）、放送波等の有線伝送媒体、無線伝送媒体、または可搬型記録媒体などであり、コンテンツ配信サーバ２１００、ライセンス配信サーバ２１１０、利用条件判定ロジックコード管理サーバ２１２０、端末装置２１３０間をデータ交換可能に接続するものである。
【０２２１】
なお、本実施の形態においては、コンテンツ配信サーバ２１００とライセンス配信サーバ２１１０は、サービス事業者によって運営され、利用条件判定ロジックコード管理サーバ２１２０はコンテンツ配信システムに技術仕様を提供する技術管理団体によって運営されることとするが、勿論これに限るわけではない。
【０２２２】
以上で、コンテンツ配信システムの全体構成に関する説明を終了する。
【０２２３】
ここで以降の詳細な説明に先立ち、本実施の形態において端末装置２１３０上でのコンテンツの利用可否判定に用いる情報の定義を行なう。
【０２２４】
まず、端末装置２１３０において利用可否判定を行なう利用条件バイトコードについて説明する。利用条件バイトコードは、端末装置２１３０上で動作するプログラムであり、少なくとも利用可否判定を行なうロジックと、前記ロジックが参照するパラメータを含む。具体的には、「現在時刻＜パラメータならば、利用可」というロジックと、「２００７年８月８日」といったパラメータからなり、「現在時刻が、２００７年８月８日より前ならば、利用可、そうでなければ利用不可」といった利用可否判定を行なうプログラムである。
【０２２５】
本実施の形態では、前記ロジックを示すプログラム、およびデータを、利用条件判定ロジックコード、前記パラメータを示すプログラム、およびデータを、利用条件判定パラメータと呼ぶこととする。具体的には、利用条件判定ロジックコードは、前述の例の他に、「現在利用回数＜パラメータならば、利用可」、「初回利用時刻＋パラメータ＜現在時刻ならば、利用可」、「２００７年７月７日＜現在時刻＜パラメータならば、利用可」などがある。また、利用条件判定パラメータは、前述の例の他に、「１０回」、「２日間」、「ライセンス取得時刻＋３日」などがある。具体例で説明したように、利用条件判定ロジックコードに「２００７年７月７日」のような数値データを含む、あるいは、利用条件判定パラメータに「ライセンス取得時刻＋」といった演算プログラムを含む、としても良いものとする。
【０２２６】
以上で利用条件バイトコードに関する説明を終わる。
【０２２７】
次に、図２７を用いて、利用条件判定ロジックコード管理情報２２００について説明を行う。利用条件判定ロジックコード管理情報２２００は、ロジックコードＩＤ２２０１と、プロファイル２２０２と、バージョン２２０３と、利用条件判定ロジックコード２２０４と、動作検証状況情報２２０５を含む情報である。
【０２２８】
ロジックコードＩＤ２２０１とは、利用条件判定ロジックコード２２０４を一意に特定するＩＤである。プロファイル２２０２は、利用条件判定ロジックコード２２０４のプロファイルを示す情報であり、例えば、「期限判定」や「回数判定」といった利用条件の種別や、「サブスクリプション」や「レンタル」といったサービスの種別などを設定することが想定される。バージョン２２０３は、利用条件判定ロジックコード２２０４のバージョンを示す情報である。利用条件判定ロジックコード２２０４は、前述の利用条件バイトコードに含まれる利用条件判定ロジックコードのことである。動作検証状況情報２２０５は、利用条件判定ロジックコード２２０４の各端末装置２１３０における動作検証状況を示す情報である。本実施の形態においては、出荷済みの端末装置２１３０のうち、動作検証が完了していない端末装置２１３０の端末ＩＤを列挙した情報であるとする。
【０２２９】
図２７においては、例えば、ロジックコードＩＤ２２０１が「０００２」である利用条件判定ロジックコード２２０４は「現在日時＜初回利用時刻＋パラメータ」であり、そのプロファイル２２０２は「期限」、バージョン２２０３は「２．０」であり、動作検証状況情報２２０５に記載されている動作未検証の端末装置２１３０のＩＤは「０００１００００」であることを示している。
【０２３０】
利用条件判定ロジックコード管理情報２２００は、次に説明する通り、利用条件判定ロジックコード管理サーバ２１２０によって、生成・管理されることとする。
【０２３１】
利用条件判定ロジックコード管理サーバ２１２０は、利用条件判定ロジックコード２２０４を生成し、それにロジックコードＩＤ２２０１、プロファイル２２０２、バージョン２２０３を付与するとともに利用条件判定ロジックコード管理情報２２００にこれらの情報を登録する。また、利用条件判定ロジックコード管理サーバ２１２０は、端末装置２１３０の製造事業者にこれらの情報を提供する。
【０２３２】
端末装置２１３０の製造事業者は、利用条件判定ロジックコード２２０４について端末装置２１３０における動作検証を行い、適宜その完了状況を利用条件判定ロジックコード管理サーバ２１２０に通知する。
【０２３３】
利用条件判定ロジックコード管理サーバ２１２０は、端末装置２１３０の製造事業者から通知された情報をもとに、動作検証状況情報２２０５を生成・更新し、利用条件判定ロジックコード管理情報２２００に登録する。
【０２３４】
以上で、利用条件判定ロジックコード管理情報２２００に関する説明を終わる。
【０２３５】
次に、図２８を用いて、ライセンス配信サーバ２１１０の全体構成について説明する。図２８においてライセンス配信サーバ２１１０は、通信部２３０１と、利用条件判定ロジックコード管理データベース２３０２と、利用権利管理データベース２３０３と、ライセンス生成・送信部２３０４と、動作検証状況確認部２３０５と、動作検証状況フラグ設定部２３０６とから構成される。以下、各構成要素について説明を行う。
【０２３６】
通信部２３０１は、伝送路２１４０を通じて利用条件判定ロジックコード管理サーバ２１２０や端末装置２１３０と通信を行う処理部である。
【０２３７】
利用条件判定ロジックコード管理データベース２３０２は、前述の利用条件判定ロジックコード管理情報２２００を管理するデータベースである。利用条件判定ロジックコード管理データベース２３０２は、必要に応じて、適宜、利用条件判定ロジックコード管理サーバ２１２０にアクセスし、利用条件判定ロジックコード管理情報２２００を更新する。
【０２３８】
利用権利管理データベース２３０３は、ユーザが購入したコンテンツの利用権利を管理するデータベースである。図２９にその一例を示す。図２９において、利用権利管理データベース２３０３は、端末ＩＤ２４０１と、利用権利ＩＤ２４０２と、ロジックコードＩＤ２４０３と、利用条件パラメータ２４０４と、コンテンツ鍵２４０５とから構成される。
【０２３９】
端末ＩＤ２４０１には、各ユーザが所有する端末装置２１３０のＩＤが記述される。利用権利ＩＤ２４０２には、各ユーザが購入した利用権利のＩＤが記述される。ロジックコードＩＤ２４０３には、利用権利ＩＤ２４０２によって特定される利用権利において使用される利用条件判定ロジックコード２２０４のＩＤが記述される。利用条件パラメータ２４０４には、利用権利ＩＤ２４０２によって特定される利用権利において使用される利用条件パラメータが記述される。コンテンツ鍵２４０５には、利用権利ＩＤ２４０２によって特定される利用権利を用いて利用可能なコンテンツを復号するための鍵が記述される。
【０２４０】
図２９においては、例えば、端末ＩＤ２４０１が「０００１０００２」である端末装置２１３０を有するユーザは、利用権利ＩＤ２４０２が「００２１」の利用権利を購入していることを示している。そして、その利用権利で使用される、利用条件判定ロジックコードのロジックコードＩＤ２４０３は「０００３」、利用条件パラメータ２４０４は「１回」であり、その利用権利を用いて利用するコンテンツの復号鍵は「３３３３３３」であることを示している。
【０２４１】
図２８に戻り、ライセンス生成・送信部２３０４は、端末装置２１３０からの要求に応じて、図３０を用いて説明するライセンス２５００を生成し、ユーザ端末装置２１３０に送信する処理部である。
【０２４２】
ここで、ライセンス生成・送信部２３０４が生成・送信するライセンス２５００について説明を行う。
【０２４３】
図３０に示す通り、ライセンス２５００は、プロファイル２５０１と、バージョン２５０２と、利用条件判定ロジックコード２５０３と利用条件パラメータ２５０４とから構成される利用条件バイトコード２５０８と、動作検証状況フラグ２５０５と、コンテンツ鍵２５０６と、署名２５０７を含むデータである。
【０２４４】
プロファイル２５０１、バージョン２５０２には、ライセンス２５００に含まれる利用条件判定ロジックコード２５０３に付与されたプロファイル、バージョンが記述される。利用条件バイトコード２５０８には、ライセンス２５００の利用可否判定にあたり実行される利用条件バイトコードが記述される。動作検証状況フラグ２５０５には、ライセンス２５００を要求している端末装置２１３０において、利用条件判定ロジックコード２５０３の動作検証が済んでいるか否かを示す情報が記述される。コンテンツ鍵２５０６には、ライセンス２５００を用いて利用するコンテンツの復号鍵が記述される。署名２５０７には、プロファイル２５０１と、バージョン２５０２と、利用条件判定ロジックコード２５０３と、利用条件パラメータ２５０４と、動作検証状況フラグ２５０５と、コンテンツ鍵２５０６をまとめたデータに対する、サービス事業者の署名データが記述される。
【０２４５】
なお、ライセンス２５００の生成にあたり、プロファイル２５０１と、バージョン２５０２と、利用条件バイトコード２５０８と、コンテンツ鍵２５０６と、署名２５０７については、ライセンス生成・送信部２３０４が値の設定を行うが、動作検証状況フラグ２５０５については、後述する動作検証状況フラグ設定部２３０６が値の設定を行うものとする。
【０２４６】
図２８に戻り、動作検証状況確認部２３０５は、ライセンス２５００を要求している端末装置２１３０において、ライセンス２５００に含まれる利用条件判定ロジックコード２５０３の動作検証が済んでいるか否かを判定する処理部である。
【０２４７】
動作検証状況フラグ設定部２３０６は、動作検証状況確認部２３０５の判定結果に基づいて、ライセンス２５００の動作検証状況フラグ２５０５に、値を設定する処理部である。
【０２４８】
以上で、本実施の形態におけるライセンス配信サーバ２１１０の全体構成に関する説明を終了する。
【０２４９】
次に、図３１を参照して、端末装置２１３０の全体構成について説明を行う。端末装置２１３０は、通信部２６０１と、コンテンツ取得部２６０２と、ライセンス取得部２６０３と、利用条件バイトコード実行可否判定部２６０４と、利用条件バイトコード実行部２６０５と、ライセンス利用可否判定部２６０６と、コンテンツ利用部２６０７と、動作検証済みプロファイル・バージョン情報管理部２６０８と、ライセンス管理部２６０９と、コンテンツ管理部２６１０から構成される。以下、各構成要素について説明を行う。
【０２５０】
通信部２６０１は、伝送路２１４０を通じてライセンス配信サーバ２１１０や他の端末装置２１３０と通信を行う処理部である。
【０２５１】
コンテンツ取得部２６０２は、コンテンツ配信サーバ２１００からコンテンツを取得し、コンテンツ管理部２６１０に蓄積する処理部である。
【０２５２】
ライセンス取得部２６０３は、ライセンス配信サーバ２１１０からライセンス２５００を取得し、ライセンス管理部２６０９に蓄積する処理部である。ライセンス取得部２６０３は、ライセンス配信サーバ２１１０に対し、図３２に示すライセンス要求メッセージ２７００を送信し、そのレスポンスとして図３３に示すライセンス要求レスポンスメッセージ２８００を受信することで、ライセンス２５００を取得するものとする。
【０２５３】
ここで、ライセンス要求メッセージ２７００とライセンス要求レスポンスメッセージ２８００について説明する。
【０２５４】
図３２において、ライセンス要求メッセージ２７００は、ライセンス要求メッセージ識別子２７０１と、利用権利ＩＤ２７０２と、端末ＩＤ２７０３とから構成される。ライセンス要求メッセージ識別子２７０１には、このデータがライセンス要求メッセージ２７００であることを示す情報が記述される。利用権利ＩＤ２７０２は、要求するライセンス２５００の発行するもととなる利用権利のＩＤが記述される。端末ＩＤ２７０３には、ライセンス２５００を要求する端末装置２１３０のＩＤが記述される。
【０２５５】
図３３において、ライセンス要求レスポンスメッセージ２８００は、ライセンス要求レスポンスメッセージ識別子２８０１と、ステータスコード２８０２と、ライセンス２５００とから構成される。ライセンス要求レスポンスメッセージ識別子２８０１には、このデータがライセンス要求レスポンスメッセージ２８００であることを示す情報が記述される。ステータスコード２８０２には、発行を要求されたライセンス２５００の発行に成功したか否かを示す情報が記述される。ライセンス２５００には、発行を要求されたライセンス２５００が記述される。
【０２５６】
図３１に戻り、利用条件バイトコード実行可否判定部２６０４は、ライセンス２５００に含まれる利用条件バイトコード２５０８が実行可能であるかどうかを判定する処理部である。利用条件バイトコード実行可否判定部２６０４は、動作検証状況フラグ２５０５、及び、後述する動作検証済みプロファイル・バージョン情報管理部２６０８に管理されている動作検証済みプロファイル・バージョン情報に基づき、利用条件バイトコード２５０８に含まれる利用条件判定ロジックコード２５０３が端末装置２１３０で動作検証済みであるかどうかを確認し、検証済みである場合に実行可であると判定するものとする。
【０２５７】
利用条件バイトコード実行部２６０５は、ライセンス２５００に含まれる利用条件バイトコード２５０８を実行する処理部である。
【０２５８】
ライセンス利用可否判定部２６０６は、ライセンス２５００の利用可否を判定する処理部である。ライセンス利用可否判定部２６０６は、利用条件バイトコード実行部２６０５が利用条件バイトコード２５０８を実行し、その結果が「ＯＫ」であった場合に、ライセンス２５００の利用が可であると判定するものとする。
【０２５９】
コンテンツ利用部２６０７は、コンテンツを利用する処理部であり、コンテンツを再生したり、記録媒体に書き出したりする処理部である。
【０２６０】
動作検証済みプロファイル・バージョン情報管理部２６０８は、端末装置２１３０で動作検証が完了している利用条件判定ロジックコードのプロファイル・バージョンを示す情報である動作検証済みプロファイル・バージョン情報を管理している。なお、動作検証済みプロファイル・バージョン情報は端末装置２１３０出荷時に記録されるものであるが、ソフトウェア更新機能を有する端末装置２１３０では、ソフトウェアの更新に伴って、動作検証済みプロファイル・バージョン情報も適宜更新されるものとする。
【０２６１】
ライセンス管理部２６０９は、ライセンス取得部２６０３により取得されたライセンス２５００を蓄積・管理する処理部である。
【０２６２】
コンテンツ管理部２６１０は、コンテンツ取得部２６０２により取得されたコンテンツを蓄積・管理する処理部である。
【０２６３】
以上で、本実施の形態における端末装置２１３０の全体構成についての説明を終わる。
【０２６４】
次に、フローチャートを参照して、本実施の形態におけるコンテンツ配信システムの動作について説明を行う。
【０２６５】
まず、図３４に示すフローチャートを参照して、端末装置２１３０がライセンス配信サーバ２１１０からライセンス２５００を取得するライセンス取得処理の動作について説明する。
【０２６６】
Ｓ９０１：ライセンス取得部２６０３は、ユーザからのライセンス取得指示により、ライセンス取得処理を開始する。ユーザは端末装置２１３０のアプリケーションに対して、取得対象であるライセンス２５００を生成する元となる利用権利のＩＤを特定する情報を入力することとする。ここで、ユーザの入力は、例えば、利用権利の購入時に端末装置２１３０に取得されたデータをもとに行われるものとし、そのデータとしては、例えばコンテンツのＩＤと利用権利のＩＤとを含むデータなどが考えられる。
【０２６７】
ライセンス取得処理が開始されると、ライセンス取得部２６０３は、ライセンス要求メッセージ２７００を生成し、ライセンス配信サーバ２１１０に送信する。ここで、ライセンス取得部２６０３は、ライセンス要求メッセージ２７００の利用権利ＩＤ２７０２には、ユーザから入力された利用権利のＩＤを特定する情報をもとに値を設定し、端末ＩＤ２７０３には端末装置２１３０のＩＤを設定することとする。
【０２６８】
Ｓ９２１：ライセンス生成・送信部２３０４は、ライセンス要求メッセージ２７００を受信する。
【０２６９】
Ｓ９２２：ライセンス生成・送信部２３０４は、利用権利管理データベース２３０３を参照し、ライセンス２５００を発行する元となる利用権利が登録されているかどうかを確認することで、ライセンス２５００の発行可否を判定する。
【０２７０】
具体的には、ライセンス生成・送信部２３０４は、利用権利管理データベース２３０３を参照し、ライセンス要求メッセージ２７００に含まれる端末ＩＤ２７０３に設定されたＩＤと同一のＩＤが端末ＩＤ２４０１として登録されているかを確認する。登録されている場合には、更に、利用権利ＩＤ２７０２に設定されているＩＤと同一のＩＤが、利用権利ＩＤ２４０２として、その端末ＩＤ２４０１と関連づけられて登録されているかを確認する。登録されている場合には、そのＩＤを持つ利用権利を、ライセンスを発行する元となる利用権利であると特定すると共に、ライセンス発行可と判定するものとする。
【０２７１】
Ｓ９２３：Ｓ９２２における判定の結果、ライセンス発行可の場合には、Ｓ９２４の処理に進む。Ｓ９２２における判定の結果、ライセンス発行不可の場合には、Ｓ９２５の処理に進む。
【０２７２】
Ｓ９２４：図３５を用いて後述するライセンス生成プロセスを実行し、ライセンス２５００を生成する。
【０２７３】
Ｓ９２５：ライセンス生成・送信部２３０４は、ライセンス要求レスポンスメッセージ２８００を生成し、端末装置２１３０に送信する。ライセンス生成・送信部２３０４は、ライセンス要求レスポンスメッセージ２８００の生成にあたっては、Ｓ９２３でライセンス発行不可と判定した場合には、ステータスコード２８０２には「失敗」と設定する（ライセンス２５００は設定しない）こととする。Ｓ９２３でライセンス発行可と判定した場合には、ステータスコード２８０２には「成功」と設定し、ライセンス２５００にはＳ９２４で生成したライセンス２５００を設定することとする。
【０２７４】
Ｓ９０２：ライセンス取得部２６０３は、ライセンス要求レスポンスメッセージ２８００を受信する。
【０２７５】
Ｓ９０３：ライセンス取得部２６０３は、ライセンス要求レスポンスメッセージ２８００のステータスコード２８０２を参照し、ライセンス取得に成功したか否かを判定する。ライセンス取得が成功している場合、Ｓ９０４の処理に進む。ライセンス取得に失敗している場合、その旨を図示しないディスプレイなどを通じてユーザに通知し処理を終了する。
【０２７６】
Ｓ９０４：利用条件バイトコード実行可否判定部２６０４は、図３６を用いて後述する利用条件バイトコード実行可否判定プロセスを実行し、ライセンス２５００に含まれる利用条件バイトコード２５０８を実行可能か否か判定する。
【０２７７】
Ｓ９０５：Ｓ９０４で「実行可」と判定された場合、Ｓ９０６の処理に進む。Ｓ９０４で「実行不可」と判定された場合、その旨を図示しないディスプレイなどを通じてユーザに通知し処理を終了する。
【０２７８】
Ｓ９０６：ライセンス取得部２６０３は、取得したライセンス２５００を、そのライセンス２５００を用いて利用するコンテンツのコンテンツＩＤと関連付けてライセンス管理部２６０９に蓄積する。
【０２７９】
Ｓ９０７：ライセンス取得部２６０３は、ライセンス２５００を受け取ったことを通知するライセンス受信完了通知メッセージを生成し、ライセンス配信サーバ２１１０に送信する。
【０２８０】
Ｓ９２６：ライセンス生成・送信部２３０４は、ライセンス受信完了通知メッセージを受信する。
【０２８１】
Ｓ９２７：ライセンス生成・送信部２３０４は、ライセンス発行確定処理を行う。この処理としては、例えば、ライセンス２５００の発行回数を「１」加算するといった処理などが考えられる。
【０２８２】
Ｓ９２８：ライセンス生成・送信部２３０４は、ＡＣＫメッセージを生成し、端末装置２１３０に送信する。
【０２８３】
Ｓ９０８：ライセンス取得部２６０３は、ＡＣＫメッセージを受信する。
【０２８４】
なお、Ｓ９０４で実行可と判定した場合に、Ｓ９０７でライセンス受信完了通知メッセージを生成・送信すると説明したが、Ｓ９０４で実行不可と判定した場合に、ライセンス取得のキャンセルを通知するメッセージをライセンス配信サーバ２１１０に送信することとしてもよい。
【０２８５】
なお、Ｓ９０７でライセンス受信完了通知メッセージを送信後に、そのレスポンスとしてＡＣＫメッセージを受信できない場合には、続けて再送を行ったり、また、一旦処理を終了し、後日処理を再開可能な情報を記憶し再送するようにしたりしても良いものとする。
【０２８６】
以上で、本実施の形態におけるライセンス取得処理の動作についての説明を終わる。
【０２８７】
次に、図３５に示すフローチャートを参照して、本実施の形態におけるライセンス生成プロセスの動作（図３４のＳ９２４の詳細）について説明する。
【０２８８】
Ｓ１００１：ライセンス生成・送信部２３０４は、生成するライセンス２５００に、動作検証状況フラグ２５０５、署名２５０７以外の各情報を設定する。
【０２８９】
具体的には、ライセンス生成・送信部２３０４は、まず、利用権利管理データベース２３０３を参照し、ライセンス２５００を発行する元となる利用権利のロジックコードＩＤ２４０３を確認する。次に、利用条件判定ロジックコード管理データベース２３０２を参照し、そのロジックコードＩＤ２４０３と同一のロジックコードＩＤ２２０１をもつ利用条件判定ロジックコード２２０４をライセンス２５００に設定するものとして特定する。ライセンス生成・送信部２３０４は、特定した利用条件判定ロジックコード２２０４のプロファイル２２０２、バージョン２２０３、をライセンス２５００のプロファイル２５０１、バージョン２５０２に設定し、利用条件判定ロジックコード２５０３には、特定した利用条件判定ロジックコード２２０４を設定する。また、ライセンス生成・送信部２３０４は、ライセンス２５００の利用条件パラメータ２５０４、コンテンツ鍵２５０６には、ライセンス２５００を発行する元となる利用権利の利用条件パラメータ２４０４、コンテンツ鍵２４０５を設定する。
【０２９０】
Ｓ１００２：動作検証状況確認部２３０５は、利用条件判定ロジックコード管理データベース２３０２を参照し、ライセンス要求メッセージ２７００に含まれる端末ＩＤ２７０３で特定される端末装置２１３０において、利用条件判定ロジックコード２２０４が動作検証済みであるか否かを判定する。
【０２９１】
具体的には、動作検証状況確認部２３０５は、Ｓ１００１でライセンス２５００に設定するものとして特定した利用条件判定ロジックコード２２０４の動作検証状況情報２２０５を参照し、ライセンス要求メッセージ２７００に含まれる端末ＩＤ２７０３に設定されたＩＤと同一のＩＤが、検証未である端末装置２１３０のＩＤであるとして記載されているか否かを判定する。ここで、検証未である端末装置２１３０のＩＤであるとして記載がある場合には、検証未であると判定し、記載が無い場合には、検証済みであると判定することとする。
【０２９２】
Ｓ１００３：Ｓ１００２で、「検証未」と判定した場合には、Ｓ１００５の処理に進む。Ｓ１００２で「検証済み」と判定した場合には、Ｓ１００４の処理に進む。
【０２９３】
Ｓ１００４：動作検証状況フラグ設定部２３０６は、動作検証状況フラグ２５０５に、「検証済み」と設定する。
【０２９４】
Ｓ１００５：動作検証状況フラグ設定部２３０６は、動作検証状況フラグ２５０５に、「検証未」と設定する。
【０２９５】
Ｓ１００６：ライセンス生成・送信部２３０４は、プロファイル２５０１と、バージョン２５０２と、利用条件判定ロジックコード２５０３と、利用条件パラメータ２５０４と、動作検証状況フラグ２５０５と、コンテンツ鍵２５０６をまとめたデータに対して、サービス事業者の秘密鍵を用いて署名データを生成し、ライセンス２５００の署名２５０７に設定する。
【０２９６】
以上で、本実施の形態におけるライセンス生成プロセスの動作についての説明を終わる。
【０２９７】
次に、図３６に示すフローチャートを参照して、本実施の形態における利用条件バイトコード実行可否判定プロセスの動作（図３４のＳ９０４の詳細）について説明する。
【０２９８】
Ｓ１１０１：利用条件バイトコード実行可否判定部２６０４は、図示しない記憶領域に記録されているサービス事業者の公開鍵を用いてライセンス２５００の署名２５０７の検証を行う。
【０２９９】
Ｓ１１０２：Ｓ１１０１で署名検証の結果が「ＯＫ」の場合、Ｓ１１０３の処理に進む。Ｓ１１０１で署名検証の結果が「ＮＧ」の場合、Ｓ１１０８の処理に進む。
【０３００】
Ｓ１１０３：利用条件バイトコード実行可否判定部２６０４は、ライセンス２５００の動作検証状況フラグ２５０５の値を確認する。動作検証状況フラグ２５０５の値が「検証済み」の場合、Ｓ１１０７の処理に進む。動作検証状況フラグ２５０５の値が「検証未」の場合、Ｓ１１０４の処理に進む。
【０３０１】
Ｓ１１０４：端末装置２１３０がソフトウェア更新機能を有している場合には、Ｓ１１０５の処理に進む。端末装置２１３０がソフトウェア更新機能を有していない場合には、Ｓ１１０８の処理に進む。
【０３０２】
Ｓ１１０５：利用条件バイトコード実行可否判定部２６０４は、動作検証済みプロファイル・バージョン情報管理部２６０８に管理されている動作検証済みプロファイル・バージョン情報を参照し、ライセンス２５００に含まれるプロファイル２５０１、バージョン２５０２が端末装置２１３０で検証済みのプロファイル、バージョンであるか否かを確認する。
【０３０３】
Ｓ１１０６：Ｓ１１０５で、検証済みのプロファイル、バージョンであると判定された場合には、Ｓ１１０７の処理に進む。Ｓ１１０５で、検証済みのプロファイル、バージョンでないと判定された場合には、Ｓ１１０８の処理に進む。
【０３０４】
Ｓ１１０７：利用条件バイトコード実行可否判定部２６０４は、ライセンス２５００に含まれる利用条件バイトコード２５０８は「実行可」であると判定する。
【０３０５】
Ｓ１１０８：利用条件バイトコード実行可否判定部２６０４は、ライセンス２５００に含まれる利用条件バイトコード２５０８は「実行不可」であると判定する。
【０３０６】
以上で、本実施の形態における利用条件バイトコード実行可否判定プロセスの動作についての説明を終わる。
【０３０７】
次に、図３７に示すフローチャートを参照して、端末装置２１３０がコンテンツを利用するコンテンツ利用処理の動作について説明する。
【０３０８】
Ｓ１２０１：ライセンス利用可否判定部２６０６は、ライセンス管理部２６０９から、ユーザが利用を所望したコンテンツのコンテンツＩＤと関連付けられて記憶されているライセンス２５００を取り出す。
【０３０９】
Ｓ１２０２：利用条件バイトコード実行可否判定部２６０４は、前述した利用条件バイトコード実行可否判定プロセスを実行する。
【０３１０】
Ｓ１２０３：Ｓ１２０２で「実行可」と判定された場合、Ｓ１２０４の処理に進む。Ｓ１２０２で「実行不可」と判定された場合、その旨を図示しないディスプレイなどを通じてユーザに通知し処理を終了する。
【０３１１】
Ｓ１２０４：利用条件バイトコード実行部２６０５は利用条件バイトコード２５０８を実行する。
【０３１２】
Ｓ１２０５：ライセンス利用可否判定部２６０６は、Ｓ１２０４の実行結果が「ＯＫ」の場合、「ライセンス利用可」と判定し、Ｓ１２０６の処理に進む。ライセンス利用可否判定部２６０６は、Ｓ１２０４の実行結果が「ＮＧ」の場合には、「ライセンス利用不可」と判定し、その旨を図示しないディスプレイなどを通じてユーザに通知し処理を終了する。
【０３１３】
Ｓ１２０６：コンテンツ利用部２６０７は、コンテンツ管理部２６１０からユーザが利用を所望しているコンテンツを取り出し、ライセンス２５００のコンテンツ鍵２５０６を用いて、それを復号し利用を行う。
【０３１４】
以上で、本実施の形態におけるコンテンツ利用処理の動作についての説明を終わる。
【０３１５】
以上で、本実施の形態におけるコンテンツ配信システムの動作についての説明を終わる。
【０３１６】
なお、本実施の形態の変形例として、図３８に示す通り、ライセンス要求メッセージ２７００ａに端末ＩＤ２７０３を複数含め、図３９に示す通り、ライセンス２５００ａに端末ＩＤ２７０３と動作検証状況フラグ２５０５との組を複数含める形態が考えられる。この変形例は、端末装置２１３０間でライセンス２５００の転送を行うことを想定した実施の形態である。
【０３１７】
本変形例においては、Ｓ９０１においてライセンス取得部２６０３は、ライセンス２５００を転送する可能性のある端末装置２１３０のＩＤを収集し、ライセンス要求メッセージ２７００に含めるものとする。また、Ｓ９２４のライセンス生成プロセスにおいて、動作検証状況確認部２３０５は、ライセンス要求メッセージ２７００に含まれる端末ＩＤ２７０３で特定される端末装置２１３０毎に、利用条件判定ロジックコードの動作検証状況を確認する。そして、動作検証状況フラグ設定部２３０６は、その結果を、端末ＩＤ２７０３と組となる動作検証状況フラグ２５０５に設定するものとする（Ｓ１００２〜Ｓ１００５の処理を端末装置２１３０毎に行う）。この場合、Ｓ１１０３で利用条件バイトコード実行可否判定部２６０４が確認する動作検証状況フラグ２５０５は、自端末装置２１３０の端末ＩＤ２７０３と組となっている動作検証状況フラグ２５０５であるとする。このようにすることによって、ライセンス２５００を他の端末装置２１３０に転送した場合でも、その転送先端末装置２１３０において、そのライセンス２５００に含まれる利用条件判定ロジックコード２５０３の動作検証状況を確認することが可能となる、という効果が得られる。
【０３１８】
以上で、実施の形態２におけるコンテンツ配信システムの説明を終わる。
【０３１９】
（実施の形態３）
実施の形態３におけるコンテンツ配信システムについて説明を行う。なお、実施の形態３におけるコンテンツ配信システムは、実施の形態２のコンテンツ配信システムと一部のみ異なる為、その差異のみ説明することとする。
【０３２０】
実施の形態３におけるコンテンツ配信システムが実施の形態２におけるコンテンツ配信システムと異なる点は、ライセンス配信サーバ２１１０において利用条件判定ロジックコードの動作検証状況を確認（図３５におけるＳ１００２〜Ｓ１００５の処理）せず、かわりに端末装置２１３０においてその処理を行う点である。この為、図４１に示す通り実施の形態３におけるライセンス３６００は、動作検証状況フラグ２５０５を含まず、かわりに動作検証状況情報３６０１を含む。動作検証状況情報３６０１には、ライセンス３６００に含まれる利用条件判定ロジックコード２５０３に対応した動作検証状況情報２２０５が設定されるものとする。
【０３２１】
図４０に実施の形態３におけるライセンス配信サーバ３５１０の構成図を示す。ライセンス配信サーバ３５１０が実施の形態２におけるライセンス配信サーバ２１１０と異なる点は、動作検証状況確認部２３０５と動作検証状況フラグ設定部２３０６を有さず、代わりに動作検証状況情報設定部３５０１を有する点である。動作検証状況情報設定部３５０１は、ライセンス３６００の動作検証状況情報３６０１に情報を設定する処理部である。動作検証状況情報設定部３５０１は、利用条件判定ロジックコード管理データベース２３０２を参照し、ライセンス３６００に設定された利用条件判定ロジックコード２５０３に対応した動作検証状況情報２２０５を、動作検証状況情報３６０１に設定するものとする。
【０３２２】
実施の形態３における端末装置２１３０が実施の形態２の端末装置２１３０と異なる点は、図４２に示す通り、利用条件バイトコード実行可否判定プロセスの動作が異なる点である。実施の形態３における利用条件バイトコード実行可否判定プロセスが実施の形態２の利用条件バイトコード実行可否判定プロセスと異なる点は、Ｓ１１０３の処理が無く、かわりにＳ１７０１、Ｓ１７０２の処理が追加されている点である。他のステップの処理については、実施の形態２の利用条件バイトコード実行可否判定プロセスと同様である。
【０３２３】
以下、Ｓ１７０１、及び、Ｓ１７０２の処理について説明を行う。
【０３２４】
Ｓ１７０１：利用条件バイトコード実行可否判定部２６０４は、ライセンス３６００の動作検証状況情報３６０１を参照し、自らのＩＤが、検証未である端末装置２１３０のＩＤであるとして記載されているか否かを判定する。ここで、検証未である端末装置２１３０のＩＤであるとして記載がある場合には、検証未であると判定し、記載が無い場合には、検証済みであると判定することとする。
【０３２５】
Ｓ１７０２：Ｓ１７０１で「検証未」と判定した場合には、Ｓ１１０４の処理に進む。Ｓ１７０２で「検証済み」と判定した場合には、Ｓ１１０７の処理に進む。
【０３２６】
以上で、実施の形態３における利用条件バイトコード実行可否判定プロセスの動作についての説明を終わる。
【０３２７】
以上で、実施の形態３におけるコンテンツ配信システムの説明を終わる。
【０３２８】
なお、本実施の形態２及び３における動作検証状況情報２２０５、３６０１の変形例として、図４３にその一例を示す動作検証状況情報３８００を使用しても良い。図４３において、動作検証状況情報３８００は、マスクビット数３８０１と比較ＩＤ３８０２とから構成される。マスクビット数３８０１は、マスクデータを導出する為の情報であり、マスクビット数３８０１の値をＮとした場合、比較するビット列のうち上位Ｎビットを「１」にし残りの下位ビットがあればその下位ビット全てを「０」とした形式のマスクデータを導出するものとする。比較ＩＤ３８０２は、端末のＩＤと、導出したマスクデータとのビット毎の論理積を求めた結果と比較する為のＩＤであり、これが一致した場合には、動作未検証であることを示すこととする。マスクビット数３８０１と組をなす比較ＩＤ３８０２は、これを構成するビット列のうち上位Ｎビットの内容のみが有用であり、その他の値は例えば「０」とした形式のデータとなる。ここで、動作検証状況情報３８００を用い、端末装置２１３０における利用条件判定ロジックコードの検証状況を確認する際の動作について説明する。
【０３２９】
（１）マスクビット数３８０１からマスクデータを導出する。
（２）動作検証状況の確認対象の端末装置２１３０のＩＤと導出したマスクデータとのビット毎の論理積を求める。
（３）（２）で求めた論理積と比較ＩＤ３８０２とを比較する。
（４）比較の結果一致する場合には、動作未検証であると判定する。比較の結果が一致しない場合には、次のマスクビット数３８０１と比較ＩＤ３８０２の組について（１）〜（４）の処理を繰り返す。
（５）全てのマスクビット数３８０１と比較ＩＤ３８０２の組について処理を行っても（４）で比較結果が一致しない場合には、動作検証済みであると判定する。
【０３３０】
以上で、動作検証状況情報３８００を用いた、端末装置２１３０における利用条件判定ロジックコードの検証状況を確認する際の動作についての説明を終わる。この動作検証状況情報３８００を用いることによって、動作検証状況情報のデータサイズを削減することができるという効果を得ることができる。
【０３３１】
なお、動作検証状況情報の別の変形例として、次のような構成としてもよい。各端末装置２１３０には互いに素な数字がＩＤとして割り当てられ、動作検証状況情報としては、動作検証済みの端末に割り当てられたＩＤを掛け合わせたものを設定する。この場合には、端末装置２１３０は動作検証状況情報設定された数字が、自らに割り当てられたＩＤで割りきれた場合に、動作検証済みであると判断することとする。
【０３３２】
なお、本実施の形態２及び３において、動作検証状況情報２２０５、及び、動作検証状況情報３６０１には、検証未である端末装置２１３０のＩＤを記載するとして説明を行ったがこれに限るわけではなく、検証済みである端末装置２１３０のＩＤを記載するとしても良い。また、端末装置２１３０のＩＤを記載するとしたが、ＩＤに限るわけではなく、製造事業者名、機種名、ロット番号など、端末装置２１３０を特定可能な他の情報であっても良いものとする。また、端末装置２１３０を特定可能な情報ではなく、利用条件バイトコード実行部２６０５を特定可能な情報を記述しても良いものとする。
【０３３３】
なお、動作検証状況情報２２０５、及び、動作検証状況情報３６０１に記載するＩＤは、利用条件判定ロジックコード管理サーバ２１２０において所定のルールに従って変形を行い記載しても良いものとする。この場合、端末装置２１３０においても、自身のＩＤを所定のルールに従って変形することでＳ１７０１の処理を行うこととする。これにより、サービス事業者に対し、各端末装置２１３０での検証状況を秘匿することが可能となるという効果が得られる。
【０３３４】
なお、実施の形態３において、動作検証状況情報２２０５、及び、動作検証状況情報３６０１は、次のような変形例であってもよいものとする。
【０３３５】
動作検証状況情報２２０５、及び、動作検証状況情報３６０１は、端末装置２１３０の各製造事業者が独自に作成したデータの集合であるとする。この場合、各製造事業者は、端末装置２１３０において、利用条件判定ロジックコードの検証状況が判断可能なデータを独自のルールで作成し、それを利用条件判定ロジックコード管理サーバ２１２０に送信するものとする。
【０３３６】
利用条件判定ロジックコード管理サーバ２１２０は、端末装置製造事業者からの独自データを収集して、その集合を動作検証状況情報２２０５として利用条件判定ロジックコード管理情報２２００に登録するものとする。ライセンス配信サーバ２１１０は、利用条件判定ロジックコード管理情報２２００を利用条件判定ロジックコード管理サーバ２１２０から取得して利用条件判定ロジックコード管理データベース２３０２に管理する。ライセンス３６００発行時には、動作検証状況情報３６０１として、上記動作検証状況情報２２０５を設定するものとする。この場合、端末装置２１３０では、動作検証状況情報３６０１に設定されたデータのうち自端末装置の製造事業者が作成した独自データ部分を参照し、動作検証状況を判定することとする。
【０３３７】
具体的には、Ｓ１７０１において、端末装置２１３０の利用条件バイトコード実行可否判定部２６０４は、動作検証状況情報３６０１に設定されたデータのうち自端末装置の製造事業者が作成した独自データ部分を参照する。そして、利用条件バイトコード実行可否判定部２６０４は、製造事業者の独自ルールに従って、端末装置２１３０での利用条件判定ロジックコード２５０３の動作検証状況を判定することとする。
【０３３８】
なお、本変形例において、動作検証状況情報２２０５、及び、動作検証状況情報３６０１は、共に端末装置２１３０の各製造事業者が独自に作成したデータの集合であるとして説明を行った。これを、ライセンス３６００に含める動作検証状況情報３６０１には、ライセンス３６００を要求している端末装置２１３０の製造事業者が生成したデータのみを抜き出して含めることとしてもよいものとする。本変形例により、各端末装置２１３０での動作検証状況が、サービス事業者や他の端末装置製造事業者に対し、秘匿することが可能となる、という効果が得られる。
【０３３９】
なお、実施の形態３において、動作検証状況情報２２０５、及び、動作検証状況情報３６０１は、動作未検証な端末装置のＩＤのリストであると説明を行ったが、次のような変形例であってもよいものとする。
【０３４０】
動作検証状況情報２２０５、及び、動作検証状況情報３６０１は、予め端末装置２１３０毎にビットが割り当てられたビット列から成るデータであり、端末装置で動作検証済みの場合にビットに「１」を設定する。この場合、Ｓ１７０１において、端末装置２１３０の利用条件バイトコード実行可否判定部２６０４は、自端末装置２１３０に割り当てられているビットを参照し、その値が「１」である場合には、動作検証済みであると判定することとする。
【０３４１】
なお、本変形例において、ビットは端末装置２１３０毎に割り当てられるとしたが、それに限るわけではなく、端末装置製造事業者毎や機種毎、ロット毎などの単位で割り当てられるとしてもよい。また、該ビット列を所定の符号化方法で符号化し、サイズを削減することも考えられる。また、該ビット列を事業者毎の独自の暗号化手法等で変形し、サービス事業者や他の端末製造事業者に対して秘匿とすることも考えられる。
【０３４２】
なお、本実施の形態２において、動作検証状況フラグ２５０５は、ライセンス２５００に含まれるとして説明を行った。これを、ライセンス要求レスポンスメッセージ２８００の一つのパラメータとして設定されるものとしてもよいこととする。
【０３４３】
なお、本実施の形態３において、動作検証状況情報３６０１はライセンス３６００に含まれるとして説明を行った。これを、ライセンス要求レスポンスメッセージ２８００の一つのパラメータとして設定されるものとしてもよいこととする。
【０３４４】
なお、本実施の形態２において、Ｓ１００３において動作検証未と判定された場合、Ｓ１００５において動作検証状況フラグ２５０５に「検証未」と設定するとして説明を行った。その変形例として、ライセンス２５００に設定する利用条件判定ロジックコード２５０３を、端末装置２１３０で動作検証済みである利用条件判定ロジックコード２５０３に変更し、動作検証状況フラグ２５０５に「検証済み」と設定するようにしてもよいものとする。なお、利用条件判定ロジックコード２５０３を変更する場合は、利用条件パラメータ２５０４も必要に応じて修正し、変更前と同等の利用条件となるような変更が望ましい。
【０３４５】
なお、実施の形態２及び３において、ライセンス全体を署名対象として説明を行ったが、それに限るわけではなく、一部のみを対象としてもよいこととする。またライセンス発行時に動的に署名データを生成することとして説明を行ったが、予め署名データを生成しておき、発行時にはそれを付加するとしてもよいこととする。また、サービス事業者の秘密鍵で署名を行うとして説明を行ったが、技術管理団体や端末装置製造事業者の秘密鍵で署名を行うとしてもよいものとする。
【０３４６】
なお、実施の形態２及び３において、利用条件バイトコード実行可否判定プロセスはライセンス取得時とコンテンツ利用時の双方で行うとして説明を行ったが、何れか一方のみで行うこととしてもよい。
【０３４７】
なお、本発明を上記実施の形態１〜３に基づいて説明してきたが、本発明は、上記の実施の形態１〜３に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
【０３４８】
（１）上記の各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ＲＡＭまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０３４９】
（２）上記の各装置を構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。
【０３５０】
（３）上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしてもよい。前記ＩＣカードまたは前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。前記ＩＣカードまたは前記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ＩＣカードまたは前記モジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【０３５１】
（４）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【０３５２】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【０３５３】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【０３５４】
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【０３５５】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【０３５６】
（５）上記実施の形態１〜３及び上記変形例をそれぞれ組み合わせるとしてもよい。例えば、実施の形態１のライセンス１２００に実施の形態２のプロファイル２５０１が含まれ、利用条件検証部３０２は、端末装置で動作可能なプロファイルの情報を取得することで、利用条件判定ロジックコード１２０４が動作することを確認済みであるか否かを判定することにしてもよい。また、実施の形態１のライセンス１２００に実施の形態２の端末ＩＤ２７０３が含まれ、利用条件検証部３０２は、端末ＩＤ２７０３の中にコンテンツを利用する端末装置のＩＤが含まれているか否かを判定することによって、利用条件判定ロジックコード１２０４が動作することを確認済みであるか否かを判定することにしてもよい。つまり、プロファイル２５０１や端末ＩＤ２７０３は、特許請求の範囲に記載の「判定情報」に包含されることにしてもよい。
【産業上の利用可能性】
【０３５７】
本発明にかかるコンテンツ配信システムにおける端末装置は、ＤＶＤ等のパッケージメディアによるコンテンツ配信サービス受信端末や、デジタル放送、ＣＡＴＶ、インターネット等によるコンテンツ配信サービス受信端末等において有用である。
【図面の簡単な説明】
【０３５８】
【図１】図１は、本発明の実施の形態１に係るコンテンツ配信システムの全体の概略構成を示す図である。
【図２】図２は、本発明の実施の形態１に係るライセンス配信サーバの構成を示す機能ブロック図である。
【図３】図３は、本発明の実施の形態１に係るコンテンツ配信サーバの構成を示す機能ブロック図である。
【図４】図４は、本発明の実施の形態１に係る端末装置の構成を示す機能ブロック図である。
【図５】図５は、本発明の実施の形態１に係る利用条件管理サーバの構成を示す機能ブロック図である。
【図６Ａ】図６Ａは、本発明の実施の形態１に係る利用条件判定ロジックコード格納部のテーブル構成を示す図である。
【図６Ｂ】図６Ｂは、本発明の実施の形態１に係る利用条件判定ロジックコード格納部のテーブル構成を示す図である。
【図７Ａ】図７Ａは、本発明の実施の形態１に係る利用条件判定パラメータ格納部のテーブル構成を示す図である。
【図７Ｂ】図７Ｂは、本発明の実施の形態１に係る利用条件判定パラメータ格納部のテーブル構成を示す図である。
【図８】図８は、本発明の実施の形態１に係るコンテンツ鍵格納部のテーブル構成を示す図である。
【図９】図９は、本発明の実施の形態１に係るコンテンツ格納部のテーブル構成を示す図である。
【図１０】図１０は、本発明の実施の形態１に係るライセンス格納部のテーブル構成を示す図である。
【図１１】図１１は、本発明の実施の形態１に係るバージョン番号格納部のテーブル構成を示す図である。
【図１２】図１２は、本発明の実施の形態１に係るライセンス配信サーバが配信するライセンスのデータ構造を示す図である。
【図１３】図１３は、本発明の実施の形態１に係る通信メッセージの構成を示す図である。
【図１４】図１４は、本発明の実施の形態１に係るロジックコード更新要求メッセージ本体の構成を示す図である。
【図１５】図１５は、本発明の実施の形態１に係るロジックコード送信メッセージ本体の構成を示す図である。
【図１６】図１６は、本発明の実施の形態１に係るライセンス取得要求メッセージ本体の構成を示す図である。
【図１７】図１７は、本発明の実施の形態１に係るライセンス送信メッセージ本体の構成を示す図である。
【図１８】図１８は、本発明の実施の形態１に係るコンテンツ取得要求メッセージ本体の構成を示す図である。
【図１９】図１９は、本発明の実施の形態１に係るコンテンツ送信メッセージ本体の構成を示す図である。
【図２０】図２０は、本発明の実施の形態１に係るライセンス配信サーバが利用条件管理サーバより更新用利用条件判定ロジックコードを取得し、利用条件判定ロジックコードを更新する処理を示すフローチャートである。
【図２１】図２１は、本発明の実施の形態１に係る端末装置がライセンス配信サーバよりライセンスを取得する処理を示すフローチャートである。
【図２２】図２２は、本発明の実施の形態１に係る端末装置がコンテンツ配信サーバよりコンテンツを取得する処理を示すフローチャートである。
【図２３】図２３は、本発明の実施の形態１に係る端末装置がコンテンツを再生し、ライセンスを更新する処理を示すフローチャートである。
【図２４】図２４は、本発明の実施の形態１に係るバイトコード利用可否判定プロセスを示すフローチャートである。
【図２５】図２５は、本発明の実施の形態１に係る利用条件管理サーバが利用条件判定ロジックコードを更新する処理を示すフローチャートである。
【図２６】図２６は、実施の形態２におけるコンテンツ配信システムの構成を示すブロック図である。
【図２７】図２７は、実施の形態２における利用条件判定ロジックコード管理情報の一例を示す図である。
【図２８】図２８は、実施の形態２におけるライセンス配信サーバの構成を示すブロック図である。
【図２９】図２９は、実施の形態２における利用権利管理データベースの一例を示す図である。
【図３０】図３０は、実施の形態２におけるライセンスの一例を示す図である。
【図３１】図３１は、実施の形態２における端末装置の構成を示すブロック図である。
【図３２】図３２は、実施の形態２におけるライセンス要求メッセージの構成を示す図である。
【図３３】図３３は、実施の形態２におけるライセンス要求レスポンスメッセージの構成を示す図である。
【図３４】図３４は、実施の形態２におけるライセンス取得処理の動作を示すフローチャートである。
【図３５】図３５は、実施の形態２におけるライセンス生成プロセスの動作を示すフローチャートである。
【図３６】図３６は、実施の形態２における利用条件バイトコード実行可否判定プロセスの動作を示すフローチャートである。
【図３７】図３７は、実施の形態２におけるコンテンツ利用処理の動作を示すフローチャートである。
【図３８】図３８は、実施の形態２におけるライセンス要求メッセージの構成を示す図である。
【図３９】図３９は、実施の形態２におけるライセンスの一例を示す図である。
【図４０】図４０は、実施の形態３におけるライセンス配信サーバの構成を示すブロック図である。
【図４１】図４１は、実施の形態３におけるライセンスの一例を示す図である。
【図４２】図４２は、実施の形態３における利用条件バイトコード実行可否判定プロセスの動作を示すフローチャートである。
【図４３】図４３は、動作検証状況情報の一例を示す図である。
【符号の説明】
【０３５９】
１００ａ、１００ｂ  ライセンス配信サーバ
１０１、２０１、３０１、４０１  通信部
１０２  ライセンス生成・送信部
１０３  利用条件判定ロジックコード更新部
１１１  利用条件判定ロジックコード格納部
１１２  利用条件判定パラメータ格納部
１１３  コンテンツ鍵格納部
２００  コンテンツ配信サーバ
２０２  コンテンツ取得・送信部
２１１、３１１  コンテンツ格納部
３００ａ、３００ｂ、３００ｃ  端末装置
３０２  利用条件検証部
３０３  利用条件バイトコード実行部
３０４  ライセンス取得部
３０５  コンテンツ取得部
３０６  コンテンツ再生部
３１２  ライセンス格納部
４００  利用条件管理サーバ
４０２  利用条件バイトコード入力部
４０３  利用条件バイトコード分離部
４０４  利用条件判定ロジックコード送信部
４０５  利用条件判定ロジックコード管理情報生成部
４０６  利用条件判定ロジックコード動作検証部
５００  伝送路
１２００  ライセンス
１２０２  バージョン番号
１２０４  利用条件判定ロジックコード
２１００  コンテンツ配信サーバ
２１１０  ライセンス配信サーバ
２１２０  利用条件判定ロジックコード管理サーバ
２１３０  端末装置
２１４０  伝送路
２２００  利用条件判定ロジックコード管理情報
２２０１  ロジックコードＩＤ
２２０２、２５０１  プロファイル
２２０３、２５０２  バージョン
２２０４、２５０３  利用条件判定ロジックコード
２２０５、３６０１、３８００  動作検証状況情報
２３０１、２６０１  通信部
２３０２  利用条件判定ロジックコード管理データベース
２３０３  利用権利管理データベース
２３０４  ライセンス生成・送信部
２３０５  動作検証状況確認部
２３０６  動作検証状況フラグ設定部
２４０１、２７０３  端末ＩＤ
２４０２、２７０２  利用権利ＩＤ
２４０３  ロジックコードＩＤ
２４０４  利用条件パラメータ
２４０５、２５０６  コンテンツ鍵
２５００  ライセンス
２５０４  利用条件パラメータ
２５０５  動作検証状況フラグ
２５０７  署名
２６０２  コンテンツ取得部
２６０３  ライセンス取得部
２６０４  利用条件バイトコード実行可否判定部
２６０５  利用条件バイトコード実行部
２６０６  ライセンス利用可否判定部
２６０７  コンテンツ利用部
２６０８  動作検証済みプロファイル・バージョン情報管理部
２６０９  ライセンス管理部
２６１０  コンテンツ管理部
２７００  ライセンス要求メッセージ
２７０１  ライセンス要求メッセージ識別子
２８００  ライセンス要求レスポンスメッセージ
２８０１  ライセンス要求レスポンスメッセージ識別子
２８０２  ステータスコード
３８０１  マスクビット数
３８０２  比較ＩＤ
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ライセンスを用いて、デジタル著作物であるコンテンツを利用する端末装置であって、
前記ライセンスは、コンテンツの利用可否を判定するためのプログラムである利用条件判定コードと、前記利用条件判定コードが動作することを確認済みであるか否かを判定するための判定情報とを含み、
前記端末装置は、
前記ライセンスを取得するライセンス取得部と、
前記取得されたライセンスに含まれる前記判定情報から、前記利用条件判定コードが動作することを確認済みであるか否かを判定する動作確認判定部と、
前記利用条件判定コードが動作することを確認済みであると判定された場合に、前記利用条件判定コードを実行する利用条件判定コード実行部と、
前記実行された利用条件判定コードに基づきコンテンツの利用可否を判定し、コンテンツが利用可の場合にコンテンツを再生するコンテンツ再生部と
を備える端末装置。
【請求項２】
前記判定情報は、前記取得されたライセンスに含まれる前記利用条件判定コードのバージョンを示す情報であるバージョン情報を含み、
前記端末装置は、さらに、
当該端末装置で動作可能な前記利用条件判定コードのバージョンを示す情報である動作可能バージョン情報を管理する動作可能バージョン管理部を備え、
前記動作確認判定部は、前記バージョン情報と前記動作可能バージョン情報とを比較することで、前記利用条件判定コードが動作することを確認済みであるか否かを判定する
請求項１に記載の端末装置。
【請求項３】
前記バージョン情報は、利用条件判定コードのバージョン番号を示す情報であり、前記動作可能バージョン情報は、動作可能な前記利用条件判定コードのバージョン番号を示す情報であり、
前記動作確認判定部は、
前記バージョン情報で示されるバージョン番号が、前記動作可能バージョン情報で示されるバージョン番号以下の場合に、前記利用条件判定コードが動作することを確認済みであると判定し、
前記バージョン情報で示されるバージョン番号が、前記動作可能バージョン情報で示されるバージョン番号よりも大きい場合に、前記利用条件判定コードが動作することを確認済みでないと判定する
請求項２に記載の端末装置。
【請求項４】
前記判定情報は、前記取得されたライセンスに含まれる前記利用条件判定コードのプロファイルを示す情報であるプロファイル情報を含み、
前記端末装置は、さらに、
当該端末装置で動作可能な前記利用条件判定コードのプロファイルを示す情報である動作可能プロファイル情報を管理する動作可能プロファイル管理部を備え、
前記動作確認判定部は、前記プロファイル情報と前記動作可能プロファイル情報とを比較することで、前記利用条件判定コードが動作することを確認済みであるか否かを判定する
請求項１に記載の端末装置。
【請求項５】
前記判定情報は、前記利用条件判定コードが動作可能な端末装置の情報を含み、
前記動作確認判定部は、前記判定情報に含まれる端末装置の情報を用いて、前記コンテンツを利用する端末装置で前記利用条件判定コードが動作することを確認済みであるか否かを判定する
請求項１に記載の端末装置。
【請求項６】
前記ライセンス取得部は、サーバによって生成された前記判定情報を含む前記ライセンスを、前記サーバから取得する
請求項１に記載の端末装置。
【請求項７】
端末装置からのライセンス配信要求に応じてライセンスを配信するサーバであって、
デジタル著作物であるコンテンツの利用可否を判定するためのプログラムである利用条件判定コードが動作することを検証する利用条件判定コード動作検証部と、
前記利用条件判定コード動作検証部が検証した結果に基づき、前記端末装置で前記利用条件判定コードが動作することを確認済みであるか否かを前記端末装置が判定するための判定情報を生成する判定情報生成部と、
前記利用条件判定コードと前記生成された判定情報とを含む前記ライセンスを前記端末装置に配信するライセンス配信部と
を備えるサーバ。
【請求項８】
端末装置からのライセンス配信要求に応じてライセンスを配信するサーバと、配信されたライセンスを用いてデジタル著作物であるコンテンツを利用する端末装置とを備えるシステムであって、
前記サーバは、
デジタル著作物であるコンテンツの利用可否を判定するためのプログラムである利用条件判定コードが動作することを検証する利用条件判定コード動作検証部と、
前記利用条件判定コード動作検証部が検証した結果に基づき、前記端末装置で前記利用条件判定コードが動作することを確認済みであるか否かを前記端末装置が判定するための判定情報を生成する判定情報生成部と、
前記利用条件判定コードと前記生成された判定情報とを含む前記ライセンスを前記端末装置に配信するライセンス配信部とを備え、
前記端末装置は、
前記ライセンス配信部が配信するライセンスを取得するライセンス取得部と、
前記取得されたライセンスに含まれる前記判定情報から、前記利用条件判定コードが動作することを確認済みであるか否かを判定する動作確認判定部と、
前記利用条件判定コードが動作することを確認済みであると判定された場合に、前記利用条件判定コードを実行する利用条件判定コード実行部と、
前記実行された利用条件判定コードに基づきコンテンツの利用可否を判定し、コンテンツが利用可の場合にコンテンツを再生するコンテンツ再生部とを備える
システム。
【請求項９】
デジタル著作物であるコンテンツの利用可否を判定するためのプログラムである利用条件判定コードと、前記利用条件判定コードが動作することを確認済みであるか否かを判定するための判定情報とを含むライセンスを用いて、コンテンツを利用するコンテンツ利用方法であって、
前記ライセンスを取得するライセンス取得ステップと、
前記取得されたライセンスに含まれる前記判定情報から、前記利用条件判定コードが動作することを確認済みであるか否かを判定する動作確認判定ステップと、
前記利用条件判定コードが動作することを確認済みであると判定された場合に、前記利用条件判定コードを実行する利用条件判定コード実行ステップと、
前記実行された利用条件判定コードに基づきコンテンツの利用可否を判定し、コンテンツが利用可の場合にコンテンツを再生するコンテンツ再生ステップと
を含むコンテンツ利用方法。
【請求項１０】
デジタル著作物であるコンテンツの利用可否を判定するためのプログラムである利用条件判定コードと、前記利用条件判定コードが動作することを確認済みであるか否かを判定するための判定情報とを含むライセンスを用いて、コンテンツを利用するためのプログラムであって、
前記ライセンスを取得するライセンス取得ステップと、
前記取得されたライセンスに含まれる前記判定情報から、前記利用条件判定コードが動作することを確認済みであるか否かを判定する動作確認判定ステップと、
前記利用条件判定コードが動作することを確認済みであると判定された場合に、前記利用条件判定コードを実行する利用条件判定コード実行ステップと、
前記実行された利用条件判定コードに基づきコンテンツの利用可否を判定し、コンテンツが利用可の場合にコンテンツを再生するコンテンツ再生ステップと
をコンピュータに実行させるプログラム。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2009019895.tif 000048
【図２】
2009019895.tif 000049
【図３】
2009019895.tif 000050
【図４】
2009019895.tif 000051
【図５】
2009019895.tif 000052
【図６Ａ】
2009019895.tif 000053
【図６Ｂ】
2009019895.tif 000054
【図７Ａ】
2009019895.tif 000055
【図７Ｂ】
2009019895.tif 000056
【図８】
2009019895.tif 000057
【図９】
2009019895.tif 000058
【図１０】
2009019895.tif 000059
【図１１】
2009019895.tif 000060
【図１２】
2009019895.tif 000061
【図１３】
2009019895.tif 000062
【図１４】
2009019895.tif 000063
【図１５】
2009019895.tif 000064
【図１６】
2009019895.tif 000065
【図１７】
2009019895.tif 000066
【図１８】
2009019895.tif 000067
【図１９】
2009019895.tif 000068
【図２０】
2009019895.tif 000069
【図２１】
2009019895.tif 000070
【図２２】
2009019895.tif 000071
【図２３】
2009019895.tif 000072
【図２４】
2009019895.tif 000073
【図２５】
2009019895.tif 000074
【図２６】
2009019895.tif 000075
【図２７】
2009019895.tif 000076
【図２８】
2009019895.tif 000077
【図２９】
2009019895.tif 000078
【図３０】
2009019895.tif 000079
【図３１】
2009019895.tif 000080
【図３２】
2009019895.tif 000081
【図３３】
2009019895.tif 000082
【図３４】
2009019895.tif 000083
【図３５】
2009019895.tif 000084
【図３６】
2009019895.tif 000085
【図３７】
2009019895.tif 000086
【図３８】
2009019895.tif 000087
【図３９】
2009019895.tif 000088
【図４０】
2009019895.tif 000089
【図４１】
2009019895.tif 000090
【図４２】
2009019895.tif 000091
【図４３】
2009019895.tif 000092
【国際調査報告】
2009019895.tif 000093
2009019895.tif 000094
2009019895.tif 000095
2009019895.tif 000096