以下、図面を参照しながら本発明の情報処理装置、および情報処理方法、並びにコンピュータ・プログラムの詳細について説明する。
なお、説明は、以下の記載項目に従って行う。
1.情報記録媒体の格納データと、情報処理装置における処理の概要
2.セキュリティチェック処理について
3.情報処理装置の保持する証明書について
4.コンテンツコードを利用した装置確認処理について
5.装置情報に基づく再生コンテンツ制御処理
6.情報処理装置の構成
[1.情報記録媒体の格納データと、情報処理装置における処理の概要]
まず、情報記録媒体の格納データと、情報処理装置の処理概要について説明する。図1に、コンテンツの格納された情報記録媒体100、ドライブ120およびホスト140の構成を示す。ドライブ120は情報記録媒体100の駆動アクセスを行い、ホスト140は、ドライブ120を介して情報記録媒体のデータをアクセスしデータ再生(または記録)アプリケーションによるコンテンツ再生(または記録)処理を実行する。本発明の情報処理装置は、図1に示すドライブとホストを有する構成、あるいはホスト部のみからなる構成のいずれの場合もある。
情報記録媒体100は、例えば、Blu−ray Disc(登録商標)、DVDなどの情報記録媒体であり、コンテンツを格納した情報記録媒体である。なお、以下の実施例では、情報記録媒体の例としてディスク型の媒体を例として説明するが、本発明は様々な態様の情報記録媒体を用いた構成において適用可能である。
図1に示すように、情報記録媒体100には、コンテンツ101と、コンテンツ101が暗号化コンテンツである場合にその復号処理に適用する鍵情報を格納した暗号鍵ブロックであるMKB(Media Key Block)102、同様の復号処理に適用するタイトル鍵を暗号化したデータ(Encrypted CPS Unit Key)等から構成されるタイトル鍵ファイル103、コンテンツのコピー・再生制御情報としてのCCI(Copy Control Information)等を含む使用許諾情報104、暗号化コンテンツ101の利用に際して実行されるデータ処理プログラムを含むコンテンツコード105が格納される。
コンテンツコード105には、コンテンツ再生を実行するプレーヤ(再生装置)の正当性などを検証するためのプログラムなどによって構成されるセキュリティチェックコード107が含まれる。さらに、情報処理装置の装置確認、例えば情報処理装置に対応するモデル、バージョン、デバイスなどをモデル識別子(モデルID)、バージョン識別子(バージョンID)、デバイス識別子(デバイスID)などに基づいて特定する装置確認処理用コード108が含まれる。
コンテンツの再生を実行する情報処理装置は、コンテンツコード105に含まれるセキュリティチェックコード107に従って、プレーヤ(再生装置)の正当性などの検証処理を実行する。図1に示すホスト140におけるセキュアVM160がこの処理を実行する。セキュリティチェックコード107には、様々な再生装置や再生アプリケーション種別などに応じた処理、すなわちセキュリティチェック処理やコンテンツ再生においてデータ変換処理が必要となる場合に利用される変換データ情報やコード情報が含まれる。
セキュリティチェックコード107は、例えばA社製のモデルA1、バージョンa2、デバイスAa3に対応するセキュリティチェックコード、B社製のモデルB1、バージョンb2、デバイスBb3に対応するセキュリティチェックコードなどのように、再生処理を実行するモデルやバージョンに応じたセキュリティチェックコードを格納し、コンテンツを利用しようとする装置は、これらのセキュリティチェックコードから、自装置に対応するセキュリティチェックコードを選択して処理を実行することになる。
コンテンツを利用する情報処理装置は、例えば情報処理装置に相当する「デバイス」、あるいは複数のデバイスの集合として定義される「モデル」あるいはモデルの下位概念としての「バージョン」などの様々な情報処理装置の所属集合に応じた適切なセキュリティチェックコードを選択して処理を行なう。例えば、
デバイス識別子は、個々の情報処理装置固有の識別子として設定される。
モデル識別子は、同一モデルに含まれる複数のデバイス(情報処理装置)に共通に設定される。
バージョン識別子は、同一モデルに含まれる異なるバージョン毎に設定される識別子である。例えば、モデルAのバージョン1、モデルAのバージョン2などがある場合に、それぞれのバージョンに対応して個別のバージョン識別子が設定される。
情報処理装置は、装置確認処理用コード108の適用処理によって、情報処理装置の所属集合としてのデバイス、モデル、バージョンなどを確認して、変換テーブル106やセキュリティチェックコード107から自装置に対応するデータを選択してデータ変換処理やセキュリティチェック処理を実行する。
セキュリティチェックコード107には、様々な装置モデル、バージョンに対応した複数のセキュリティチェックコードが含まれており、再生を行なう装置は、自装置に対応するセキュリティチェックコードを選択してセキュリティチェック処理を実行する。また、変換テーブル106に基づくデータ変換では、たとえばコンテンツ再生時にコンテンツの一部に自装置の装置情報(デバイス、モデル、バージョンのいずれかの識別情報)の埋め込み処理を実行して、例えば再生コンテンツをコピー記録した媒体の流通やネットワークを介して流出した場合の追跡を可能としている。従って、再生装置は、自装置のデバイス識別子や、モデル識別子、バージョン識別子を確認することが必要となる。この確認処理を実行する装置確認処理プログラムが装置確認処理用コード108に含まれる。
情報記録媒体100に格納されたコンテンツ100の再生を行なおうとする情報処理装置は、情報処理装置のメモリ(図1に示すメモリb161)に格納されたデバイス証明書(Device Cert)、あるいはモデルバージョン証明書(MV Cert)を取得して、コンテンツコード105に含まれる装置確認処理用コード108を実行して、自装置のデバイス、モデル、またはバージョンの確認処理を実行する。この処理は、図1に示すホスト140におけるセキュアVM160が実行する。
この装置確認処理の後、適切な変換テーブルやセキュリティチェックコードを選択して処理を行なう。デバイス証明書(Device Cert)、あるいはモデルバージョン証明書(MV Cert)は公開鍵が格納された公開鍵証明書である。なお、これらのデータの構成、および装置確認処理の具体的処理例については、後段で説明する。
また、図1に示すコンテンツ制御部152は、図1に示すホスト140におけるセキュアVM160から、セキュリティチェック処理に際して確認された自装置のデバイス、モデル、またはバージョン情報などの装置識別情報や装置の実行環境に関する装置情報を取得し、取得した装置情報に基づいて、自装置に対応した最適なコンテンツを情報記録媒体100から選択し、あるいは再生態様を決定して選択したコンテンツの再生処理を開始する。
情報記録媒体100に格納されたコンテンツ101には、例えば様々な再生機器に適合したデータ態様の異なるコンテンツが含まれる。具体的には、再生ビットレートの設定を変更して再生可能としたコンテンツが格納されている。また、コンテンツが例えばJava(登録商標)プログラムによって構成される場合、装置の持つ機能に応じたグラフィック処理などの処理を実行する複数の異なるプログラム情報を含むアプリケーションコンテンツとして記録されている場合がある。コンテンツ制御部152は、セキュリティチェック処理に際して確認された自装置のデバイス、モデル、またはバージョン情報などの装置情報や、後述するDiscoveryRAMによって種とされるシステム情報に基づいて、これらのコンテンツ中から、自装置の持つ機能や環境に応じたコンテンツを選択して再生処理を開始する。
コンテンツ制御部152は、コンテンツ再生中においても、メディア(情報記録媒体100)のアクセス処理や、バックグラウンド処理など、実装に自由度が許されている部分で発生する装置機能の差に対応して再生コンテンツの切り替えも実行し、この切り替え処理においても、セキュリティチェック処理に際して確認された自装置のデバイス、モデル、またはバージョン情報やDiscoveryRAMに従ったメモリチェック処理によって取得したシステム情報に基づく処理を実行する。コンテンツ制御部152は、再生装置の不具合やハードウェア状況に基づいて発生する望ましくない再生動作の回避のための処理、例えば他のプログラム実行によるリソース不足、例えばCPUやメモリの占有が出来ない場合などのハードウェア状況に応じて再生コンテンツの選択の変更などの制御も実行する。これらの処理の詳細については後段で説明する。
なお、コンテンツコード105には、コンテンツ再生に際して必要となるデータ変換処理プログラムや、スタートアップ処理、セキュリティチェック処理などの様々な処理を実行するための情報やプログラムが含まれる。図1に示す情報記録媒体100の格納データ例は一例であり、格納データは、ディスクの種類などによって多少異なる。コンテンツ101は、例えば高精細動画像データであるHD(High Definition)ムービーコンテンツなどの動画コンテンツのAV(Audio Visual)ストリームや特定の規格で規定された形式のゲームプログラム、画像ファイル、音声データ、テキストデータや、Java(登録商標)アプリケーションなどからなるコンテンツである。
これらのコンテンツは、例えば特定のAVフォーマット規格データとして格納されている。具体的には例えばBlu−ray Disc(登録商標)ROM規格フォーマットに従って格納される。記録データのデータフォーマット例について図2を参照して説明する。図2に示すデータフォーマットは、情報記録媒体に格納されるコンテンツフォーマットの一例を示している。図2に示す例では、コンテンツは、コンテンツ管理ユニット(CPSユニット)として区分され、ユニット毎の異なる利用制御が可能な設定を持つ。
コンテンツ利用に際しては、まず、各ユニットに割り当てられたCPSユニット鍵(タイトル鍵とも呼ばれる)を取得することが必要であり、さらに、その他、MKB102などから必要な鍵、鍵生成情報等を適用して予め定められた復号処理シーケンスに基づくデータ処理を実行して再生を行う。
図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を取得して復号処理を実行することが必要となる。
このように、情報記録媒体100に格納されるコンテンツは、例えば図2に示すデータフォーマットに従って記録されており、このようなコンテンツの再生を実行する場合、ホスト140は、予め定められたシーケンスに従ってユニット対応の鍵を生成して復号処理を実行することになる。なお、各コンテンツ管理ユニット(CPSユニット)に対する個別の利用管理のために、各コンテンツ管理ユニット(CPSユニット)に対する使用許諾情報(UR:Usage Rule)104が設定されている。使用許諾情報は、コンテンツに対する例えばコピー・再生制御情報(CCI)を含む情報であり、各コンテンツ管理ユニット(CPSユニット)に含まれる暗号化コンテンツのコピー制限情報や、再生制限情報である。なお、タイトル鍵の生成には、情報記録媒体に格納された様々な情報を適用したデータ処理が必要となる。
次に、図1を参照して、情報記録媒体100に格納されたコンテンツの再生処理を行なう場合のホスト140とドライブ120の処理の概要について説明する。情報記録媒体100に格納されたコンテンツの再生処理は、ドライブ120を介してホスト140にデータが転送されて実行される。
ホスト140には、再生(プレーヤ)アプリケーション実行部150と、セキュアVM160が設定される。再生(プレーヤ)アプリケーション実行部150は、コンテンツ再生処理部であり、コンテンツ再生処理において実行するドライブとの認証処理、コンテンツ復号、デコード処理などの処理、さらに、セキュアVM160が取得する装置情報に基づくコンテンツの選択、再生制御を実行する。
セキュアVM160は、コンテンツコード105を適用した処理を実行するセキュリティチェック実行部である。コンテンツコード105には、変換テーブル106、セキュリティチェックコード107、装置確認処理用コード108が含まれ、セキュアVM160は、装置確認処理用コード108に従って装置のモデル、バージョン、デバイスなどの装置確認を行った後、確認済みの自装置に対応するセキュリティチェックコード107を選択して、セキュリティチェック処理を実行する。さらに、データ変換処理が必要にコンテンツである場合は、コンテンツコード105に含まれる変換テーブルを利用したコンテンツの一部データの置き換え処理を実行する。
セキュアVM160は、コンテンツコードに含まれる装置確認処理用コード108に基づいて、メモリに格納された装置証明書(デバイス証明書、モデルバージョン証明書)を適用した装置確認処理を実行し、装置確認処理の後、装置証明書に記録された装置識別子(モデルID、バージョンID、デバイスID)を取得し、さらに取得した装置識別子に対応するコンテンツコードを適用したデータ処理を実行する。
なお、セキュアVM160は、ホスト140内にバーチャルマシン(VM)として設定される。バーチャルマシン(VM)は中間言語を直接解釈して実行する仮想コンピュータであり、プラットフォームに依存しない中間言語での命令コード情報を情報記録媒体100から読み出して解釈実行する。
セキュアVM160は、情報記録媒体100に記録された暗号化コンテンツ101の利用に適用するプログラムまたは適用情報を含むコンテンツコード105を取得して、取得したコンテンツコード105に従ってデータ処理を実行するデータ処理部として機能する。
セキュアVM160は、セキュアVMのアクセス可能なメモリであるメモリb161からデバイス証明書(Device Cert)や、モデルバージョン証明書(MV Cert)などの装置情報を取得し、これらの証明書を適用して、装置確認処理、すなわち、デバイスやモデルやバージョンなどの各識別子に基づいて、自装置を確認する処理を実行し、確認された装置識別情報に基づいて、装置対応の適切なコンテンツコードを情報記録媒体から選択して実行する。
なお、コンテンツコードの一部は、暗号化データとして設定されており、この暗号化データを復号するための暗号鍵がメモリb161に格納されている。セキュアVM160は、メモリb161から選択した鍵を適用してコンテンツコードの復号処理を実行する。
メモリb161には、例えばデバイス固有の鍵であるデバイス固有鍵、複数のデバイスのグループに共通のグループ鍵、さらに特定の装置モデルに対応するモデル鍵、あるいは特定のモデルの特定のバージョンに対応するバージョン鍵などが格納される。
なお、デバイス固有鍵、およびグルーブ鍵は、階層構成を持つ鍵ツリーにおいて各情報処理装置の対応付けられた最下層ノードとしてのリーフから頂点ノードに至るルート上の各ノードに対応して設定されるノード鍵によって構成される。各情報処理装置は、これらのノード鍵をデバイス固有鍵、およびグルーブ鍵として格納している。これらの鍵構成の詳細については、後段で説明する。
セキュアVM160は、コンテンツコードに含まれる暗号化コードを復号する場合には、メモリb161から、ノード鍵としてのデバイス固有鍵、または複数のデバイスのグループに共通のグループ鍵、あるいはモデル鍵、またはバージョン鍵を選択して選択した鍵を適用してコンテンツコードの復号処理を実行する。なお、メモリb161に格納される暗号鍵の詳細、およびセキュアVM160の実行する処理の詳細については後段で説明する。
再生(プレーヤ)アプリケーション実行部150と、セキュアVM160間の情報伝達、あるいは処理要求は、再生(プレーヤ)アプリケーション実行部150からセキュアVM160に対する割り込み(INTRP)と、セキュアVM160から再生(プレーヤ)アプリケーション実行部150に対する応答(Call)処理のシーケンスによって実行される。アプリケーション実行部150からセキュアVM160に対する割り込み(INTRP)と、セキュアVM160から再生(プレーヤ)アプリケーション実行部150に対する応答(Call)処理のシーケンスによって行なわれる。
ホスト140の実行する主な処理について説明する。コンテンツの利用に先立ち、ドライブ120と、ホスト140間では相互認証処理が実行され、この認証処理の成立によって双方の正当性が確認された後、ドライブからホストに暗号化コンテンツが転送され、ホスト側でコンテンツの復号処理が行なわれ、さらに上述の変換テーブルによるデータ変換処理が実行されてコンテンツ再生が行なわれる。
ドライブ120のデータ処理部121は、コンテンツ利用に際して実行されるホストとの認証処理、さらに、情報記録媒体からのデータ読み出し、ホストヘのデータ転送処理などを実行する。
ホスト140の再生(プレーや)アプリケーション実行部150は、例えばPC等の情報処理装置で実行されるデータ再生(または記録)アプリケーションであり、所定のデータ処理シーケンスに従ってPC等の情報処理装置のハードウェアを利用した処理を行なう。
ホスト140は、ドライブ120との相互認証処理や、データ転送制御などを実行するデータ処理部151、セキュアVM160の実行するセキュリティチェック処理に際して確認された自装置のデバイス、モデル、またはバージョン情報に基づいて、自装置の持つ機能に応じたコンテンツ選択や処理態様の決定を実行するコンテンツ制御部152、暗号化コンテンツの復号処理を実行する復号処理部153、前述の変換テーブル105の登録データに基づくデータ変換処理を実行するデータ変換処理部154、デコード(例えばMPEGデコード)処理を実行するデコード再生処理部155を有する。
コンテンツ制御部152は、前述したように、図1に示すホスト140におけるセキュアVM160から、セキュリティチェック処理に際して確認された自装置のデバイス、モデル、またはバージョン情報を取得し、確認されたデバイス、モデル、またはバージョン情報に基づいて、自装置に対応した最適なコンテンツを情報記録媒体100から選択して再生処理を開始させる。
復号処理部153は、メモリa156に格納された各種情報、および、情報記録媒体100からの読み取りデータを適用して、コンテンツの復号に適用する鍵を生成し、暗号化コンテンツ101の復号処理を実行する。データ変換処理部154は、情報記録媒体100から取得されるデータ変換処理プログラムに従って、情報記録媒体100から取得される変換テーブルに登録された変換データを適用してコンテンツの構成データの置き換え処理(上書き)を実行する。デコード再生処理部155は、デコード(例えばMPEGデコード)処理を実行する。
情報処理装置150のメモリa156には、デバイス鍵:Kdや、相互認証処理に適用する鍵情報や復号に適用する鍵情報などが格納される。デバイス鍵:Kdは、MKB102の処理に適用する鍵である。MKBは有効なライセンスを持つユーザの情報処理装置に格納されたデバイス鍵[Kd]に基づく処理(復号)によってのみ、コンテンツの復号に必要なキーであるメディア鍵[Km]の取得を可能とした鍵情報ブロックであり、暗号化コンテンツの復号に際して、情報処理装置150は、メモリa156に格納されたデバイス鍵:Kdを適用してMKBの処理を実行することになる。
[2.セキュリティチェック処理について]
情報記録場対100からのコンテンツの再生処理に先立ち、ホスト140は、コンテンツコード105を利用したセキュリティチェックを実行する。コンテンツコード105は、先に説明したようにコンテンツ再生を実行する情報処理装置の正当性などを検証するプログラムであるセキュリティチェックコード107を含む。さらに、前述したように、情報処理装置に対応するデバイス、モデル、バージョンの少なくともいずれかの識別情報を確認する装置確認処理用コード108が含まれる。
セキュリティチェックコードには、様々な再生装置としての情報処理装置(デバイス、モデル、バージョンなど)の種別に応じた処理を可能とするため、様々な種類のコードが含まれる。コンテンツを利用しようとする情報処理装置は、装置確認処理用コード108に基づいて、自装置についてのデバイス、モデル、バージョンなどの確認処理を行なった後、自装置に対応するセキュリティチャックコードや変換テーブルを選択してセキュリティチェック処理とデータ変換処理を実行する。
コンテンツ再生を実行する再生装置の再生アプリケーションとしてのホストは、図1に示すようにデータ変換処理を実行するバーチャルマシン(VM)としてのセキュアVM160において、情報記録媒体100から読み出したコンテンツコード105に従って、装置確認処理、セキュリティチェック処理やデータ変換処理を実行してコンテンツ再生を実行する。
セキュアVM160は、情報処理装置のメモリ(図1に示すメモリb161)に格納された証明書、すなわち、デバイス証明書(Device Cert)、あるいはモデルバージョン証明書(MV Cert)を取得して、コンテンツコードに含まれる装置確認処理用コード、すなわち、デバイス、またはモデルまたはバージョン確認処理用のプログラムコードを実行して、自装置のデバイス、モデル、またはバージョンの確認処理を実行し、この装置確認処理の後、確認されたデバイス、モデル、またはバージョンに対応する適切な変換テーブルやセキュリティチェックコードを選択して処理を行なう。なお、セキュアVM160は、さらに必要に応じてコンテンツ再生処理の実行期間においてもセキュリティチェックコード107を適用したセキュリティチェックを実行する。
セキュアVM160は、コンテンツコード106に含まれるセキュリティチェックコード107に従って、プレーヤ(再生装置)の正当性などの検証処理を実行する。なお、前述したように、変換テーブル(Fix−up Table)336や、セキュリティチェックコード107は、再生装置としてのプレーヤの種別に応じた処理を実行可能とするため、様々な種類のコードを含む設定とされる。
セキュアVM160は、プレーヤ情報355として再生装置の記憶部に格納された各種の証明書、すなわち、デバイス証明書(Device Certificate)や、モデルバージョン証明書(MV Certificate)を取得して実行された装置確認処理によって確認された装置情報に基づいて、コンテンツコード106中に含まれるセキュリティチェックコード107から、自己の情報処理装置に対応するセキュリティチェックコードを選択して、セキュリティチェック処理を実行する。すなわち、情報処理装置に対応する識別情報または属性情報に対応するセキュリティチェックコードを選択して、選択コードに基づくセキュリティチェック処理を実行する。
セキュアVM160におけるセキュリティチェックにおいてコンテンツの利用が許容された正当な機器であることが証明され、また、不正なコンテンツの外部出力などが行なわれないことを機器構成情報などに基づいて検証した後、コンテンツの再生が行なわれることになる。
なお、セキュアVM160におけるセキュリティチェックにおいて取得された装置のデバイス、モデル、バージョン情報の少なくともいずれかの情報をコンテンツ制御部152が取得し、コンテンツ制御部152は、これらの取得情報を利用して、自装置に最適なコンテンツの選択または再生態様を決定してコンテンツ再生を開始する。
セキュアVM160において実行するセキュリティチェックは、再生装置の構成、再生アプリケーションの種類などに応じて異なる処理が要求されることがあり、このため、セキュリティチェックコードは、様々な機器やアプリケーションに対応したコードのセットとしてコンテンツコード中に記録されている。
なお、デバイス、モデル、バージョンの識別情報を確認するための装置確認処理は、情報処理装置に格納されたデバイス証明書、モデルバージョン証明書を適用した処理として実行される。デバイス証明書、モデルバージョン証明書は、コンテンツの利用権限を確認する証明書として利用され、コンテンツの管理を実行する管理エンティテイが発行する。
デバイス証明書、モデルバージョン証明書のデータ構成例について、図3を参照して説明する。図3(a)は、デバイス証明書、図3(b)はモデルバージョン証明書のデータ構成例を示している。
デバイス証明書は、図3(a)に示すように、
*デバイス証明書サイズ、
*デバイス証明書バージョン、
*デバイス製造者識別子、
*デバイス識別子、
*署名日時、
*デバイス公開鍵、
*電子署名、
これらのデータを有する。
一方、モデルバージョン証明書は、図3(b)に示すように、
*モデルバージョン証明書サイズ、
*モデルバージョン証明書バージョン、
*モデル製造者識別子、
*モデル識別子、
*バージョン識別子、
*リビジョン識別子
*署名日時、
*デバイス公開鍵、
*電子署名、
これらのデータを有する。
図1に示すセキュアVM160は、情報記録媒体から読み出した装置確認処理用のコード(プログラム)に従って、デバイス証明書またはモデルバージョン証明書、少なくともいずれかの検証処理を実行し、正当性を確認した後、装置のモデル、バージョン、デバイス、少なくともいずれかの確認を行い、その確認情報に従って、コンテンツコードを利用した処理、例えば、セキュリティチェックに適用するコードの選択、適用する変換テーブルの選択などを行う。
例えばデバイス証明書を利用した具体的な処理としては、まず、セキュアVM160は、デバイス証明書の署名検証処理を実行する。例えば、デバイス証明書の署名の実行エンティテイである管理センタの公開鍵を適用した署名検証を実行する。管理センタの公開鍵は、予め取得して装置のメモリに保持したものを適用してもよいし、情報記録媒体から取得あるいはネットワークを介して取得してもよい。
署名検証により、デバイス証明書の正当性が確認されなかった場合は、その後のデータ変換を伴うコンテンツ再生への移行が停止される。デバイス証明書の正当性が確認された場合は、さらに、そのデバイスに対応するセキュリティチェックコードが選択されて実行される。デバイス製造メーカなどの基本的な情報は、デバイス証明書から取得できる。モデルバージョンを単位とした処理を行なう場合は、モデルバージョン証明書を利用した装置確認処理が実行される。
セキュアVM160は、デバイス証明書またはモデルバージョン証明書の正当性検証処理を実行し、正当性が確認されたことを条件として、証明書の記録情報から、情報処理装置またはコンテンツ利用アプリケーションに対応する識別情報または属性情報、すなわち装置やアプリケーションのメーカ、種別、バージョン、シリアル番号などを取得する処理を実行する。これらの取得情報に基づいて、取得情報に対応するセキュリティチェックコードを選択して、選択コードに基づくセキュリティチェック処理を実行する。なお、これらの処理シーケンスの詳細については、後段でフローチャートを参照して説明する。
[3.情報処理装置の保持する証明書について]
先に説明したように、セキュアVM160は、情報記録媒体に記録されたコンテンツコードに含まれるセキュリティチェックコードに基づくセキュリティチェック処理および変換テーブルに基づく変換処理に適用するパラメータ算出処理などを実行する。この処理に際して、セキュアVM160は、図1を参照して説明した装置確認処理用コード108に従って、デバイス証明書やモデルバージョン証明書を適用した装置確認処理を実行する。
情報処理装置は、デバイス証明書またはモデルバージョン証明書の少なくともいずれかの証明書の正当性検証処理を実行し、正当性が確認されたことを条件として、証明書の記録情報から、情報処理装置またはコンテンツ利用アプリケーションを判別し、判別情報に対応するセキュリティチェックコードを選択して、選択コードに基づくセキュリティチェック処理を実行する。
セキュリティチェックコードによるセキュリティチェック処理は、再生を実行する装置に対応する正しいデバイスまたはモデルまたはバージョン識別情報に基づいて選択されたコンテンツコードに従って実行されるべき処理である。しかし、不正な再生装置が、デバイス証明書やモデルバージョン証明書を他の装置からコピーするなどして、不正な証明書情報を使用した処理が行なわれる可能性がある。証明書の検証のみによって、情報処理装置に対応する装置種別、すなわち、モデルまたはバージョンまたはデバイス種別を判定し、これらの装置対応のコンテンツコードに基づくセキュリティチェック処理を行なうと、本来必要なセキュリティチェックをすり抜けてコンテンツ利用が行なわれるという問題が発生する。
例えば、極めて厳しいセキュリティチェックが要求されるPCなどの情報処理装置が、甘いセキュリティチェックのみでコンテンツ利用を許容される再生専用機器のデバイス証明書をコピーしてPCに格納し、PCにおいて、再生専用機器のデバイス証明書を適用して装置確認処理を実行させて、甘いセキュリティチェックのみを実行してコンテンツを利用してしまうといった事態も発生する可能性がある。
このように、情報処理装置が正しい装置情報(デバイス、モデル、バージョンのいずれかの識別情報)を提供しない場合には、コンテンツの利用が不正に行なわれ、また不正追跡も困難になる。すなわち、誤った装置情報を提示すると、正しいセキュリティチェックが実行されず、また変換テーブルに基づく正しいデータ変換がなされず、コンテンツに対する装置情報(デバイス、モデル、バージョンのいずれかの識別情報)の埋め込みも正しく行われない可能性がある。以下では、このような不正行為を防止する構成について説明する。
すなわち、装置側において不正な装置情報を提示する場合においても、各装置に応じた正しいコンテンツコードを選択させて、コンテンツを利用する情報処理装置や再生アプリケーションに対応する正規のセキュリティチェック処理を実行させ、さらに、前述した変換テーブルを適用したデータ変換処理においても正しい装置情報の埋め込みを実行させる構成について説明する。
情報処理装置対応の正しいコンテンツコードを選択して実行させるため、本処理例では、コンテンツ再生を実行する多数の情報処理装置の各々に対して、特定のルールに従った固有の暗号鍵のセットを配布し、さらに、情報記録媒体に記録しセキュアVMによって実行されるコンテンツコードの少なくとも一部を、情報処理装置に配布した暗号鍵を適用した暗号化データとする。以下、暗号鍵配布構成および処理例について説明する。
まず、情報処理装置に格納される暗号鍵構成について、図4以下を参照して説明する。鍵管理センタは、各情報処理装置、すなわちコンテンツ再生を実行する情報処理装置に対して、暗号鍵を配布する。鍵管理センタは、暗号鍵の配布先についての登録情報を保持する。情報処理装置は、デバイス識別子、モデル識別子、バージョン識別子が対応付けられている。前述したように、
デバイス識別子は、個々の情報処理装置固有の識別子として設定される。
モデル識別子は、同一モデルに含まれる複数のデバイス(情報処理装置)に共通に設定される。
バージョン識別子は、同一モデルに含まれる異なるバージョン毎に設定される識別子である。例えば、モデルAのバージョン1、モデルAのバージョン2などがある場合に、それぞれのバージョンに対応して設定される。
鍵管理センタは、これらの情報処理装置の各識別子と、各情報処理装置に配布した暗号鍵とを対応付けた登録テーブルを保持し管理する。一方、情報処理装置は、図1を参照して説明したメモリb161に、
デバイス固有の鍵であるデバイス固有鍵、
複数のデバイスのグループに共通のグループ鍵、
特定の装置モデルに対応するモデル鍵、
特定モデルの特定バージョンに対応するバージョン鍵、
これらの各種の鍵データやその他証明書データを格納する。これらの各データは、鍵管理センタによって、例えば、製造メーカに配付されて、情報処理装置の製造段階でメモリに記録されることになる。
図4は、鍵管理センタが各情報処理装置に配付する鍵情報を含むデータセットを説明する図である。鍵管理センタが各情報処理装置に配付するデータは、図4に示すように、大きく3つに分類される。すなわち、
(a)デバイスおよびグループ対応データ
(b)モデルバージョンパッケージ
(c)鍵管理センタ公開鍵
これら(a)〜(c)である。以下、これらの各カテゴリ対応のデータについて説明する。
(a)デバイスおよびグループ対応データ
コンテンツ再生を実行する情報処理装置やLSIなどの製造を行なうデバイス製造エンティテイに対応して鍵[デバイス製造エンティテイ鍵(Manufacture鍵)]を頂点とする鍵ツリーが設定され、1つの頂点または分岐点(ノード)からn個(図の例ではn=256)の下位鍵を設定する。例えば、鍵ツリーの頂点にあるデバイス製造エンティテイ鍵の直下の2段目の鍵は、デバイス製造エンティテイの製造販売する装置やLSIなどをグループ別に区分し、各グループ毎にG1−1〜G1−256まで、256個の異なるグループ鍵G1が設定される。
さらに、3段目の鍵は、各G1レイヤをさらに区分して、G2−1〜G2−256*256の鍵、すなわち2562個の異なるグループ鍵G2が設定される。以下、3段目では、各グループG2をさらに区分して、2563の異なるグループ鍵G3を設定して、さらに、4段目において、2564の異なる最下層のノード(リーフ)を設定して、このノード(リーフ)を、各デバイスごとに割り当て、各デバイスに対応するデバイス固有鍵[Device_Specific_Key]を設定する。
各デバイスは、
頂点ノードに対応するデバイス製造エンティテイ鍵と、
自デバイスに対応する最下層の1つのノード(リーフ)の対応鍵としてのデバイス固有鍵と、
自デバイスに対応するリーフから頂点ノードに至るルートにある各ノード対応の鍵、すなわちグループ鍵(G1,G2,G3の各グループ鍵)
これらの鍵を保有する。
例えばグループ鍵G1,501は、図に示す階層構成中、最下層のリーフに対応するデバイス中、左半分のリーフ対応のデバイスには配付されるが、右左半分のリーフ対応のデバイスには配付されない。また、グループ鍵G2,502は、図に示す階層構成中、最下層のリーフに対応するデバイス中、左側1/4のリーフ対応のデバイスには配付されるが、それ以外の左側3/4のリーフ対応のデバイスには配付されない。このように、各デバイスに対して配付される暗号鍵のセットは異なる設定とされる。なお、各デバイスは、さらにデバイス秘密鍵[Device_Key]と、デバイス対応の公開鍵を格納した公開鍵証明書であるデバイス証明書[Device_Cert]も割り当てられる。デバイス証明書は、先に図3を参照して説明したデータ構成を持つ。
なお、図4(a)に示す階層構成中の頂点ノード〜リーフに設定される鍵を、グループ鍵と称するのみではなく、階層鍵またはノード鍵とも呼ぶ。なお、各階層の区分設定例は一例であり、たとえばライセンシ、プラットフォーム、販売地域でグループ分けしたり、製造日時でグループ分けをしたりするなどの設定も可能である。
デバイス対応の公開鍵を格納した公開鍵証明書であるデバイス証明書[Device_Cert]には、デバイス識別子が格納される。デバイス識別子(ID)は各プレーヤ個々に異なる識別子であり、例えば0x00000000〜0xFFFFFFFFの各値が、各デバイスに対応するデバイスIDとして設定される。
(b)モデルバージョンパッケージ
情報処理装置には、さらに、図4(b)に示すモデルバージョンパッケージに含まれる各データが格納される。モデルバージョンパッケージには以下のデータが含まれる。
(b1)モデル鍵、
(b2)バージョン鍵、
(b3)モデルバージョン秘密鍵
(b4)モデルバージョン証明書
モデル鍵は、情報処理装置に対応するモデルに固有の鍵データであり、バージョン鍵は、情報処理装置に対応するバージョンに固有の鍵データである。モデルバージョン秘密鍵、モデルバージョン証明書は、それぞれ公開鍵暗号システムにおける秘密鍵、公開鍵を格納した公開鍵証明書に相当する。それぞれ情報処理装置に対応するモデルバージョンに固有の鍵情報として設定される。モデルバージョン証明書は、先に図3を参照して説明したデータを格納している。
モデルバージョン証明書は、
モデルID=X
バージョンID=Y
リビジョンID=Z
これらの各コードに対応して設定される証明書として構成され、X,Y,Zの値が異なるとことなる証明書として設定されることになる。なお、リビジョンID(Z)は、例えばファームウェアアップデートなど、装置自体のハードウェアではなく、例えば再生アプリケーションなどのアップデートに際して更新されるコードであり、情報処理装置がこのようなファームウェアアップデートを行った場合、アップデートに応じて、ネットワークや情報記録媒体を介して更新されたモデルバージョン証明書が情報処理装置に提供される。
以上のように、デバイス固有の鍵、デバイス証明書とともに、モデル鍵、バージョン鍵、モデルバージョン証明書を設定することにより、上述の装置特定のための識別情報(forensic mark)を埋め込む際に、偽の識別情報を埋め込まれることを防ぐことが出来る。
また、図4(a)のデバイス&グループ対応データと、図4(b)のモデルバージョンパッケージを分けて管理することにより、例えば、LSIそれぞれに応じて異なる値が設定されるデバイス&グループ対応データは、LSIメーカが埋め込み、そのLSIを用いて、他の部品などと組み立てて情報処理装置を製造するメーカ(組み立てメーカ)が、モデルバージョンパッケージを埋め込むように、分担して製造作業を行うことも可能となる。
これにより、例えばLSIとして共通であっても、モデル、バージョンが変わる場合がありえ、その場合には異なる値を埋め込むことがありえるモデル鍵等のみを組み立てメーカが埋め込むことで、組み立てメーカが一台ごとにそれぞれ異なるIDを埋め込む必要がなくなるため、組み立てメーカの負担が軽くなる。さらに、モデル、バージョンが変わったとしてもLSIになんら変更を加えることなく、LSIメーカから購入済みのLSIを使用することが出来る。従って、図4(a)のデバイス&グループ対応データと、図4(b)のモデルバージョンパッケージは、同じ物理的なメモリに保存されるとは限らず、別のメモリに保存されることもありえる。
このため、図4(a)における、グループ鍵(階層鍵、ノード鍵)は、ある一台のデバイスを特定するために設定された分類鍵であるのに対して、図4(b)におけるモデル鍵、バージョン鍵は情報処理装置(例えば、光ディスクの再生装置)のいわゆる「型番」等に応じて設定される鍵であり、必ずしも対応する関係には無い。
(c)鍵管理センタ公開鍵
さらに、情報処理装置には、上記の(a),(b)のデータに加えて、図4(c)に示す鍵管理センタ(KIC)公開鍵が格納される。この公開鍵は、情報処理装置において、例えばコンテンツコードに付与された鍵管理センタの署名の検証を行なう際に利用される。
図5に情報処理装置のメモリに格納されるデータ構成を示す。図5に示すように、情報処理装置には、
(1)デバイス製造エンティテイ鍵(Manufacturer鍵)
(2)グループ1鍵(Group1 Key)
(3)グループ2鍵(Group2 Key)
(4)グループ3鍵(Group3 Key)
(5)デバイス固有鍵(Device Specific Key)
(6)デバイス秘密鍵(Device Private Key)
(7)モデル鍵#X(Model Key #X)
(8)バージョン鍵#Y(Version Key #Y)
(9)モデルバージョン秘密鍵(Model/Version Private Key)
(10)デバイス証明書(Device CERT)
(11)モデルバージョン証明書(MV_CERT(X,Y, Z=Y) (Model/Version CERT))
(12)鍵管理センタ公開鍵(KIC Public Key)
これらのデータが格納される。
これらのデータ中、デバイス証明書、モデルデバイス証明書および、鍵管理センタ公開鍵を除く(1)〜(9)の各データは、漏洩を防止して秘密に格納することが必要であり、セキュアなメモリ中に格納される。デバイス証明書、モデルデバイス証明書および、鍵管理センタ公開鍵は、漏洩防止の必要はない。
図4を参照して説明した鍵管理センタの配付データと、図5を参照して説明した情報処理装置の格納データとの対応について説明する図を、図6として示す。図6に示すように、
(a)デバイスおよびグループ対応データとして、
(1)デバイス製造エンティテイ鍵(Manufacturer鍵)
(2)グループ1鍵(Group1 Key)
(3)グループ2鍵(Group2 Key)
(4)グループ3鍵(Group3 Key)
(5)デバイス固有鍵(Device Specific Key)
(6)デバイス秘密鍵(Device Private Key)
これらのデータがセキュアメモリに格納される。
(b)モデルバージョンパッケージ構成データとして、
(7)モデル鍵#X(Model Key #X)
(8)バージョン鍵#Y(Version Key #Y)
(9)モデルバージョン秘密鍵(Model/Version Private Key)
これらのデータがセキュアメモリに格納される。
さらに、セキュアに格納する必要がないデータとして、
(6)デバイス秘密鍵(Device Private Key) 中の、
(10)デバイス証明書(Device CERT)
(b)モデルバージョンパッケージ構成データ中の、
(11)モデルバージョン証明書(MV_CERT(X,Y, Z=Y) (Model/Version CERT))
(c)鍵管理センタ公開鍵に含まれる、
(12)鍵管理センタ公開鍵(KIC Public Key)
が、情報処理装置のメモリに格納される。
情報処理装置には、初期的に、これらの鍵および証明書情報が格納されてユーザに提供されることになる。さらに、前述したように、例えばファームウェアアップデートなど、装置自体のハードウェアではなく、例えば再生アプリケーションなどのアップデートを行った場合、アップデートに応じて、ネットワークや情報記録媒体を介して更新されたモデルバージョン証明書が情報処理装置に提供される。
このような場合は、図7に示すように、更新されたモデルバージョン証明書が鍵管理センタ、あるいは製造メーカなどを介してユーザの情報処理装置に提供されることになる。例えば、更新されたモデルバージョン証明書は、コンテンツを格納した情報記録媒体に併せて記録され、情報処理装置がこれを読み取って、情報処理装置内に記録された証明書の置き換えを行なう。あるいはネットワークを介してダウンロードするなどの処理によって証明書を更新証明書に置き換えてもよい。
モデルバージョン証明書が更新された証明書であるか否かは、証明書内のリビジョンID(Z)を参照することで確認される(図3参照)。リビジョンIDは、更新
ごとに例えば(+1)されるなどのID設定が行なわれ、このリビジョンIDを参照することで、証明書の更新状況を確認することができる。
例えば、情報処理装置のモデルバージョン証明書を利用した装置確認処理において、情報処理装置のメモリに格納されたモデルバージョン証明書を確認することで、更新状況が確認され、その更新状況に応じて、的確なセキュリティチェックコードの選択や、変換テーブルの選択を実行させることが可能となる。
なお、図4、図6他を参照して説明した
(a)デバイスおよびグループ対応データ、
(b)モデルバージョンパッケージ、
これらのデータは、情報処理装置や情報処理装置に組み込むLSIなどの様々なデバイス製造エンティテイの各々が個別に設定可能なデータとすることができる。
以上、説明したように、情報記録媒体に格納されたコンテンツの利用を行なう情報処理装置には、先に図4〜図6等を参照して説明したデバイス製造エンティテイ鍵、グループ鍵Gn、デバイス固有鍵、モデル鍵、バージョン鍵、デバイス証明書、モデルバージョン証明書他の鍵データ、証明書データが格納され、情報処理装置は、これらの鍵を選択適用した暗号処理によって、コンテンツコードの利用、署名設定などを行なう。情報記録媒体には、特定の選択された鍵によって暗号化されたデータ部を含むコンテンツコードが格納されるので、コンテンツコードは、特定の選択鍵を格納した特定の装置によってのみ利用可能となる。
[4.セキュアVMによる装置確認処理について]
次に、セキュアVMによる装置確認処理について説明する。図1に示すホスト140におけるセキュアVM160は、情報記録媒体100に格納されたコンテンツコード105を取得して、装置の持つデバイス証明書やモデルバージョン証明書を利用して装置確認処理を実行する。さらに、セキュアVM160は、コンテンツ再生を実行する装置内のメモリ(RAM)上の特定の値をチェックして、正当なプレーヤ(装置または再生アプリ)であるか否かの検証を実行する。この検証対象となるメモリ(RAMは、ディスカバリRAM(DiscoveryRAM)と呼ばれる。
まず、図8に示すフローチャートを参照して、装置の持つデバイス証明書(Device Cert)、モデルバージョン証明書(MV Cert)を利用した装置確認処理のシーケンスについて説明する。この処理は、セキュアVM160において、情報記録媒体100に記録されたコンテンツコード105を利用した処理として実行される。
装置確認処理は、コンテンツコードに含まれる装置確認処理用コードを適用した処理として行なわれる。装置確認処理用のコードには、以下の関数が含まれ、セキュアVMによって実行される。
[Call_Discovery]
[Call_PrivateKey]
上記関数[Call_Discovery]は、情報処理装置内のメモリからデバイス証明書、またはモデルバージョン証明書を取得して署名検証処理を実行させる関数である。
また、関数[Call_PrivateKey]は、前述したように、入力データアドレスから署名対象データ長分のデータを取り出し、デバイスの持つ秘密鍵で署名して出力先アドレスに書き込む処理を実行させる関数である。
まず、ステップS101において、コンテンツコード処理(ここでは装置確認処理)が開始されると、ステップS102において、セキュアVMは、装置確認処理実行コードにデバイス証明書の呼び出し検証処理を実行する関数[Call_Discovery]が含まれているか否かを判定し、デバイス証明書の呼び出し検証処理を実行する関数[Call_Discovery]が含まれている場合、この関数を実行し、ステップS103において、情報処理装置のメモリからデバイス証明書(Device Cert)を取得する。デバイス証明書の呼び出し検証処理を実行する関数[Call_Discovery]が含まれていない場合は、ステップS108に進む。
ステップS103において、情報処理装置のメモリからデバイス証明書(Device Cert)を取得すると、ステップS104において、デバイス証明書(Device Cert)に設定された署名の検証処理を実行するこの処理は、情報処理装置のメモリに格納されている鍵管理センタの公開鍵を適用した署名検証処理として実行される。この署名検証によって、デバイス証明書の正当性が確認されない場合は、処理は中止される。
ステップS103において、署名検証によりデバイス証明書の正当性が確認されると、ステップS105に進み、コンテンツコードに含まれる関数[Call_PrivateKey]を実行する。すなわち、情報処理装置が生成した乱数、あるいは情報記録媒体からの読み込みデータに対して情報処理装置のデバイス秘密鍵による署名を実行する。さらに、ステップS106において、生成した署名の検証を行なう。この検証は、正当性が確認されたデバイス証明書から取得されるデバイス公開鍵を適用して実行される。
この署名検証によって、検証が成立しない場合は、情報処理装置は、デバイス証明書から取得されたデバイス公開鍵に対応する正しいデバイス秘密鍵を有していないものと判定され、処理を中止する。署名検証によって、検証が成立した場合は、ステップS107に進み、情報処理装置は、デバイス証明書から取得されたデバイス公開鍵に対応する正しいデバイス秘密鍵を有していると判定し、正当な情報処理装置であると判定し、デバイス識別子(デバイスID)をデバイス証明書から取得して、この情報処理装置に対応するデバイスIDであると判定する。
次に、ステップS108において、セキュアVMは、装置確認処理実行コードにモデルバージョン証明書の呼び出し検証処理を実行する関数[Call_Discovery]が含まれているか否かを判定し、モデルバージョン証明書の呼び出し検証処理を実行する関数[Call_Discovery]が含まれている場合、この関数を実行し、ステップS109において、情報処理装置のメモリからモデルバージョン証明書(MV Cert)を取得する。モデルバージョン証明書の呼び出し検証処理を実行する関数[Call_Discovery]が含まれていない場合は、正常な装置確認処理が終了したと判定され、処理を終了する。
ステップS109において、情報処理装置のメモリからモデルバージョン証明書(MV Cert)を取得すると、ステップS110において、モデルバージョン証明書(MV Cert)に設定された署名の検証処理を実行するこの処理は、情報処理装置のメモリに格納されている鍵管理センタの公開鍵を適用した署名検証処理として実行される。この署名検証によって、モデルバージョン証明書の正当性が確認されない場合は、処理は中止される。
ステップS110において、署名検証によりモデルバージョン証明書の正当性が確認されると、ステップS111に進み、コンテンツコードに含まれる関数[Call_PrivateKey]を実行する。すなわち、情報処理装置が生成した乱数、あるいは情報記録媒体からの読み込みデータに対して情報処理装置のモデルバージョン秘密鍵による署名を実行する。さらに、ステップS112において、生成した署名の検証を行なう。この検証は、正当性が確認されたモデルバージョン証明書から取得されるモデルバージョン公開鍵を適用して実行される。
この署名検証によって、検証が成立しない場合は、情報処理装置は、モデルバージョン証明書から取得されたモデルバージョン公開鍵に対応する正しいモデルバージョン秘密鍵を有していないものと判定され、処理を中止する。署名検証によって、検証が成立した場合は、ステップS113に進み、情報処理装置は、モデルバージョン証明書から取得されたモデルバージョン公開鍵に対応する正しいモデルバージョン秘密鍵を有していると判定し、正当な情報処理装置であると判定し、モデル/バージョン識別子(モデル/バージョンID)をモデルバージョン証明書から取得して、この情報処理装置に対応するモデルID、バージョンIDであると判定する。
このように、情報処理装置は、デバイス証明書、またはモデルバージョン証明書の少なくともいずれかの証明書、または、デバイスPrivate鍵、ModelKey/Version Keyを適用して装置確認処理を実行する。この処理によって、装置のデバイスID、モデルID、バージョンIDの少なくともいずれかが特定される。すなわち、電子証明書のみではなく、装置それぞれの固有の鍵、又は、モデル、バージョンで共通の鍵を用いることにより、確実に情報処理装置の特定が可能となる。
さらに、セキュアVM160は、前述したように、コンテンツ再生を実行する装置内のメモリ(RAM)上の特定の値をチェックして、正当なプレーヤ(装置または再生アプリ)であるか否かの検証を実行する。この検証対象となるメモリ(RAMは、ディスカバリRAM(DiscoveryRAM)と呼ばれる。
セキュアVM160は、例えば特定のコンテンツの再生開始前や再生中に、特定のメモリ(DiscoveryRAM)が、プレーヤ固有の状態になることを監視することで正当性や装置の状態を確認する。この場合は、チェックルーチンがコンテンツとプレーヤの両方に依存することになる。情報記録媒体100に格納されたコンテンツコード105には、上述のDiscoveryRAMを利用したプレーヤ正当性チェックにおいて、RAM上の実際の値と比較するための値(ターゲット値)を格納したテーブルが含まれ、セキュアVM160はRAMのデータとテーブルのデータとの比較検証を実行して正当なプレーヤ(装置または再生アプリ)であるか否かの検証を実行する。
[5.装置情報に基づく再生コンテンツ制御処理]
先に説明したように、図1に示すコンテンツ制御部152は、図1に示すホスト140におけるセキュアVM160から、セキュリティチェック処理に際して確認された自装置のデバイス、モデル、またはバージョン情報を取得し、確認されたデバイス、モデル、またはバージョン情報に基づいて、自装置に対応した最適なコンテンツを情報記録媒体100から選択して再生処理を開始させる。
すなわち、セキュアVM160は、図8に示すフローチャートに従ったコンテンツコードを利用した装置確認処理を実行して、自装置の装置情報、すなわち、自装置対応のデバイス識別子、モデル識別子、バージョン識別子、リビジョン識別子を自装置のメモリに格納されたデバイス証明書、あるいはモデルバージョン証明書に基づいて取得し確認する。コンテンツ制御部152は、セキュアVM160からこれらの装置情報を取得し、装置情報に基づいて自装置に対応した最適なコンテンツを情報記録媒体100から選択して再生処理を開始する制御を行う。
さらに、コンテンツ制御部152は、セキュアVM160による上述したDIscoveryRAMを利用した装置検証情報についても取得し、このDIscoveryRAMを利用した装置検証情報を参照して、装置の状態情報等を取得し再生コンテンツの選択や再生態様の変更処理などの再生コンテンツ制御処理を実行する。
図9に示すフローチャートを参照して、セキュアVM160における装置情報の取得と、コンテンツ制御部152における再生コンテンツ制御シーケンスについて説明する。
ステップS201は、セキュアVMにおける処理であり、先に図8のフローを参照して説明したコンテンツコードを利用した装置確認処理である。すなわち、自装置のメモリに格納されたデバイス証明書、あるいはモデルバージョン証明書を取得して署名確認処理等により、正当な証明書であることを確認して、自装置の装置情報、すなわち、自装置対応のデバイス識別子、モデル識別子、バージョン識別子、リビジョン識別子を取得する。
ステップS202もセキュアVMにおける処理であり、DIscoveryRAMを利用した装置検証処理である。すなわち、DIscoveryRAMを利用した装置検証情報を参照して、装置の状態情報等を取得する。なお、この処理によって取得される装置情報としては、例えば以下の情報が含まれる。
*装置のハードウェアやアプリケーション等のソフトウェア実装情報
*ハードウェア構成に起因する装置性能情報
*ベンチマークの実行結果など直接的に性能を示す情報
*現在の再生装置状態に関する情報
*ダウンロード、録画など別の処理を実行中かなどの処理実行情報
*コンテンツ再生に使用できるリソース情報
これらの情報が装置の検証対象としてのメモリ(RAM)に記録されており、セキュアVM160はRAMからこれらの情報を取得する。
ステップS203において、セキュアVM160は、ステップS201およびステップS202において取得した装置情報をレジスタ(PSR)に書き込みアプリケーション実行部150のコンテンツ制御部152に提供する。PSRはプレイヤ・ステータスレジスタであり、様々なプレーヤ状態情報の一時記憶領域として利用されるレジスタであり、セキュアVM160およびアプリケーション実行部150の双方がアクセス可能なレジスタである。具体的なレジスタ利用構成については後述する。
ステップS204はアプリケーション実行部150のコンテンツ制御部152における処理であり、PSR経由で取得した装置情報、すなわち、自装置対応のデバイス識別子、モデル識別子、バージョン識別子、リビジョン識別子情報や、DiscoveryRAMによる処理によって取得した装置情報に基づいて、装置に対応したコンテンツ選択処理や、コンテンツ再生態様の決定処理を実行してコンテンツ再生を開始する。再生処理が開始されると、ステップS205において、例えば表示装置等に再生コンテンツの出力が行なわれる。
先に説明したように、情報記録媒体には、再生ビットレートの設定を変更して再生可能としたコンテンツや、装置の持つ機能に応じたグラフィック処理などの処理を実行する複数の異なるプログラム情報を含むアプリケーションコンテンツ(例えばJava(登録商標)プログラム)などがあり、コンテンツ制御部152は、ステップS204においてセキュリティチェック処理に際して確認された自装置の装置情報に基づいて、これらのコンテンツ中から、自装置の持つ機能に応じたコンテンツを選択して再生処理を実行する。
なお、コンテンツ制御部152は、コンテンツ再生中においても、メディア(情報記録媒体100)のアクセス処理や、バックグラウンド処理など、実装に自由度が許されている部分で発生する装置機能の差に対応して再生コンテンツの切り替えも実行し、この切り替え処理においても、セキュリティチェック処理に際して確認された自装置情報やDiscoveryRAMによる装置情報に基づく処理を実行する。
DiscoveryRAMから取得される装置情報は、コンテンツ再生中においても変化することがあり、コンテンツ制御部152は、PSRを介してこの装置情報を取得して、再生装置の状態やハードウェア状況に基づいて発生する望ましくない再生動作の回避のための処理、例えば他のプログラム実行によるリソース不足、例えばCPUやメモリの占有が出来ない場合などのハードウェア状況に応じて再生コンテンツの選択の変更や、再生態様の変更制御も実行する。
なお、図9に示すフローでは、セキュアVMによって取得する装置情報はコンテンツコードによって決められている例であるが、アプリケーションがどのような情報を利用してコンテンツ選択を行うかについてはアプリケーションが決定しているので、ステップS201の処理の実行前にアプリケーションから取得が必要な情報をセキュアVMに伝え、セキュアVMは、アプリケーションから要求された装置情報のみを取得してPSRを介してアプリケーション側(コンテンツ制御部)に提供する構成としてもよい。この構成とすることで、利用しないデータを取得する時間と処理の無駄を省くことができる。
セキュアVM160が、ステップS201において各証明書から取得した自装置対応のデバイス識別子、モデル識別子、バージョン識別子、リビジョン識別子情報や、ステップS202においてDiscoveryRAMによる処理によって取得した装置情報は、ステップS203において、PSRを利用してアプリケーション側に提供される。図10以下を参照してPSRを利用したセキュアVM160からアプリケーション実行部150のコンテンツ制御部152に対する装置情報の提供処理およびコンテンツ制御部におけるコンテンツ選択などの再生コンテンツの制御処理の詳細について説明する。
図10には、装置のシステム状態情報等を格納するシステムメモリ531、セキュアVMの利用するメモリ領域であるセキュアVMメモリ532、セキュアVMと、アプリケーションレイヤ(コンテンツ制御部)534の間でのデータ提供処理に適用するレジスタであるPSR(プレイヤ・ステータスレジスタ)533を示している。
システムメモリ531には、再生処理を実行する情報処理装置が再生処理に適用するプログラムを格納する装置の再生(Player)プログラムコード領域541、さらに、再生処理の実行に際しての各種パラメータやメモリ使用量などのシステム情報を格納する装置(Player)プログラム実行領域543が格納されている。
再生(Player)プログラムコード領域541には、装置のデバイスやモデル、あるいは再生(Player)プログラムのバージョン(Version)などの装置情報542が含まれ、装置(Player)プログラム実行領域543には装置のデバイスやモデル、あるいは再生(Player)プログラムのバージョン(Version)に依存した装置対応プログラム実行情報544が含まれる。
ステップS301において、システムメモリ531に格納された装置情報542や装置対応プログラム実行情報544が、セキュアVMメモリ532へ転送される。この処理は、システムメモリ531上の情報をセキュアVMメモリ532へ転送するAPIを利用して実行される。この処理によってセキュアVMは、例えばファームウェアのバージョン情報や、バージョンに依存した特徴情報であるメモリ上のデータ配置などの情報を取得する。
ステップS302において、セキュアVMは、セキュアVMメモリ532上のプログラム545を実行し、S301で転送された情報、すなわち、装置情報542や装置対応プログラム実行情報544を利用して、先に図9を参照して説明したステップS201における各証明書からの自装置対応のデバイス識別子、モデル識別子、バージョン識別子、リビジョン識別子情報や、ステップS202におけるDiscoveryRAMによる装置情報の取得処理を実行して、セキュアVMメモリ532にアプリケーションレイヤ534に対する提供データ546として記録する。
次にセキュアVMはステップS303において、セキュアVMメモリ532に記録した提供データ546をアプリケーションレイヤ534の利用可能なレジスタであるPSR533に書き込む処理を実行する。この書き込み処理は、セキュアVM上のプログラムが使用できるAPIを利用した処理として実行される。
アプリケーションレイヤ(コンテンツ制御部)534は、PSR533に書き込まれた提供データ546、すなわち、先に図9を参照して説明したステップS201における各証明書からの自装置対応のデバイス識別子、モデル識別子、バージョン識別子、リビジョン識別子情報や、ステップS202におけるDiscoveryRAMによる装置情報が含まれるデータをPSR533から取得し、これらの情報を適用して、装置に対応したコンテンツ選択処理や、コンテンツ再生態様の決定処理を実行してコンテンツ再生を開始する。
図11には、セキュアVM160と、アプリケーション実行部150と、3つのプレイヤ・ステータスレジスタ(PSR)、すなわち、レジスタX(PSR−X)571,レジスタY(PSR−Y)572,レジスタZ(PSR−Z)573を示している。PSR(プレイヤ・ステータスレジスタ)は様々なプレーヤ状態情報の一時記憶領域としてのレジスタであり、セキュアVM160とアプリケーション実行部150とのデータ授受に利用されるレジスタである。
レジスタX(PSR−X)571は、セキュアVM160が書き込み(Write)を実行し、アプリケーション実行部150が読み取り(Read)を実行するレジスタである。レジスタX(PSR−X)571に対して、セキュアVM160が書き込み(Write)を実行すると、レジスタX(PSR−X)571の変化に基づくイベント通知が、アプリケーション実行部150になされ、アプリケーション実行部150は、レジスタX(PSR−X)571に対する書き込み(Write)が実行されたことを知ることができる。
例えばコンテンツの再生制御や、メッセージ提示、Java(登録商標)やHDMVなどのアプリケーションを実行するアプリケーション実行部150は、レジスタX(PSR−X)571に対する書き込み(Write)が実行されたことの通知を受け取ったらレジスタX(PSR−X)571をチェックし、値に応じて警告メッセージを表示するなどの処理を行う。
また、レジスタY(PSR−Y)572は、アプリケーション実行部150が書き込み(Write)を実行し、セキュアVM160が読み取り(Read)を実行するレジスタである。メッセージ提示や、Java(登録商標)やHDMVなどのアプリケーションを実行するアプリケーション実行部150は、セキュアVM160に対して通知する内容に対応する値をレジスタY(PSR−Y)572に書き込む。
レジスタY(PSR−Y)572にデータが書き込まれると、セキュアVM160に対して通知(INTRP:interrupt)がなされる。セキュアVM160は、レジスタY(PSR−Y)572に書き込まれた値に応じた処理を行う。レジスタY(PSR−Y)572には、例えば、アプリケーション実行部150が実行したメッセージ表示に対するユーザ入力値が書き込まれる。
レジスタZ(PSR−Z)573は、セキュアVM160、およびアプリケーション実行部150の双方が書き込み(Write)および読み取り(Read)を実行可能なレジスタである。このレジスタZ(PSR−Z)573は、セキュアVM160、およびアプリケーション実行部150相互間の処理状況通知用レジスタとして利用される。
本構成を利用したメッセージ提示およびユーザ入力受領処理シーケンスについて、図12を参照して説明する。図12には、セキュリティ情報処理部として機能するセキュアVM160と、アプリケーション実行部150と、3つのレジスタX(PSR−X)571,レジスタY(PSR−Y)572,レジスタZ(PSR−Z)573を示している。
アプリケーション実行部150において通常実行されるアプリケーションは、情報記録媒体に格納された例えばJava(登録商標)やHDMV対応のコンテンツを実行するアプリケーションプログラムである。図12には、セキュアVM160と、アプリケーション実行部150が実行する処理シーケンスを処理ステップS231〜S237として示してある。各処理ステップについて説明する。
まず、ステップS231において、セキュアVM160が、コンテンツ再生処理において、何らかのセキュリティ問題を検出した場合や、装置情報を検出したとする。セキュアVM160は、ステップS232において、検出情報に対応して設定された検出コードをレジスタX(PSR−X)571に書き込む。このレジスタ書き込みによって、レジスタX(PSR−X)571の変化に基づくイベント通知が、アプリケーション実行部150になされ、アプリケーション実行部150は、レジスタX(PSR−X)571に対する書き込み(Write)が実行されたことを知ることができる。
ステップS233において、アプリケーション実行部150は、イベント通知によって、レジスタ書き込み発生を検知し、レジスタX(PSR−X)571に書き込まれた検出コードを取得する。アプリケーション実行部150は、レジスタX(PSR−X)571に書き込まれた検出コードを取得した後、ステップS234において、取得検出コードに対応して設定されたメッセージを表示部に出力する処理や、再生コンテンツの選択、選択変更、再生態様の決定または変更などの処理を実行する。
表示部に表示されるメッセージデータは、たとえば、再生コンテンツが変更されたことや変更が必要であることのメッセージなどである。アプリケーション実行部150は、ステップS235において、例えばコンテンツ変更を了解またはコンテンツ変更を許容するユーザ入力を検出すると、ステップS236において、ユーザ入力情報をレジスタY(PSR−Y)572に書き込む。
レジスタY(PSR−Y)572にデータが書き込まれると、セキュアVM160に対して通知(INTRP:interrupt)がなされる。セキュアVM160は、レジスタY(PSR−Y)572に書き込まれたことを通知(INTRP:interrupt)によって検出すると、ステップS237において、レジスタY(PSR−Y)572の書き込みデータ、例えば、アプリケーション実行部150が実行したメッセージ表示に対するユーザ入力値を取得し、ユーザ入力値に対応した処理、例えばセキュリティ対応処理などを実行する。
なお、以上説明した処理シーケンスにおいては、レジスタZ(PSR−Z)573の利用が示されていないが、レジスタZ(PSR−Z)573は、前述したように、セキュアVM160、およびアプリケーション実行部150の双方が書き込み(Write)および読み取り(Read)を実行可能なレジスタであり、セキュアVM160、およびアプリケーション実行部150相互間の処理状況通知用レジスタとして利用される。
例えば、初期状態で、PSR−Zの設定値=0として設定され、セキュアVM160の処理が終了し、アプリケーション実行部150の処理手順になった場合にPSR−Zの設定値=1として設定し、次に、アプリケーション実行部150の処理が終了し、セキュアVM160の処理手順になった場合にPSR−Zの設定値=2として設定するなどによって、双方の処理手順に応じてプロセスの進み具合に応じた値を設定し、双方が処理シーケンスの進行度を確認可能とすることができる。なお、処理の終了や、中断の場合には、PSR−Zの設定値=0として初期値に戻す設定とする。
このように、セキュアVM160、およびアプリケーション実行部150は、レジスタZ(PSR−Z)573をセキュアVM160、およびアプリケーション実行部150相互間の処理状況通知用レジスタとして利用することで、処理シーケンスに従った確実な処理の実行が可能となる。
さらに、図11に示すセキュアVM160、およびアプリケーション実行部150の双方が利用可能な3つのレジスタX(PSR−X)571,レジスタY(PSR−Y)572,レジスタZ(PSR−Z)573を利用することで、セキュアVM160と、アプリケーション実行部150との間での信頼性確認処理を実行することができる。
図13を参照して、セキュアVM160と、アプリケーション実行部150との間での信頼性確認処理シーケンスについて説明する。図13は、セキュアVM160と、アプリケーション実行部150との間でチャレンジ/レスポンス処理を行うことにより、お互いに正常に動作していることを確認する処理のシーケンスを説明する図である。核ステップについて説明する。
まず、ステップS241−aにおいて、アプリケーション実行部150は、適当な値(例えば乱数)を生成し、レジスタY(PSR−Y)572に書き込む。さらに、ステップS241−bにおいて、レジスタZ(PSR−Z)573に状態値(例えば2)を書き込む。
セキュアVM160は、レジスタY(PSR−Y)572にデータが書き込まれたことを通知(INTRP_PresentationLayer)により検出し、ステップS242において、レジスタY(PSR−Y)572の書き込みデータを読み取る。
さらに、セキュアVM160は、レジスタY(PSR−Y)572からの読み取り値(乱数)に対して予め定められたデータ処理、例えば演算処理あるいは暗号処理などを実行し、ステップS243−aにおいて、この結果値をレジスタX(PSR−X)571に書き込む。セキュアVM160は、この処理に際してステップS243−bにおいて、レジスタZ(PSR−Z)573に状態値(例えば1)を書き込む。
ステップS244において、アプリケーション実行部150は、レジスタX(PSR−X)571の書き込みデータを読み取り、ステップS245において、読み取りデータの検証を実行する。例えば、アプリケーション実行部150によって生成し、セキュアVM160に通知した乱数に基づいて自ら演算あるいは暗号処理を実行した結果と比較照合を実行し、レジスタX(PSR−X)571からの読み取り値と一致すれば、セキュアVM160は、正当な処理を実行しているセキュアVM160であると判断する。なお、セキュアVM160と、アプリケーション実行部150が乱数に対して実行する演算処理あるいは暗号処理は共有する秘密情報に基づく処理を行なう設定とすることが好ましい。
なお、図13に示す信頼性確認処理は、複数回繰り返し実行してもよく、また、乱数発行をセキュアVM160が実行する構成としてもよい。この信頼性確認機能を有することによって、アプリケーション実行部150において実行されるアプリケーションについての信頼性確認が可能となるため、アプリケーションレイヤ(AVレイヤ)のロバストネス(Robustness)に特に制限を設けることなく、従来通りの実装で良い点が非常に大きな利点となる。
アプリケーション実行部150としてのAVレイヤにおいて実行されるアプリケーションは、通常のCPUで処理されることが多く、高度なロバストネス(Robustness)が要求されると実装コストが非常に高くなってしまうが、本処理例の如く、セキュアVM160と、アプリケーション実行部150との間での信頼性確認を実行可能としたことで、プリケーション実行部150において実行されるアプリケーションに対して高度なロバストネス(Robustness)が要求することのない設定が可能となる。
このように、セキュアVM160とアプリケーション実行部150は、レジスタ(PSR)を介してセキュリティ情報や装置情報のやり取りを行い、アプリケーション実行部150のコンテンツ制御部152は、PSRを介してセキュアVM160から提供される装置情報、すなわち、セキュアVM160が証明書から取得した自装置対応のデバイス識別子、モデル識別子、バージョン識別子、リビジョン識別子情報や、DiscoveryRAMによる処理によって取得した装置情報に基づいて、装置に対応した最適なコンテンツの選択を実行し、必要に応じて再生処理態様を決定、変更して最適なコンテンツ再生を実行する。
コンテンツ制御部152は、デバイス識別子、モデル識別子、バージョン識別子、リビジョン識別子情報などの装置の固定的な情報に基づいてコンテンツ再生制御を実行するばかりでなく、DiscoveryRAMによる装置状況確認処理の結果情報についても考慮した処理を行なう。すなわち、先に説明したように、
*装置のハードウェアやアプリケーション等のソフトウェア実装情報
*ハードウェア構成に起因する装置性能情報
*ベンチマークの実行結果など直接的に性能を示す情報
*現在の再生装置状態に関する情報
*ダウンロード、録画など別の処理を実行中かなどの処理実行情報
*コンテンツ再生に使用できるリソース情報
これら、動的に変化する装置情報に基づいて、再生制御を行なう。この結果、例えば再生処理に際して、再生コンテンツの映像が乱れたり再生不能に陥ったりといった再生エラーが防止され、装置の機能や状況に応じた最適なコンテンツ再生が実現される。
[6.情報処理装置の構成]
次に、上述した処理を実行する情報処理装置の構成について図14、図15を参照して説明する。図14は、図1に示す構成図において、主に本発明に関連する処理を実行する機能を抽出して簡潔に示した機能構成図であり、図15は、情報処理装置のハードウェア構成例について示すブロック図である。
まず、図14を参照して本発明の情報処理装置の実行するコンテンツ制御処理についてまとめて説明する。図14に示す情報記録媒体610には、コンテンツ611、コンテンツコード612が記録されている。なお、情報記録媒体610には、先に図1を参照して説明したようにこの他にも様々なデータが記録されているが、図14には、その一部のみを示している。コンテンツコード612には、装置モデル、バージョンなどを調べる際に適用する装置確認処理用コード613、セキュリティチェックのためのセキュリティチェックコード614、再生コンテンツのデータ変換に適用する変換テーブル615が含まれる。
コンテンツ制御部623は、図1に示す再生アプリケーション実行部150のコンテンツ制御部152に相当し、情報記録媒体610に記録されたコンテンツ611の再生制御を実行する。セキュリティチェック実行部621は、図1に示すセキュアVM160に相当し、情報記録媒体610に記録されたコンテンツコード613を取得し、コンテンツコード613に従ったセキュリティチェック処理を実行する。コンテンツ制御部623は、セキュリティチェック実行部621におけるセキュリティチェック処理において取得した装置情報をレジスタ(PSR)622を介して受領し、受領した装置情報に基づいて装置に適応した再生コンテンツの選択または再生態様の決定処理を実行する。再生コンテンツは出力部624を介して出力される。
セキュリティチェック実行部621は、コンテンツコード612に含まれる装置確認処理用コード613に基づいて、情報処理装置の記憶部から装置識別子を含む装置証明書を取得して装置確認処理を実行し、装置確認処理の後、装置証明書に記録された装置識別子を取得し、さらに取得した装置識別子に対応するコンテンツコードを適用したセキュリティチェック処理を実行し、取得した情報をレジスタ622に格納する。コンテンツ制御部623は、レジスタ622を介して記装置証明書に記録された装置識別子を取得して該装置識別子に基づいて装置に適応した再生コンテンツの選択または再生態様の決定処理を実行する。
情報記録媒体610に格納されたコンテンツ611は、再生ビットレートの設定を変更して再生可能としたコンテンツや、装置の持つ機能に応じたグラフィック処理などの処理を実行する複数の異なるプログラム情報を含むアプリケーションコンテンツ(例えばJava(登録商標)プログラム)などがあり、コンテンツ制御部623は、セキュリティチェック処理に際して確認された自装置のデバイス、モデル、またはバージョン情報に基づいて、これらのコンテンツ中から、自装置の持つ機能に応じたコンテンツを選択して再生処理を開始する。
また、セキュリティチェック実行部621は、コンテンツコードに基づくセキュリティチェック処理として、システム情報を格納したメモリからの装置情報取得処理を実行し、コンテンツ制御部623は、システム情報を取得してシステム情報に基づいてシステム状態に適応した再生コンテンツの選択または再生態様の決定処理を実行する。なお、セキュリティチェック実行部621の取得するシステム情報には、コンテンツ再生処理実行中におけるシステムのハードウェアの利用情報、またはソフトウェアの実行情報の少なくともいずれかのシステム環境情報を含み、コンテンツ制御部623は、システム環境情報に基づいて、最適なコンテンツ再生が実行されるように再生コンテンツの選択または再生態様の切り替えを実行する。
次に、図15を参照して、上述した処理を実行する情報処理装置のハードウェア構成例について説明する。情報処理装置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には、例えば、前述した各種の鍵データ、証明書データが格納される。
コンテンツ再生またはコンテンツの外部出力に際しては、情報記録媒体から取得したコンテンツコードによる装置確認処理、セキュリティチェック処理が実行され、装置情報に基づくコンテンツ選択、再生制御など、先に説明した処理シーケンスに従った処理を実行する。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。