以下、図面を参照しながら本発明の情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラムの詳細について説明する。なお、説明は、以下の記載項目に従って行う。
1.情報記録媒体の格納データと、ドライブおよびホストにおける処理の概要
2.コンテンツ管理ユニット(CPSユニット)について
3.コンテンツ再生処理
(3.1)コンテンツ再生処理例1
(3.2)コンテンツ再生処理例2
4.メッセージ表示およびコンテンツ利用制御処理
(4.1)UI(ユーザインタフェース)処理部を利用したメッセージ表示
(4.2)レジスタを利用したメッセージ表示およびコンテンツ利用制御
(4.2.1)レジスタを利用したUI機能提供アプリケーションの実行例
(4.2.2)レジスタ利用およびタイトル切り替えによるUI機能提供例
(4.2.3)レジスタ利用によるコンテンツ利用制御処理例
(4.2.4)アプリケーション実行部の使用レジスタの利用による処理例1
(4.2.5)アプリケーション実行部の使用レジスタの利用による処理例2
(4.3)共有メモリ空間を利用したメッセージ表示およびコンテンツ利用制御
(4.4)オーサリングプロセスについて
5.情報処理装置の構成
[1.情報記録媒体の格納データと、ドライブおよびホストにおける処理の概要]
まず、情報記録媒体の格納データと、ドライブおよびホストにおける処理の概要について説明する。図1に、コンテンツの格納された情報記録媒体100、ドライブ120およびホスト150の構成を示す。ホスト150は、例えばPC等の情報処理装置で実行されるデータ再生(または記録)アプリケーションであり、所定のデータ処理シーケンスに従ってPC等の情報処理装置のハードウェアを利用した処理を行なう。
情報記録媒体100は、例えば、Blu−rayディスク、DVDなどの情報記録媒体であり、正当なコンテンツ著作権、あるいは頒布権を持ついわゆるコンテンツ権利者の許可の下にディスク製造工場において製造された正当なコンテンツを格納した情報記録媒体(ROMディスクなど)、あるいはデータ記録可能な情報記録媒体(REディスクなど)である。なお、以下の実施例では、情報記録媒体の例としてディスク型の媒体を例として説明するが、本発明は様々な態様の情報記録媒体を用いた構成において適用可能である。
図1に示すように、情報記録媒体100には、暗号化処理および一部データの置き換え処理の施された暗号化コンテンツ101と、ブロードキャストエンクリプション方式の一態様として知られる木構造の鍵配信方式に基づいて生成される暗号鍵ブロックとしてのMKB(Media Key Block)102、コンテンツ復号処理に適用するタイトル鍵を暗号化したデータ(Encrypted CPS Unit Key)等から構成されるタイトル鍵ファイル103、コンテンツのコピー・再生制御情報としてのCCI(Copy Control Information)等を含む使用許諾情報104、コンテンツ中の所定領域の置き換えデータに対応する変換データを登録した変換テーブル(Fix−up Table)105、変換テーブル(Fix−up Table)105の登録データによるデータ変換処理を実行するための処理命令を含むデータ変換処理プログラム106、エラーメッセージなど、たとえばコンテンツ再生が停止された場合に、ディスプレイに提示するメッセージデータなどの表示データを格納したメッセージデータファイル107が格納される。なお、図に示すデータ例は一例であり、格納データは、ディスクの種類などによって多少異なる。以下、これらの各種情報の概要について説明する。
(1)暗号化コンテンツ101
情報記録媒体100には、様々なコンテンツが格納される。例えば高精細動画像データであるHD(High Definition)ムービーコンテンツなどの動画コンテンツのAV(Audio Visual)ストリームや特定の規格で規定された形式のゲームプログラム、画像ファイル、音声データ、テキストデータなどからなるコンテンツである。これらのコンテンツは、特定のAVフォーマット規格データであり、特定のAVデータフォーマットに従って格納される。具体的には、例えばBlu−rayディスクROM規格データとして、Blu−rayディスクROM規格フォーマットに従って格納される。
さらに、例えばサービスデータとしてのゲームプログラムや、画像ファイル、音声データ、テキストデータなどが格納される場合もある。これらのコンテンツは、特定のAVデータフォーマットに従わないデータフォーマットを持つデータとして格納される場合もある。
コンテンツの種類としては、音楽データ、動画、静止画等の画像データ、ゲームプログラム、WEBコンテンツなど、様々なコンテンツが含まれ、これらのコンテンツには、情報記録媒体100からのデータのみによって利用可能なコンテンツ情報と、情報記録媒体100からのデータと、ネットワーク接続されたサーバから提供されるデータとを併せて利用可能となるコンテンツ情報など、様々な態様の情報が含まれる。情報記録媒体に格納されるコンテンツは、区分コンテンツ毎の異なる利用制御を実現するため、区分コンテンツ毎に異なる鍵(CPSユニット鍵またはユニット鍵(あるいはタイトル鍵と呼ぶ場合もある))が割り当てられ暗号化されて格納される。1つのユニット鍵を割り当てる単位をコンテンツ管理ユニット(CPSユニット)と呼ぶ。さらに、コンテンツは、構成データの一部が、正しいコンテンツデータと異なるデータによって置き換えられたブロークンデータとして設定され、復号処理のみでは正しいコンテンツ再生が実行されず、再生を行なう場合は、ブロークンデータを変換テーブルに登録されたデータに置き換える処理が必要となる。これらの処理は後段で詳細に説明する。
(2)MKB
MKB(Media Key Block)102は、ブロードキャストエンクリプション方式の一態様として知られる木構造の鍵配信方式に基づいて生成される暗号鍵ブロックである。MKB102は有効なライセンスを持つユーザの情報処理装置に格納されたデバイス鍵[Kd]に基づく処理(復号)によってのみ、コンテンツの復号に必要なキーであるメディア鍵[Km]の取得を可能とした鍵情報ブロックである。これはいわゆる階層型木構造に従った情報配信方式を適用したものであり、ユーザデバイス(情報処理装置)が有効なライセンスを持つ場合にのみ、メディア鍵[Km]の取得を可能とし、無効化(リボーク処理)されたユーザデバイスにおいては、メディア鍵[Km]の取得が不可能となる。
ライセンスエンティテイとしての管理センタはMKBに格納する鍵情報の暗号化に用いるデバイス鍵の変更により、特定のユーザデバイスに格納されたデバイス鍵では復号できない、すなわちコンテンツ復号に必要なメディア鍵を取得できない構成を持つMKBを生成することができる。従って、任意タイミングで不正デバイスを排除(リボーク)して、有効なライセンスを持つデバイスに対してのみ復号可能な暗号化コンテンツを提供することが可能となる。コンテンツの復号処理については後述する。
(3)タイトル鍵ファイル
前述したように各コンテンツまたは複数コンテンツの集合は、コンテンツの利用管理のため、各々、個別の暗号鍵(タイトル鍵(CPSユニット鍵))を適用した暗号化がなされて情報記録媒体100に格納される。すなわち、コンテンツを構成するAV(Audio Visual)ストリーム、音楽データ、動画、静止画等の画像データ、ゲームプログラム、WEBコンテンツなどは、コンテンツ利用の管理単位としてのユニットに区分され、区分されたユニット毎に異なるタイトル鍵を生成して、復号処理を行なうことが必要となる。このタイトル鍵を生成するための情報がタイトル鍵データであり、例えばメディア鍵等によって生成された鍵で暗号化タイトル鍵を復号することによってタイトル鍵を得る。タイトル鍵データを適用した所定の暗号鍵生成シーケンスに従って、各ユニット対応のタイトル鍵が生成され、コンテンツの復号が実行される。
(4)使用許諾情報
使用許諾情報には、例えばコピー・再生制御情報(CCI)が含まれる。すなわち、情報記録媒体100に格納された暗号化コンテンツ101に対応する利用制御のためのコピー制限情報や、再生制限情報である。このコピー・再生制御情報(CCI)は、コンテンツ管理ユニットとして設定されるCPSユニット個別の情報として設定される場合や、複数のCPSユニットに対応して設定される場合など、様々な設定が可能である。
(5)変換テーブル
前述したように、情報記録媒体100に格納された暗号化コンテンツ101は、所定の暗号化が施されているとともに、コンテンツ構成データの一部が、正しいデータと異なるブロークンデータによって構成されている。コンテンツ再生に際しては、このブロークンデータを正しいコンテンツデータである変換データに置き換えるデータ上書き処理が必要となる。この変換データを登録したテーブルが変換テーブル(Fix−up Table)105である。ブロークンデータはコンテンツ中に散在して多数設定され、コンテンツ再生に際しては、これらの複数のブロークンデータを変換テーブルに登録された変換データに置き換える(上書き)する処理が必要となる。この変換データを適用することにより、例えば、暗号鍵が漏洩しコンテンツの復号が不正に行なわれた場合であっても、コンテンツの復号のみでは、置き換えデータの存在によって正しいコンテンツの再生が不可能となり、不正なコンテンツ利用を防止することができる。
なお、変換テーブル105には、通常の変換データに加え、コンテンツ再生装置またはコンテンツ再生アプリケーションを識別可能とした識別情報の構成ビットを解析可能としたデータを含む変換データが含まれる。具体的には、例えば、プレーヤ(ホストアプリケーションを実行する装置)の識別データとしてのプレーヤIDあるいはプレーヤIDに基づいて生成された識別情報が記録された「識別マークを含む変換データ」が含まれる。識別マークを含む変換データは、コンテンツの再生に影響を与えないレベルで、正しいコンテンツデータのビット値をわずかに変更したデータである。これらの変換データを利用した処理についての詳細は、後段で説明する。
なお、図1には、変換テーブル105を独立したデータファイルとして設定した例を示しているが、変換テーブルを独立ファイルとせずに、暗号化コンテンツ101の構成パケット中に散在させて含ませる構成としてもよい。これらの構成および処理については後段で説明する。
(6)データ変換処理プログラム
データ変換処理プログラム106は、変換テーブル(Fix−up Table)105の登録データによるデータ変換処理を実行するための処理命令を含むプログラムであり、コンテンツ再生を実行するホストによって利用される。図1におけるホスト100のデータ変換処理部154において実行される。
ホストでは、データ変換処理を実行するバーチャルマシン(VM)を設定し、バーチャルマシン(VM)において、情報記録媒体100から読み出したデータ変換処理プログラム106を実行して、変換テーブル(Fix−up Table)105の登録データを適用して、復号コンテンツに対して、その一部構成データのデータ変換処理を実行する。これらの処理の詳細については後述する。
(7)メッセージデータファイル
メッセージデータファイルは、エラーメッセージなど、たとえばコンテンツ再生が停止された場合に、ディスプレイに提示するメッセージデータなどの表示データを格納したファイルであり、エラー内容や、言語に応じた複数のデータを有している。たとえばセキュリティ上の問題によって、コンテンツ再生が停止された場合などにおいて、メッセージデータファイルから適切なメッセージデータを選択して、ディスプレイに定時する。ユーザはディスプレイに表示された情報に基づいて、エラー状況や対処情報などを確認することができる。なお、これらの処理の詳細については、後段の[4.メッセージ表示およびコンテンツ利用制御処理]の項目において説明する。
次に、ホスト150とドライブ120の構成、処理の概要について、図1を参照して説明する。情報記録媒体100に格納されたコンテンツの再生処理は、ドライブ120を介してホスト150にデータが転送されて実行される。コンテンツの利用に先立ち、ドライブ120と、ホスト150間では相互認証処理が実行され、この認証処理の成立によって双方の正当性が確認された後、ドライブからホストに暗号化コンテンツが転送され、ホスト側でコンテンツの復号処理が行なわれ、さらに上述の変換テーブルによるデータ変換処理が実行されてコンテンツ再生が行なわれる。
ホスト150と、ドライブ120間において実行する相互認証においては、各機器またはアプリケーションが不正な機器またはアプリケーションとして登録されていないかを示す管理センタの発行したリボケーション(無効化)リストを参照して、正当性を判定する処理を実行する。
ドライブ120は、ホストの証明書(公開鍵証明書)のリボーク(無効化)情報を格納したホストCRL(Certificate Revocation List)を格納するためのメモリ122を有する。一方、ホスト150は、ドライブの証明書(公開鍵証明書)のリボーク(無効化)情報を格納したドライブCRL(Certificate Revocation List)を格納するためのメモリ152を有する。メモリは不揮発性メモリ(NVRAM)であり、例えば、情報記録媒体100から読み出されるCRLがより新しいバージョンである場合には、それぞれのデータ処理部121,151は、メモリ122.152に新しいバージョンのホストCRLまたはドライブCRLを格納する更新処理を行なう。
ホストCRL、ドライブCRL等のCRLは管理センタが逐次更新する。すなわち新たな不正機器が発覚した場合、その不正機器に対して発行された証明書のIDまたは機器IDなどを新規エントリとし追加した更新CRLを発行する。各CRLにはバージョン番号が付与されており、新旧比較が可能な構成となっている。例えばドライブが装着した情報記録媒体から読み出されたCRLが、ドライブ内のメモリ122に格納されたCRLより新しい場合、ドライブは、CRLの更新処理を実行する。ホスト150も同様に、ドライブCRLの更新を実行する。
ドライブ120のデータ処理部121は、このCRLの更新処理の他、コンテンツ利用に際して実行されるホストとの認証処理、さらに、情報記録媒体からのデータ読み出し、ホストヘのデータ転送処理などを実行する。
ホスト150は、前述したように、例えばPC等の情報処理装置で実行されるデータ再生(または記録)アプリケーションであり、所定のデータ処理シーケンスに従ってPC等の情報処理装置のハードウェアを利用した処理を行なう。
ホスト150は、ドライブ120との相互認証処理や、データ転送制御などを実行するデータ処理部151、暗号化コンテンツの復号処理を実行する復号処理部153、前述の変換テーブル105の登録データに基づくデータ変換処理を実行するデータ変換処理部154、デコード(例えばMPEGデコード)処理を実行するデコード処理部155を有する。
データ処理部151は、ホスト−ドライブ間の認証処理を実行し、認証処理においては、不揮発性メモリ(NVRAM)としてのメモリa152に格納されたドライブCRLを参照して、ドライブがリボークされたドライブでないことを確認する。ホストも、また、メモリa152に新しいバージョンのドライブCRLを格納する更新処理を行なう。
復号処理部153では、メモリb156に格納された各種情報、および、情報記録媒体100からの読み取りデータを適用して、コンテンツの復号に適用する鍵を生成し、暗号化コンテンツ101の復号処理を実行する。データ変換処理部154は、情報記録媒体100から取得されるデータ変換処理プログラムに従って、情報記録媒体100から取得される変換テーブルに登録された変換データを適用してコンテンツの構成データの置き換え処理(上書き)を実行する。デコード処理部155は、デコード(例えばMPEGデコード)処理を実行する。
情報処理装置150のメモリb156には、デバイス鍵:Kdや、相互認証処理に適用する鍵情報や復号に適用する鍵情報などが格納される。なお、コンテンツの復号処理の詳細については後述する。デバイス鍵:Kdは、先に説明したMKBの処理に適用する鍵である。MKBは有効なライセンスを持つユーザの情報処理装置に格納されたデバイス鍵[Kd]に基づく処理(復号)によってのみ、コンテンツの復号に必要なキーであるメディア鍵[Km]の取得を可能とした鍵情報ブロックであり、暗号化コンテンツの復号に際して、情報処理装置150は、メモリb156に格納されたデバイス鍵:Kdを適用してMKBの処理を実行することになる。なお、コンテンツの復号処理の詳細については後述する。
[2.コンテンツ管理ユニット(CPSユニット)について]
前述したように、情報記録媒体に格納されるコンテンツは、ユニット毎の異なる利用制御を実現するため、ユニット毎に異なる鍵が割り当てられ暗号化処理がなされて格納される。すなわち、コンテンツはコンテンツ管理ユニット(CPSユニット)に区分されて、個別の暗号化処理がなされ、個別の利用管理がなされる。
コンテンツ利用に際しては、まず、各ユニットに割り当てられたCPSユニット鍵(タイトル鍵とも呼ばれる)を取得することが必要であり、さらに、その他の必要な鍵、鍵生成情報等を適用して予め定められた復号処理シーケンスに基づくデータ処理を実行して再生を行う。コンテンツ管理ユニット(CPSユニット)の設定態様について、図2を参照して説明する。
図2に示すように、コンテンツは、(A)インデックス210、(B)ムービーオブジェクト220、(C)プレイリスト230、(D)クリップ240の階層構成を有する。再生アプリケーションによってアクセスされるタイトルなどのインデックスを指定すると、例えばタイトルに関連付けられた再生プログラムが指定され、指定された再生プログラムのプログラム情報に従ってコンテンツの再生順等を規定したプレイリストが選択される。
プレイリストには、再生対象データ情報としてのプレイアイテムが含まれる。プレイリストに含まれるプレイアイテムによって規定される再生区間としてのクリップ情報によって、コンテンツ実データとしてのAVストリームあるいはコマンドが選択的に読み出されて、AVストリームの再生、コマンドの実行処理が行われる。なお、プレイリスト、プレイアイテムは多数、存在し、それぞれに識別情報としてのプレイリストID、プレイアイテムIDが対応付けられている。
図2には、2つのCPSユニットを示している。これらは、情報記録媒体に格納されたコンテンツの一部を構成している。CPSユニット1,271、CPSユニット2,272の各々は、インデックスとしてのタイトルと、再生プログラムファイルとしてのムービーオブジェクトと、プレイリストと、コンテンツ実データとしてのAVストリームファイルを含むクリップを含むユニットとして設定されたCPSユニットである。
コンテンツ管理ユニット(CPSユニット)1,271には、タイトル1,211とタイトル2,212、再生プログラム221,222、プレイリスト231,232、クリップ241、クリップ242が含まれ、これらの2つのクリップ241,242に含まれるコンテンツの実データであるAVストリームデータファイル261,262が、少なくとも暗号化対象データであり、原則的にコンテンツ管理ユニット(CPSユニット)1,271に対応付けて設定される暗号鍵であるタイトル鍵(Kt1)(CPSユニット鍵とも呼ばれる)を適用して暗号化されたデータとして設定される。
コンテンツ管理ユニット(CPSユニット)2,272には、インデックスとしてアプリケーション1,213、再生プログラム224、プレイリスト233、クリップ243が含まれ、クリップ243に含まれるコンテンツの実データであるAVストリームデータファイル263がコンテンツ管理ユニット(CPSユニット)2,272に対応付けて設定される暗号鍵である暗号鍵であるタイトル鍵(Kt2)適用して暗号化される。
例えば、ユーザがコンテンツ管理ユニット1,271に対応するアプリケーションファイルまたはコンテンツ再生処理を実行するためには、コンテンツ管理ユニット(CPSユニット)1,271に対応付けて設定された暗号鍵としてのタイトル鍵:Kt1を取得して復号処理を実行することが必要となる。コンテンツ管理ユニット2,272に対応するアプリケーションファイルまたはコンテンツ再生処理を実行するためには、コンテンツ管理ユニット(CPSユニット)2,272に対応付けて設定された暗号鍵としてのタイトル鍵:Kt2を取得して復号処理を実行することが必要となる。
CPSユニットの設定構成、およびタイトル鍵の対応例を図3に示す。図3には、情報記録媒体に格納される暗号化コンテンツの利用管理単位としてのCPSユニット設定単位と、各CPSユニットに適用するタイトル鍵(CPSユニット鍵)の対応を示している。なお、予め後発データ用のCPSユニットおよびタイトル鍵を格納して設定しておくことも可能である。例えばデータ部281が後発データ用のエントリである。
CPSユニット設定単位は、コンテンツのタイトル、アプリケーション、データグループなど、様々であり、CPSユニット管理テーブルには、それぞれのCPSユニットに対応する識別子としてのCPSユニットIDが設定される。
図3において、例えばタイトル1はCPSユニット1であり、CPSユニット1に属する暗号化コンテンツの復号に際しては、タイトル鍵Kt1を生成し、生成したタイトル鍵Kt1に基づく復号処理を行なうことが必用となる。
このように、情報記録媒体100に格納されるコンテンツは、ユニット毎の異なる利用制御を実現するため、ユニット毎に異なる鍵が割り当てられ暗号化処理がなされて格納される。各コンテンツ管理ユニット(CPSユニット)に対する個別の利用管理のために、各コンテンツ管理ユニット(CPSユニット)に対する使用許諾情報(UR:Usage Rule)が設定されている。使用許諾情報は、前述したように、コンテンツに対する例えばコピー・再生制御情報(CCI)を含む情報であり、各コンテンツ管理ユニット(CPSユニット)に含まれる暗号化コンテンツのコピー制限情報や、再生制限情報である。
なお、タイトル鍵の生成には、情報記録媒体に格納された様々な情報を適用したデータ処理が必要となる。これらの処理の具体例についは、後段で詳細に説明する。
次に、図4を参照して、図2に示す階層構造を持つコンテンツに対応するディレクトリ構成について説明する。
(A)図2におけるインデックス210は、図4に示すディレクトリ中のindex.bdmvファイル
(B)図2におけるムービーオブジェクト220は図4に示すディレクトリ中のMovieObject.bdmvファイル
(C)図2におけるプレイリスト230は図4に示すディレクトリ中のPLAYLISTディレクトリ下のファイル、
(D)図2におけるクリップ240は図4に示すディレクトリ中のCLIPINFディレクトリ下のファイルとSTREAMディレクトリ下のファイルで同じファイル番号持つものの対に対応している。
情報記録媒体に格納されるコンテンツは、前述したように、コンテンツの構成データの一部が、正しいコンテンツデータと異なるデータによって置き換えられたブロークンデータとして設定され、復号処理のみでは正しいコンテンツ再生が実行されず、再生を行なう場合は、ブロークンデータを変換テーブルに登録されたデータに置き換える処理が必要となる。この置き換え処理には、情報記録媒体に格納されたデータ変換処理プログラム106を適用して、変換テーブル(Fix−up Table)105の登録データによるデータ変換処理を実行する。
前述したように、変換テーブル105、データ変換処理プログラム106を情報記録媒体に記録されている。図4に示すディレクトリ構成を持つコンテンツに対応する変換テーブルと、データ変換処理プログラムのディレクトリ構成を図5に示す。図5は、図4のディレクトリ構造を持つAVコンテンツに対して作成されるデータ変換処理プログラム、および変換テーブルのディレクトリ構成である。
図5に示す[ContentCode.svm]がデータ変換処理プログラムであり、
図5に示す[FixUpXXXXX.tbl]はクリップ1つごとに定義される変換テーブルである。(XXXXXはクリップ情報ファイルのファイル番号と一致している)
[3.コンテンツ再生処理]
以下、ドライブとホスト間の相互認証処理を実行し、認証の成立を条件として、ドライブに装着した情報記録媒体に格納されたコンテンツをドライブからホストに転送してコンテンツ再生処理を実行する場合の複数の処理例について説明する。
(3.1)コンテンツ再生処理例1
まずコンテンツ再生処理例1について、図6を参照して説明する。図6には、左から暗号化コンテンツの格納された情報記録媒体310、情報記録媒体310をセットし、データの読み取りを実行するドライブ330、ドライブとデータ通信可能に接続され、情報記録媒体310に格納されたコンテンツをドライブ330を介して取得して再生処理を実行する再生アプリケーションを実行するホスト350を示している。ホスト350は、例えばPC等の情報処理装置において実行される。
情報記録媒体310には、MKB(Media Key Block)311、タイトル鍵ファイル312、暗号化コンテンツ313、変換テーブル314、データ変換処理プログラム315が格納されている。ホスト350は、MKBの処理に適用するデバイス鍵351を保持している。
図6に示すホスト350がドライブ330を介して情報記録媒体310の格納コンテンツを取得して再生する処理シーケンスについて説明する。まず、情報記録媒体310の格納コンテンツの読み出しに先立ち、ホスト350とドライブ330は、ステップS101において、相互認証を実行する。この相互認証は、ホストおよびドライブがそれぞれ正当な機器またはアプリケーションソフトであるかを確認する処理である。この相互認証処理シーケンスとしては、様々な処理が適用可能である。その一例を図7を参照して説明する。
図7は、公開鍵暗号方式に従った相互認証シーケンスの1例である。まず、ステップS121において、ドライブ330は、自己のメモリ(NVRAM)に格納されたドライブ公開鍵証明書と、任意に生成した乱数をホストに送信する。ステップS122において、ホスト350も、自己のメモリ(NVRAM)に格納されたホスト公開鍵証明書と、任意に生成した乱数をドライブに送信する。
ステップS123において、ドライブ330は、ホストから受信したホスト公開鍵証明書の正当性と、ホストのリボーク状況をホスト証明書リボケーションリスト(ホストCRL:Certificate Revocation list)に基づいて検証する。ステップS123において、ドライブ330は、まず、ホスト公開鍵証明書に設定された署名検証を実行する。図7に示すECDSA_Vは、楕円曲線暗号に基づく署名検証(Verification)の実行を示している。この署名検証は、鍵管理エンティテイの秘密鍵に対応する公開鍵を適用して実行する。ドライブは、署名検証用の鍵管理エンティテイの公開鍵をメモリ(NVRAM)に保持しており、これを適用して署名検証を実行する。署名検証によって、ホスト公開鍵証明書が改ざんされていないものであることを確認する。署名検証によって、ホスト公開鍵証明書が改ざんされていることが判明した場合は処理を中止する。
さらに、ドライブ330は、改ざんのないことが明確になったホスト公開鍵証明書に基づいて、この証明書がリボーク(無効化)されているものでないことを、ホストCRLを参照して確認する。ホストCRLは、ホストに対して発行済みの公開鍵証明書について、無効化された証明書のIDをリスト化したものである。ホストCRLはドライブ内のメモリまたは情報記録媒体から取得する。
ドライブ330は、改ざんのないことが明確になったホスト公開鍵証明書からIDを取得し、このIDがホストCRLに登録されているIDと一致するか否かを判定する。一致するIDがホストCRLに存在する場合、そのホストは、リボーク(無効化)されたホストであると判定し、以降の処理を中止する。ホスト公開鍵証明書から取得したIDが、ホストCRLに記録されていない場合は、正当なリボークのなされていないホストであると判定して、処理を続ける。
一方、ホスト350においても、ステップS124において、ドライブ330から受領したドライブ公開鍵証明書に基づいて、ドライブ公開鍵証明書の正当性の確認(改ざん検証)と、ドライブCRLを適用したドライブのリボークの有無判定を実行する。ドライブの公開鍵証明書が正当なものであり、リボークされていないことが確認された場合にのみ、処理を継続する。ドライブCRLはホスト内のメモリまたは情報記録媒体から取得する。
次に、ドライブ330、ホスト350は、それぞれの認証結果をドライブレスポンス(S125)、ホストレスポンス(S126)として通知する。この認証結果の通知に際して、双方では、楕円曲線暗号を適用した値としてのECDH(Elliptic Curve Diffie Hellman)の値を生成して、双方に通知しあう。
ドライブ330は、ホスト350からのドライブ認証結果とECDHの値を受信すると、ステップS127において、ホストのレスポンスを検証し、ドライブ認証の成立を確認して、受信したECDHの値を適用して共通鍵としてのセッション鍵を生成する。ホスト350においても、ドライブ330からのホスト認証結果とECDHの値を受信すると、ステップS128において、ドライブレスポンスを検証し、ホスト認証の成立を確認して、ECDHの値に基づいて共通鍵としてのセッション鍵を生成する。
このような相互認証処理によって、ドライブ330とホスト350は共通鍵としてのセッション鍵を共有する。
図6に戻り、コンテンツ利用処理のシーケンスについての説明を続ける。ステップS101において、ホストドライブ間の相互認証が実行され、セッション鍵(Ks)を共有した後、ホスト350は、ステップS102において、情報記録媒体310に記録されたMKB311を、ドライブを介して取得して、メモリに格納されたデバイス鍵351を適用したMKB311の処理を実行して、MKBからメディア鍵(Km)を取得する。
前述したように、MKB(Media Key Block)311は、ブロードキャストエンクリプション方式の一態様として知られる木構造の鍵配信方式に基づいて生成される暗号鍵ブロックであり、有効なライセンスを持つ装置に格納されたデバイス鍵(Kd)に基づく処理(復号)によってのみ、コンテンツの復号に必要なキーであるメディア鍵(Km)の取得を可能とした鍵情報ブロックである。
次に、ステップS103において、ステップS102におけるMKB処理で取得したメディア鍵(Km)を適用して、情報記録媒体310から読み取ったタイトル鍵ファイルの復号を実行して、タイトル鍵(Kt)を取得する。情報記録媒体310に格納されるタイトル鍵ファイルはメディア鍵によって暗号化されたデータを含むファイルであり、メディア鍵を適用した処理によってコンテンツ復号に適用するタイトル鍵(Kt)を取得することができる。なお、ステップS103の復号処理は、例えばAES暗号アルゴリズムが適用される。
次に、ホスト350は、ドライブ330を介して情報記録媒体310に格納された暗号化コンテンツ313を読み出して、トラックバッファ352に読み出しコンテンツを格納し、このバッファ格納コンテンツについて、ステップS104において、タイトル鍵(Kt)を適用した復号処理を実行し、復号コンテンツを取得する。
復号コンテンツは、平文TSバッファ353に格納する。(Plain TS)は復号された平文トランスポートストリームを意味する。ここで、平文TSバッファ353に格納される復号コンテンツは、前述したブロークンデータを含むコンテンツであり、このままでは再生できず、所定のデータ変換(上書きによるデータ置き換え)を行なう必要がある。
このデータ変換処理を示すのが、図6のブロック371である。図6のブロック371は図1に示したホスト150のデータ変換処理部154の処理に相当する。このデータ変換処理の概要について、図8を参照して説明する。
図6に示す暗号化コンテンツ313は、情報記録媒体に格納された暗号化コンテンツであり、この暗号化コンテンツが、一旦、ホスト側のトラックバッファ352に格納される。図8(1)に示すトラックバッファ格納データ401である。
ホスト側の復号処理によって、トラックバッファ格納データ401としての暗号化コンテンツの復号が実行されて、復号結果データが平文TSバッファ353に格納される。図8(2)に示す復号結果データ402である。
復号結果データ402には、正常なコンテンツ構成データではない、ブロークンデータ403が含まれる。ホストのデータ変換処理部は、このブロークンデータ403を、図6に示す情報記録媒体310に記録された変換テーブル314から取得される正しいコンテンツ構成データとしての変換データ404に置き換える処理を実行する。この置き換え処理は、例えば平文TSバッファ353に書き込み済みのデータに対する一部データの再書き込み(上書き)処理として実行される。
さらに、ホストの実行するデータ変換処理は、ブロークンデータを正常なコンテンツデータである変換データに置き換える処理のみならず、図8に示すように、識別マークを含む変換データ405によって、復号結果データ402の一部構成データを置き換える処理を実行する。
識別マークとは、コンテンツ再生装置またはコンテンツ再生アプリケーションを識別可能とした識別情報の構成ビットを解析可能としたデータである。具体的には例えば、ホストアプリケーションを実行するプレーヤとしての情報処理装置の識別情報(プレーヤID)の構成データまたは、プレーヤIDに基づいて生成される識別マークである。識別マークを含む変換データは、コンテンツの再生に影響を与えないレベルで、正しいコンテンツデータのビット値をわずかに変更したデータである。
識別マークを含む変換データ405は、コンテンツ中に多数設定され、これら複数の識別マークを含む変換データ405を集積して解析することで、例えばプレーヤIDが判別される。識別マークを含む変換データ405は、コンテンツとして通常再生可能なレベルで正常コンテンツデータの構成ビットを変更したデータであり、MPEGビットストリーム解析によりビット(識別マーク構成ビット)判別が可能なデータである。
情報記録媒体に格納される変換テーブルには、図8に示す変換データ404、識別マークを含む変換データ405が多数登録されており、さらに、これらの書き込み位置情報についても登録されている。この変換テーブル格納情報に基づくデータ変換処理を実行することで、平文TSバッファ353に格納されたデータは、図8(3)に示す変換処理済みデータ406に置き換えられることになる。
図6に戻り、点線ブロック371内の処理、すなわちホスト側のデータ変換処理について説明する。データ変換処理は、例えば、ホスト内にバーチャルマシンとして設定されるセキュアVM356によって実行される。バーチャルマシン(VM)は中間言語を直接解釈して実行する仮想コンピュータであり、プラットホームに依存しない中間言語での命令コード情報を解釈して実行する。
セキュアVM356は、命令コード情報を含むデータ変換処理プログラム315を情報記録媒体310から読み出して処理を実行する。セキュアVM356は、イベントハンドラ354による処理制御がなされ、また、ホストアプリケーションを実行しているプレーヤ(情報処理装置)のID情報などをプレーヤ情報355として入力して、情報記録媒体310から取得したデータ変換処理プログラム315を実行する。イベントハンドラ354は、処理監視を実行する。セキュアVM356によって実行される処理が正しく行なわれているか否かのエミュレータチェックや、その他のホストアプリケーションや、ホストアプリケーション実行機器としてのプレーヤ(情報処理装置)の処理、状態を監視し、処理エラー、不正処理などが検出された場合には、セキュアVM356によるデータ変換処理を中止させる。
セキュアVM356は、情報記録媒体310から読み出した変換テーブルを適用して、平文TSバッファ353に格納されたデータの変換処理を実行する。すなわち図6に示すステップS105のデータ変換処理であり、図8に示す復号結果データ402に対して、ブロークンデータ403を正当なコンテンツ構成データである変換データ404に置き換え、さらに、識別マークを含む変換データ405をコンテンツの一部データと入れ替えるデータ上書き処理を実行して、平文TSバッファ353の格納データを変換処理済みデータ406に変更する。
その後、変換済みのTS(トランスポートストリーム)は、ネットワークなどを介して外部出力され、外部の再生機器において再生される。あるいは、ステップS106において、デマルチプレクサによる処理によって、トランスポートストリーム(TS)からエレメンタリストリーム(ES)への変換が実行され、さらに、デコード処理(ステッブS107)が行なわれた後、ディスプレイおよびスピーカを介して再生される。
情報記録媒体に記録されるデータ変換テーブルのデータ構成について、図9を参照して説明する。情報記録媒体に記録されるデータ変換テーブルは、例えば図9に示すデータ構成を持つ。すなわち、
Number of Fix-Up Entry:変換データエントリ数(Number of Fix-Up Entry)
Fix-Up Entry Length:1変換データエントリのバイト数(Byte Length of one Fix-Up Entry()=(N+6))
SPN(ソースパケットナンバー):変換データ書き込みパケットのAVストリームファイルの開始位置からのパケットナンバー(Absolute Transformed Packet Number from the beginning of AV Stream File)
Byte Offset:SPNで指定されたパケット中の変換データ書き込み開始位置を示すバイトオフセット(Start byte position of transformed data in the packet)
player_id_bit_position:識別マーク(プレーヤIDなど)のビット位置(Indicate bit position of Player ID for forensic)
Fix-Up Data:変換上書きデータ(Value to be overwritten (N byte is transformed in one TS Packet))
これらのデータを持つ。
1つのコンテンツ中には、多数のブロークンデータが散在して配置されており、このブロークンデータの位置に変換テーブルに記録された変換データを上書きする。また、プレーヤIDなどの識別マークを持つ変換データについても、1つのコンテンツデータ中に多数の書き込み位置が設定される。変換テーブルは、これらの
(a)変換データ
(b)識別マーク入り変換データ
の実体データとしての「変換上書きデータ」と、
これらのデータの書き込み位置の指定情報を記録したテーブルとして設定される。
なお、どの程度の頻度で、変換データ(識別マーク入り変換データも含む)の置き換え領域を設定するか、また変換データのサイズについては、様々な設定が可能であるが、各設定により変換テーブルサイズは異なるサイズとなる。例えばMPEGコンテンツを構成する1GOP(Group Of Pictures)あたり、2つの変換データまたは識別マーク入り変換データを設定する構成においては、変換データ(識別マーク入り変換データも含む)が8バイトである場合、約400KB程度のテーブル、16バイトである場合、約600KB程度のテーブルサイズとなる。
また、MPEGコンテンツを構成する1GOP(Group Of Pictures)あたり、5つの変換データまたは識別マーク入り変換データを設定する構成においては、変換データ(識別マーク入り変換データも含む)が8バイトである場合、約1MB程度のテーブル、16バイトである場合、約1,5MB程度のテーブルサイズとなる。
ホスト350のセキュアVMは、情報記録媒体310に記録された変換テーブル314に従って、
(a)変換データ
(b)識別マーク入り変換データ
を変換テーブルの指定位置に書き込む処理を実行する。データ書き込みは、平文TSバッファ253に格納されたデータに対する変換データ、または識別マーク入り変換データの上書き処理として実行され、この処理の結果、平文TSバッファ253に格納されたデータは、先に説明した図8(3)のデータに置き換えられることになる。
ホストを実装しているプレーヤ(PCなどの情報処理装置)からのコンテンツの外部出力、あるいはコンテンツ再生は、この図8(3)に示す変換処理済みデータに基づく処理として実行される。
変換データは正しいコンテンツ構成データであり、また識別マーク入り変換データも、正しいコンテンツの再生に適用されるデータであるので、これらのデータに基づくデコード再生によって正しいコンテンツ再生が可能となる。また、このコンテンツが、例えば不正にコピーされ、コピーデータが多数外部流出した場合には、識別マーク入り変換データを解析することで、プレーヤIDを取得することが可能であり、不正コンテンツデータの流出源を特定することが可能となる。
(3.2)コンテンツ再生処理例2
次に、コンテンツ再生処理例2について、図10を参照して説明する。図10は、左から暗号化コンテンツの格納された情報記録媒体310、情報記録媒体310をセットし、データの読み取りを実行するドライブ330、ドライブとデータ通信可能に接続され、情報記録媒体310に格納されたコンテンツをドライブ330を介して取得して再生処理を実行する再生アプリケーションを実行するホスト350を示している。ホスト350は、例えばPC等の情報処理装置において実行される。
図10には、情報記録媒体310に記録されているMKB(Media Key Block)と、タイトル鍵ファイルは省略してある。ホスト350は、MKBの処理に適用するデバイス鍵を保持し、情報記録媒体310に記録されているMKB(Media Key Block)と、タイトル鍵ファイルを適用して、図6を参照して説明したと全く同様の処理を実行してタイトル鍵(Kt)を算出する。これらの処理についても、図10においては省略してある。情報記録媒体には、さらに、暗号化コンテンツ313、変換テーブル314、データ変換処理プログラム315が格納されている。
図10に示すコンテンツ再生処理例2では、点線枠で示すブロック381の処理をリアルタイム処理として実行し、ブロック382の処理を、コンテンツ再生あるいは出力前の一括処理として実行する点が特徴である。すなわち、セキュアVM356は、コンテンツの再生やコンテンツの外部出力の開始前などに、命令コード情報を含むデータ変換処理プログラム315を情報記録媒体310から読み出し、イベントハンドラ354の制御、プレーヤ情報355の入力に基づいて、情報記録媒体310から読み出した変換テーブル314の復号処理などを実行する。
情報記録媒体310に記録された変換テーブル314は、例えばAES暗号や、排他論理和演算などの演算によって難読化処理が施されており、セキュアVM356は、データ変換処理プログラム315に従って、復号処理、あるいは所定の演算処理を実行して、平文データとしての変換テーブルを取得する。ここまでの処理は、コンテンツの再生やコンテンツの外部出力の開始前などに一括して実行する。
その後の処理は、コンテンツ再生やコンテンツ外部出力処理に並行して実行するリアルタイム処理として実行する。すなわち、ステップS201におけるコンテンツ復号処理、ステップS202におけるデータ変換処理、すなわち、情報記録媒体310に記録された変換テーブル314に登録された変換データ、すなわち、
(a)変換データ
(b)識別マーク入り変換データ
を、変換テーブル314に記録された指定位置に書き込むデータ変換処理、さらに、変換済みのTS(トランスポートストリーム)の外部出力処理、あるいは、ステップS203におけるデマルチプレクサ処理、すなわちトランスポートストリーム(TS)からエレメンタリストリーム(ES)への変換処理、ステップS204におけるデコード処理、これらの処理は、コンテンツ再生または外部出力に並行したリアルタイム処理として実行する。
このような処理シーケンスとすることで、セキュアVM356による変換テーブル314の処理に時間がかかる場合であっても、コンテンツ再生、外部出力の処理に影響を与えることのないリアルタイム処理が実現される。
[4.メッセージ表示およびコンテンツ利用制御処理]
上述したように、正当コンテンツ構成データと異なるブロークンデータを含むコンテンツを情報記録媒体に記録し、さらに、ブロークンデータの置き換え対象となる正当コンテンツ構成データである変換データと、変換データのコンテンツに対する設定位置情報を記録した変換テーブルを情報記録媒体に格納する構成とし、コンテンツ再生処理に際して、情報記録媒体に記録された変換テーブルに従って、コンテンツ構成データを変換データに置き換える処理を行なう構成によって、情報記録媒体に記録された暗号化コンテンツに対応する暗号鍵の漏洩が発生した場合でも、変換データの取得ができない装置においてはコンテンツの再生が実行されず、コンテンツの不正利用が防止される。
また、変換データとして、コンテンツ再生装置またはコンテンツ再生アプリケーションを識別可能とした識別情報の構成ビットを解析可能としたデータを含む変換データを適用したので、万が一不正コンテンツが流出した場合でも、変換データの解析によって、不正コンテンツの流出源を特定することが可能となる。
このように、厳格なコンテンツの利用制限が実現されることになる。しかし、一方、コンテンツを再生、利用しようとするユーザは、上述のコンテンツ保護機能によって、再生が禁止された場合、コンテンツが再生されない理由を知ることができず、また再生するための解決方法についても知ることができない。ユーザは機器の故障、あるいはディスクが不良品であるなどと判断する可能性もある。
また、上述したデータ変換処理を適用したコンテンツの保護機構は、特定の映画などの大型コンテンツとしてのAVストリームを中心とした保護機構として構成したものであり、このような大型コンテンツではない例えばJava(登録商標)のようなプログラムによって処理される小型のコンテンツについては変換データを設定するといった処理は負担が大きくなるという問題がある。
以下では、このような問題を解決する構成として、コンテンツの再生禁止処理が実行された場合の処置として、ユーザに対するメッセージ提示、ユーザからの確認入力を可能とした構成例、および例えばJava(登録商標)などによって処理される小型のコンテンツについての簡易なコンテンツ利用制限構成について説明する。
(4.1)UI(ユーザインタフェース)処理部を利用したメッセージ表示
まず、UI(ユーザインタフェース)処理部を利用したメッセージの表示処理例について説明する。図11は、左から暗号化コンテンツの格納された情報記録媒体310、情報記録媒体310をセットし、データの読み取りを実行するドライブ330、ドライブとデータ通信可能に接続され、情報記録媒体310に格納されたコンテンツをドライブ330を介して取得して再生処理を実行する再生アプリケーションを実行するホスト350を示している。ホスト350は、例えばPC等の情報処理装置において実行される。
図11は、先に、図6を参照して説明したコンテンツ再生処理構成例に、メッセージ表示処理機能を追加した図である。すなわち、図6との相違点は、情報記録媒体310にメッセージデータファイル316が格納され、ホスト350側のセキュアVM356において、UI(ユーザインタフェース)処理部391を利用して表示部392にメッセージ表示を行なう構成とした点である。
正当なコンテンツ利用権を有するホストは、暗号化コンテンツ313の復号に成功し、変換テーブル314から取得する変換データを適用したデータ変換によって正常なコンテンツ再生が実行されることになる。また、正当なコンテンツ利用権を持たないホストは、コンテンツの復号処理、あるいは変換データに基づくデータ変換処理の少なくいずれかの処理に失敗し、正常なコンテンツ再生が不可能となる。これらの処理は、先に、図6を参照して説明した処理と同様の処理である。
本実施例では、セキュアVM356は、セキュリティ情報処理部として機能し、コンテンツ再生シーケンスにおけるセキュリティチェック情報に基づいて出力メッセージを決定し、出力メッセージの選択情報を伴うメッセージ出力命令をUI(ユーザインタフェース)処理部391に出力する。
UI(ユーザインタフェース)処理部391は、セキュリティ情報処理部としてのセキュアVM356から入力する選択情報に基づくメッセージ情報を情報記録媒体310のメッセージデータファイル316から取得して、ホストを実行するPC等のディスプレイである表示部392に出力(表示)する。表示部392は、UI(ユーザインタフェース)処理部391の出力するメッセージの表示を行なう。この表示は、例えば再生コンテンツに重畳した表示として実行される。
UI(ユーザインタフェース)処理部391は、例えば、OSD(オンスクリーン・ディスプレイ)機能を適用した構成とすることができる。OSDは、表示部392に表示された表示情報に重畳して、警告メッセージや、ディスプレイ調整画面などを割り込み表示させる機能を有する。ホスト350の処理と独立して並列に処理を行い、表示部392にメッセージ表示を実行し、また図示しない入力部を介したユーザ入力を受信することができる。本実施例では、このユーザ入力は、UI(ユーザインタフェース)処理部391からセキュアVM356に入力される。
具体的な処理例について説明する。セキュアVM356は、コンテンツ再生シーケンスにおけるセキュリティチェック情報に基づいて出力メッセージを決定し、出力メッセージの選択情報を伴うメッセージ出力命令をUI(ユーザインタフェース)処理部391に出力する。UI(ユーザインタフェース)処理部391は、選択情報に基づくメッセージ情報を情報記録媒体310のメッセージデータファイル316から取得して、ホストを実行するPC等のディスプレイである表示部392に出力(表示)する。
図12は、情報記録媒体に記録されたメッセージデータファイル401〜404を含むディレクトリを示した図である。図12に示すように、情報記録媒体には、様々な内容、言語のメッセージデータファイル401〜404が格納されている。
前述したように、セキュアVM356は、ホストアプリケーションを実行しているプレーヤ(情報処理装置)のID情報などをプレーヤ情報355として入力し、また、イベントハンドラ354からの監視情報を入力する。イベントハンドラ354は、セキュアVM356によって実行される処理が正しく行なわれているか否かのエミュレータチェックや、その他のホストアプリケーションや、ホストアプリケーション実行機器としてのプレーヤ(情報処理装置)の処理、状態を監視し、処理エラー、不正処理などが検出された場合には、セキュアVM356に監視情報を入力し、必要に応じて、例えばデータ変換処理を中止させる。
セキュアVM356は、例えば、プレーヤ情報355に基づいて、出力するメッセージの言語を特定し、また、イベントハンドラ354からの監視情報に基づいて出力するメッセージの内容を決定する処理を実行する。このようにして決定した言語および内容を持つメッセージデータファイルに対応するメッセージ選択情報を決定してUI(ユーザインタフェース)処理部391に出力する。
UI(ユーザインタフェース)処理部391は、この選択情報に基づいて、情報記録媒体310のメッセージデータファイル316から選択して取得し、メッセージデータを、ホストを実行するPC等のディスプレイである表示部392に出力(表示)する。
UI(ユーザインタフェース)処理部391として、OSD(オンスクリーン・ディスプレイ)機能を適用した場合、セキュリティ情報処理部としてのセキュアVM356からUI(ユーザインタフェース)処理部391に対するメッセージ選択情報を伴うメッセージ表示命令には、OSD呼び出し(CALL_OSD)機能が利用される。OSD呼び出し(CALL_OSD)機能は、
(a)メッセージデータファイルを指定するナンバー指定情報(num)、
(b)ユーザ入力情報を指定するオペレーションID(opID)、
これら(a),(b)の各指定情報を持つコマンドとして定義される。
具体的なOSD呼び出し(CALL_OSD)を利用したメッセージ表示処理例について、図13を参照して説明する。例えば、OSD呼び出し(CALL_OSD)に対応するコマンド411には、
(a)メッセージデータファイルを指定するナンバー指定情報(num)、
(b)ユーザ入力情報を指定するオペレーションID(opID)、
の各指定情報が設定される。
ナンバー指定情報(num)は、先に、図13を参照して説明したジヨウホウ記録媒体に格納されたメッセージデータファイルの指定情報として利用される。また、オペレーションID(opID)は、14に示すように、各IDに応じて、ユーザの入力部として、
[OK]のみを表示、
[OK],[Cancel]を表示、
[Yes],[No]を表示、
[Yes],[No]、[Cancel]を表示、
これら、ユーザ入力部を表示する設定や、あるいは単にメッセージのみを表示し続ける設定などの設定情報として利用される。
ユーザ入力部として[OK]のみを表示したメッセージ表示例を図14に示す。UI(ユーザインタフェース)処理部391として、OSD(オンスクリーン・ディスプレイ)機能を適用した場合、例えば図14に示すようなメッセージデータが、表示部392の前面に表示されることになる。
ユーザは、この表示メッセージの[OK]ボタンを例えばマウスを適用してクリックすることで入力情報はOSDによって検出され、セキュアVM356に入力される。なお、表示メッセージに例えばコンテンツ提供サーバあるいはコンテンツ管理サーバなどのURLを提示し、URLのリックによって、各サーバに対するアクセスを可能とした設定としてもよい。
このように、メッセージの提示を行なうことで、例えばコンテンツ復号や、正常なデータ変換ができず、正常なコンテンツ再生ができない場合であっても、セキュアVMは、その状況に応じて、適切なメッセージを表示部に出力することが可能となり、ユーザは状況を把握することができ、また、コンテンツ再生に必要な手続きなどの情報を提供することも可能となる。
また、ユーザの入力情報としては、図13、図14を参照して説明した[OK],[Cancel]、[Yes],[No]の単純データではなく、例えば特定のパスワードなどの番号や文字列を入力させて、この入力値をセキュアVM356が受け取り、パスワード確認処理によって、再生条件が満足されるか否かの判定を行ない、再生条件を満足すると判定した場合には、再生可能とするなどの処理を行なう構成としてもよい。
(4.2)レジスタを利用したメッセージ表示およびコンテンツ利用制御
次に、レジスタを利用したメッセージ表示処理、さらに、コンテンツの利用制御処理例について説明する。
図15にレジスタを利用したメッセージ表示処理、さらに、コンテンツの利用制御処理を実現する基本構成を示す。図15に示すセキュアVM356は、図6、図10および図11を参照して説明したセキュアVM356と同様のセキュアVM356である。すなわち、データ変換処理を実行するホスト内にバーチャルマシンとして設定されるセキュアVM356であり、セキュリティ情報処理部として機能する。
セキュリティ情報処理部として機能するセキュアVM356は、図6他を参照して説明したように、命令コード情報を含むデータ変換処理プログラム315を情報記録媒体310から読み出してデータ変換処理を実行する。さらに、セキュアVM356は、ホストアプリケーションを実行しているプレーヤ(情報処理装置)のID情報などをプレーヤ情報355として入力し、また、イベントハンドラ354からの監視情報を入力する。イベントハンドラ354は、セキュアVM356によって実行される処理が正しく行なわれているか否かのエミュレータチェックや、その他のホストアプリケーションや、ホストアプリケーション実行機器としてのプレーヤ(情報処理装置)の処理、状態を監視し、処理エラー、不正処理などが検出された場合には、セキュアVM356に監視情報を入力し、必要に応じて、例えばデータ変換処理を中止させる。
本処理例では、このセキュリティ情報処理部として機能するセキュアVM356と、アプリケーション実行部501の間でレジスタを利用してメッセージやコマンド、あるいはパラメータ、データ等を転送する。アプリケーション実行部501は、アプリケーションレイヤ(またはAVレイヤとも呼ばれる)でのデータ処理実行部であり、このアプリケーション実行部501で実行されるアプリケーションには、様々なデータ処理を実行するアプリケーション・プログラムが含まれる。
図6、図10および図11を参照して説明したホスト350によるコンテンツ再生処理を実行するPC等の情報処理装置においては、様々なアプリケーション・プログラムが実行される。例えば、先に、項目(4.1)において説明したと同様、PC等の情報処理装置の表示部に、各種のメッセージ表示を実行しユーザ入力を受領するUI機能を提供するUI機能提供プログラムや、あるいは、情報記録媒体に格納された例えばJava(登録商標)やHDMV対応のコンテンツを実行するアプリケーション・プログラムなどが実行される。なお、このアプリケーション・プログラムは、情報処理装置がハードディスクなどに記憶して予め保持していたプログラム、あるいは情報記録媒体から読み出されたプログラムのいずれでもよい。
情報記録媒体には、例えば映画等のAVストリームが格納されるとともに、例えばサーピスコンテンツ、おまけコンテンツなどの設定などでゲームや映像、動画コンテンツなどの小型コンテンツが併せて記録されることがある。これらのコンテンツの多くはJava(登録商標)やHDMV対応のコンテンツとして記録される。これらの小型のコンテンツは、前述した暗号化処理やデータ変換処理の施されるAVコンテンツとは異なり、暗号化処理やデータ変換処理のようなコンテンツ保護が施されることは少ない。
しかし、このような小型のコンテンツであっても、不正にコピーされ利用されることは好ましくない。本処理例では、このようなコンテンツについて、図15に示すレジスタを利用した構成を適用してコンテンツの利用制御を実現する。
図15に示すように、セキュアVM356と、アプリケーション実行部501の間では、レジスタ511,512を利用してメッセージやコマンド、あるいはパラメータ、データ等が転送される。図15に示す例では、セキュアVM356の書き込みレジスタおよびアプリケーション実行部501の読み出しレジスタとしてレジスタ(PSR)511を使用し、セキュアV356の読み出しレジスタおよびアプリケーション実行部501の書き込みレジスタとしてレジスタ(GPR)512を使用した例を示している。レジスタ(PSR)511は、プレイヤ・ステータスレジスタ、レジスタ(GPR)512は、ジェネラル・パーパスレジスタであり既存のレジスタを利用した構成となっている。なお、レジスタの使用構成は、一例を示しているにすぎず、セキュアVM356と、アプリケーション実行部501の間でデータのやり取りが可能なレジスタを適用すればよい。
(4.2.1)レジスタを利用したUI機能提供アプリケーションの実行例
まず、図15に示すレジスタ利用構成において、アプリケーションレイヤにおいて実行するアプリケーションをUI機能提供アプリケーションとして設定した場合の処理例について図16を参照して説明する。
アプリケーションレイヤにおいて通常実行されるアプリケーションは、情報記録媒体に格納された例えばJava(登録商標)やHDMV対応のコンテンツを実行するアプリケーション・プログラムである。本処理例では、これらのアプリケーションにUI機能を実行させる。すなわち、アプリケーションレイヤにおいて実行されるアプリケーションをUI機能提供アプリケーション実行部521として設定する。
図16には、セキュリティ情報処理部として機能するセキュアVM356と、UI機能提供アプリケーション実行部521と、レジスタ511,512を示しており、セキュアVM356と、UI機能提供アプリケーション実行部521が実行する処理シーケンスを処理ステップS201〜S207として示してある。各処理ステップについて説明する。
まず、ステップS201において、セキュアVM356が、コンテンツ再生処理において、何らかのセキュリティ問題を検出したとする。先に図6他を参照して説明したように、セキュアVM356は、イベントハンドラ354からの監視情報を受け取り、処理エラー、不正処理などが検出された場合には、セキュアVM356にこれらの情報が入力される。
コンテンツ再生処理において、何らかのセキュリティ問題などエラーが検出された場合、セキュアVM356は、ステップS202において、予め各エラーに対応して設定されたエラーコードをレジスタ(PSR)511に書き込む。
次に、ステップS203において、UI機能提供アプリケーション実行部521は、レジスタ(PSR)511に書き込まれたエラーコードを取得する。UI機能提供アプリケーション実行部521は、例えば予め設定される間隔で定期的にレジスタ(PSR)511を参照する処理を実行する。UI機能提供アプリケーション実行部521は、レジスタ(PSR)511に書き込まれたエラーコードを取得した後、ステップS204において、取得エラーコードに対応して設定されたメッセージを表示部に出力する。
表示部に表示されるメッセージデータは、たとえば、先に図14を参照して説明したようなメッセージおよびユーザ入力部が設定された表示データなどである。UI機能提供アプリケーション実行部521は、ステップS205において、ユーザ入力を検出すると、ステップS206において、ユーザ入力情報をレジスタ(GPR)512に書き込む。さらに、ステップS207において、セキュアVM356は、レジスタ(GPR)512に書き込まれたユーザ入力情報を取得する。セキュアVM356は、定期的にレジスタ(GPR)512をチェックし、書き込み情報が得られるまで、あるいは所定のタイムアウト時間に至るまでレジスタチェックを繰り返し実行する。
この図16に示す処理構成は、セキュアVM356と、UI機能提供アプリケーション実行部521がレジスタを介した情報入出力を行なうことで、表示部を適用したユーザに対するメッセージ提示とユーザ入力の検出を可能とした構成である。このように、メッセージの提示を行なうことで、例えばコンテンツ復号や、正常なデータ変換ができず、正常なコンテンツ再生ができない場合であっても、セキュアVMは、レジスタおよびアプリケーションを介してその状況に応じて、適切なメッセージを表示部に出力することが可能となり、ユーザは状況を把握することができ、また、コンテンツ再生に必要な手続きなどの情報を提供することも可能となる。
(4.2.2)レジスタ利用およびタイトル切り替えによるUI機能提供例
次に、セキュリティ情報処理部として機能するセキュアVM356が、タイトル切り替えコマンドをアプリケーションレイヤに出力して、アプリケーションレイヤで実行中のプログラムのタイトルを切り替えて、メッセージ提示などのUI機能提供アプリケーションに切り替えて、メッセージ提示やユーザ入力を受領する処理例について、図17を参照して説明する。
図17には、セキュリティ情報処理部として機能するセキュアVM356と、アプリケーション実行部522と、レジスタ511,512を示している。本処理例では、セキュアVM356が、タイトル切り替えコマンドをアプリケーション実行部522に出力して、アプリケーション実行部522で実行中のプログラムのタイトルを切り替えて、メッセージ提示などのUI機能提供アプリケーションに切り替える処理を実行する。従って、アプリケーション実行部522は、UI機能提供アプリケーション以外のアプリケーションAやUI機能提供アプリケーションなど様々なアプリケーション・プログラムが実行されるアプリケーションレイヤを示している。
セキュアVM356と、アプリケーション実行部522において実行される処理シーケンスを処理ステップS211〜S219として示してある。各処理ステップについて説明する。
まず、ステップS211において、セキュアVM356が、コンテンツ再生処理において、何らかのセキュリティ問題を検出する。先に図6他を参照して説明したように、セキュアVM356は、イベントハンドラ354からの監視情報を受け取り、処理エラー、不正処理などが検出された場合には、セキュアVM356にこれらの情報が入力される。コンテンツ再生処理において、何らかのセキュリティ問題などエラーが検出された場合、セキュアVM356は、ステップS212において、予め各エラーに対応して設定されたエラーコードをレジスタ(PSR)511に書き込む。
次に、ステップS213において、セキュアVM356はアプリケーション実行部522に対して、タイトル切り替え指示を出力する。このタイトル切り替え指示は、アプリケーション実行部522において実行中のプログラムのタイトルを切り替えて、メッセージ提示などのUI機能提供アプリケーションに切り替える指示コマンドである。ステップS214において、アプリケーション実行部522は、セキュアVM356からのタイトル切り替えコマンドに従って、実行中のアプリケーションのタイトル切り替え処理を実行し、UI機能提供アプリケーションを実行する。
その後の処理は、先に図16を参照して説明したと同様の処理であり、ステップS215において、アプリケーション実行部522におけるUI機能提供アプリケーションは、レジスタ(PSR)511に書き込まれたエラーコードを取得し、ステップS216において、取得エラーコードに対応して設定済みのメッセージを表示部に出力する。
さらに、ステップS217において、ユーザ入力を検出すると、ステップS218において、ユーザ入力情報をレジスタ(GPR)512に書き込む。さらに、ステップS219において、セキュアVM356は、レジスタ(GPR)512に書き込まれたユーザ入力情報を取得する。
この図17に示す処理構成は、セキュリティ情報処理部として機能するセキュアVM356が、アプリケーション実行部522において実行されるアプリケーションを切り替える権限を有し、このアプリケーション切り替えによって、UI機能提供アプリケーションをアプリケーションレイヤにおいて実行させ、レジスタを介してユーザに対するメッセージ提示とユーザ入力の検出を可能とした構成である。
本構成においては、UI機能提供アプリケーションにおいてのみレジスタチェックなどの処理を実行させ、その他の通常のアプリケーションにおいては、レジスタチェックを行なう設定とする必要がなく、アプリケーションレイヤで実行される一般のアプリケーションについての変更は必要としないという利点がある。
(4.2.3)レジスタ利用によるコンテンツ利用制御処理例
次に、レジスタ利用によるコンテンツ利用制御処理例について、図18を参照して説明する。先に説明したデータ変換処理を適用したコンテンツの保護機構は、前述したように、特定の映画などの大型コンテンツとしてのAVストリームを中心とした保護機構として構成したものであり、このような大型コンテンツではない例えばJava(登録商標)のようなプログラムによって処理される小型のコンテンツについては変換データを設定するといった処理は負担が大きくなるという問題がある。以下では、例えばJava(登録商標)やHDMVなどによって処理される小型のコンテンツについて、レジスタを利用して実行するコンテンツ利用制御構成について説明する。
図18には、セキュリティ情報処理部として機能するセキュアVM356と、例えばJava(登録商標)やHDMVなどによって処理される小型のコンテンツを実行するアプリケーション実行部523と、レジスタ511,512を示している。アプリケーション実行部523は、図に示すようにAVコンテンツとともに情報記録媒体550に格納されたJava(登録商標)やHDMVなどによって処理される小型のコンテンツ551である。
情報記録媒体550から読み出されたJava(登録商標)やHDMVなどによって処理される小型のコンテンツ551は、利用制御を実現するため、コンテンツの実行に必要な特定の処理パラメータを有し、セキュアVM356は、このパラメータを取得する。アプリケーション実行部523は、処理パラメータを含まないJava(登録商標)やHDMVなどによって構成されるコンテンツ実体を取得して再生処理を実行する。ただし、コンテンツの再生処理には、処理パラメータをセキュアVM356から取得することが必要となる。
処理パラメータは、例えば、一定のコンテンツ再生区間毎にセキュアVM356が、アプリケーション実行部523にレジスタ(PSR)511を介して提供し、セキュアVM356において、何らかのセキュリティ問題が検出された場合は、パラメータの提供を停止する。このパラメータ提供停止によって、アプリケーション実行部523はコンテンツ再生が不可能となりコンテンツ再生が停止される。本処理例では、このような構成によって、コンテンツの利用制御を実現する。
アプリケーション実行部523において実行されるアプリケーション(コンテンツ551)は、例えばJava(登録商標)やHDMVなどのアプリケーションであり、これらのアプリケーシッョンは、アプリケーションの開始前や実行中に間欠的にアプリケーションの実行または継続に必要なパラメータ(P1,P2,P3・・・)をレジスタ(PSR)511を介して取得する。
例えば、アプリケーション実行部523は、レジスタ(PSR)511から取得したパラメータを適用した排他論理和演算処理、または、パラメータを適用した暗号処理、または、パラメータを適用した暗号処理によって生成した暗号鍵による復号処理によって表示コンテンツデータの生成を行う。
パラメータP1,P2,P3・・・はアプリケーション実行部523において実行されるアプリケーション(コンテンツ551)の所定のプログラム実行単位またはコンテンツの提示単位毎に設定される異なるパラメータであり、アプリケーションの開始時や実行中、所定間隔毎にアプリケーション実行部523は、レジスタ(PSR)511から順次、パラメータP1,P2,P3を取得し、これらの取得パラメータを適用した演算あるいは暗号処理を実行する。
例えば、パラメータP1,P2,P3は、アプリケーション実行部523において実行されるアプリケーションによって提示されるコンテンツを表示時間単位で区分した部分コンテンツの暗号化パラメータや、演算パラメータとして設定される。たとえば、コンテンツの提示時間毎に、
時間t1〜t2の部分コンテンツの提示には、パラメータP1を適用した演算処理またはコンテンツ復号処理を必要とする。
時間t2〜t3の部分コンテンツの提示には、パラメータP2を適用した演算処理またはコンテンツ復号処理を必要とする。
時間t3〜t4の部分コンテンツの提示には、パラメータP3を適用した演算処理またはコンテンツ復号処理を必要とする。
などのように、コンテンツの提示には、異なるパラメータを順次、レジスタ(PSR)511から取得して処理を実行することが必要となる設定とされている。
例えばコンテンツ551の構成データとパラメータ(P1,P2,P3・・)の排他論理和(XOR)演算によって、正しいコンテンツが取得される。あるいはパラメータ(P1,P2,P3・・)を適用した処理によって、異なる復号鍵が、順次、生成され、これらの復号鍵を適用して、部分コンテンツの復号を順次、実行してコンテンツ提示を継続することが可能な設定とされる。
セキュアVM356は、アプリケーション実行部523において実行される所定のコンテンツ再生区間毎に異なるパラメータ(P1,P2,P3・・・)を順次、レジスタ(PSR)511に格納し、アプリケーション実行部523において実行中のアプリケーション、例えばJava(登録商標)、HDMVプログラムは、定期的にレジスタ(PSR)511からパラメータ(P1,P2,P3・・・)を取得して、アプリケーションの実行や継続に必要な演算あるいは暗号処理を、取得パラメータを適用して実行する。
セキュアVM356において、何らかのセキュリティ問題が検出された場合は、パラメータの提供を停止する。このパラメータ提供停止によって、アプリケーション実行部523はコンテンツ再生が不可能となりコンテンツ再生が停止される。本処理例では、このような構成によって、コンテンツの利用制御を実現する。
なお、アプリケーション実行部523は、定期的に、レジスタ512(GPR)を介してセキュアVM356にメッセージを送る構成とし、例えば新たなパラメータの取得が必要となるタイミング毎にレジスタ512(GPR)にパラメータ要求メッセージかを書き込み、セキュアVM356がレジスタ512(GPR)に書き込まれたパラメータ要求に応じてレジスタ(PSR)511に対してパラメータ書き込みを行なう設定としてもよい。
図18を参照して、コンテンツ利用制御処理シーケンスについて説明する。セキュアVM356と、アプリケーション実行部523において実行される処理シーケンスを処理ステップS221〜S224として示してある。各処理ステップについて説明する。
まず、ステップS221において、セキュリティ情報処理部として機能するセキュアVM356が、セキュリティ問題の有無を判定する。先に図6他を参照して説明したように、セキュアVM356は、イベントハンドラ354からの監視情報を受け取り、処理エラー、不正処理などが検出された場合には、セキュアVM356にこれらの情報が入力される。特にセキュリティ問題が検出されない場合、セキュアVM356は、レジスタ(PSR)511に、アプリケーションの実行に必要となるパラメータを書き込む。
次に、ステップS223において、アプリケーション実行部523は、レジスタ(PSR)511に書き込まれたパラメータを取得し、ステップS224において、レジスタ読み取り値を適用してアプリケーションを実行する。
セキュアVM356によるレジスタ(PSR)511に対するパラメータ書き込みは、定期的に実行され、アプリケーション実行部523は、レジスタ(PSR)511に書き込まれたパラメータを定期的に取得し、取得したパラメータを利用したアプリケーション実行を行なう。
例えば、セキュアVM356は、アプリケーション実行部523において実行される所定のコンテンツ再生区間毎に異なるパラメータ(P1,P2,P3・・・)を順次、レジスタ(PSR)511に格納する。アプリケーション実行部523において実行中のアプリケーション、例えばJava(登録商標)、HDMVプログラムは、定期的にレジスタ(PSR)511からパラメータ(P1,P2,P3・・・)を取得して、アプリケーションの実行や継続に必要な演算あるいは暗号処理などを、レジスタ(PSR)511から取得したパラメータを適用して実行する。
セキュアVM356において、不正処理などセキュリティ問題が検出された場合には、セキュアVM356は、レジスタ(PSR)511に対するパラメータの書き込み処理を停止する。このパラメータ書き込み停止によって、アプリケーション実行部523は、レジスタ(PSR)511からのパラメータ取得に失敗し、パラメータを利用したアプリケーション実行が不可能となり、コンテンツ再生は停止される。
このように、本処理例では、上述した暗号化やデータ変換のようなコンテンツ保護機能を持たない例えば、Java(登録商標)やHDMVなどによって処理される小型のコンテンツについても、簡易な構成、すなわちセキュアVMからアプリケーションに対するパラメータの提供という簡易な構成で、コンテンツの利用制御が実現される。
なお、本処理例において、セキュリティ問題が発生し、コンテンツの再生が停止された場合には、先に、説明したメッセージ提示処理によって、ユーザにコンテンツ再生の停止理由などの通知を行なうことができる。
(4.2.4)アプリケーション実行部の使用レジスタの利用による処理例1
次に、アプリケーション実行部が使用するレジスタの一部をセキュリティ情報処理部として機能するセキュアVM356が利用して読み書き可能な構成とすることで、メッセージ提示やユーザ入力の受領、さらに、セキュアVM356とアプリケーション実行部との間の信頼性確認処理を可能とした構成例について、図19を参照して説明する。
図19には、セキュリティ情報処理部として機能するセキュアVM356と、例えば、AV−Layerに設定されるアプリケーション実行部524と、3つのレジスタX(PSR−X)571,レジスタY(PSR−Y)572,レジスタZ(PSR−Z)573を示している。
レジスタX(PSR−X)571は、セキュアVM356が書き込み(Write)を実行し、アプリケーション実行部524が読み取り(Read)を実行するレジスタである。レジスタX(PSR−X)571に対して、セキュアVM356が書き込み(Write)を実行すると、レジスタX(PSR−X)571の変化に基づくイベント通知が、アプリケーション実行部524になされ、アプリケーション実行部524は、レジスタX(PSR−X)571に対する書き込み(Write)が実行されたことを知ることができる。
例えばメッセージ提示や、Java(登録商標)やHDMVなどのアプリケーションを実行するアプリケーション実行部524は、レジスタX(PSR−X)571に対する書き込み(Write)が実行されたことの通知を受け取ったらレジスタX(PSR−X)571をチェックし、値に応じて警告メッセージを表示するなどの処理を行う。
また、レジスタY(PSR−Y)572は、アプリケーション実行部524が書き込み(Write)を実行し、セキュアVM356が読み取り(Read)を実行するレジスタである。メッセージ提示や、Java(登録商標)やHDMVなどのアプリケーションを実行するアプリケーション実行部524は、セキュアVM356に対して通知する内容に対応する値をレジスタY(PSR−Y)572に書き込む。
レジスタY(PSR−Y)572にデータが書き込まれると、セキュアVM356に対して通知(INTRP:interrupt)がなされる。セキュアVM356は、レジスタY(PSR−Y)572に書き込まれた値に応じた処理を行う。レジスタY(PSR−Y)572には、例えば、アプリケーション実行部524が実行したメッセージ表示に対するユーザ入力値が書き込まれる。
レジスタZ(PSR−Z)573は、セキュアVM356、およびアプリケーション実行部524の双方が書き込み(Write)および読み取り(Read)を実行可能なレジスタである。このレジスタZ(PSR−Z)573は、セキュアVM356、およびアプリケーション実行部524相互間の処理状況通知用レジスタとして利用される。
本構成を利用したメッセージ提示およびユーザ入力受領処理シーケンスについて、図20を参照して説明する。図20には、セキュリティ情報処理部として機能するセキュアVM356と、アプリケーション実行部524と、3つのレジスタX(PSR−X)571,レジスタY(PSR−Y)572,レジスタZ(PSR−Z)573を示している。
アプリケーション実行部524において通常実行されるアプリケーションは、情報記録媒体に格納された例えばJava(登録商標)やHDMV対応のコンテンツを実行するアプリケーション・プログラムである。図20には、セキュアVM356と、アプリケーション実行部524が実行する処理シーケンスを処理ステップS231〜S237として示してある。各処理ステップについて説明する。
まず、ステップS231において、セキュアVM356が、コンテンツ再生処理において、何らかのセキュリティ問題を検出したとする。先に図6他を参照して説明したように、セキュアVM356は、イベントハンドラ354からの監視情報を受け取り、処理エラー、不正処理などが検出された場合には、セキュアVM356にこれらの情報が入力される。
コンテンツ再生処理において、何らかのセキュリティ問題などエラーが検出された場合、セキュアVM356は、ステップS232において、予め各エラーに対応して設定されたエラーコードをレジスタX(PSR−X)571に書き込む。このレジスタ書き込みによって、レジスタX(PSR−X)571の変化に基づくイベント通知が、アプリケーション実行部524になされ、アプリケーション実行部524は、レジスタX(PSR−X)571に対する書き込み(Write)が実行されたことを知ることができる。
ステップS233において、アプリケーション実行部524は、イベント通知によって、レジスタ書き込み発生を検知し、レジスタX(PSR−X)571に書き込まれたエラーコードを取得する。アプリケーション実行部524は、レジスタX(PSR−X)571に書き込まれたエラーコードを取得した後、ステップS234において、取得エラーコードに対応して設定されたメッセージを表示部に出力する。
表示部に表示されるメッセージデータは、たとえば、先に図14を参照して説明したようなメッセージおよびユーザ入力部が設定された表示データなどである。アプリケーション実行部524は、ステップS235において、ユーザ入力を検出すると、ステップS236において、ユーザ入力情報をレジスタY(PSR−Y)572に書き込む。
レジスタY(PSR−Y)572にデータが書き込まれると、セキュアVM356に対して通知(INTRP:interrupt)がなされる。セキュアVM356は、レジスタY(PSR−Y)572に書き込まれたことを通知(INTRP:interrupt)によって検出すると、ステップS237において、レジスタY(PSR−Y)572の書き込みデータ、例えば、アプリケーション実行部524が実行したメッセージ表示に対するユーザ入力値を取得し、ユーザ入力値に対応した処理を実行する。
なお、以上説明した処理シーケンスにおいては、レジスタZ(PSR−Z)573の利用が示されていないが、レジスタZ(PSR−Z)573は、前述したように、セキュアVM356、およびアプリケーション実行部524の双方が書き込み(Write)および読み取り(Read)を実行可能なレジスタであり、セキュアVM356、およびアプリケーション実行部524相互間の処理状況通知用レジスタとして利用される。
例えば、初期状態で、PSR−Zの設定値=0として設定され、セキュアVM356の処理が終了し、アプリケーション実行部524の処理手順になった場合にPSR−Zの設定値=1として設定し、次に、アプリケーション実行部524の処理が終了し、セキュアVM356の処理手順になった場合にPSR−Zの設定値=2として設定するなどによって、双方の処理手順に応じてプロセスの進み具合に応じた値を設定し、双方が処理シーケンスの進行度を確認可能とすることができる。なお、処理の終了や、中断の場合には、PSR−Zの設定値=0として初期値に戻す設定とする。
このように、セキュアVM356、およびアプリケーション実行部524は、レジスタZ(PSR−Z)573をセキュアVM356、およびアプリケーション実行部524相互間の処理状況通知用レジスタとして利用することで、処理シーケンスに従った確実な処理の実行が可能となる。
さらに、図19に示すセキュアVM356、およびアプリケーション実行部524の双方が利用可能な3つのレジスタX(PSR−X)571,レジスタY(PSR−Y)572,レジスタZ(PSR−Z)573を利用することで、セキュアVM356と、アプリケーション実行部524との間での信頼性確認処理を実行することができる。
図21を参照して、セキュアVM356と、アプリケーション実行部524との間での信頼性確認処理シーケンスについて説明する。図21は、セキュアVM356と、アプリケーション実行部524との間でチャレンジ/レスポンス処理を行うことにより、お互いに正常に動作していることを確認する処理のシーケンスを説明する図である。核ステップについて説明する。
まず、ステップS241−aにおいて、アプリケーション実行部524は、適当な値(例えば乱数)を生成し、レジスタY(PSR−Y)572に書き込む。さらに、ステップS241−bにおいて、レジスタZ(PSR−Z)573に状態値(例えば2)を書き込む。
セキュアVM356は、レジスタY(PSR−Y)572にデータが書き込まれたことを通知(INTRP_PresentationLayer)により検出し、ステップS242において、レジスタY(PSR−Y)572の書き込みデータを読み取る。
さらに、セキュアVM356は、レジスタY(PSR−Y)572からの読み取り値(乱数)に対して予め定められたデータ処理、例えば演算処理あるいは暗号処理などを実行し、ステップS243−aにおいて、この結果値をレジスタX(PSR−X)571に書き込む。セキュアVM356は、この処理に際してステップS243−bにおいて、レジスタZ(PSR−Z)573に状態値(例えば1)を書き込む。
ステップS244において、アプリケーション実行部524は、レジスタX(PSR−X)571の書き込みデータを読み取り、ステップS245において、読み取りデータの検証を実行する。例えば、アプリケーション実行部524によって生成し、セキュアVM356に通知した乱数に基づいて自ら演算あるいは暗号処理を実行した結果と比較照合を実行し、レジスタX(PSR−X)571からの読み取り値と一致すれば、セキュアVM356は、正当な処理を実行しているセキュアVM356であると判断する。なお、セキュアVM356と、アプリケーション実行部524が乱数に対して実行する演算処理あるいは暗号処理は共有する秘密情報に基づく処理を行なう設定とすることが好ましい。
なお、図21に示す信頼性確認処理は、複数回繰り返し実行してもよく、また、乱数発行をセキュアVM356が実行する構成としてもよい。この信頼性確認機能を有することによって、アプリケーション実行部524において実行されるアプリケーションについての信頼性確認が可能となるため、アプリケーションレイヤ(AVレイヤ)のロバストネス(Robustness)に特に制限を設けることなく、従来通りの実装で良い点が非常に大きな利点となる。
アプリケーション実行部524としてのAVレイヤにおいて実行されるアプリケーションは、通常のCPUで処理されることが多く、高度なロバストネス(Robustness)が要求されると実装コストが非常に高くなってしまうが、本処理例の如く、セキュアVM356と、アプリケーション実行部524との間での信頼性確認を実行可能としたことで、プリケーション実行部524において実行されるアプリケーションに対して高度なロバストネス(Robustness)が要求することのない設定が可能となる。
(4.2.5)アプリケーション実行部の使用レジスタの利用による処理例2
次に、アプリケーション実行部が使用するレジスタの一部をセキュリティ情報処理部として機能するセキュアVM356が利用して読み書き可能なもう1つの構成例について図22を参照して説明する。本処理例も、メッセージ提示やユーザ入力の受領、さらに、セキュアVM356とアプリケーション実行部との間の信頼性確認処理を可能とした構成を持つ。
図22には、セキュリティ情報処理部として機能するセキュアVM356と、例えば、AV−Layerに設定されるアプリケーション実行部525と、2つのレジスタX(PSR−X)581,レジスタY(PSR−Y)582を示している。本構成は、先に図19を参照して説明した構成からレジスタZ(PSR−Z)を省略した構成である。
レジスタX(PSR−X)581は、セキュアVM356が書き込み(Write)を実行し、アプリケーション実行部525が読み取り(Read)を実行するレジスタである。レジスタX(PSR−X)581に対して、セキュアVM356が書き込み(Write)を実行すると、レジスタX(PSR−X)581の変化に基づくイベント通知が、アプリケーション実行部525になされ、アプリケーション実行部525は、レジスタX(PSR−X)581に対する書き込み(Write)が実行されたことを知ることができる。
例えばメッセージ提示や、Java(登録商標)やHDMVなどのアプリケーションを実行するアプリケーション実行部525は、レジスタX(PSR−X)581に対する書き込み(Write)が実行されたことの通知を受け取ったらレジスタX(PSR−X)581をチェックし、値に応じて警告メッセージを表示するなどの処理を行う。
また、レジスタY(PSR−Y)582は、アプリケーション実行部525が書き込み(Write)を実行し、セキュアVM356が読み取り(Read)を実行するレジスタである。メッセージ提示や、Java(登録商標)やHDMVなどのアプリケーションを実行するアプリケーション実行部525は、セキュアVM356に対して通知する内容に対応する値をレジスタY(PSR−Y)582に書き込む。
レジスタY(PSR−Y)582にデータが書き込まれると、セキュアVM356に対して通知(INTRP:interrupt)がなされる。セキュアVM356は、レジスタY(PSR−Y)582に書き込まれた値に応じた処理を行う。レジスタY(PSR−Y)582には、例えば、アプリケーション実行部525が実行したメッセージ表示に対するユーザ入力値が書き込まれる。
本構成では、先に図19を参照して説明したレジスタZ、すなわち、セキュアVM356、およびアプリケーション実行部525相互間の処理状況通知用レジスタが設定されていない。本処理例では、セキュアVM356、およびアプリケーション実行部525相互間の処理状況通知に、レジスタX(PSR−X)581と、レジスタY(PSR−Y)582の書き込み値を利用する。
図に示すように、セキュアVM356が書き込み(Write)を実行し、アプリケーション実行部525が読み取り(Read)を実行するレジスタX(PSR−X)581に対して、セキュアVM356が書き込み(Write)を実行する際、レジスタ書き込みデータ591のように、セキュアVM356は、通知内容対応値の他に処理状況ビットをレジスタX(PSR−X)581に書き込む処理を実行する。この処理状況ビットをアプリケーション実行部525が読み取り、処理状況を知ることができる。
また、アプリケーション実行部525が書き込み(Write)を実行し、セキュアVM356が読み取り(Read)を実行するレジスタY(PSR−Y)582に対して、アプリケーション実行部525が書き込み(Write)を実行する際、レジスタ書き込みデータ592のように、アプリケーション実行部525は、通知内容対応値の他に処理状況ビットをレジスタY(PSR−Y)582に書き込む処理を実行する。この処理状況ビットをセキュアVM356525が読み取り、処理状況を知ることができる。
このように本構成では、レジスタX(PSR−X)581とレジスタY(PSR−Y)582に対するデータ書き込みの際に、処理状況ビットを併せて書き込むことで、セキュアVM356、およびアプリケーション実行部524相互間の処理状況通知を実現している。
本構成を利用したメッセージ提示およびユーザ入力受領処理シーケンスについて、図23を参照して説明する。図23には、セキュリティ情報処理部として機能するセキュアVM356と、アプリケーション実行部525と、2つのレジスタX(PSR−X)581,レジスタY(PSR−Y)582を示している。
アプリケーション実行部525において通常実行されるアプリケーションは、情報記録媒体に格納された例えばJava(登録商標)やHDMV対応のコンテンツを実行するアプリケーション・プログラムである。図23には、セキュアVM356と、アプリケーション実行部525が実行する処理シーケンスを処理ステップS241〜S247として示してある。各処理ステップについて説明する。
まず、ステップS241において、セキュアVM356が、コンテンツ再生処理において、何らかのセキュリティ問題を検出したとする。先に図6他を参照して説明したように、セキュアVM356は、イベントハンドラ354からの監視情報を受け取り、処理エラー、不正処理などが検出された場合には、セキュアVM356にこれらの情報が入力される。
コンテンツ再生処理において、何らかのセキュリティ問題などエラーが検出された場合、セキュアVM356は、ステップS242において、予め各エラーに対応して設定されたエラーコードをレジスタX(PSR−X)581に書き込む。このレジスタX(PSR−X)581に対するデータ書き込みに際しては、所定の状況通知ビットを併せて書き込む。
このレジスタ書き込みによって、レジスタX(PSR−X)581の変化に基づくイベント通知が、アプリケーション実行部525になされ、アプリケーション実行部525は、レジスタX(PSR−X)581に対する書き込み(Write)が実行されたことを知ることができる。
ステップS243において、アプリケーション実行部525は、イベント通知によって、レジスタ書き込み発生を検知し、レジスタX(PSR−X)581に書き込まれたエラーコードと状況通知ビットを取得する。アプリケーション実行部525は、レジスタX(PSR−X)581に書き込まれたエラーコードを取得した後、ステップS244において、取得エラーコードに対応して設定されたメッセージを表示部に出力する。
表示部に表示されるメッセージデータは、たとえば、先に図14を参照して説明したようなメッセージおよびユーザ入力部が設定された表示データなどである。アプリケーション実行部525は、ステップS245において、ユーザ入力を検出すると、ステップS246において、ユーザ入力情報をレジスタY(PSR−Y)582に書き込む。このレジスタY(PSR−Y)582に対するデータ書き込みに際しては、所定の状況通知ビットを併せて書き込む。
レジスタY(PSR−Y)582にデータが書き込まれると、セキュアVM356に対して通知(INTRP:interrupt)がなされる。セキュアVM356は、レジスタY(PSR−Y)582に書き込まれたことを通知(INTRP:interrupt)によって検出すると、ステップS247において、レジスタY(PSR−Y)582の書き込みデータ、例えば、アプリケーション実行部524が実行したメッセージ表示に対するユーザ入力値を取得し、ユーザ入力値に対応した処理を実行する。なお、この際にセキュアVM356レジスタY(PSR−Y)582に書き込まれた状況通知ビットも併せて読み取り、処理状況を確認する。
なお、各レジスタに書き込む状況ビットは、先に図20を参照して説明したPSR−Zの設定値の例と同様の設定態様が可能である。例えば初期値としては、状況ビット設定値=0として設定され、セキュアVM356の処理が終了し、アプリケーション実行部525の処理手順になった場合に状況ビット設定値=1として設定し、次に、アプリケーション実行部525の処理が終了し、セキュアVM356の処理手順になった場合に状況ビット設定値=2として設定するなどによって、双方の処理手順に応じてプロセスの進み具合に応じた値を設定し、双方が処理シーケンスの進行度を確認可能とすることができる。なお、処理の終了や、中断の場合には、状況ビットの設定値=0として初期値に戻す設定とする。
このように、セキュアVM356、およびアプリケーション実行部525は、レジスタX(PSR−X)581と、レジスタY(PSR−Y)582を利用して相互間の処理状況通知を行い、処理シーケンスに従った確実な処理の実行を実現する。
さらに、本構成においても、セキュアVM356、およびアプリケーション実行部525の双方が利用可能なレジスタX(PSR−X)581,レジスタY(PSR−Y)582を利用することで、セキュアVM356と、アプリケーション実行部525との間での信頼性確認処理を実行することができる。
図24を参照して、セキュアVM356と、アプリケーション実行部525との間での信頼性確認処理シーケンスについて説明する。図24は、セキュアVM356と、アプリケーション実行部525との間でチャレンジ/レスポンス処理を行うことにより、お互いに正常に動作していることを確認する処理のシーケンスを説明する図である。核ステップについて説明する。
まず、ステップS251において、アプリケーション実行部525は、適当な値(例えば乱数)を生成し、レジスタY(PSR−Y)582に書き込む。この際、アプリケーション実行部525は、レジスタY(PSR−Y)582に対して処理状態を示す状況ビットを併せて書き込む。
セキュアVM356は、レジスタY(PSR−Y)582にデータが書き込まれたことを通知(INTRP_PresentationLayer)により検出し、ステップS252において、レジスタY(PSR−Y)582の書き込みデータを読み取る。この読み取りに際して、状況ビットの読み取りも実行し、処理状況の確認を行う。
次に、セキュアVM356は、レジスタY(PSR−Y)582からの読み取り値(乱数)に対して予め定められたデータ処理、例えば演算処理あるいは暗号処理などを実行し、ステップS253において、この結果値をレジスタX(PSR−X)581に書き込む。セキュアVM356は、この処理に際して、セキュアVM356は、レジスタX(PSR−X)581に対して処理状態を示す状況ビットを併せて書き込む。
ステップS254において、アプリケーション実行部525は、レジスタX(PSR−X)581の書き込みデータを読み取る。この読み取りに際して、状況ビットの読み取りも実行し、処理状況の確認を行う。
次に、ステップS255において、アプリケーション実行部525は、読み取りデータの検証を実行する。例えば、アプリケーション実行部525によって生成し、セキュアVM356に通知した乱数に基づいて自ら演算あるいは暗号処理を実行した結果と比較照合を実行し、レジスタX(PSR−X)581からの読み取り値と一致すれば、セキュアVM356は、正当な処理を実行しているセキュアVM356であると判断する。なお、セキュアVM356と、アプリケーション実行部525が乱数に対して実行する演算処理あるいは暗号処理は共有する秘密情報に基づく処理を行なう設定とすることが好ましい。
なお、図24に示す信頼性確認処理は、複数回繰り返し実行してもよく、また、乱数発行をセキュアVM356が実行する構成としてもよい。この信頼性確認機能を有することによって、先に説明した(4.2.4)アプリケーション実行部の使用レジスタの利用による処理例1と同様、アプリケーション実行部525において実行されるアプリケーションについての信頼性確認が可能となるため、アプリケーションレイヤ(AVレイヤ)のロバストネス(Robustness)に特に制限を設けることなく、従来通りの実装で良い点が非常に大きな利点となる。
(4.3)共有メモリ空間を利用したメッセージ表示およびコンテンツ利用制御
次に、共有メモリ空間を利用したメッセージ表示およびコンテンツ利用制御処理について説明する。
図25に共有メモリ空間を利用したメッセージ表示処理、さらに、コンテンツの利用制御処理を実現する基本構成を示す。図25に示すセキュアVM356は、図6、図10および図11を参照して説明したセキュアVM356と同様のセキュアVM356である。すなわち、データ変換処理を実行するホスト内にバーチャルマシンとして設定されるセキュリティ情報処理部として機能するセキュアVM356である。
セキュリティ情報処理部として機能するセキュアVM356は、図6他を参照して説明したように、命令コード情報を含むデータ変換処理プログラム315を情報記録媒体310から読み出してデータ変換処理を実行する。さらに、セキュアVM356は、ホストアプリケーションを実行しているプレーヤ(情報処理装置)のID情報などをプレーヤ情報355として入力し、また、イベントハンドラ354からの監視情報を入力する。イベントハンドラ354は、セキュアVM356によって実行される処理が正しく行なわれているか否かのエミュレータチェックや、その他のホストアプリケーションや、ホストアプリケーション実行機器としてのプレーヤ(情報処理装置)の処理、状態を監視し、処理エラー、不正処理などが検出された場合には、セキュアVM356に監視情報を入力し、必要に応じて、例えばデータ変換処理を中止させる。
本処理例では、このセキュリティ情報処理部として機能するセキュアVM356と、アプリケーション実行部601の間で共有するメモリ空間612をメモリ611に設定し、共有メモリ空間612を利用してメッセージやコマンド、あるいはパラメータ、データ等を転送する。アプリケーション実行部601で実行するアプリケーションは、様々なデータ処理を実行するアプリケーション・プログラムであり、例えば図6、図10および図11を参照して説明したホスト350によるコンテンツ再生処理が実行されるPC等の情報処理装置において実行される様々なアプリケーション・プログラムである。
アプリケーション・プログラムは、例えば、先に、説明した各種のメッセージ表示を実行しユーザ入力を受領するUI機能を提供するUI機能提供プログラムや、あるいは、情報記録媒体に格納された例えばJava(登録商標)やHDMV対応のコンテンツを実行するアプリケーション・プログラムなどである。なお、このアプリケーション・プログラムは、情報処理装置がハードディスクなどに記憶して予め保持していたプログラム、あるいは情報記録媒体から読み出されたプログラムのいずれでもよい。
図25に示す共有メモリ空間612は、セキュアVM356と、アプリケーション実行部601の双方が書き込み、読み取り可能なメモリ空間として利用される。従って、図15〜図24を参照して説明した各種の処理と同様の処理が、レジスタの代わりにメモリ空間を適用することで実現される。すなわち、先にレジスタ適用処理として説明した以下の各種の処理、
(a)図16を参照して説明したレジスタを利用したUI機能提供アプリケーションの実行
(b)図17を参照して説明したレジスタ利用およびタイトル切り替えによるUI機能提供
(c)図18を参照して説明したレジスタ利用によるコンテンツ利用制御処理
(d)図19〜図24を参照して説明したレジスタ利用処理
これらの処理を、共有メモリ空間612を介してメッセージやコマンド、あるいはパラメータ、データをセキュアVM356と、アプリケーション実行部601間で転送することで実現される。
メモリ空間をデータ書き込み領域として利用することで、レジスタを利用する場合に比較して、書き込みデータサイズを大きく設定でき、利用範囲が広がるというメリットがある。例えばセキュアVM356が生成したデータを共有メモリに書き込むことで、アプリケーション実行部601に提供することも可能であり、逆にアプリケーション実行部601の生成データをセキュアVM356に渡す処理も容易に実現され、セキュアVM356の処理と、アプリケーション実行部601の処理との共同のデータ処理を行なうこともできる。
(4.4)オーサリングプロセスについて
上述したレジスタまたはメモリ空間を適用して、セキュアVMとアプリケーション間においてデータやパラメータの入出力を行なう構成を実現するためには、アプリケーションレイヤにおいて実行するアプリケーションは、定期的なレジスタ参照あるいはメモリ参照処理を実行する処理ルーチンを予め設定したプログラムとして編集(オーサリング)することが好ましい。
先に、図17を参照して説明したセキュアVMによるタイトル変更を許容した構成とする場合には、セキュアVMによって指定されるタイトルを持つアプリケーションのみが、定期的なレジスタ参照あるいはメモリ参照を実行するプログラムとすればよいが、セキュアVMによるタイトル変更を許容しない構成では、アプリケーションレイヤで実行するすべてのアプリケーションは、基本的にすべて定期的なレジスタ参照あるいはメモリ参照処理を実行する処理ルーチンを予め設定したプログラムとして編集(オーサリング)することが必要となる。
前述したように、アプリケーションレイヤにおいて実行されるプログラムは、情報記録媒体に記録された例えばJava(登録商標)やHDMV対応のコンテンツを実行するアプリケーション・プログラムであり、これらのコンテンツについて、定期的なレジスタ参照あるいはメモリ参照処理を実行する処理ルーチンを予め設定したプログラムとして編集(オーサリング)することで、上記の処理が可能となる。
これらのコンテンツのオーサリングプロセスおよび情報記録媒体製造プロセスについて、図26、図27を参照して説明する。図26は、セキュアVMによるタイトル切り替えが許容されない場合のコンテンツ編集(オーサリング)プロセスについて説明する図である。
アプリケーションは、アプリケーションレイヤにおいて実行されるJava(登録商標)やHDMV対応のコンテンツとしてのアプリケーション・プログラムと、セキュアVMが読み取って実行する命令コード情報としてのコンテンツコードを含むコンテンツとして生成される。ステップS301は、このアプリケーションおよびコンテンツコードの開発・検証プロセスである。
このステップS301において生成されるアプリケーションは、定期的なレジスタ参照あるいはメモリ参照処理を実行する処理ルーチンを予め設定したプログラムとして編集(オーサリング)される。またコンテンツコードは、セキュアVMによるメッセージ出力や、定期的なパラメータ出力の実行を定義した命令コードを含むものとして設定される。
このステップS301において生成されたアプリケーションおよびコンテンツコードは、ステップS302において、必要に応じて暗号化が施された後、ステップS303においてディスクに書き込まれディスクが製造される。ステップS303のディスク製造プロセスは、ディスク原盤の製造およびスタンパプロセスを含んでいる。
これらの処理によって、情報記録媒体に記録されるコンテンツは、アプリケーション・プログラムおよびバーチャルマシンによって実行されるコード情報を含むコンテンツとなり、アプリケーション・プログラムは、定期的なレジスタまたはメモリ参照処理の実行ルーチンを含むプログラムとして設定され、コード情報は、セキュリティチェック結果として取得するエラーコードをレジスタまたはメモリに書き込む処理の実行命令を含む情報として構成される。
このような情報記録媒体格納コンテンツは、図15〜図25を参照して説明した各種の処理を実行可能なコンテンツとされる。
図27は、セキュアVMによるタイトル切り替えを許容した場合のコンテンツオーサリングプロセスを示している。図17を参照して説明したセキュアVMによるタイトル変更を許容した構成とする場合には、セキュアVMによって指定されるタイトルを持つアプリケーションのみが、定期的なレジスタ参照あるいはメモリ参照を実行するプログラムとすればよい。
従って、通常のアプリケーションについては、定期的なレジスタ参照あるいはメモリ参照を実行するルーチンを含ませたプログラムとして設定する必要がなく、自由にアプリケーションを開発することができる。特定のアプリケーションのみについて、定期的なレジスタ参照あるいはメモリ参照を実行するルーチンを含ませたプログラムとして設定すればよい。
図27に示すように、ステップS321におけるアプリケーションの開発・検証プロセスとステップS322におけるコンテンツコードの開発・検証プロセスを分離し、基本的に、アプリケーションの開発・検証プロセスは、コンテンツコードにとらわれることなく、自由に開発することができる。セキュアVMによるタイトル切り替え先のアプリケーションのみを、図26に示すプロセスに従って編集すればよい。
図27のプロセスでは、ステップS321におけるアプリケーションの開発・検証プロセスの後に、ステップS322において、コンテンツコードの開発・検証プロセスを実行することができる。その後、ステップS323において、必要に応じて暗号化が施された後、ステップS324においてディスクに書き込まれディスクが製造される。ステップS324のディスク製造プロセスは、ディスク原盤の製造およびスタンパプロセスを含んでいる。
アプリケーションの開発・検証プロセスと、コンテンツコードの開発・検証プロセスは、運用上、分かれていることが多く、現実的には、図27に示すプロセスに従う構成とすることが好ましく、セキュアVMによるタイトル切り替えを許容した構成として、特定のアプリケーションのみを定期的なレジスタ参照あるいはメモリ参照を実行するルーチンを含ませたプログラムとして設定することで、その他の通常アプリケーションについては、自由な開発を可能とすることができる。
[5.情報処理装置の構成]
次に、図28を参照して、ホストとしてのアプリケーションを実行する情報処理装置のハードウェア構成例について説明する。情報処理装置800は、OSやコンテンツ再生または記録アプリケーション・プログラム、相互認証処理プログラムなどの各種プログラムに従ったデータ処理を実行するCPU809、プログラム、パラメータ等の記憶領域としてのROM808、メモリ810、デジタル信号を入出力する入出力I/F802、アナログ信号を入出力し、A/D,D/Aコンバータ805を持つ入出力I/F804、MPEGデータのエンコード、デコード処理を実行するMPEGコーデック803、TS(Transport Stream)・PS(Program Stream)処理を実行するTS・PS処理手段806、相互認証、暗号化コンテンツの復号処理など各種の暗号処理を実行する暗号処理手段807、ハードディスクなどの記録媒体812、記録媒体812の駆動、データ記録再生信号の入出力を行なうドライブ811を有し、バス801に各ブロックが接続されている。
情報処理装置(ホスト)800は、例えばATAPI−BUS等の接続バスによってドライブと接続されている。変換テーブル、コンテンツなどをデジタル信号用入出力I/F802を介して入出力される。暗号化処理、復号処理は、暗号化処理手段807によって、例えば、AESアルゴリズムなどを適用して実行される。
なお、コンテンツ再生あるいは記録処理を実行するプログラムは例えばROM808内に保管されており、プログラムの実行処理中は必要に応じて、パラメータ、データの保管、ワーク領域としてメモリ810を使用する。
ROM808または記録媒体812には、例えば、管理センタの公開鍵、ホスト対応秘密鍵、ホスト対応の公開鍵証明書、さらに、リボケーションリストとしてのドライブCRLなどが格納される。
コンテンツ再生処理に際しては、前述したセキュアVM356が取得したセキュリティチェック情報に基づいて、様々なメッセージ表示が実行される。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。