(実施の形態1)
以下、本発明における実施の形態1について、図面を用いて詳細に説明する。
図1は、本発明における実施の形態1に関わるコンテンツ配信システムの全体の概略構成を示す図である。
このコンテンツ配信システムは、端末装置300においてコンテンツを利用するシステムであって、利用条件バイトコード、およびライセンスの生成、配信を行なうライセンス配信サーバ100a〜100bと、コンテンツの保持、配信を行なうコンテンツ配信サーバ200と、コンテンツおよびライセンスを取得し、コンテンツを利用する端末装置300a〜300cと、ライセンス配信サーバ100における利用条件バイトコード生成で用いる情報の配布、管理を行なう利用条件管理サーバ400と、これらを相互に接続する伝送路500と、から構成されている。
ライセンス配信サーバ100は、伝送路500と接続する機能を有する。ライセンス配信サーバ100は、利用条件判定パラメータ、利用条件判定ロジックコードなどを保持し、端末装置300からの要求に基づき、利用条件バイトコード、およびライセンスを生成し、ライセンスの送信を行うサーバ装置であり、ワークステーション等により実現される。また、ライセンス配信サーバ100は、SPが運営するとして以降の説明を行う。
コンテンツ配信サーバ200は、伝送路500と接続する機能を有する。コンテンツ配信サーバ200は、コンテンツ情報を保持し、端末装置300からの要求に基づき、コンテンツの送信を行うサーバ装置であり、ワークステーション等により実現される。また、コンテンツ配信サーバ200は、コンテンツプロバイダ(以下、「CP」と呼ぶ)が運営するとして以降の説明を行う。
端末装置300は、伝送路500と接続する機能を有し、コンテンツやライセンスを保持し、ライセンスに含まれる利用条件バイトコードに基づく利用可否判定の後、モニター画面などにコンテンツを出力するなど、コンテンツの利用に関する処理を行う装置である。具体的には、端末装置300は、デジタル放送を受信するためのSTB(Set Top Box)、デジタルTV、DVD(Digital Versatile Disc)レコーダ、HDD(Hard Disk Drive)レコーダ、PC(Personal Computer)、PDA(Personal Digital Assistance)、携帯電話などのデータ再生装置、記録装置、あるいは、これらの複合機器である。本実施の形態では、上記機器が利用条件バイトコードを実行するためのVMを備えるとして説明する。
利用条件管理サーバ400は、伝送路500と接続する機能を有し、信頼性の高い署名付き利用条件判定ロジックコードなどを保持し、ライセンス配信サーバ100からの要求に基づき、ライセンス配信サーバ100が保持する利用条件判定ロジックコードの更新を行うサーバ装置であり、ワークステーション等により実現される。また、利用条件管理サーバ400は、コンテンツ配信システムに技術仕様を提供する技術管理団体が運営するとして以降の説明を行う。
伝送路500は、ライセンス配信サーバ100と、コンテンツ配信サーバ200と、端末装置300と、利用条件管理サーバ400と、を相互に接続するネットワークである。具体的には、伝送路500は、イーサネット(登録商標)等の有線ネットワークや、無線LANなどの無線ネットワーク、あるいは、これらが複合したネットワークで構成される。
本実施の形態では、このようなコンテンツ配信システムにおけるライセンスの取得、コンテンツの再生に関する次の5つの処理について図2から図25の図面を用いて詳細に説明する。
(1)ライセンス配信サーバ100が、利用条件判定ロジックコードを更新する処理
(2)端末装置300が、ライセンスを取得する処理
(3)端末装置300が、コンテンツを取得する処理
(4)端末装置300が、コンテンツを再生する処理
(5)利用条件管理サーバ400が、新たな利用条件判定ロジックコードを追加する処理
ここで詳細な説明に先立ち、本発明において端末装置300上でのコンテンツの利用可否判定に用いる情報の定義を行なう。
まず、端末装置300において利用可否判定を行なう利用条件バイトコードについて説明する。利用条件バイトコードは、端末装置300上のVMで動作するプログラムであり、少なくとも利用可否判定を行なうロジックと、前記ロジックが参照するパラメータを含む。具体的には、「現在時刻<パラメータならば、利用可」というロジックと、「2007年8月8日」というパラメータからなり、「現在時刻が、2007年8月8日より前ならば、利用可、そうでなければ利用不可」といった利用可否判定を行なうプログラムである。
なお、利用条件バイトコードは、該利用条件バイトコードを2つ以上組み合わせる形で新たな利用条件バイトコードとしてもよい。具体的には、「現在時刻<パラメータならば、利用可」というロジックと、「2007年8月8日」というパラメータからなる第1の利用条件バイトコードと、「再生回数<パラメータならば、利用可」というロジックと、「10回」というパラメータからなる第2の利用条件バイトコードを組み合わせて利用して、「現在時刻<第1のパラメータ、かつ、再生回数<第2のパラメータならば、利用可」というロジックと、「第1のパラメータ=2007年8月8日、第2のパラメータ=10回」というパラメータからなる第3の利用条件バイトコードであってもよい。
本実施の形態では、前記ロジックを示すプログラム、およびデータを、利用条件判定ロジックコードと呼び、前記パラメータを示すプログラム、およびデータを、利用条件判定パラメータと呼ぶこととする。具体的には、利用条件判定ロジックコードは、前述の例の他に、「現在利用回数<パラメータならば、利用可」、「初回利用時刻+パラメータ<現在時刻ならば、利用可」、「2007年7月7日<現在時刻<パラメータならば、利用可」などがある。また、利用条件判定パラメータは、前述の例の他に、「10回」、「2日間」、「ライセンス取得時刻+3日」などがある。具体例で説明したように、利用条件判定ロジックコードに「2007年7月7日」のような数値データを含む、あるいは、利用条件判定パラメータに「ライセンス取得時刻+」といった演算プログラムを含む、としても良い。
一般に、コンテンツ配信システムにおいては、権利保護の観点から、コンテンツ利用に関する情報は、セキュアに管理する必要がある。
そのため、ライセンス、利用条件バイトコードや利用条件判定ロジックコード、利用条件判定パラメータといったセキュアに管理する必要のあるデータを、伝送路500を通じて送受信する場合、セキュリティを確保するため、安全な認証チャネル(Secure Authenticated Channel、以下、「SAC」と呼ぶ)を確立してから、前記データの送受信を行うことが望ましい。SACの確立には、例えばSSL(Secure Socket Layer)やTLS(Transport Layer Security)を利用することができる。
次に、本実施の形態における識別子の定義を行う。
ユーザ識別子とは、コンテンツ配信システムにおいてユーザを一意に特定するための情報である。なお、本実施の形態では端末装置300を使用するユーザのユーザ識別子は「USER−ID−0001」として説明する。また、ユーザ識別子は端末装置購入時に入力され、端末装置300の記憶領域に記憶されているとして以降の説明を行う。
コンテンツ識別子とは、コンテンツ配信システムにおいてコンテンツを一意に特定するための情報である。
ライセンス識別子とは、端末装置300においてライセンスを一意に特定するための情報である。
ロジック識別子とは、コンテンツ配信システムにおいて利用条件判定ロジックコードを一意に特定するための情報である。
他の識別子、および識別子の具体的な値については、必要な箇所で適宜、定義、および説明する。
以上で各識別子の定義についての説明を終える。
次に、ライセンス配信サーバ100と、コンテンツ配信サーバ200と、端末装置300と、利用条件管理サーバ400の詳細な構成について説明する。
まず、ライセンス配信サーバ100の詳細な構成について説明する。
図2は、図1に示されるライセンス配信サーバ100の詳細な構成を示す機能ブロック図である。なお、ライセンス配信サーバ100a〜100bの機能構成は、ライセンス配信サーバ100aをその代表とし、ライセンス配信サーバ100として説明する。
ライセンス配信サーバ100は、利用条件判定ロジックコードを格納する利用条件判定ロジックコード格納部111と、利用条件判定パラメータを格納する利用条件判定パラメータ格納部112と、コンテンツ鍵を格納するコンテンツ鍵格納部113と、伝送路500と接続し端末装置300、および利用条件管理サーバ400と通信を行う通信部101と、端末装置300の要求に基づき、利用条件判定ロジックコードと利用条件判定パラメータから利用条件バイトコードを生成し、利用条件バイトコードとコンテンツ鍵からライセンスを生成し、送信するライセンス生成・送信部102と、利用条件管理サーバ400から更新用利用条件判定ロジックコードを取得し、利用条件判定ロジックコードを更新する利用条件判定ロジックコード更新部103と、から構成される。ここで、ライセンス生成・送信部102は、特許請求の範囲に記載の「ライセンス配信部」の機能を有する。
次に、コンテンツ配信サーバ200の詳細な構成について説明する。
図3は、図1に示されるコンテンツ配信サーバ200の詳細な構成を示す機能ブロック図である。
コンテンツ配信サーバ200は、コンテンツを格納するコンテンツ格納部211と、伝送路500と接続し端末装置300と通信を行う通信部201と、端末装置300からの要求に基づきコンテンツ格納部211からコンテンツを取得し、送信するコンテンツ取得・送信部202と、から構成される。
次に、端末装置300の詳細な構成について説明する。
図4は、図1に示される端末装置300の詳細な構成を示す機能ブロック図である。なお、端末装置300a〜300cの機能構成は、端末装置300aをその代表とし、端末装置300として説明する。
端末装置300は、コンテンツ配信サーバ200から取得したコンテンツを格納するコンテンツ格納部311と、ライセンス配信サーバ100から取得したライセンスを格納するライセンス格納部312と、伝送路500と接続しライセンス配信サーバ100、およびコンテンツ配信サーバ200と通信を行う通信部301と、ライセンスに含まれる利用条件判定ロジックコードを検証し、利用条件バイトコードとして実行してよいか否かの判定を行なう利用条件検証部302と、利用条件検証部302の検証結果を受けて利用可の場合に、利用条件バイトコードを実行する利用条件バイトコード実行部303と、ライセンス配信サーバ100よりライセンスを取得するライセンス取得部304と、コンテンツ配信サーバ200よりコンテンツを取得するコンテンツ取得部305と、利用条件バイトコード実行部303において実行される利用条件バイトコードの制御の下でコンテンツの復号を行い、コンテンツを再生するコンテンツ再生部306と、から構成される。
ここで、利用条件検証部302は、特許請求の範囲に記載の「動作確認判定部」の機能を有する。また、利用条件バイトコード実行部303は、特許請求の範囲に記載の「利用条件判定コード実行部」及び「動作可能バージョン管理部」の機能を有する。
最後に、利用条件管理サーバ400の詳細な構成について説明する。
図5は、図1に示される利用条件管理サーバ400の詳細な構成を示す機能ブロック図である。
利用条件管理サーバ400は、利用条件判定ロジックコード格納部411と、バージョン番号格納部412と、伝送路500と接続しライセンス配信サーバ100と通信を行う通信部401と、利用条件バイトコード入力部402と、利用条件バイトコード分離部403と、利用条件判定ロジックコード送信部404と、利用条件判定ロジックコード管理情報生成部405と、利用条件判定ロジックコード動作検証部406と、から構成される。
利用条件判定ロジックコード格納部411は、利用条件判定ロジックコードを格納する。バージョン番号格納部412は、バージョン番号を格納する。利用条件バイトコード入力部402は、ライセンス配信サーバ100、あるいはサーバ管理者等からの利用条件バイトコード入力を受け付ける。
利用条件バイトコード分離部403は、利用条件バイトコード入力部402に入力された利用条件バイトコードの、利用条件判定ロジックコードと、利用条件判定パラメータの分離ポリシーを決定し、利用条件判定ロジックコードを分離、抽出する。
利用条件判定ロジックコード送信部404は、ライセンス配信サーバ100の要求に基づき利用条件判定ロジックコードの更新要否を判定し、更新が必要と判断した場合、更新用利用条件判定ロジックコードを送信する。
利用条件判定ロジックコード管理情報生成部405は、利用条件バイトコード分離部403で抽出された利用条件判定ロジックコードに対してロジック識別子、およびバージョン番号を付与する。さらに、利用条件判定ロジックコード管理情報生成部405は、前記ロジック識別子、前記バージョン番号、および前記利用条件判定ロジックコードを含むデータに対して、利用条件管理サーバ400の秘密鍵でデジタル署名を付与し、前記データと関連付けて利用条件判定ロジックコード格納部411に格納する。
利用条件判定ロジックコード動作検証部406は、利用条件バイトコード分離部403で分離された利用条件判定ロジックコードの動作検証を行う。
ここで、利用条件判定ロジックコード管理情報生成部405は、特許請求の範囲に記載の「判定情報生成部」の機能を有する。また、利用条件判定ロジックコード動作検証部406は、特許請求の範囲に記載の「利用条件判定コード動作検証部」の機能を有する。
以上で、ライセンス配信サーバ100、コンテンツ配信サーバ200、端末装置300、および利用条件管理サーバ400の詳細な構成について説明した。各サーバ、および端末装置300は、各データ格納部、および各処理部から構成される。各データ格納部は、HDD等の記憶媒体で実現され、各処理部はLSI等のハードウェアあるいはCPU、RAM、ROM等を利用して実行されるプログラム等によって実現される。なお、端末装置300および利用条件管理サーバ400において各格納部、各処理部は、ハード的あるいはソフト的に耐タンパされていることが望ましい。
次に、本実施の形態で扱うデータ、およびデータ構造について説明する。まず、各格納部が保持するデータのデータ構造を、ライセンス配信サーバ100、コンテンツ配信サーバ200、端末装置300、利用条件管理サーバ400の順で説明する。最後に本実施の形態においてライセンス配信サーバ100から端末装置300に配信されるライセンスのデータ構造について説明する。
まず、ライセンス配信サーバ100の格納部が保持するデータについて図面を参照して説明する。
利用条件判定ロジックコード格納部111は、利用条件判定ロジックコードに関する情報を管理するための利用条件判定ロジックコード管理テーブルを有するデータベースであって、端末装置300からのライセンス配信要求に対して、発行可能な場合に利用条件バイトコードを生成するために用いられる。
具体的には、利用条件判定ロジックコード格納部111は、図6Aに示すように、ロジック識別子D601と、ロジック識別子D601に対応するロジックコードD603と、ロジックコードD603のバージョン番号D602と、ロジック識別子D601とバージョン番号D602とロジックコードD603からなるデータに対するデジタル署名である署名D604と、からなる利用条件判定ロジックコード管理テーブルD600aを有する。例えば、図6Aにおいて、ロジック識別子D601が「LOGIC−ID−0001」であるロジックコードD603は、「現在時刻<パラメータ」を示すバイトコードであり、バージョン番号D602が「1.0」であり、それらに対する署名D604が「323bf3bbc」であることを示している。なお、利用条件判定ロジックコード格納部111へのデータ登録は、ライセンス配信サーバ100の管理者指示、あるいは定期的に、利用条件管理サーバ400に利用条件判定ロジックコードの更新要否を確認し、更新用利用条件判定ロジックコードを取得した際に行われる。詳細な処理は後述する。
利用条件判定パラメータ格納部112は、ユーザ毎のコンテンツに対する利用条件を管理するデータベースであって、端末装置300からのライセンス配信要求に対して、ユーザが所有する利用条件が発行可能か否かを判定し、発行可能な場合に利用条件バイトコードを生成するために用いられる。
具体的には、利用条件判定パラメータ格納部112は、図7Aに示すように、利用条件の所有者を示すユーザ識別子D701と、利用条件が利用を許諾するコンテンツのコンテンツ識別子D702と、コンテンツ識別子D702で示されるコンテンツの利用可否判定を行なう利用条件判定ロジックコードのロジック識別子D703と、ロジック識別子D703に対応する利用条件判定ロジックコードが利用可否判定の際に参照するパラメータD704と、からなる利用条件判定パラメータ管理テーブルD700aを有する。例えば、ユーザ識別子D701が「USER−ID−0001」であるユーザは、利用許諾されたコンテンツがコンテンツ識別子D702に示される「CONTENT−ID−0001」なるコンテンツであり、利用可否判定を行なう利用条件判定ロジックコードが、ロジック識別子D703で示される「LOGIC−ID−0001」で特定される利用条件判定ロジックコードであり、前記利用条件判定ロジックコードが参照するパラメータが、パラメータD704で示される「〜2007/8/15」であることを示している。また複数のコンテンツ識別子に対して、一つのロジック識別子を対応付けることも可能である。
なお、利用条件判定パラメータ格納部112へのデータ登録は、コンテンツ配信サービスを運営するSPにより、ユーザがコンテンツを利用する権利を購入する際に行われる。この購入処理は、ユーザが伝送路500を通じて、SPのWebサイトに接続し、コンテンツ購入画面により、オンラインで購入を行うとしても良いし、購入用の葉書を用いる等、オフラインで行っても良い。購入処理では、まずユーザが購入対象であるコンテンツのコンテンツ識別子D702を指定し、利用条件を確認後、購入処理を行う。購入処理を行ったユーザのユーザ識別子D701とコンテンツ識別子D702と利用条件から一意に特定されるロジック識別子D703と、パラメータD704と、が関連付けられて、利用条件判定パラメータ格納部112の利用条件判定パラメータ管理テーブルD700aに登録される。
以上のような購入処理を行った結果、利用条件判定パラメータ格納部112の利用条件判定パラメータ管理テーブルD700aが構築される。また、一つのコンテンツに対して、複数のロジック識別子D703、および複数のパラメータを設定するとしても良い。図7Bを参照して説明する。D701からD704までの説明は、図6Aで説明したため、省略する。パラメータ2D705は、第2のロジック識別子に対応するパラメータを示している。優先順位D706は、利用条件判定ロジックコードが複数ある場合、何れか一つの利用条件判定ロジックコードにより可否判定をする場合、何れを優先的に実行するかを示す。また、2つ以上の利用条件判定ロジックコードが連携して可否判定を行なう場合、どのロジックを実行するのか、複数の条件をAND条件で実行するのか、OR条件で実行するのか、などを示している。
コンテンツ鍵格納部113は、暗号化コンテンツを復号するためのコンテンツ鍵を管理するデータベースであって、端末装置300からのライセンス取得要求に対してライセンスを生成する際に、ライセンス取得要求に含まれるコンテンツ識別子に対応したコンテンツ鍵を取得するために用いられる。
具体的には、コンテンツ鍵格納部113は、図8に示すように、コンテンツ識別子D801と、コンテンツ識別子D801に対応するコンテンツ鍵D802とからなるコンテンツ鍵管理テーブルD800を有する。例えば、コンテンツ識別子D801が「CONTENT−ID−0001」の暗号化コンテンツを復号するためのコンテンツ鍵D802は、「CONTENT−KEY−0001」であることを示している。なお、コンテンツ鍵格納部113へのデータ登録は、コンテンツの暗号化を行うCPなどによって行われる。
次に、コンテンツ配信サーバ200の格納部が保持するデータについて図面を参照して説明する。
コンテンツ格納部211は、暗号化コンテンツを管理するデータベースであって、端末装置300からのコンテンツ取得要求に対してコンテンツを送信する際に、コンテンツ取得要求に含まれるコンテンツ識別子に対応した暗号化コンテンツを取得するために用いられる。
具体的には、コンテンツ格納部211は、図9に示すように、コンテンツ識別子D901と、コンテンツ識別子D901に対応する暗号化コンテンツD902とからなるコンテンツ管理テーブルD900を有する。例えば、コンテンツ識別子D901が「CONTENT−ID−0001」の暗号化コンテンツD902は、「CONTENT−DATA−0001」であることを示している。なお、コンテンツ格納部211へのデータ登録は、コンテンツの暗号化を行うCPなどによって行われる。
次に、端末装置300の格納部が保持するデータについて図面を参照して説明する。
コンテンツ格納部311は、暗号化コンテンツを管理するデータベースであって、端末装置300においてコンテンツを利用する際に、暗号化コンテンツを取得するために用いられる。具体的な内容は、コンテンツ配信サーバ200のコンテンツ格納部211で説明した通りである。なお、コンテンツ格納部311へのデータ登録は、端末装置300がコンテンツ配信サーバ200からコンテンツを取得する際に行われる。
ライセンス格納部312は、ライセンスを管理するデータベースであって、端末装置300においてコンテンツを利用する際に、コンテンツ識別子に対応したライセンスを取得するために用いられる。
具体的には、ライセンス格納部312は、図10に示すように、ライセンス識別子D1001と、ライセンス識別子D1001に対応するライセンスD1002とからなるライセンス管理テーブルD1000を有する。例えば、ライセンス識別子D1001が「LICENSE−ID−0001」のライセンスD1002は、「LICENSE−0001」であることを示している。なお、ライセンス格納部312へのデータ登録は、端末装置300がライセンス配信サーバ100からライセンスを取得する際に行われる。ライセンスD1002のデータ構造については後述する。
最後に、利用条件管理サーバ400の格納部が保持するデータについて図面を参照して説明する。
利用条件判定ロジックコード格納部411は、利用条件判定ロジックコードに関する情報を管理するための利用条件判定ロジックコード管理テーブルを有するデータベースであって、ライセンス配信サーバ100からの利用条件判定ロジックコード更新要求に対して、更新用利用条件判定ロジックコードを送信する際に、更新用の利用条件判定ロジックコードを取得するために用いられる。具体的な内容は、ライセンス配信サーバ100の利用条件判定ロジックコード格納部111で説明した通りである。なお、利用条件判定ロジックコード格納部411へのデータ登録は、サーバ管理者指示、ライセンス配信サーバ100の要求等により、新しい利用条件判定ロジックコードを追加する際に行われる。処理の詳細は、後述する。
バージョン番号格納部412は、利用条件判定ロジックコードのバージョンを管理するデータベースであって、利用条件管理サーバ400において利用条件判定ロジックコードを追加する際に、新たなバージョン番号を付与するために用いられる。
具体的には、バージョン番号格納部412は、図11に示すように、バージョン番号D1101と、バージョン番号D1101を付与した日時を示す更新日時D1102と、からなるバージョン番号管理テーブルD1100を有する。例えば、バージョン番号D1101「1.0」を付与した更新日時D1102が「2007/1/1」であることを示している。なお、バージョン番号格納部412へのデータ登録は、サーバ管理者指示、ライセンス配信サーバ100の要求等により、新しい利用条件判定ロジックコードを追加する際に行われる。処理の詳細は、後述する。
最後に本実施の形態においてライセンス配信サーバ100から端末装置300に配信されるライセンスのデータ構造について説明する。
まず、ライセンス配信サーバ100が発行するライセンスのデータ構造について図12を参照して説明する。
ライセンス1200は、コンテンツの利用可否判定を行なうロジックである利用条件判定ロジックコード1204と、利用条件判定ロジックコード1204が参照する利用条件判定パラメータ1201と、利用条件判定ロジックコード1204のバージョンを示すバージョン番号1202と、利用条件判定ロジックコード1204を一意に特定するロジックコード識別子1203と、署名1205と、ライセンス1200に対応する暗号化コンテンツの復号を行うためのコンテンツ鍵1206と、からなる。
ここで、署名1205は、バージョン番号1202とロジックコード識別子1203と利用条件判定ロジックコード1204からなるデータに対するデジタル署名である。また、利用条件判定ロジックコード1204は、特許請求の範囲に記載の「利用条件判定コード」に相当する。バージョン番号1202は、特許請求の範囲に記載の「判定情報」に包含される。
ここで、ライセンス1200における利用条件バイトコードについて説明する。ライセンス1200では、利用条件判定パラメータ1201と、バージョン番号1202と、ロジックコード識別子1203と、利用条件判定ロジックコード1204と、署名1205とからなるデータを、利用条件バイトコード1211と呼ぶ。
また、以上の説明では、ライセンス1200は、一つのデータの塊として説明したが、ライセンス1200の各項目、例えば、署名対象データである「バージョン番号1202とロジックコード識別子1203と利用条件判定ロジックコード1204」と「署名1205」、「コンテンツ鍵1206」と「その他のデータ」など、データを分解し、別々に配信するなどしても良い。その場合、デジタル署名付きのリンク情報を用いるなどにより、改ざん検出可能な状態で分離する必要がある。なお、上記で説明したライセンス1200は、ライセンス格納部312、およびライセンスに関する処理において、ライセンス識別子、およびコンテンツ識別子と関連付ける必要がある。そこで、端末装置300におけるライセンス1200とライセンス識別子と、コンテンツ識別子と、の関連付け処理を不要とするため、ライセンス1200にライセンス識別子、およびコンテンツ識別子を含めるとしても良い。以上で、ライセンスのデータ構造について説明した。
以上で、本実施の形態で扱うデータのデータ構造について説明した。
次に、コンテンツ配信システムにおけるライセンスの取得、コンテンツの再生に関する次の5つの処理について説明する。
(1)ライセンス配信サーバ100が、利用条件判定ロジックコードを更新する処理
(2)端末装置300が、ライセンスを取得する処理
(3)端末装置300が、コンテンツを取得する処理
(4)端末装置300が、コンテンツを再生する処理
(5)利用条件管理サーバ400が、新たな利用条件判定ロジックコードを追加する処理
以上の構成のコンテンツ配信システムにおける上記処理について、上記順番で図20から図25を参照して説明する。
各処理の説明に先立ち、本実施の形態で扱う通信メッセージについて説明する。
図13は、ライセンス配信サーバ100、コンテンツ配信サーバ200、端末装置300、利用条件管理サーバ400の各サーバ、装置間の通信において送受信される通信メッセージM1300のメッセージフォーマットの内容を示す図である。
図13の通信メッセージM1300は、メッセージヘッダM1301と、メッセージ本体M1302と、からなる。
ここで、メッセージヘッダM1301は、少なくとも送信先を特定する情報と、送信元を特定する情報と、を含んでいる。前記送信先を特定する情報は、メッセージの宛先として参照され、前記送信元を特定する情報は、前記メッセージに対して返信のメッセージを送信する際にあて先として参照される。前記送信元、あるいは送信先を特定するための情報の典型例としてIPアドレスがある。メッセージ本体M1302は、各々のメッセージで固有の情報を含む。メッセージ本体固有の情報についてはメッセージが必要となる処理の説明において説明する。
まず、ライセンス配信サーバ100が、利用条件判定ロジックコードを更新する処理について説明する。
利用条件判定ロジックコード更新処理の説明に先立ち、利用条件判定ロジックコード更新処理に関係する通信メッセージのデータ構造について図14および図15を参照して説明する。
図14のロジックコード更新要求メッセージ本体M1400は、バージョン番号M1401からなる。図15のロジックコード送信メッセージ本体M1500は、利用条件判定ロジックコード情報リストM1501からなる。利用条件判定ロジックコード情報リストM1501は、1以上の利用条件判定ロジックコード情報M1502を含む。利用条件判定ロジックコード情報M1502は、コンテンツの利用可否判定を行なうロジックである利用条件判定ロジックコードM1513と、利用条件判定ロジックコードM1513のバージョンを示すバージョン番号M1511と、利用条件判定ロジックコードM1513を一意に特定するロジックコード識別子M1512と、署名M1514と、からなる。ここで、署名M1514は、バージョン番号M1511とロジックコード識別子M1512と利用条件判定ロジックコードM1513からなるデータに対するデジタル署名である。
以上で、利用条件判定ロジックコード更新処理に関係する通信メッセージのデータ構造について説明した。
次に、ライセンス配信サーバ100が、利用条件管理サーバ400から更新用の利用条件判定ロジックコードを取得するまでの各部の処理について図20を参照して説明する。
ライセンス配信サーバ100は、サーバ管理者指示、あるいはシステムの定期的な更新指示等により、利用条件判定ロジックコード更新処理を開始する。利用条件判定ロジックコード更新部103は、利用条件判定ロジックコード格納部111のバージョン番号D602の中で、最も大きなバージョン番号を取得する(図20:ステップS2011)。
例えば、図6Aの利用条件判定ロジックコード管理テーブルD600aの場合、バージョン番号として「2.0」を取得する。利用条件判定ロジックコード更新部103は、ロジックコード更新要求メッセージを生成し、通信部101を通じて利用条件管理サーバ400に送信する(図20:ステップS2012)。ロジックコード更新要求メッセージ本体M1400に含まれるバージョン番号M1401は、ステップS2011で取得したバージョン番号、例えば「2.0」を設定する。
利用条件管理サーバ400は、通信部401を通じて前記ロジックコード更新要求メッセージを受信する(図20:ステップS2041)。
利用条件判定ロジックコード送信部404は、ロジックコード更新要求メッセージ本体M1400から、バージョン番号M1401を抽出し、利用条件判定ロジックコード格納部411のバージョン番号D602の中で最も値が大きいバージョン番号を取得し、バージョン番号M1401がバージョン番号格納部412より取得したバージョン番号より古いか(値が小さいか)否かを判定する(図20:ステップS2042)。
バージョン番号M1401が利用条件判定ロジックコード格納部411より取得したバージョン番号より古くない場合、利用条件判定ロジックコード送信部404は、更新処理は不要と判断し、処理を終了し、更新処理が不要である旨をメッセージ本体に含む返信メッセージをライセンス配信サーバ100に送信する(図20:ステップS204A)。
ライセンス配信サーバ100は、利用条件管理サーバ400より更新不要通知を含む返信メッセージを受信した場合は、返信メッセージに含まれる更新不要の理由を管理者に通知、あるいはシステム上のログとして記録して、処理を終了する。なお、バージョン番号M1401が利用条件判定ロジックコード格納部411より取得したバージョン番号より大きい場合、ライセンス配信サーバ100が不正を行なっていると判断し、以降の更新処理を認めないといった処理をしても良い。
バージョン番号M1401が利用条件判定ロジックコード格納部411より取得したバージョン番号より古い場合、利用条件判定ロジックコード送信部404は、更新処理が必要と判断し、利用条件判定ロジックコード格納部411のバージョン番号D602の中で、バージョン番号M1401より値の大きいバージョン番号を特定する。前記バージョン番号に関連付けられた「ロジック識別子D601、バージョン番号D602、ロジックコードD603、署名D604」からなる利用条件判定ロジックコード情報の組を、配信対象の利用条件判定ロジックコード情報として特定する(図20:ステップS2043)。
利用条件判定ロジックコード送信部404は、特定した前記配信対象の利用条件判定ロジックコード情報の各々を、ロジックコード送信メッセージ本体M1500の利用条件判定ロジックコード情報M1502に設定し、通信部401を通じてライセンス配信サーバ100に送信する(図20:ステップS2044)。なお、署名D604は、利用条件判定ロジックコード管理テーブルD600aから読み込み、メッセージに設定するとして説明したが、署名D604を動的に生成し、付与するとしても良い。署名D604の動的生成は、署名に用いる鍵が、変更する際に有効である。
ライセンス配信サーバ100は、通信部101を通じてロジックコード送信メッセージ本体M1500を受信し、利用条件判定ロジックコード情報リストM1501を取得する(図20:ステップS2014)。
ライセンス配信サーバ100は、取得した利用条件判定ロジックコード情報リストM1501を利用条件判定ロジックコード格納部111に格納する(図20:ステップS2015)。
以上の説明では、利用条件管理サーバ400がライセンス配信サーバ100より取得したバージョン番号M1401より値が大きいバージョン番号を持つ利用条件判定ロジックコード情報のみを送信する、すなわち、更新データのみを送信するとして説明した。これを、利用条件管理サーバ400が保持する全ての利用条件判定ロジックコード情報を送信するとしても良い。
また、利用条件管理サーバ400が、ライセンス配信サーバ100を運営するSPを識別するSP識別子、あるいはライセンス配信サーバ識別子と、利用条件管理サーバ400との契約状態、信頼度、当該SPが提供するサービスの運用ルール、当該SPが提供するサービスに必要なロジック識別子などを、関連付けて保持し、ロジックコード更新要求Mを送信してきた相手に応じて、配信する利用条件判定ロジックコード情報を選択的に抽出するとしても良い。
また、利用条件判定ロジックコード情報と共に、ライセンス配信サーバ100の利用条件判定パラメータの設定に関する制限情報を送信するとしても良い。具体的には、パラメータの型制限や、定義域の制限などがある。また、SP識別子、あるいはライセンス配信サーバ識別子に応じて、制限を設定するなどしても良い。例えば、再生回数制限ロジックに対するパラメータの場合、SP1は10回まで設定可能とするが、SP2は50回まで設定可能などである。
以上で、サーバ管理者指示、あるいはシステムの定期的な更新指示等により、ユーザがライセンス取得指示を行い、ライセンス配信サーバ100が、利用条件管理サーバ400より利用条件判定ロジックコード情報を取得するまでの処理について説明した。
次に、端末装置300が、ライセンス配信サーバ100からライセンスを取得する処理について説明する。
ライセンス取得処理の説明に先立ち、ライセンス取得処理に関係する通信メッセージのデータ構造について図16および図17を参照して説明する。図16のライセンス取得要求メッセージ本体M1600はユーザ識別子M1601と、コンテンツ識別子M1602と、からなる。図17のライセンス送信メッセージ本体M1700はライセンスM1701からなる。
以上で、ライセンス取得処理に関係する通信メッセージのデータ構造について説明した。
次に、端末装置300が、ライセンス配信サーバ100からライセンスを取得するまでの各部の処理について図21を参照して説明する。
端末装置300は、ユーザからの端末装置300のアプリケーションへの情報入力、およびライセンス取得指示により、ライセンス取得処理を開始する(図21:ステップS2131)。ユーザは端末装置300のアプリケーションに対して、少なくとも取得対象であるライセンスを特定する情報の1つであるコンテンツ識別子または、コンテンツ識別子に準ずる情報を入力しなければならない。ユーザが、コンテンツ識別子「CONTENT−ID−0001」を入力し、ライセンス取得処理を開始したとして、以下の説明を行う。
ユーザからの情報入力を受けた端末装置300は、ライセンス取得部304においてライセンス取得要求メッセージを生成し、通信部301を通じてライセンス配信サーバ100に送信する(図21:ステップS2132)。ライセンス取得要求メッセージ本体M1600に含まれるユーザ識別子M1601は、ライセンス取得指示を行なったユーザのユーザ識別子、例えば「USER−ID−0001」を設定し、コンテンツ識別子M1602は、ユーザが入力したコンテンツ識別子「CONTENT−ID−0001」を設定する。ここでユーザ識別子は、ユーザが入力しても良いし、予め端末装置300の記憶領域(図示せず)に記憶していても良い。また、ライセンス取得要求メッセージ本体M1600に端末装置300を一意に特定する端末識別子を設定し、ライセンス配信サーバ100において、前記端末識別子に対応するユーザ識別子を特定するなどしても良い。
ライセンス配信サーバ100は、通信部101を通じて前記ライセンス取得要求メッセージを受信する(図21:ステップS2111)。
ライセンス生成・送信部102は、ライセンス取得要求メッセージ本体M1600から、コンテンツ識別子M1602を抽出し、コンテンツ識別子M1602に対応するコンテンツ鍵がコンテンツ鍵格納部113に存在するか否かを判定する(図21:ステップS2112)。
前記コンテンツ鍵が存在しない場合は、ライセンスを生成できないため、処理を終了し、コンテンツ鍵が存在しない、すなわちコンテンツ識別子が不正である旨をメッセージ本体に含む返信メッセージを端末装置300に送信する(図21:ステップS211A)。ライセンス生成・送信部102は、前記コンテンツ鍵が存在する場合は、以降の処理を行う。なお、本実施の形態では、図8にあるように、コンテンツ識別子「CONTENT−ID−0001」に対応するコンテンツ鍵「CONTENT−KEY−0001」が存在するとして、以降の説明を続ける。
ライセンス生成・送信部102は、ライセンス取得要求メッセージ本体M1600から、ユーザ識別子M1601を抽出し、利用条件判定パラメータ格納部112が保持する利用条件判定パラメータ管理テーブルD700からユーザ識別子M1601をキーとして、対応するユーザ識別子D701が存在するか否かを判定する(図21:ステップS2113)。ユーザ識別子M1601が利用条件判定パラメータ管理テーブルD700に存在しない場合は、前記ライセンス配信要求メッセージを送信した端末装置300のユーザが、コンテンツ配信サービスに登録されていないと判断し、ライセンス利用条件が生成できないため、処理を終了し、ユーザ識別子が存在しない旨をメッセージ本体に含む返信メッセージを、端末装置300に送信する(図21:ステップS211A)。
ユーザ識別子D701が存在する場合は、以降の処理を行う。なお、本実施の形態では図7A及び7Bにあるように、ユーザ識別子「USER−ID−0001」が存在するとして、以降の説明を続ける。
ライセンス生成・送信部102は、ユーザ識別子D701、およびライセンス取得要求メッセージ本体M1600から抽出したコンテンツ識別子M1602に基づき、利用条件判定パラメータ格納部112が保持する利用条件判定パラメータ管理テーブルD700aから対象となる利用条件が存在するか否かを判定する(図21:ステップS2114)。
具体的には、ライセンス生成・送信部102は、利用条件判定パラメータ管理テーブルD700aのユーザ識別子D701、およびコンテンツ識別子D702と、ユーザ識別子D701およびコンテンツ識別子M1602とが共に一致しているレコードを特定する。該当するレコードがない場合、ライセンス生成・送信部102は、利用条件が存在しない旨を含む返信メッセージを、端末装置300に送信する(図21:ステップS211A)。
該当するレコードが存在する場合、ライセンス生成・送信部102は、格納されているロジック識別子D703、およびパラメータD704を取得し、パラメータD704が有効か否かを判定する(図21:ステップS2114)。
具体的には、ライセンス生成・送信部102は、パラメータD704が、利用条件として意味がない場合に、有効でないと判断する。例えば、再生回数制御ロジックに対応するパラメータD704の値が0の場合、有効でないと判断する。また、パラメータD704に関連付けて配信可能期間などを保持し、有効か否かを判定するとしても良い。パラメータD704が有効でない場合、ライセンス生成・送信部102は、利用条件が有効でない旨を含む返信メッセージを、端末装置300に送信する(図21:ステップS211A)。
パラメータD704が有効な場合、ライセンス生成・送信部102は、利用条件判定ロジックコード格納部111が保持する利用条件判定ロジックコード管理テーブルD600から前記ロジック識別子D703をキーとして、一致する対応するロジック識別子D601を特定し、該当するレコードのロジックコードD603と、前記パラメータD704と、から利用条件バイトコードを生成する(図21:ステップS2115)。ここでは、レコードに記述されるパラメータD704を用いて、利用条件バイトコードを生成するとしたが、レコードに記述されるパラメータD704の一部を用いて生成するとしても良い。例えば、再生回数制御ロジックに対応するパラメータD704の値が10の場合、3回分を用いて、利用条件バイトコードを生成し、前記パラメータD704を7回分に減算しても良い。
ライセンス生成・送信部102は、コンテンツ鍵格納部113が保持するコンテンツ鍵管理テーブルD800から前記コンテンツ識別子M1602をキーとして、一致する対応するコンテンツ識別子D801を特定し、該当するレコードのコンテンツ鍵D802を取得する。
ライセンス生成・送信部102は、前記利用条件バイトコードと、前記コンテンツ鍵D802と、からライセンスを生成する(図21:ステップS2116)。
ここで、具体例を用いて説明する。利用条件判定パラメータ管理テーブルD700aにおいて、ユーザ識別子「USER−ID−0001」、コンテンツ識別子「CONTENT−ID−0001」で特定されたレコードのロジック識別子は、「LOGIC−ID−0001」で、パラメータは、「〜2007/8/15」である。判定日時を、2007/8/1とすると、パラメータは有効と判定され、2007/8/20とすると有効でないと判断される。利用条件判定ロジックコード管理テーブルD600aにおいて、ロジック識別子は、「LOGIC−ID−0001」で特定されたレコードのバージョン番号は、「1.0」、ロジックコードは、「現在時刻<パラメータ」、署名は、「323bf3bbc」である。コンテンツ鍵管理テーブルD800において、コンテンツ識別子「CONTENT−ID−0001」で特定されるコンテンツ鍵は「CONTENT−KEY−0001」である。
ここで、ユーザ識別子「USER−ID−0001」、コンテンツ識別子「CONTENT−ID−0001」からなるライセンス取得要求メッセージに応じて生成されるライセンスについて、図12を用いて説明する。前記ライセンスは、利用条件判定パラメータ1201「〜2007/8/15」、バージョン番号1202「1.0」、ロジックコード識別子1203「LOGIC−ID−0001」、利用条件判定ロジックコード1204「現在時刻<パラメータ」、署名1205「323bf3bbc」、コンテンツ鍵1206「CONTENT−KEY−0001」から構成される。
ライセンス生成・送信部102は、前記ライセンスをライセンス送信メッセージ本体M1700のライセンスM1701に設定し、通信部101を通じて端末装置300に送信する(図21:ステップS2117)。
端末装置300は、通信部301を通じてライセンス送信メッセージ本体M1700を受信し、ライセンスM1701を取得する(図21:ステップS2134)。
端末装置300は、端末装置内で一意なライセンス識別子を生成する(図21:ステップS2135)。
端末装置300は、取得したライセンスM1701をライセンス取得要求メッセージのコンテンツ識別子M1602と同じコンテンツ識別子と、前記ライセンス識別子と、を関連付けてライセンス格納部312に格納する(図21:ステップS2136)。なお、ライセンスM1701にコンテンツ識別子を含める場合はコンテンツ識別子との関連付け処理が不要である。
以上の説明では、ライセンス識別子を端末装置300においてライセンスを一意に特定するための情報であると定義し、端末装置300が生成するとした。これを、ライセンス識別子をライセンス利用システムにおいてライセンスを一意に特定するための情報であると定義し、ライセンス配信サーバ100がライセンス生成時に作成しライセンスに付与するとしても良い。この場合、端末装置300におけるライセンス識別子の生成処理、およびライセンス識別子との関連付け処理は不要となる。
また、端末装置300はライセンス配信サーバ100より生成不可通知を含む返信メッセージを受信した場合は、返信メッセージに含まれる生成不可の理由をユーザに提示し、処理を終了する。
以上で、ユーザがライセンス取得指示を行い、端末装置300が、ライセンス配信サーバ100よりライセンスを取得するまでの処理について説明した。
次に、コンテンツ取得処理について説明する。
コンテンツ取得処理の説明に先立ち、コンテンツ取得処理に関係する通信メッセージのデータ構造について図18および図19を参照して説明する。図18のコンテンツ取得要求メッセージ本体M1800はコンテンツ識別子M1801からなる。図19のコンテンツ送信メッセージ本体M1900はコンテンツM1901からなる。以上で、コンテンツ取得処理に関係する通信メッセージのデータ構造について説明した。
次に、端末装置300が、コンテンツ配信サーバ200からコンテンツを取得するまでの各部の処理について図22を参照して説明する。
端末装置300は、ユーザからの端末装置300のアプリケーションへの情報入力、およびコンテンツ取得指示により、コンテンツ取得処理を開始する(図22:ステップS2231)。ユーザは端末装置300のアプリケーションに対して、少なくとも取得対象であるコンテンツを特定する情報の1つであるコンテンツ識別子または、コンテンツ識別子に準ずる情報を入力しなければならない。ユーザが、コンテンツ識別子「CONTENT−ID−0001」を入力し、コンテンツ取得処理を開始したとして、以下の説明を行う。
ユーザからの情報入力を受けた端末装置300は、コンテンツ取得部305においてコンテンツ取得要求メッセージを生成し、通信部301を通じてコンテンツ配信サーバ200に送信する(図22:ステップS2232)。コンテンツ取得要求メッセージ本体M1800に含まれるコンテンツ識別子M1801は、ユーザが入力したコンテンツ識別子「CONTENT−ID−0001」を設定する。
コンテンツ配信サーバ200は、通信部201を通じて前記コンテンツ取得要求メッセージを受信する(図22:ステップS2211)。
コンテンツ取得・送信部202は、コンテンツ取得要求メッセージ本体M1800から、コンテンツ識別子M1801を抽出し、コンテンツ識別子M1801に対応するコンテンツがコンテンツ格納部211に存在するか否かを判定する(図22:ステップS2212)。
前記コンテンツが存在しない場合は、コンテンツを取得できないため、処理を終了し、コンテンツが存在しない、すなわちコンテンツ識別子が不正である旨をメッセージ本体に含む返信メッセージを端末装置300に送信する(図22:ステップS221A)。コンテンツ取得・送信部202は、前記コンテンツが存在する場合は、前記コンテンツを取得し、以降の処理を行う。なお、本実施の形態では、図9にあるように、コンテンツ識別子「CONTENT−ID−0001」に対応するコンテンツ「CONTENT−DATA−0001」が存在するとして、以降の説明を続ける。
コンテンツ取得・送信部202は、前記コンテンツをコンテンツ送信メッセージ本体M1900のコンテンツM1901に設定し、通信部201を通じて端末装置300に送信する(図22:ステップS2213)。
端末装置300は、通信部301を通じてコンテンツ送信メッセージ本体M1900を受信し、コンテンツM1901を取得する(図22:ステップS2234)。
端末装置300は、取得したコンテンツM1901をコンテンツ取得要求メッセージのコンテンツ識別子M1801と同じコンテンツ識別子と関連付けてライセンス格納部312に格納する(図22:ステップS2235)。なお、コンテンツM1901にコンテンツ識別子を含める場合はコンテンツ識別子との関連付け処理が不要である。
また、端末装置300はコンテンツ配信サーバ200より配信不可通知を含む返信メッセージを受信した場合は、返信メッセージに含まれる生成不可の理由をユーザに提示し、処理を終了する。
以上で、ユーザがコンテンツ取得指示を行い、端末装置300が、コンテンツ配信サーバ200よりコンテンツを取得するまでの処理について説明した。
次に、端末装置300が、コンテンツを再生し、終了するまでの各部の処理について図23、および図24を参照して説明する。
端末装置300は、ユーザからの端末装置300のアプリケーションへの情報入力、およびコンテンツ再生指示により、コンテンツ再生処理を開始する(図23:ステップS2301)。ユーザは端末装置300のアプリケーションに対して、少なくとも再生対象であるコンテンツを特定する情報の1つであるコンテンツ識別子または、ライセンス識別子を入力しなければならない。ユーザが、ライセンス識別子を入力し、コンテンツ再生処理を開始したとして、以下の説明を行う。
ユーザからの情報入力を受けた端末装置300は、利用条件検証部302が、前記ライセンス識別子に基づきライセンスを特定(図23:ステップS2302)する。利用条件検証部302は、特定したライセンスに含まれる利用条件判定ロジックコード情報を抽出し、前記利用条件バイトコードの利用可否判定を行なうバイトコード利用可否判定プロセスを実施する(図23:ステップS2303)。
利用条件バイトコード実行部303は、バイトコード利用可否判定プロセスの判定結果を確認し、利用条件バイトコードの実行可否を判定する(図23:ステップS2304)。
利用条件バイトコードの実行が許可されない場合、処理を終了し、許可されない理由と共にユーザに通知する。なお、利用条件バイトコードの実行が許可されない場合、許可されない理由と共にユーザに通知し、ユーザが処理継続を望むならば、以降の処理を行うとしても良い。例えば、「対象コンテンツに対応する利用条件の動作は、技術管理団体による確認をされていませんが、処理を継続しますか?」と言った通知を行う。VM上での動作エラーリスクをとってでもコンテンツ利用を行いたいユーザに対して有効である。また、利用条件バイトコードの実行が利用可でないということは、技術管理団体が動作を保証していないだけであって、動作しないことを示すわけではないことをユーザに通知することもユーザ利便性の観点から重要である。
利用条件バイトコードの実行が許可される場合、利用条件バイトコード実行部303における当該利用条件バイトコードの動作を利用条件管理サーバ400、および技術管理団体が確認済み、すなわち当該利用条件バイトコードの実行による端末装置300のトラブルリスクは低いと判断する。
利用条件バイトコード実行部303は、前記利用条件バイトコードを実行し、コンテンツ利用可否を判定する(図23:ステップS2305)。ここで、利用条件バイトコードによるコンテンツ利用可否判定について簡単に説明する。先に説明したように、利用条件バイトコードには、少なくとも、利用条件判定ロジックコードと利用条件判定パラメータが含まれる。本可否判定では、利用条件判定ロジックコードが利用条件判定パラメータを参照しながら、利用可否の判定を実施する。
具体的には、利用条件バイトコード実行部303は、利用条件判定ロジックコードとして「現在時刻<パラメータならば、利用可」、利用条件判定パラメータとして「2007年8月8日」を含む利用条件バイトコードの場合、「現在時刻が、2007年8月8日より前ならば、利用可、そうでなければ利用不可」といった利用可否判定を行なう。コンテンツ利用が許可されない場合、処理を終了し、許可されない理由と共にユーザに通知する。
コンテンツ利用が許可される場合、コンテンツ再生部306は、前記ライセンスに関連付けられているコンテンツ識別子をキーとして、コンテンツ格納部311から対応するコンテンツを特定する(図23:ステップS2306)。
コンテンツ再生部306は、前記ライセンスに含まれるコンテンツ鍵を用いて前記コンテンツを復号し、再生する(図23:ステップS2307)。
利用条件バイトコード実行部303上で動作する利用条件バイトコードは、コンテンツの再生中、あるいは終了時に、利用条件判定パラメータの更新要否を判定する(図23:ステップS2308)。例えば、利用条件判定ロジックコードが再生可能回数制御を行なう場合、更新要と判定し、利用条件判定ロジックコードが再生可能期間制御を行なう場合、更新不要といった判定を行なう。
更新不要であれば、再生を継続する、あるいは処理を終了する。
更新要であれば、利用条件バイトコードは利用条件判定パラメータを更新する(図23:ステップS2309)。例えば、利用条件判定ロジックコードが再生可能回数制御を行ない、利用条件判定パラメータが「5回」の場合、再生終了時に、利用条件判定パラメータを「4回」と更新する。また、利用条件判定パラメータを更新するのではなく、端末装置300内の記憶領域に利用実績として「1回」を記録するとしても良い。この場合、利用条件判定ロジックコードは、前記利用実績と、利用条件判定パラメータに基づき利用可否を判定するプログラムとなる。再生可能回数に相当するデータが、利用条件判定ロジックコードに含まれる場合は、利用条件判定ロジックコードのデータを更新すると署名検証が失敗してしまうので、端末装置300内の記憶領域に記録する必要がある。
以上で、端末装置300においてコンテンツを再生し、終了するまでの処理について説明した。
次に、図24のフローチャートを参照して、図23におけるステップS2303の、バイトコード利用可否判定プロセスについて説明を行う。
利用条件検証部302は、前記利用条件判定ロジックコード情報の署名検証を行なう(図24:ステップS2401)。具体的には、利用条件検証部302は、端末装置300の記憶領域(図示せず)に記録されている利用条件管理サーバ400の公開鍵を用いて、利用条件判定ロジックコード情報の検証を行なう。
利用条件判定ロジックコード情報の検証が失敗した場合、許可されない理由と共に、利用不可を返す(図24:ステップS2405)。
利用条件判定ロジックコード情報の検証が成功した場合、以降の処理を行なう。
利用条件検証部302は、前記利用条件判定ロジックコード情報からバージョン番号を抽出すると共に、利用条件バイトコード実行部303から利用条件バイトコード実行部303上で実行可能な利用条件バイトコードのバージョン番号を示すバイトコード実行部バージョン番号を取得する。ここで、バイトコード実行部バージョン番号は、特許請求の範囲に記載の「動作可能バージョン情報」に包含され、特許請求の範囲に記載の「動作可能バージョン情報で示されるバージョン番号」に相当する。
利用条件検証部302は、前記バージョン番号と、バイトコード実行部バージョン番号と、から利用条件バイトコード実行部303が、利用条件判定ロジックコードに対応しているか否かを判定する(図24:ステップS2402)。
具体的には、利用条件検証部302は、前記バージョン番号が、バイトコード実行部バージョン番号以下の場合は、利用条件バイトコード実行部303が、利用条件判定ロジックコードの実行に対応していると判定する。そして、利用条件検証部302は、前記バージョン番号が、バイトコード実行部バージョン番号よりも大きい場合は、利用条件バイトコード実行部303が、利用条件判定ロジックコードの実行に対応していないと判定する。
利用条件バイトコード実行部303が対応していないと判定した場合、許可されない理由と共に、利用不可を返す(図24:ステップS2405)。
利用条件バイトコード実行部303が対応していると判定した場合、以降の処理を行なう。
利用条件検証部302は、前記利用条件判定ロジックコード情報からロジック識別子を抽出すると共に、利用条件バイトコード実行部303から利用条件バイトコード実行部303上で実行可能な利用条件判定ロジックコードのロジック識別子のリストであるロジック識別子リストを取得する。
利用条件検証部302は、前記ロジック識別子と、ロジック識別子リストと、から利用条件バイトコード実行部303が、前記ロジック識別子に対応する利用条件判定ロジックコードに対応しているか否かを判定する(図24:ステップS2403)。
具体的には、利用条件検証部302は、前記ロジック識別子が、ロジック識別子リストに含まれる場合は、利用条件バイトコード実行部303が、前記利用条件判定ロジックコードの実行に対応していると判定する。そして、利用条件検証部302は、前記ロジック識別子が、ロジック識別子リストに含まれない場合は、利用条件バイトコード実行部303が、前記利用条件判定ロジックコードの実行に対応していないと判定する。なお、ここでは利用条件判定ロジックコードを特定する情報として、ロジック識別子を用いる場合について説明したが、利用条件判定ロジックコードの処理内容を示す文字列、例えば、有効期間制御や、回数制御相当の情報を示す文字列を用いて、利用条件判定ロジックコードを特定するとしても良い。この場合、前記文字列は、利用条件バイトコード実行部303の対応判定に利用できるとともに、ユーザに提示する情報としても使うことができる。
利用条件バイトコード実行部303が対応していないと判定した場合、許可されない理由と共に、利用不可を返す(図24:ステップS2405)。
利用条件バイトコード実行部303が対応していると判定した場合、利用可を返す(図24:ステップS2404)。
以上の説明では、署名検証に成功した後、バージョン番号、あるいは、ロジック識別子を用いて、当該利用条件バイトコードの動作が利用条件バイトコード実行部303において、技術管理団体により確認されているか、否かを判定する方法について説明した。
次に、上記と異なる判定方法について説明する。ここで詳細の説明に先立ち、利用条件判定ロジックコード格納部111が保持する図6Bについて説明する。D601からD604までの説明は、図6Aで説明したため、省略する。使用機能識別子D605は、ロジック識別子D601で特定されるロジックコードD603を端末装置300上で実行する際に、必要とするリソース、および機能を特定する識別子、あるいは識別子リストである。例えば、図6Bにおいて、ロジック識別子D601が「LOGIC−ID−0002」であるロジックコードD603が使用するリソースは、「セキュアクロックと、不揮発性メモリ」であることを示している。プロバイダ識別子D606は、対応するロジックコードD603を作成したSPを特定する識別子である。例えば、ロジック識別子D601が「LOGIC−ID−0004」であるロジックコードD603は、プロバイダ識別子D606がSP3であるSPにより作成されたことを示している。なお、利用条件判定ロジックコード格納部111へのデータ登録は、ライセンス配信サーバ100が、利用条件管理サーバ400に利用条件判定ロジックコードの追加を要求した際に行われる。追加された利用条件判定ロジックコードと関連付けて、前記ライセンス配信サーバ100を運営しているSPの識別子がプロバイダ識別子D606に登録される。
次に、使用機能識別子D605を用いて、当該利用条件バイトコードの動作が利用条件バイトコード実行部303において保証されているか、否かを判定する方法について説明する。
利用条件検証部302は、当該利用条件バイトコードを特定するロジック識別子に対応する使用機能識別子D605を抽出すると共に、利用条件バイトコード実行部303から利用可能なリソース、および機能を特定する識別子のリストである使用可能機能識別子リストを取得する。
利用条件検証部302は、前記使用機能識別子D605と、使用可能機能識別子リストと、から利用条件バイトコード実行部303が、前記ロジック識別子に対応する利用条件判定ロジックコードに対応しているか否かを判定する。
具体的には、利用条件検証部302は、前記使用機能識別子D605が、全て使用可能機能識別子リストに含まれる場合は、利用条件バイトコード実行部303が、前記利用条件判定ロジックコードの実行に対応していると判定する。そして、利用条件検証部302は、前記使用機能識別子D605の少なくとも一つの識別子が、使用可能機能識別子リストに含まれていない場合、利用条件バイトコード実行部303が、前記利用条件判定ロジックコードの実行に対応していないと判定する。なお、ここでは使用機能識別子D605が、ライセンスに含まれるとして説明したが、端末装置300が、ロジック識別子と、対応利用条件判定ロジックコードの使用に必要なリソース、機能識別子リストを保持し、保持リストに基づき、上記判定を行うとしても良い。例えば、同一メーカーAが製造した端末装置300が製品ラインナップとして、保持するリソース、機能が異なる場合などに、使用機能識別子D605による判定が、有効である。
次に、プロバイダ識別子D606を用いて、当該利用条件バイトコードの動作が利用条件バイトコード実行部303において保証されているか、否かを判定する方法について説明する。
利用条件検証部302は、当該利用条件バイトコードを特定するロジック識別子に対応するプロバイダ識別子D606を抽出すると共に、端末装置300内の記憶領域(図示せず)に記録された、動作保証済みプロバイダ識別子リストを取得する。
利用条件検証部302は、前記プロバイダ識別子D606と、動作保証済みプロバイダ識別子リストと、から利用条件バイトコード実行部303が、前記ロジック識別子に対応する利用条件判定ロジックコードに対応しているか否かを判定する。
具体的には、利用条件検証部302は、前記プロバイダ識別子D606が、動作保証済みプロバイダ識別子リストに含まれる場合は、利用条件バイトコード実行部303が、前記利用条件判定ロジックコードの実行に対応していると判定する。そして、利用条件検証部302は、前記プロバイダ識別子D606が、動作保証済みプロバイダ識別子リストに含まれていない場合、利用条件バイトコード実行部303が、前記利用条件判定ロジックコードの実行に対応していないと判定する。例えば、メーカーAが製造した端末装置300は、メーカーAのグループ会社であるサービスプロバイダAAが運営するライセンス配信サーバとは、種々のテストを実施し、特別に信頼できる場合などに、プロバイダ識別子D606による判定が有効である。なお、以上で説明した識別情報以外にも、VM種別、端末メーカー種別といった情報により判定することも可能である。また、これらの判定に用いる情報は、利用条件管理サーバ400におけるデジタル署名の対象領域に含まれることが望ましい。デジタル署名の対象領域に含まれないと、改ざんが検出できないため、ウイルス的な効果をもった利用条件バイトコードを実行するリスクが考えられるためである。
また、以上の説明では、複数の判定方法において、何れも対応済みと判定された場合のみ、利用可とするとして説明したが、何れか一つの判定方法において対応済みならば、利用可とするとしても良い。例えば、バージョン番号を用いた判定で対応済みでなくとも、ロジック識別子を用いた判定で対応済みであれば、利用可とする。また、以上の説明では、複数の方法で判定を行い、利用可否を判定するとして説明したが、前述した何れか一つの方法で判定を行っても良いし、2つ以上の判定方法を組み合わせて、ANDあるいはOR条件で判定するとしても良い。
以上で、バイトコード利用可否判定プロセスについて説明した。
次に、利用条件管理サーバ400において、利用条件判定ロジックコードを追加する際の各部の処理について図25を参照して説明する。
利用条件管理サーバ400は、サーバ管理者、あるいはライセンス配信サーバ100(以下、「追加指示者」と呼ぶ)からの利用条件判定ロジックコード追加指示により、利用条件判定ロジックコード追加処理を開始する(図25:ステップS2501)。追加指示者は、利用条件管理サーバ400の利用条件バイトコード入力部402に対して、少なくとも利用条件判定ロジックコードを含む利用条件バイトコードを入力しなければならない。なお、利用条件バイトコードではなく、利用条件判定ロジックコードや、「*泊*日の再生可否判定をしたい」といった利用条件の要件を入力するとしても良い。その場合、利用条件バイトコード分離部403の処理は不要となる。また、利用条件の要件が入力された場合、前記要件を、利用条件判定ロジックコードに変換する処理が必要となる。
利用条件バイトコード入力部402からの情報入力を受けた利用条件バイトコード分離部403は、入力された利用条件バイトコードの内容、あるいは追加申請を行ったライセンス配信サーバ100を運営するSPとの関係などに応じて、利用条件判定ロジックコードと、利用条件判定パラメータとの分離ポリシーを決定する(図25:ステップS2502)。そして、利用条件バイトコード分離部403は、前記分離ポリシーに基づき、利用条件バイトコードを、利用条件判定ロジックコードと、利用条件判定パラメータと、に分離する(図25:ステップS2503)。より本質的には、SPと技術管理団体との責任範囲を明確にする。すなわち、SPの責任範囲のコードは、利用条件判定パラメータに、技術管理団体の責任範囲のコードは、利用条件判定ロジックコードに分離する。
つまり、例えば、SPの信頼度が極めて低い場合など、全てのデータを利用条件判定ロジックコードに含める、あるいは信頼度が極めて高いSPには、データを利用条件判定パラメータに含めるといった運用も想定される。利用条件バイトコードを、利用条件判定ロジックコードと、利用条件判定パラメータと、に分離する具体例については、先の利用条件バイトコードの説明において記述したため、ここでは省略する。
利用条件判定ロジックコード動作検証部406は、利用条件バイトコード分離部403で分離、抽出された利用条件判定ロジックコードに対して種々のテストを実施するなどして、動作確認を行い、動作確認ができない場合は、処理を終了する。
利用条件判定ロジックコード管理情報生成部405は、バージョン番号格納部412の更新日時が一番新しい、バージョン番号を取得し、バージョン番号を加算し、新たなバージョン番号を生成する(図25:ステップS2504)。
具体的には、利用条件判定ロジックコード管理情報生成部405は、一番新しいバージョン番号が「2.0」ならば、新たなバージョン番号として「3.0」を付与する。また、既存の利用条件判定ロジックコードの相違点の度合いによって加算する値を変えるとしても良い。例えば、使用する機能が変わるなど、大きな変更の場合、「1.0」を加算し、参照する利用条件判定パラメータの変更など、相違点が軽微で端末装置300上での動作に影響がないと判断される場合、「0.1」を加算する。
利用条件判定ロジックコード管理情報生成部405は、新たに追加する利用条件判定ロジックコードに対して新たなロジック識別子を付与する(図25:ステップS2505)。
利用条件判定ロジックコード管理情報生成部405は、少なくとも先に分離した利用条件判定ロジックコードと、前記新たなバージョン番号と、前記新たなロジック識別子を含むデータに対して、利用条件管理サーバ400の記憶領域(図示せず)に記憶される利用条件管理サーバ400秘密鍵を用いてデジタル署名を付与し、利用条件判定ロジックコード格納部411に格納する(図25:ステップS2506)。より本質的には、技術管理団体の責任範囲のデータに対して、利用条件管理サーバ400秘密鍵を用いてデジタル署名を付与し、利用条件判定ロジックコード格納部411に格納する。
以上で、利用条件管理サーバ400において利用条件判定ロジックコードを追加する際の処理について説明した。
以上の説明では、バージョン番号は、コンテンツ配信システムにおいて一意として説明したが、利用条件判定ロジックコード、あるいはロジック識別子毎に、バージョン番号を管理するとしても良い。この場合、ロジック識別子毎に、バージョン番号を管理し、利用条件判定ロジックコード動作検証部406において、動作確認が完了したバージョン番号を付与し、利用条件判定ロジックコード、ロジック識別子、バージョン番号に対してデジタル署名を付与する。
また、バージョン番号の他に、端末メーカー識別子、VM識別子も関連付け、動作確認が完了したVMを特定可能としても良い。この場合、バージョン番号、端末メーカー識別子、VM識別子の全てを満たす場合、何れか一つを満たせばよいなど、種々の制御が想定される。
また、以上の説明では、技術管理団体が認定した利用条件判定ロジックコードに対して、技術管理団体が署名を行うモデルについて説明した。技術管理団体ではなく、端末装置メーカーが認定した利用条件判定ロジックコードに対して、端末装置メーカーが署名を行い、端末装置300において検証の後、利用条件バイトコードを実行するとしても良い。また、技術管理団体が署名した利用条件判定ロジックコードと、端末装置メーカーが署名した利用条件判定ロジックコードと、が共存するとしても良い。この場合、端末装置300は、技術管理団体の公開鍵、および端末装置メーカーの公開鍵が必要となる。
また、同一の利用条件判定ロジックコードに対して端末装置メーカー毎に署名を付与するモデルでは、例えば、署名検証が3社以上成功すれば、実行するなどと、しても良い。
また、複数団体による署名付き利用条件判定ロジックコードが共存する場合、端末装置の独自ルール、あるいはユーザの意思により、どの団体を優先的に判定するかを決めても良い。また、通常、技術管理団体の署名検証を最初に実施する端末装置において、特定条件下では、異なる団体の署名検証を優先するとしても良い。例えば、メーカーAが製造した端末装置300は、メーカーAのグループ会社であるサービスプロバイダAAの署名判定を最優先する、などである。
また、2以上の利用条件バイトコードが連携して利用可否判断を行うとしても良い。複数の利用条件バイトコードが連携する場合、署名検証などによる検証結果や、対象とするコンテンツ種別等により、連携要否を判断するとしても良い。
以上の説明では、端末装置300は、ライセンス配信サーバ100から取得したライセンスに含まれる利用条件判定ロジックコードを実行するとして説明した。これを、端末装置300は予め、動作確認済みの利用条件判定ロジックコードを保持しており、前記ライセンスに含まれるロジック識別子と一致する、利用条件判定ロジックコードを端末内に保持する場合、端末内で保持する利用条件判定ロジックコードを実行するとしても良い。署名付き利用条件判定ロジックコードは、受信した利用条件判定ロジックコードを実行し、署名が付いていない、あるいは、検証に失敗した場合、端末内で保持する利用条件判定ロジックコードを実行するとしても良い。
また、以上の説明では、利用条件バイトコードについて説明したが、異なる用途のバイトコードであっても、責任範囲により、バイトコードを分解し、責任範囲のデータに対して署名することにより、バイトコードの信頼性を向上させることが可能である。
また、以上の説明では、利用条件バイトコードを構成する要素のうち、ロジック識別子、バージョン番号、利用条件判定ロジックコードを署名対象要素として、該署名対象要素に対して利用条件管理サーバが署名を付与すると説明した。利用条件管理サーバが利用する署名アルゴリズムでは署名対象部分と署名対象でない部分を分割できない形で利用条件バイトコードが構成されている場合、典型的には、利用条件バイトコードが第1のXML要素の内容として符号化されており、利用条件管理サーバが該第1のXML要素に対してXML署名を付与する場合がある。この場合には、署名対象部分に対応する部分、具体的には、ロジック識別子、バージョン番号、利用条件判定ロジックコードのうち、少なくとも利用条件判定ロジックコードを内容に含む第2のXML要素を新たに設けて、該第2のXML要素に対して署名を付与してもよい。この際、端末装置は第2のXML要素に対して付与された署名を検証するとともに、第1のXML要素の内容のうち、第2のXML要素の内容に相当する部分のデータの改竄を検証するものとする。
(実施の形態2)
本発明の実施の形態2におけるコンテンツ配信システムについて説明を行う。
図26は、本発明の実施の形態2におけるコンテンツ配信システムの全体構成を示す図である。
図26において、コンテンツ配信システムは、コンテンツ配信サーバ2100と、ライセンス配信サーバ2110と、利用条件判定ロジックコード管理サーバ2120と、複数の端末装置2130(図26では、簡略化して1つのみ図示する)と、伝送路2140を備えている。以下、コンテンツ配信システムの各構成要素について説明を行う。
コンテンツ配信サーバ2100は、端末装置2130に対し、暗号化されたコンテンツを配信するサーバである。コンテンツには、コンテンツ配信システムにおいて、それを一意に特定することが可能なコンテンツIDが付与され配信されるものとする。
ライセンス配信サーバ2110は、各ユーザのコンテンツに対する契約(利用権利)を管理し、端末装置2130に対し、図30を用いて後述するライセンス2500を配信するサーバである。このライセンス2500がライセンス配信サーバ2110から端末装置2130に配信される際には、SACを通じてセキュアに配信される。SACとしては、例えば、SSL(Secure Socket Layer)を用いることができる。
利用条件判定ロジックコード管理サーバ2120は、図27を用いて後述する利用条件判定ロジックコード管理情報2200を生成・管理し、必要に応じて、ライセンス配信サーバ2110に対しそれを送信するサーバである。
端末装置2130は、ユーザによって使用される装置であり、ライセンス配信サーバ2110から配信されたライセンス2500を用いて、コンテンツ配信サーバ2100から配信されたコンテンツを利用する装置である。各端末装置2130にはコンテンツ配信システムにおいて、それを一意に特定することが可能なIDが付与されているものとする。
伝送路2140は、インターネット、CATV(Cable Television)、放送波等の有線伝送媒体、無線伝送媒体、または可搬型記録媒体などであり、コンテンツ配信サーバ2100、ライセンス配信サーバ2110、利用条件判定ロジックコード管理サーバ2120、端末装置2130間をデータ交換可能に接続するものである。
なお、本実施の形態においては、コンテンツ配信サーバ2100とライセンス配信サーバ2110は、サービス事業者によって運営され、利用条件判定ロジックコード管理サーバ2120はコンテンツ配信システムに技術仕様を提供する技術管理団体によって運営されることとするが、勿論これに限るわけではない。
以上で、コンテンツ配信システムの全体構成に関する説明を終了する。
ここで以降の詳細な説明に先立ち、本実施の形態において端末装置2130上でのコンテンツの利用可否判定に用いる情報の定義を行なう。
まず、端末装置2130において利用可否判定を行なう利用条件バイトコードについて説明する。利用条件バイトコードは、端末装置2130上で動作するプログラムであり、少なくとも利用可否判定を行なうロジックと、前記ロジックが参照するパラメータを含む。具体的には、「現在時刻<パラメータならば、利用可」というロジックと、「2007年8月8日」といったパラメータからなり、「現在時刻が、2007年8月8日より前ならば、利用可、そうでなければ利用不可」といった利用可否判定を行なうプログラムである。
本実施の形態では、前記ロジックを示すプログラム、およびデータを、利用条件判定ロジックコード、前記パラメータを示すプログラム、およびデータを、利用条件判定パラメータと呼ぶこととする。具体的には、利用条件判定ロジックコードは、前述の例の他に、「現在利用回数<パラメータならば、利用可」、「初回利用時刻+パラメータ<現在時刻ならば、利用可」、「2007年7月7日<現在時刻<パラメータならば、利用可」などがある。また、利用条件判定パラメータは、前述の例の他に、「10回」、「2日間」、「ライセンス取得時刻+3日」などがある。具体例で説明したように、利用条件判定ロジックコードに「2007年7月7日」のような数値データを含む、あるいは、利用条件判定パラメータに「ライセンス取得時刻+」といった演算プログラムを含む、としても良いものとする。
以上で利用条件バイトコードに関する説明を終わる。
次に、図27を用いて、利用条件判定ロジックコード管理情報2200について説明を行う。利用条件判定ロジックコード管理情報2200は、ロジックコードID2201と、プロファイル2202と、バージョン2203と、利用条件判定ロジックコード2204と、動作検証状況情報2205を含む情報である。
ロジックコードID2201とは、利用条件判定ロジックコード2204を一意に特定するIDである。プロファイル2202は、利用条件判定ロジックコード2204のプロファイルを示す情報であり、例えば、「期限判定」や「回数判定」といった利用条件の種別や、「サブスクリプション」や「レンタル」といったサービスの種別などを設定することが想定される。バージョン2203は、利用条件判定ロジックコード2204のバージョンを示す情報である。利用条件判定ロジックコード2204は、前述の利用条件バイトコードに含まれる利用条件判定ロジックコードのことである。動作検証状況情報2205は、利用条件判定ロジックコード2204の各端末装置2130における動作検証状況を示す情報である。本実施の形態においては、出荷済みの端末装置2130のうち、動作検証が完了していない端末装置2130の端末IDを列挙した情報であるとする。
図27においては、例えば、ロジックコードID2201が「0002」である利用条件判定ロジックコード2204は「現在日時<初回利用時刻+パラメータ」であり、そのプロファイル2202は「期限」、バージョン2203は「2.0」であり、動作検証状況情報2205に記載されている動作未検証の端末装置2130のIDは「00010000」であることを示している。
利用条件判定ロジックコード管理情報2200は、次に説明する通り、利用条件判定ロジックコード管理サーバ2120によって、生成・管理されることとする。
利用条件判定ロジックコード管理サーバ2120は、利用条件判定ロジックコード2204を生成し、それにロジックコードID2201、プロファイル2202、バージョン2203を付与するとともに利用条件判定ロジックコード管理情報2200にこれらの情報を登録する。また、利用条件判定ロジックコード管理サーバ2120は、端末装置2130の製造事業者にこれらの情報を提供する。
端末装置2130の製造事業者は、利用条件判定ロジックコード2204について端末装置2130における動作検証を行い、適宜その完了状況を利用条件判定ロジックコード管理サーバ2120に通知する。
利用条件判定ロジックコード管理サーバ2120は、端末装置2130の製造事業者から通知された情報をもとに、動作検証状況情報2205を生成・更新し、利用条件判定ロジックコード管理情報2200に登録する。
以上で、利用条件判定ロジックコード管理情報2200に関する説明を終わる。
次に、図28を用いて、ライセンス配信サーバ2110の全体構成について説明する。図28においてライセンス配信サーバ2110は、通信部2301と、利用条件判定ロジックコード管理データベース2302と、利用権利管理データベース2303と、ライセンス生成・送信部2304と、動作検証状況確認部2305と、動作検証状況フラグ設定部2306とから構成される。以下、各構成要素について説明を行う。
通信部2301は、伝送路2140を通じて利用条件判定ロジックコード管理サーバ2120や端末装置2130と通信を行う処理部である。
利用条件判定ロジックコード管理データベース2302は、前述の利用条件判定ロジックコード管理情報2200を管理するデータベースである。利用条件判定ロジックコード管理データベース2302は、必要に応じて、適宜、利用条件判定ロジックコード管理サーバ2120にアクセスし、利用条件判定ロジックコード管理情報2200を更新する。
利用権利管理データベース2303は、ユーザが購入したコンテンツの利用権利を管理するデータベースである。図29にその一例を示す。図29において、利用権利管理データベース2303は、端末ID2401と、利用権利ID2402と、ロジックコードID2403と、利用条件パラメータ2404と、コンテンツ鍵2405とから構成される。
端末ID2401には、各ユーザが所有する端末装置2130のIDが記述される。利用権利ID2402には、各ユーザが購入した利用権利のIDが記述される。ロジックコードID2403には、利用権利ID2402によって特定される利用権利において使用される利用条件判定ロジックコード2204のIDが記述される。利用条件パラメータ2404には、利用権利ID2402によって特定される利用権利において使用される利用条件パラメータが記述される。コンテンツ鍵2405には、利用権利ID2402によって特定される利用権利を用いて利用可能なコンテンツを復号するための鍵が記述される。
図29においては、例えば、端末ID2401が「00010002」である端末装置2130を有するユーザは、利用権利ID2402が「0021」の利用権利を購入していることを示している。そして、その利用権利で使用される、利用条件判定ロジックコードのロジックコードID2403は「0003」、利用条件パラメータ2404は「1回」であり、その利用権利を用いて利用するコンテンツの復号鍵は「333333」であることを示している。
図28に戻り、ライセンス生成・送信部2304は、端末装置2130からの要求に応じて、図30を用いて説明するライセンス2500を生成し、ユーザ端末装置2130に送信する処理部である。
ここで、ライセンス生成・送信部2304が生成・送信するライセンス2500について説明を行う。
図30に示す通り、ライセンス2500は、プロファイル2501と、バージョン2502と、利用条件判定ロジックコード2503と利用条件パラメータ2504とから構成される利用条件バイトコード2508と、動作検証状況フラグ2505と、コンテンツ鍵2506と、署名2507を含むデータである。
プロファイル2501、バージョン2502には、ライセンス2500に含まれる利用条件判定ロジックコード2503に付与されたプロファイル、バージョンが記述される。利用条件バイトコード2508には、ライセンス2500の利用可否判定にあたり実行される利用条件バイトコードが記述される。動作検証状況フラグ2505には、ライセンス2500を要求している端末装置2130において、利用条件判定ロジックコード2503の動作検証が済んでいるか否かを示す情報が記述される。コンテンツ鍵2506には、ライセンス2500を用いて利用するコンテンツの復号鍵が記述される。署名2507には、プロファイル2501と、バージョン2502と、利用条件判定ロジックコード2503と、利用条件パラメータ2504と、動作検証状況フラグ2505と、コンテンツ鍵2506をまとめたデータに対する、サービス事業者の署名データが記述される。
なお、ライセンス2500の生成にあたり、プロファイル2501と、バージョン2502と、利用条件バイトコード2508と、コンテンツ鍵2506と、署名2507については、ライセンス生成・送信部2304が値の設定を行うが、動作検証状況フラグ2505については、後述する動作検証状況フラグ設定部2306が値の設定を行うものとする。
図28に戻り、動作検証状況確認部2305は、ライセンス2500を要求している端末装置2130において、ライセンス2500に含まれる利用条件判定ロジックコード2503の動作検証が済んでいるか否かを判定する処理部である。
動作検証状況フラグ設定部2306は、動作検証状況確認部2305の判定結果に基づいて、ライセンス2500の動作検証状況フラグ2505に、値を設定する処理部である。
以上で、本実施の形態におけるライセンス配信サーバ2110の全体構成に関する説明を終了する。
次に、図31を参照して、端末装置2130の全体構成について説明を行う。端末装置2130は、通信部2601と、コンテンツ取得部2602と、ライセンス取得部2603と、利用条件バイトコード実行可否判定部2604と、利用条件バイトコード実行部2605と、ライセンス利用可否判定部2606と、コンテンツ利用部2607と、動作検証済みプロファイル・バージョン情報管理部2608と、ライセンス管理部2609と、コンテンツ管理部2610から構成される。以下、各構成要素について説明を行う。
通信部2601は、伝送路2140を通じてライセンス配信サーバ2110や他の端末装置2130と通信を行う処理部である。
コンテンツ取得部2602は、コンテンツ配信サーバ2100からコンテンツを取得し、コンテンツ管理部2610に蓄積する処理部である。
ライセンス取得部2603は、ライセンス配信サーバ2110からライセンス2500を取得し、ライセンス管理部2609に蓄積する処理部である。ライセンス取得部2603は、ライセンス配信サーバ2110に対し、図32に示すライセンス要求メッセージ2700を送信し、そのレスポンスとして図33に示すライセンス要求レスポンスメッセージ2800を受信することで、ライセンス2500を取得するものとする。
ここで、ライセンス要求メッセージ2700とライセンス要求レスポンスメッセージ2800について説明する。
図32において、ライセンス要求メッセージ2700は、ライセンス要求メッセージ識別子2701と、利用権利ID2702と、端末ID2703とから構成される。ライセンス要求メッセージ識別子2701には、このデータがライセンス要求メッセージ2700であることを示す情報が記述される。利用権利ID2702は、要求するライセンス2500の発行するもととなる利用権利のIDが記述される。端末ID2703には、ライセンス2500を要求する端末装置2130のIDが記述される。
図33において、ライセンス要求レスポンスメッセージ2800は、ライセンス要求レスポンスメッセージ識別子2801と、ステータスコード2802と、ライセンス2500とから構成される。ライセンス要求レスポンスメッセージ識別子2801には、このデータがライセンス要求レスポンスメッセージ2800であることを示す情報が記述される。ステータスコード2802には、発行を要求されたライセンス2500の発行に成功したか否かを示す情報が記述される。ライセンス2500には、発行を要求されたライセンス2500が記述される。
図31に戻り、利用条件バイトコード実行可否判定部2604は、ライセンス2500に含まれる利用条件バイトコード2508が実行可能であるかどうかを判定する処理部である。利用条件バイトコード実行可否判定部2604は、動作検証状況フラグ2505、及び、後述する動作検証済みプロファイル・バージョン情報管理部2608に管理されている動作検証済みプロファイル・バージョン情報に基づき、利用条件バイトコード2508に含まれる利用条件判定ロジックコード2503が端末装置2130で動作検証済みであるかどうかを確認し、検証済みである場合に実行可であると判定するものとする。
利用条件バイトコード実行部2605は、ライセンス2500に含まれる利用条件バイトコード2508を実行する処理部である。
ライセンス利用可否判定部2606は、ライセンス2500の利用可否を判定する処理部である。ライセンス利用可否判定部2606は、利用条件バイトコード実行部2605が利用条件バイトコード2508を実行し、その結果が「OK」であった場合に、ライセンス2500の利用が可であると判定するものとする。
コンテンツ利用部2607は、コンテンツを利用する処理部であり、コンテンツを再生したり、記録媒体に書き出したりする処理部である。
動作検証済みプロファイル・バージョン情報管理部2608は、端末装置2130で動作検証が完了している利用条件判定ロジックコードのプロファイル・バージョンを示す情報である動作検証済みプロファイル・バージョン情報を管理している。なお、動作検証済みプロファイル・バージョン情報は端末装置2130出荷時に記録されるものであるが、ソフトウェア更新機能を有する端末装置2130では、ソフトウェアの更新に伴って、動作検証済みプロファイル・バージョン情報も適宜更新されるものとする。
ライセンス管理部2609は、ライセンス取得部2603により取得されたライセンス2500を蓄積・管理する処理部である。
コンテンツ管理部2610は、コンテンツ取得部2602により取得されたコンテンツを蓄積・管理する処理部である。
以上で、本実施の形態における端末装置2130の全体構成についての説明を終わる。
次に、フローチャートを参照して、本実施の形態におけるコンテンツ配信システムの動作について説明を行う。
まず、図34に示すフローチャートを参照して、端末装置2130がライセンス配信サーバ2110からライセンス2500を取得するライセンス取得処理の動作について説明する。
S901:ライセンス取得部2603は、ユーザからのライセンス取得指示により、ライセンス取得処理を開始する。ユーザは端末装置2130のアプリケーションに対して、取得対象であるライセンス2500を生成する元となる利用権利のIDを特定する情報を入力することとする。ここで、ユーザの入力は、例えば、利用権利の購入時に端末装置2130に取得されたデータをもとに行われるものとし、そのデータとしては、例えばコンテンツのIDと利用権利のIDとを含むデータなどが考えられる。
ライセンス取得処理が開始されると、ライセンス取得部2603は、ライセンス要求メッセージ2700を生成し、ライセンス配信サーバ2110に送信する。ここで、ライセンス取得部2603は、ライセンス要求メッセージ2700の利用権利ID2702には、ユーザから入力された利用権利のIDを特定する情報をもとに値を設定し、端末ID2703には端末装置2130のIDを設定することとする。
S921:ライセンス生成・送信部2304は、ライセンス要求メッセージ2700を受信する。
S922:ライセンス生成・送信部2304は、利用権利管理データベース2303を参照し、ライセンス2500を発行する元となる利用権利が登録されているかどうかを確認することで、ライセンス2500の発行可否を判定する。
具体的には、ライセンス生成・送信部2304は、利用権利管理データベース2303を参照し、ライセンス要求メッセージ2700に含まれる端末ID2703に設定されたIDと同一のIDが端末ID2401として登録されているかを確認する。登録されている場合には、更に、利用権利ID2702に設定されているIDと同一のIDが、利用権利ID2402として、その端末ID2401と関連づけられて登録されているかを確認する。登録されている場合には、そのIDを持つ利用権利を、ライセンスを発行する元となる利用権利であると特定すると共に、ライセンス発行可と判定するものとする。
S923:S922における判定の結果、ライセンス発行可の場合には、S924の処理に進む。S922における判定の結果、ライセンス発行不可の場合には、S925の処理に進む。
S924:図35を用いて後述するライセンス生成プロセスを実行し、ライセンス2500を生成する。
S925:ライセンス生成・送信部2304は、ライセンス要求レスポンスメッセージ2800を生成し、端末装置2130に送信する。ライセンス生成・送信部2304は、ライセンス要求レスポンスメッセージ2800の生成にあたっては、S923でライセンス発行不可と判定した場合には、ステータスコード2802には「失敗」と設定する(ライセンス2500は設定しない)こととする。S923でライセンス発行可と判定した場合には、ステータスコード2802には「成功」と設定し、ライセンス2500にはS924で生成したライセンス2500を設定することとする。
S902:ライセンス取得部2603は、ライセンス要求レスポンスメッセージ2800を受信する。
S903:ライセンス取得部2603は、ライセンス要求レスポンスメッセージ2800のステータスコード2802を参照し、ライセンス取得に成功したか否かを判定する。ライセンス取得が成功している場合、S904の処理に進む。ライセンス取得に失敗している場合、その旨を図示しないディスプレイなどを通じてユーザに通知し処理を終了する。
S904:利用条件バイトコード実行可否判定部2604は、図36を用いて後述する利用条件バイトコード実行可否判定プロセスを実行し、ライセンス2500に含まれる利用条件バイトコード2508を実行可能か否か判定する。
S905:S904で「実行可」と判定された場合、S906の処理に進む。S904で「実行不可」と判定された場合、その旨を図示しないディスプレイなどを通じてユーザに通知し処理を終了する。
S906:ライセンス取得部2603は、取得したライセンス2500を、そのライセンス2500を用いて利用するコンテンツのコンテンツIDと関連付けてライセンス管理部2609に蓄積する。
S907:ライセンス取得部2603は、ライセンス2500を受け取ったことを通知するライセンス受信完了通知メッセージを生成し、ライセンス配信サーバ2110に送信する。
S926:ライセンス生成・送信部2304は、ライセンス受信完了通知メッセージを受信する。
S927:ライセンス生成・送信部2304は、ライセンス発行確定処理を行う。この処理としては、例えば、ライセンス2500の発行回数を「1」加算するといった処理などが考えられる。
S928:ライセンス生成・送信部2304は、ACKメッセージを生成し、端末装置2130に送信する。
S908:ライセンス取得部2603は、ACKメッセージを受信する。
なお、S904で実行可と判定した場合に、S907でライセンス受信完了通知メッセージを生成・送信すると説明したが、S904で実行不可と判定した場合に、ライセンス取得のキャンセルを通知するメッセージをライセンス配信サーバ2110に送信することとしてもよい。
なお、S907でライセンス受信完了通知メッセージを送信後に、そのレスポンスとしてACKメッセージを受信できない場合には、続けて再送を行ったり、また、一旦処理を終了し、後日処理を再開可能な情報を記憶し再送するようにしたりしても良いものとする。
以上で、本実施の形態におけるライセンス取得処理の動作についての説明を終わる。
次に、図35に示すフローチャートを参照して、本実施の形態におけるライセンス生成プロセスの動作(図34のS924の詳細)について説明する。
S1001:ライセンス生成・送信部2304は、生成するライセンス2500に、動作検証状況フラグ2505、署名2507以外の各情報を設定する。
具体的には、ライセンス生成・送信部2304は、まず、利用権利管理データベース2303を参照し、ライセンス2500を発行する元となる利用権利のロジックコードID2403を確認する。次に、利用条件判定ロジックコード管理データベース2302を参照し、そのロジックコードID2403と同一のロジックコードID2201をもつ利用条件判定ロジックコード2204をライセンス2500に設定するものとして特定する。ライセンス生成・送信部2304は、特定した利用条件判定ロジックコード2204のプロファイル2202、バージョン2203、をライセンス2500のプロファイル2501、バージョン2502に設定し、利用条件判定ロジックコード2503には、特定した利用条件判定ロジックコード2204を設定する。また、ライセンス生成・送信部2304は、ライセンス2500の利用条件パラメータ2504、コンテンツ鍵2506には、ライセンス2500を発行する元となる利用権利の利用条件パラメータ2404、コンテンツ鍵2405を設定する。
S1002:動作検証状況確認部2305は、利用条件判定ロジックコード管理データベース2302を参照し、ライセンス要求メッセージ2700に含まれる端末ID2703で特定される端末装置2130において、利用条件判定ロジックコード2204が動作検証済みであるか否かを判定する。
具体的には、動作検証状況確認部2305は、S1001でライセンス2500に設定するものとして特定した利用条件判定ロジックコード2204の動作検証状況情報2205を参照し、ライセンス要求メッセージ2700に含まれる端末ID2703に設定されたIDと同一のIDが、検証未である端末装置2130のIDであるとして記載されているか否かを判定する。ここで、検証未である端末装置2130のIDであるとして記載がある場合には、検証未であると判定し、記載が無い場合には、検証済みであると判定することとする。
S1003:S1002で、「検証未」と判定した場合には、S1005の処理に進む。S1002で「検証済み」と判定した場合には、S1004の処理に進む。
S1004:動作検証状況フラグ設定部2306は、動作検証状況フラグ2505に、「検証済み」と設定する。
S1005:動作検証状況フラグ設定部2306は、動作検証状況フラグ2505に、「検証未」と設定する。
S1006:ライセンス生成・送信部2304は、プロファイル2501と、バージョン2502と、利用条件判定ロジックコード2503と、利用条件パラメータ2504と、動作検証状況フラグ2505と、コンテンツ鍵2506をまとめたデータに対して、サービス事業者の秘密鍵を用いて署名データを生成し、ライセンス2500の署名2507に設定する。
以上で、本実施の形態におけるライセンス生成プロセスの動作についての説明を終わる。
次に、図36に示すフローチャートを参照して、本実施の形態における利用条件バイトコード実行可否判定プロセスの動作(図34のS904の詳細)について説明する。
S1101:利用条件バイトコード実行可否判定部2604は、図示しない記憶領域に記録されているサービス事業者の公開鍵を用いてライセンス2500の署名2507の検証を行う。
S1102:S1101で署名検証の結果が「OK」の場合、S1103の処理に進む。S1101で署名検証の結果が「NG」の場合、S1108の処理に進む。
S1103:利用条件バイトコード実行可否判定部2604は、ライセンス2500の動作検証状況フラグ2505の値を確認する。動作検証状況フラグ2505の値が「検証済み」の場合、S1107の処理に進む。動作検証状況フラグ2505の値が「検証未」の場合、S1104の処理に進む。
S1104:端末装置2130がソフトウェア更新機能を有している場合には、S1105の処理に進む。端末装置2130がソフトウェア更新機能を有していない場合には、S1108の処理に進む。
S1105:利用条件バイトコード実行可否判定部2604は、動作検証済みプロファイル・バージョン情報管理部2608に管理されている動作検証済みプロファイル・バージョン情報を参照し、ライセンス2500に含まれるプロファイル2501、バージョン2502が端末装置2130で検証済みのプロファイル、バージョンであるか否かを確認する。
S1106:S1105で、検証済みのプロファイル、バージョンであると判定された場合には、S1107の処理に進む。S1105で、検証済みのプロファイル、バージョンでないと判定された場合には、S1108の処理に進む。
S1107:利用条件バイトコード実行可否判定部2604は、ライセンス2500に含まれる利用条件バイトコード2508は「実行可」であると判定する。
S1108:利用条件バイトコード実行可否判定部2604は、ライセンス2500に含まれる利用条件バイトコード2508は「実行不可」であると判定する。
以上で、本実施の形態における利用条件バイトコード実行可否判定プロセスの動作についての説明を終わる。
次に、図37に示すフローチャートを参照して、端末装置2130がコンテンツを利用するコンテンツ利用処理の動作について説明する。
S1201:ライセンス利用可否判定部2606は、ライセンス管理部2609から、ユーザが利用を所望したコンテンツのコンテンツIDと関連付けられて記憶されているライセンス2500を取り出す。
S1202:利用条件バイトコード実行可否判定部2604は、前述した利用条件バイトコード実行可否判定プロセスを実行する。
S1203:S1202で「実行可」と判定された場合、S1204の処理に進む。S1202で「実行不可」と判定された場合、その旨を図示しないディスプレイなどを通じてユーザに通知し処理を終了する。
S1204:利用条件バイトコード実行部2605は利用条件バイトコード2508を実行する。
S1205:ライセンス利用可否判定部2606は、S1204の実行結果が「OK」の場合、「ライセンス利用可」と判定し、S1206の処理に進む。ライセンス利用可否判定部2606は、S1204の実行結果が「NG」の場合には、「ライセンス利用不可」と判定し、その旨を図示しないディスプレイなどを通じてユーザに通知し処理を終了する。
S1206:コンテンツ利用部2607は、コンテンツ管理部2610からユーザが利用を所望しているコンテンツを取り出し、ライセンス2500のコンテンツ鍵2506を用いて、それを復号し利用を行う。
以上で、本実施の形態におけるコンテンツ利用処理の動作についての説明を終わる。
以上で、本実施の形態におけるコンテンツ配信システムの動作についての説明を終わる。
なお、本実施の形態の変形例として、図38に示す通り、ライセンス要求メッセージ2700aに端末ID2703を複数含め、図39に示す通り、ライセンス2500aに端末ID2703と動作検証状況フラグ2505との組を複数含める形態が考えられる。この変形例は、端末装置2130間でライセンス2500の転送を行うことを想定した実施の形態である。
本変形例においては、S901においてライセンス取得部2603は、ライセンス2500を転送する可能性のある端末装置2130のIDを収集し、ライセンス要求メッセージ2700に含めるものとする。また、S924のライセンス生成プロセスにおいて、動作検証状況確認部2305は、ライセンス要求メッセージ2700に含まれる端末ID2703で特定される端末装置2130毎に、利用条件判定ロジックコードの動作検証状況を確認する。そして、動作検証状況フラグ設定部2306は、その結果を、端末ID2703と組となる動作検証状況フラグ2505に設定するものとする(S1002〜S1005の処理を端末装置2130毎に行う)。この場合、S1103で利用条件バイトコード実行可否判定部2604が確認する動作検証状況フラグ2505は、自端末装置2130の端末ID2703と組となっている動作検証状況フラグ2505であるとする。このようにすることによって、ライセンス2500を他の端末装置2130に転送した場合でも、その転送先端末装置2130において、そのライセンス2500に含まれる利用条件判定ロジックコード2503の動作検証状況を確認することが可能となる、という効果が得られる。
以上で、実施の形態2におけるコンテンツ配信システムの説明を終わる。
(実施の形態3)
実施の形態3におけるコンテンツ配信システムについて説明を行う。なお、実施の形態3におけるコンテンツ配信システムは、実施の形態2のコンテンツ配信システムと一部のみ異なる為、その差異のみ説明することとする。
実施の形態3におけるコンテンツ配信システムが実施の形態2におけるコンテンツ配信システムと異なる点は、ライセンス配信サーバ2110において利用条件判定ロジックコードの動作検証状況を確認(図35におけるS1002〜S1005の処理)せず、かわりに端末装置2130においてその処理を行う点である。この為、図41に示す通り実施の形態3におけるライセンス3600は、動作検証状況フラグ2505を含まず、かわりに動作検証状況情報3601を含む。動作検証状況情報3601には、ライセンス3600に含まれる利用条件判定ロジックコード2503に対応した動作検証状況情報2205が設定されるものとする。
図40に実施の形態3におけるライセンス配信サーバ3510の構成図を示す。ライセンス配信サーバ3510が実施の形態2におけるライセンス配信サーバ2110と異なる点は、動作検証状況確認部2305と動作検証状況フラグ設定部2306を有さず、代わりに動作検証状況情報設定部3501を有する点である。動作検証状況情報設定部3501は、ライセンス3600の動作検証状況情報3601に情報を設定する処理部である。動作検証状況情報設定部3501は、利用条件判定ロジックコード管理データベース2302を参照し、ライセンス3600に設定された利用条件判定ロジックコード2503に対応した動作検証状況情報2205を、動作検証状況情報3601に設定するものとする。
実施の形態3における端末装置2130が実施の形態2の端末装置2130と異なる点は、図42に示す通り、利用条件バイトコード実行可否判定プロセスの動作が異なる点である。実施の形態3における利用条件バイトコード実行可否判定プロセスが実施の形態2の利用条件バイトコード実行可否判定プロセスと異なる点は、S1103の処理が無く、かわりにS1701、S1702の処理が追加されている点である。他のステップの処理については、実施の形態2の利用条件バイトコード実行可否判定プロセスと同様である。
以下、S1701、及び、S1702の処理について説明を行う。
S1701:利用条件バイトコード実行可否判定部2604は、ライセンス3600の動作検証状況情報3601を参照し、自らのIDが、検証未である端末装置2130のIDであるとして記載されているか否かを判定する。ここで、検証未である端末装置2130のIDであるとして記載がある場合には、検証未であると判定し、記載が無い場合には、検証済みであると判定することとする。
S1702:S1701で「検証未」と判定した場合には、S1104の処理に進む。S1702で「検証済み」と判定した場合には、S1107の処理に進む。
以上で、実施の形態3における利用条件バイトコード実行可否判定プロセスの動作についての説明を終わる。
以上で、実施の形態3におけるコンテンツ配信システムの説明を終わる。
なお、本実施の形態2及び3における動作検証状況情報2205、3601の変形例として、図43にその一例を示す動作検証状況情報3800を使用しても良い。図43において、動作検証状況情報3800は、マスクビット数3801と比較ID3802とから構成される。マスクビット数3801は、マスクデータを導出する為の情報であり、マスクビット数3801の値をNとした場合、比較するビット列のうち上位Nビットを「1」にし残りの下位ビットがあればその下位ビット全てを「0」とした形式のマスクデータを導出するものとする。比較ID3802は、端末のIDと、導出したマスクデータとのビット毎の論理積を求めた結果と比較する為のIDであり、これが一致した場合には、動作未検証であることを示すこととする。マスクビット数3801と組をなす比較ID3802は、これを構成するビット列のうち上位Nビットの内容のみが有用であり、その他の値は例えば「0」とした形式のデータとなる。ここで、動作検証状況情報3800を用い、端末装置2130における利用条件判定ロジックコードの検証状況を確認する際の動作について説明する。
(1)マスクビット数3801からマスクデータを導出する。
(2)動作検証状況の確認対象の端末装置2130のIDと導出したマスクデータとのビット毎の論理積を求める。
(3)(2)で求めた論理積と比較ID3802とを比較する。
(4)比較の結果一致する場合には、動作未検証であると判定する。比較の結果が一致しない場合には、次のマスクビット数3801と比較ID3802の組について(1)〜(4)の処理を繰り返す。
(5)全てのマスクビット数3801と比較ID3802の組について処理を行っても(4)で比較結果が一致しない場合には、動作検証済みであると判定する。
以上で、動作検証状況情報3800を用いた、端末装置2130における利用条件判定ロジックコードの検証状況を確認する際の動作についての説明を終わる。この動作検証状況情報3800を用いることによって、動作検証状況情報のデータサイズを削減することができるという効果を得ることができる。
なお、動作検証状況情報の別の変形例として、次のような構成としてもよい。各端末装置2130には互いに素な数字がIDとして割り当てられ、動作検証状況情報としては、動作検証済みの端末に割り当てられたIDを掛け合わせたものを設定する。この場合には、端末装置2130は動作検証状況情報設定された数字が、自らに割り当てられたIDで割りきれた場合に、動作検証済みであると判断することとする。
なお、本実施の形態2及び3において、動作検証状況情報2205、及び、動作検証状況情報3601には、検証未である端末装置2130のIDを記載するとして説明を行ったがこれに限るわけではなく、検証済みである端末装置2130のIDを記載するとしても良い。また、端末装置2130のIDを記載するとしたが、IDに限るわけではなく、製造事業者名、機種名、ロット番号など、端末装置2130を特定可能な他の情報であっても良いものとする。また、端末装置2130を特定可能な情報ではなく、利用条件バイトコード実行部2605を特定可能な情報を記述しても良いものとする。
なお、動作検証状況情報2205、及び、動作検証状況情報3601に記載するIDは、利用条件判定ロジックコード管理サーバ2120において所定のルールに従って変形を行い記載しても良いものとする。この場合、端末装置2130においても、自身のIDを所定のルールに従って変形することでS1701の処理を行うこととする。これにより、サービス事業者に対し、各端末装置2130での検証状況を秘匿することが可能となるという効果が得られる。
なお、実施の形態3において、動作検証状況情報2205、及び、動作検証状況情報3601は、次のような変形例であってもよいものとする。
動作検証状況情報2205、及び、動作検証状況情報3601は、端末装置2130の各製造事業者が独自に作成したデータの集合であるとする。この場合、各製造事業者は、端末装置2130において、利用条件判定ロジックコードの検証状況が判断可能なデータを独自のルールで作成し、それを利用条件判定ロジックコード管理サーバ2120に送信するものとする。
利用条件判定ロジックコード管理サーバ2120は、端末装置製造事業者からの独自データを収集して、その集合を動作検証状況情報2205として利用条件判定ロジックコード管理情報2200に登録するものとする。ライセンス配信サーバ2110は、利用条件判定ロジックコード管理情報2200を利用条件判定ロジックコード管理サーバ2120から取得して利用条件判定ロジックコード管理データベース2302に管理する。ライセンス3600発行時には、動作検証状況情報3601として、上記動作検証状況情報2205を設定するものとする。この場合、端末装置2130では、動作検証状況情報3601に設定されたデータのうち自端末装置の製造事業者が作成した独自データ部分を参照し、動作検証状況を判定することとする。
具体的には、S1701において、端末装置2130の利用条件バイトコード実行可否判定部2604は、動作検証状況情報3601に設定されたデータのうち自端末装置の製造事業者が作成した独自データ部分を参照する。そして、利用条件バイトコード実行可否判定部2604は、製造事業者の独自ルールに従って、端末装置2130での利用条件判定ロジックコード2503の動作検証状況を判定することとする。
なお、本変形例において、動作検証状況情報2205、及び、動作検証状況情報3601は、共に端末装置2130の各製造事業者が独自に作成したデータの集合であるとして説明を行った。これを、ライセンス3600に含める動作検証状況情報3601には、ライセンス3600を要求している端末装置2130の製造事業者が生成したデータのみを抜き出して含めることとしてもよいものとする。本変形例により、各端末装置2130での動作検証状況が、サービス事業者や他の端末装置製造事業者に対し、秘匿することが可能となる、という効果が得られる。
なお、実施の形態3において、動作検証状況情報2205、及び、動作検証状況情報3601は、動作未検証な端末装置のIDのリストであると説明を行ったが、次のような変形例であってもよいものとする。
動作検証状況情報2205、及び、動作検証状況情報3601は、予め端末装置2130毎にビットが割り当てられたビット列から成るデータであり、端末装置で動作検証済みの場合にビットに「1」を設定する。この場合、S1701において、端末装置2130の利用条件バイトコード実行可否判定部2604は、自端末装置2130に割り当てられているビットを参照し、その値が「1」である場合には、動作検証済みであると判定することとする。
なお、本変形例において、ビットは端末装置2130毎に割り当てられるとしたが、それに限るわけではなく、端末装置製造事業者毎や機種毎、ロット毎などの単位で割り当てられるとしてもよい。また、該ビット列を所定の符号化方法で符号化し、サイズを削減することも考えられる。また、該ビット列を事業者毎の独自の暗号化手法等で変形し、サービス事業者や他の端末製造事業者に対して秘匿とすることも考えられる。
なお、本実施の形態2において、動作検証状況フラグ2505は、ライセンス2500に含まれるとして説明を行った。これを、ライセンス要求レスポンスメッセージ2800の一つのパラメータとして設定されるものとしてもよいこととする。
なお、本実施の形態3において、動作検証状況情報3601はライセンス3600に含まれるとして説明を行った。これを、ライセンス要求レスポンスメッセージ2800の一つのパラメータとして設定されるものとしてもよいこととする。
なお、本実施の形態2において、S1003において動作検証未と判定された場合、S1005において動作検証状況フラグ2505に「検証未」と設定するとして説明を行った。その変形例として、ライセンス2500に設定する利用条件判定ロジックコード2503を、端末装置2130で動作検証済みである利用条件判定ロジックコード2503に変更し、動作検証状況フラグ2505に「検証済み」と設定するようにしてもよいものとする。なお、利用条件判定ロジックコード2503を変更する場合は、利用条件パラメータ2504も必要に応じて修正し、変更前と同等の利用条件となるような変更が望ましい。
なお、実施の形態2及び3において、ライセンス全体を署名対象として説明を行ったが、それに限るわけではなく、一部のみを対象としてもよいこととする。またライセンス発行時に動的に署名データを生成することとして説明を行ったが、予め署名データを生成しておき、発行時にはそれを付加するとしてもよいこととする。また、サービス事業者の秘密鍵で署名を行うとして説明を行ったが、技術管理団体や端末装置製造事業者の秘密鍵で署名を行うとしてもよいものとする。
なお、実施の形態2及び3において、利用条件バイトコード実行可否判定プロセスはライセンス取得時とコンテンツ利用時の双方で行うとして説明を行ったが、何れか一方のみで行うこととしてもよい。
なお、本発明を上記実施の形態1〜3に基づいて説明してきたが、本発明は、上記の実施の形態1〜3に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
(2)上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
(3)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
(4)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(5)上記実施の形態1〜3及び上記変形例をそれぞれ組み合わせるとしてもよい。例えば、実施の形態1のライセンス1200に実施の形態2のプロファイル2501が含まれ、利用条件検証部302は、端末装置で動作可能なプロファイルの情報を取得することで、利用条件判定ロジックコード1204が動作することを確認済みであるか否かを判定することにしてもよい。また、実施の形態1のライセンス1200に実施の形態2の端末ID2703が含まれ、利用条件検証部302は、端末ID2703の中にコンテンツを利用する端末装置のIDが含まれているか否かを判定することによって、利用条件判定ロジックコード1204が動作することを確認済みであるか否かを判定することにしてもよい。つまり、プロファイル2501や端末ID2703は、特許請求の範囲に記載の「判定情報」に包含されることにしてもよい。