本発明は、アップグレードモジュール、アプリケーションプログラム、サーバ、及びアップグレードモジュールの配信システムに関する。
機器のファームウェア、例えば、コンピュータの記録機器(ドライブ装置)のファームウェアに関して、そのバージョンアップは、従来より、記録機器のメーカがバージョンアップ用のプログラムをユーザに配布することにより、行なわれている。この場合、ユーザは、例えば記録装置メーカのWebサイトにアクセスして、バージョンアップ用のプログラムをダウンロードしたり、又は、記録装置メーカから配布されるバージョンアップ用のプログラムが格納されたCD−ROMを入手することにより、ファームウェアのバージョンアップを行なっていた。
なお、特許文献1には、記録可能な情報記録媒体に記録される暗号化情報を用いて前記情報記録媒体に記録すべき記録情報を暗号化し、暗号化記録情報を生成する暗号化工程と、前記生成された暗号化記録情報を、前記暗号化情報が予め記録された前記情報記録媒体に当該暗号化記録情報を記録する情報記録装置に対して電気通信回線を介して配信する配信工程とを備えることを特徴とする情報配信方法が開示されている。
上記のように従来の手法で行なわれるファームウェアのバージョンアップは、ファームウェアに含まれるバグへの対応や機器の動作の安定性を向上させる等のファームウェアの基本機能(機器の基本機能)に関するものであり、機器の全てのユーザが行なうことができるものであった。
一方、上記のようなファームウェアの基本機能のバージョンアップとは異なり、ファームウェアの基本機能以外の機能を追加するアップグレードは、機器の全てのユーザが行なえるのではなく、特別な条件の下でのみ行なえることが望まれる。例えば、ファームウェアに追加される機能が、暗号化された情報の記録を可能にする機能である場合のように著作権の保護に関連する機能である場合には、特定の条件下のユーザのみがファームウェアのアップグレードを行なえるようにすることで、セキュアな環境の構築が可能になる。
本発明の目的は、機器のファームウェアのアップグレードが機器の全てのユーザに許可されるのではなく、特別な条件でのみ許可されることを可能にする、アップグレードモジュール、アプリケーションプログラム、サーバ、及びアップグレードモジュールの配信システムを提供することを目的としている。
請求項1に記載の発明は、機器の動作に関する機能を実現するために必要な前記機器のファームウェアのアップグレードを行なうように構成されているアップグレードモジュールであって、前記機器の動作を利用するアプリケーションプログラムの一部として動作することを特徴としている。
請求項2に記載の発明は、機器の動作に関して固有の機能を有するアプリケーションプログラムであって、前記固有の機能を実現するために必要な前記機器のファームウェアのアップグレードを行なうアップグレードモジュールを備えたことを特徴としている。
請求項4に記載の発明は、機器の動作に関して固有の機能を有する認証されたアプリケーションプログラムであって、前記認証されたアプリケーションプログラムのみが発行可能であり、前記固有の機能を実現するために必要な前記機器のファームウェアのアップグレードが行われることにより追加された機能を使用するためのコマンドを発行することにより、前記追加された機能の使用が許可されるように構成されていることを特徴としている。
図1は、本発明のアプリケーションプログラムの第1実施形態が用いられる、ファームウェアのアップグレードシステムの概略構成を示すブロック図である。
図2は、本発明のアプリケーションプログラムの第1実施形態に含まれるアップグレードモジュールによって、ドライブ装置のファームウェアがアップグレードされる状態を説明するための図である。
図3は、本発明のアプリケーションプログラムの第1実施形態に含まれるアップグレードモジュールによって、アップグレードされる前のファームウェアによって制御されるドライブ装置の動作を説明するための図である。
図4は、本発明のアプリケーションプログラムの第1実施形態に含まれるアップグレードモジュールによって、アップグレードされた後のファームウェアによって制御されるドライブ装置の動作を説明するための図である。
図5は、本発明のアプリケーションプログラムの第1実施形態に含まれるアップグレードモジュールによってファームウェアがアップグレードされることにより追加される機能と、アップグレードされる前から存在する基本機能を説明するための図である。
図6は、本発明のアプリケーションプログラムの第1実施形態において、複数種類のアプリケーションプログラムに含まれるアップグレードモジュールによってファームウェアがそれぞれアップグレードされることにより追加される機能を説明するための図である。
図7は、本発明のアプリケーションプログラムの第1実施形態において、複数種類のアプリケーションプログラムに含まれるアップグレードモジュールによってファームウェアがそれぞれアップグレードされることにより追加された機能によって制御されたドライブ装置により記録ディスクに記録されたデータを説明するための図である。
図8は、本発明のアプリケーションプログラムの第1実施形態の動作を示すフローチャートである。
図9は、本発明のアプリケーションプログラムの第1実施形態の他の動作を示すフローチャートである。
図10は、本発明のアプリケーションプログラムの第2実施形態が用いられる、ファームウェアのアップグレードモジュールの配信システムの概略構成を示すブロック図である。
図11は、本発明のアプリケーションプログラムの第1実施形態の更に他の動作を示すフローチャートである。
符号の説明
50 ユーザ端末
55 ドライブ装置
60 記録ディスク
30 ドライブ装置メーカ
30S ドライブ装置メーカのサーバ
40 アプリケーションメーカ
40S アプリケーションメーカのサーバ
70 コンテンツサーバ
100 アプリケーションプログラム
100−1 第1のアプリケーションプログラム
100−2 第2のアプリケーションプログラム
100−4 第4のアプリケーションプログラム
151 アップグレードモジュール
151−1 第1のアップグレードモジュール
151−2 第2のアップグレードモジュール
151−4 第4のアップグレードモジュール
230 ファームウェア
231 基本機能
232a,232b 追加された機能
500 コンテンツ情報
501 暗号化データ
502 コンテンツデータ
600 記録ディスクの1セクターに対応するデータエリア
600−1 記録ディスクの1セクターに対応するデータエリア
600−2 記録ディスクの1セクターに対応するデータエリア
600−3 記録ディスクの1セクターに対応するデータエリア
601 セクターヘッダ
601a 暗号化データが記録されるためのエリア
602 ユーザデータエリア
D−1 データ
D−2 データ
K 暗号キー
(第1実施形態)
以下、図1から図9を参照して、本発明のアプリケーションプログラムの一実施形態について詳細に説明する。
まず、本実施形態のアプリケーションプログラムについて説明する。
一般に、アプリケーションプログラムは、ある特定の目的のために設計されたソフトウェアであり、どのソフトウェアにも共通する基本的な機能をまとめたOSに対して、ユーザが必要とするものが組み込まれて利用される。アプリケーションプログラムの例として、ライティングソフトやオーサリングソフト、動画/音楽再生ソフト、ゲームソフトなどの他、ファイル圧縮、コンピュータウィルス駆除、メモリ管理などのユーティリティソフトが挙げられる。アプリケーションプログラムがPC(パーソナルコンピュータ)上で実行されることにより、アプリケーションプログラムの基本機能が実現され、上記特定の目的が達成される。本実施形態のアプリケーションプログラムは、上記の通常一般のアプリケーションプログラムに対して広く適用可能である。
また、一般に、ハードウェア(機器)の基本的な制御を行なうために機器に組み込まれているファームウェア(FW)に対して、大幅な改良による大規模な機能の追加(アップグレード)が行われることがある。この場合、ファームウェアのアップグレードを行うためには、ファームウェアに対してアップグレードの機能を追加するためのプログラム、即ち、アップグレードモジュールが必要とされる。
以下、具体例として、アプリケーションプログラムが、“暗号化されたコンテンツを記録すること”を基本機能とするものであり、また、ファームウェアが“PCに搭載された記録再生機器(ドライブ装置)”の基本的な制御を行なうためのものである場合について説明する。
図1は、本実施形態のアプリケーションプログラムが用いられる、ファームウェアのアップグレードシステムの概略構成を示す図である。上記のように、アプリケーションプログラム100は、コンテンツを記録するためのアプリケーションプログラム(ライティングソフトウェアないしオーサリングソフトウェア)であり、その基本機能(アプリケーションプログラム100に固有な機能)は、暗号化されたコンテンツを記録ディスク60に記録するという機能である。
アプリケーションプログラム100は、ユーザ端末(PC)50上で実行される。ユーザ端末50には、記録ディスク60(DVD)の記録再生が可能なドライブ装置55が備えられている。アプリケーションプログラム100がユーザ端末50上で実行されることにより、ドライブ装置55により記録ディスク60にコンテンツが記録される。ドライブ装置55の基本的な制御は、ファームウェア230により行なわれる。
アプリケーションプログラム100は、ビデオ編集機能101と、データ書き込み機能102と、特殊機能103と、認証機能104と、アップグレード機能105とを備えている。これらの機能の実行に際しては、アプリケーションプログラム100が有する認証キー106と、ライセンス情報107が用いられる。
ビデオ編集機能101は、通常一般のオーサリングソフトウェアが有するビデオ編集機能である。データ書き込み機能102は、コンテンツ情報を記録ディスク60に書き込む機能である。特殊機能103は、アプリケーションプログラム100に固有な機能(基本機能)である、「暗号化されたコンテンツ情報を記録ディスク60に記録すること」の実行に際して必要となる特殊な機能である。認証機能104は、ドライブ装置55等を認証する機能である。
アップグレード機能105は、以下に述べるアップグレードプログラム150等が実行されることにより実現される機能である。認証キー106は、ファームウェア230のアップグレードされた機能を使用できるようにするために用いられる。ライセンス情報107は、アップグレードプログラム150等が真正にライセンスされたものであることを示す情報である。
アプリケーションプログラム100は、アップグレードプログラム150を有している。アップグレードプログラム150は、アップグレードモジュール151を含んでいる。アップグレードモジュール151は、後述するように、ユーザ端末50のドライブ装置55のファームウェア230に対して特殊制御機能232を追加するためのプログラムである。アップグレードモジュール151は、単独で実行されるものではなく、アップグレードプログラム150から呼び出される機能小単位のプログラムである。アップグレード機能105は、アップグレードプログラム150が実行されることにより実現される機能である。
ファームウェア230は、記録再生制御機能231と、特殊制御機能232と、認識番号233を有している。ドライブ装置55の基本的な制御は、ファームウェア230の記録再生制御機能231に基づいて行なわれる。しかし、ドライブ装置55において、アプリケーションプログラム100が有する、暗号化されたコンテンツを書き込む機能(上記基本機能)が実現されるためには、ファームウェア230に、アプリケーションプログラム100の上記基本機能が実現されるための特殊制御機能232を追加するアップグレードが必要とされる。この特殊制御機能232については後述する。ファームウェア230に特殊制御機能232を追加するアップグレードは、アップグレードモジュール151を含むアップグレードプログラム150とアプリケーションプログラム100が協働することにより実行される。認識番号233は、アップグレードによりファームウェア230に追加された特殊制御機能232にそれぞれ付与される番号である。
上記のように、アップグレードモジュール151を含むアップグレードプログラム150は、アプリケーションプログラム100と協働する。アプリケーションプログラム100がユーザ端末50によって実行されることで、アップグレードプログラム150によってファームウェア230に特殊制御機能232を追加するアップグレードが行われ、アップグレードされたファームウェア230を使用する機能(特殊機能103)が実現される。
なお、本明細書において、ファームウェアのアップグレードとは、ファームウェアのバージョンアップとは異なる意味で用いられる。ファームウェアのバージョンアップとは、上記のように、ファームウェアに含まれるバグへの対応やドライブ装置55の動作の安定性を向上させる等のファームウェアの基本機能(ドライブ装置55の基本機能)の改善に関するものである。ファームウェアのバージョンアップは、通常、ドライブ装置55のメーカ側から提供されるバージョンアップ用プログラムを入手することにより、ドライブ装置55の全てのユーザが自由に行なえるようになっている。これに対して、本実施形態におけるファームウェアのアップグレードは、ファームウェアの上記基本機能以外の機能をファームウェアに追加するものをいう。ここで、「ファームウェアの上記基本機能以外の機能」は、アプリケーションプログラム100の上記基本機能が実現されるための特殊制御機能232に対応している。
アプリケーションプログラム100は、読み取り専用の記録媒体に記録された形でパッケージプログラムとして、ユーザに対して販売等の譲渡がなされる。図1の符号Y1に示すように、アップグレードプログラム150(アップグレードモジュール151を含む)又はアップグレードモジュール151は、ドライブ装置メーカ30からアプリケーションプログラム100を製造するアプリケーションメーカ40にライセンス(販売等の譲渡を含む)される。この場合、アップグレードモジュール151がドライブ装置メーカ30から真正にライセンスされたものであることを示すライセンス情報107がドライブ装置メーカ30からアプリケーションメーカ40に付与される。
ドライブ装置55のファームウェア230の情報を有しているのは、ドライブ装置メーカ30であり、アプリケーションメーカ40は、ファームウェア230の情報を所有していないため、ファームウェア230をアップグレードさせるアップグレードモジュール151(アップグレードプログラム150)は、ドライブ装置メーカ30だけが製造することができる。
アプリケーションメーカ40は、そのライセンスされたアップグレードモジュール151(アップグレードプログラム150)及びライセンス情報107を含めた形でアプリケーションプログラム100を製造して、ユーザに対して販売等を行なう。即ち、アプリケーションプログラム100は、その一部にアップグレードモジュール151(アップグレードプログラム150)を有する単一のパッケージソフトとして、ユーザに対して販売等の譲渡がなされる。アプリケーションメーカ40のデータベース41では、アプリケーションプログラム100と、ドライブ装置メーカ30から付与されたライセンス情報107とが管理される。
アプリケーションプログラム100のアップグレード機能105について説明する。図2に示すように、アップグレードモジュール151を含むアップグレードプログラム150を有する特定のアプリケーションプログラム100、換言すれば、ドライブ装置メーカ30からライセンスを受けた特定のアプリケーションプログラム100のみが、ドライブ装置55のファームウェア230に対して、アプリケーションプログラム100の上記基本機能を実現するための特殊制御機能232を追加するアップグレードを行なうことが許可されている。
また、上記のようにアプリケーションプログラム100の上記基本機能を実現するための特殊制御機能232を有するようにアップグレードがなされたドライブ装置55のファームウェア230を使用する許可は、ドライブ装置メーカ30からライセンスを受けた特定のアプリケーションプログラム100に対してのみ与えられている。
これにより、アプリケーションプログラム100を購入等したユーザのみがアップグレードモジュール151を含むアップグレードプログラム150を用いてドライブ装置55のファームウェア230をアップグレードすることができ、そのアップグレードされたファームウェア230を用いて、アプリケーションプログラム100の上記基本機能である、暗号化されたコンテンツを記録ディスク60に記録することが許可される。これにより、コンテンツの著作権の保護が図られる。
この場合、ドライブ装置メーカ30からライセンスを受けた特定のアプリケーションプログラム100の中には、アップグレードされたファームウェア230を使用する機能(特殊機能103)を有するが、ファームウェア230のアップグレード機能105を有さない、即ち、自らがファームウェア230をアップグレードするためのアップグレードモジュール151を含むアップグレードプログラム150を有さないアプリケーションプログラム100があってもよい。その特殊機能103の有無の判断は、後述するように、認証キー106を用いて行なわれる(図9参照)。
図1に示すように、コンテンツサーバ70からコンテンツ情報500が電子配信される。この電子配信に際しては、例えば、DRM(デジタルライツマネージメント)の方法によりコンテンツ情報500が送信される。記録ディスク60は、複数回の情報記録(情報書き換え)が可能なDVDであり、暗号キーKの情報がその製造時において記録され、その暗号キーKの情報が記録されている状態で販売等の譲渡がなされる。
ここで、コンテンツサーバ70からコンテンツ情報500が電子配信されるに際しては、以下の二つの形式がある。即ち、そのうちの一つは、コンテンツ情報500が記録ディスク60に記録されている暗号キーKを用いて暗号化されていない状態で、コンテンツサーバ70からユーザ端末50に電子配信される形式(形式1)であり、残りの一つは、コンテンツ情報500が暗号キーKを用いて暗号化された状態でコンテンツサーバ70からユーザ端末50に電子配信される形式(形式2)である。
形式1及び形式2について、それぞれ説明する。ここでは、前提として、ユーザ端末50がアプリケーションプログラム100のアップグレードモジュール151(アップグレードプログラム150)を実行することにより、ファームウェア230のアップグレード(特殊制御機能232の追加)が行われているものとする。
(形式1)
ユーザ端末50は、コンテンツサーバ70からコンテンツ情報500を受信すると、アプリケーションプログラム100を実行して、記録ディスク60の暗号キーKを用いて暗号化を行った後に、ドライブ装置55を動作させることにより、その暗号化されたコンテンツ情報500を記録ディスク60に記録する。
(形式2)
ユーザ端末50は、記録ディスク60の暗号キーKの情報をコンテンツサーバ70に送信し、コンテンツサーバ70では、その暗号キーKによってコンテンツ情報500の暗号化が行われる。その後に、その暗号化されたコンテンツ情報500がユーザ端末50に配信される。ユーザ端末50は、アプリケーションプログラム100を実行してドライブ装置55を動作させることにより、その暗号化されたコンテンツ情報500を記録ディスク60に記録する。
上記形式1及び形式2のいずれの場合においても、暗号キーKにより暗号化されたコンテンツ情報500が記録ディスク60に記録されると、予め記録されている暗号キーKを用いて情報の暗号化を解読して出力する形式の既存の情報再生装置全てにおいて、上記暗号化されたコンテンツ情報500を解読して再生することができる。
一般に、DVDに暗号化された情報が記録されるためには、DVDのうち、通常のファームウェア(アップグレードされていないファームウェア)によって制御されるドライブ装置では、自由に記録することができないエリア(後述する例ではセクターヘッダ)に対する自由な記録が可能な状態とされた上で、同エリアにユーザデータの暗号化に必要なデータ(暗号化されたデータの書き込みに必要なデータ)が記録される必要がある。
ここで、通常のファームウェア(記録再生制御機能231)によって制御されるドライブ装置では、同エリアに対する自由な記録ができないようにされることで、DVDに暗号化された情報が記録できないようにされており、これにより、コンテンツ情報の著作権保護が図られている。このことに関して、図3を参照して、具体的に説明する。
図3において、コンテンツサーバ70から配信されたコンテンツ情報(上記形式1及び形式2を含む)500には、コンテンツの内容を示すコンテンツデータ502の他に、コンテンツデータ502の暗号化に必要なデータ(暗号化データ)501が含まれている。
記録ディスク60の1セクターに対応するデータエリア600は、セクターヘッダ601と、ユーザデータエリア602とを有している。セクターヘッダ601は、アドレス用のセクターIDのデータが記録されるためのエリア(図示せず)と、ユーザデータエリア602に記録されるユーザデータ(コンテンツデータ502)の暗号化に必要な暗号化データ501が記録されるための暗号化データ記録エリア601aとを有している。
なお、本例では、暗号化データ記録エリア601aは、セクターヘッダ601に設けられているとして説明するが、暗号化データ記録エリア601aが設けられる場所は、セクターヘッダ601に限定されず、ユーザデータエリア602以外の特定の場所であればよい。
アプリケーションプログラム100の実行により、ドライブ装置55が記録ディスク60に暗号化されたコンテンツ情報500を記録するためには、セクターヘッダ601に暗号化データ501を記録するとともに、その記録された暗号化データ501を用いて暗号化されたコンテンツデータ502を、ユーザデータエリア602に記録する必要がある。
アプリケーションプログラム100が有する特殊機能103とは、アップグレードされたファームウェア230を使用する機能であり、セクターヘッダ601に暗号化データ501を記録するとともに、その記録された暗号化データ501を用いて暗号化されたコンテンツデータ502を、ユーザデータエリア602に記録する機能である。
ここで、上記のように、通常一般のファームウェアによって制御されるドライブ装置55では、コンテンツ情報500の著作権保護の観点から、記録ディスク60のセクターヘッダ601への自由な記録ができないようにされている。具体的には、通常一般のファームウェアによって制御されるドライブ装置55は、セクターヘッダ601の暗号化データ記録エリア601aに、一義的にゼロのデータを記録する。これにより、暗号化データ501がセクターヘッダ601(暗号化データ記録エリア601a)に記録されることができないようになっている。
このことから、ユーザ端末50が、セクターヘッダ601に記録された暗号化データ501を使って(上記形式1の場合には更に暗号キーKの情報を使って)、暗号化されたコンテンツデータ502をユーザデータエリア602に記録しようとしても、セクターヘッダ601に暗号化データ501を記録できないため、暗号化されたコンテンツデータ502をユーザデータエリア602に記録することができないようにされている。
上記のように、暗号化されたコンテンツ情報500を記録ディスク60に記録するためには、ドライブ装置55によるセクターヘッダ601への自由な記録が可能とされている必要がある。しかしながら、どのドライブ装置においてもセクターヘッダ601への自由な記録が可能とされると、コンテンツ情報500の著作権保護の観点におけるセキュアレベルが低下してしまう。
そこで、本実施形態では、特別に許可されたアプリケーションプログラム100のアップグレードモジュール151(アップグレードプログラム150)がドライブ装置55のファームウェア230をアップグレードして、図4に示すように、ドライブ装置55による記録ディスク60のセクターヘッダ601に対する自由な記録ができるようにされている。
その結果、アップグレードモジュール151(アップグレードプログラム150)によりアップグレードされたファームウェア230によって制御されるドライブ装置55は、セクターヘッダ601の暗号化データ記録エリア601aに、暗号化データ501を記録できるようになる。これにより、ユーザ端末50は、セクターヘッダ601に記録された暗号化データ501を使って(上記形式1の場合には更に暗号キーKの情報を使って)、暗号化されたコンテンツデータ502をユーザデータエリア602に記録することが可能となる。
図8を参照して、ファームウェア230のアップグレードを行なう際の処理について説明する。
ユーザがユーザ端末50を起動すると、ユーザ端末50がドライブ装置55を認識する(ステップS101)。ユーザ端末50は、アプリケーションプログラム100の実行を開始する(ステップS102)。ドライブ装置55は、パッケージソフトウェアであるアプリケーションプログラム100のディスク再生を開始する(ステップS103)。
ドライブ装置55とアプリケーションプログラム100とは、相互認証されることにより、そのアプリケーションプログラム100とドライブ装置55はペアの形でしか使用できなくなる。あるアプリケーションプログラム100によって、ある一のドライブ装置55のファームウェア230のアップグレードが行われると、他のドライブ装置55のファームウェア230をアップグレードすることはできず、また、そのアプリケーションプログラム100は、上記一のドライブ装置55でのみ使用できることになる。これらのことから、コンテンツの不正なコピーが抑制される。また、アプリケーションプログラム100を購入したユーザのユーザ登録が、アプリケーションメーカ40に対して行なわれる(図示せず)。
ユーザ端末50では、アプリケーションプログラム100のアップグレードプログラム150又はアップグレードモジュール151を検出し(ステップS104)、アップグレードモジュール151をドライブ装置55に送信する(ステップS105)。また、ユーザ端末50は、ライセンス情報107をドライブ装置55に送信する(ステップS106)。ここで、ユーザ端末50からドライブ装置55に送信されるライセンス情報107は、予めアプリケーションメーカ40側からユーザ端末50に通知されている正しいライセンス情報107である。
ドライブ装置55は、ユーザ端末50から、アップグレードモジュール151とライセンス情報107を受信する(ステップS107)。次いで、ドライブ装置55では、ステップS108において、受信したライセンス情報107と、アプリケーションプログラム100に含まれているライセンス情報107とを比較して、アプリケーションプログラム100に含まれているライセンス情報107が正しいか否かを判定する。
その判定の結果、アプリケーションプログラム100に含まれているライセンス情報107が正しいと判定された場合には、ドライブ装置メーカ30から提供されたアップグレードモジュール151であると判断されて、ファームウェア230のアップグレードが可能であると判定される(ステップS108−Y)。
ドライブ装置55において、ステップS108の判定の結果、アップグレードが可能であると判定された場合には、アップグレードモジュール151により、ファームウェア230のアップグレードが実行される(ステップS109)。これにより、ファームウェア230の特殊制御機能232が実行可能な状態となる。
次いで、ドライブ装置55では、認識番号233がメモリに記録される(ステップS110)。上記のように、認識番号233とは、アップグレードによりファームウェア230に追加された機能にそれぞれ付与される番号である。
ファームウェア230において、ファームウェア230の基本機能(記録再生制御機能231)以外の機能が追加されるためのアップグレードが行なわれた場合には、ファームウェア230の基本機能(記録再生制御機能)231のバージョンアップと区別可能な認識番号233が付与される。
例えば、ファームウェア230の認識番号233がVer.−x.y−abで表される場合、xは、ファームウェア230の基本機能231のメジャーバージョン、yは基本機能231のマイナーバージョン、abはファームウェア230のアップグレードをそれぞれ表すことができる。この場合、基本機能231のバージョンを表すx,yと、基本機能231以外の機能が追加されるためのアップグレードを表すabは、互いに無関係な値を持つことになる。ステップS110では、上記ステップS109において実行されたアップグレードを表す認識番号233がメモリに記録される。
次いで、ドライブ装置55は、ファームウェア230のアップグレードに関する結果をユーザ端末50に通知する(ステップS111)。この場合、アップグレードが実行された場合には、そのアップグレードを表す認識番号233がユーザ端末50に通知され、アップグレードが不可能であると判定された場合(ステップS108−N)には、その旨がユーザ端末50に通知される。これにより、ユーザ端末50では、アップグレードが終了する(ステップS112)。
アプリケーションプログラム100は、複数種類用意されることができ、その場合、それぞれの種類のアプリケーションプログラム100によって、ファームウェア230のアップグレードによって追加される機能が異なるように構成することができる。
図5に示すように、ドライブ装置メーカ30により提供されたドライブ装置55のファームウェア230には、もともとドライブ装置55の基本動作を制御するための基本機能(記録再生制御機能231)が含まれている。ファームウェア230のバージョンアップが行なわれる場合には、このファームウェア230の基本機能(記録再生制御機能231)の部分の内容が変更又は更新(バージョンアップ)される。
これに対して、ユーザ端末50が、第1の種類のアプリケーションプログラム100(以下、図示はしないが「第1のアプリケーションプログラム100−1」と称する)をドライブ装置55を介して読み込むと、そのアップグレードモジュール151(以下、図示はしないが「第1のアップグレードモジュール151−1」と称する)により、その第1のアプリケーションプログラム100−1の固有の機能(基本機能)を実現するための機能(以下「第1アプリ実現機能」と称する)である特殊制御機能232(232a)が追加されるようにファームウェア230がアップグレードされる。
更に、ユーザ端末50が、第2の種類のアプリケーションプログラム100(以下、「第2のアプリケーションプログラム100−2」と称する)をドライブ装置55を介して読み込むと、そのアップグレードモジュール151(以下「第2のアップグレードモジュール151−2」と称する)により、その第2のアプリケーションプログラム100−2の固有の機能を実現するための機能(以下「第2アプリ実現機能」と称する)である特殊制御機能232(232b)が追加されるようにファームウェア230がアップグレードされる。
また、第3の種類のアプリケーションプログラム100(以下、「第3のアプリケーションプログラム100−3」と称する)が、第1のアプリケーションプログラム100−1の固有の機能と、第2のアプリケーションプログラム100−2の固有の機能の両方を有している場合には、そのアップグレードモジュール151(以下「第3のアップグレードモジュール151−3」と称する)により、第1のアプリケーションプログラム100−1の固有の機能と、第2のアプリケーションプログラム100−2の固有の機能の両方を実現するための両機能232a,232bが追加されるようにファームウェア230がアップグレードされる。
例えば、認識番号233において、アップグレードを表すabは、上記第1アプリ実現機能232aのアップグレードについては、“01”とされ、上記第2アプリ実現機能232bのアップグレードについては“02”とされ、第1のアプリケーションプログラム100−1の固有の機能と、第2のアプリケーションプログラム100−2の固有の機能の両方を実現するための両機能232a,232bのアップグレードについては、“12”とされることができる。
次に、アップグレードモジュール151に含まれる許可データについて説明する。
許可データは、その許可データを含むアップグレードモジュール151がファームウェア230のアップグレードを実行することが許可されていることを示すデータである。以下、図6及び図7の例を参照して説明する。
図7に示すように、第1のアプリケーションプログラム100−1は、その固有の機能として、暗号化されたコンテンツデータ502をユーザデータエリア602に記録する機能(以下、「第1単位機能」)と、第1のアプリケーションプログラム100−1に固有なデータ記録を行なう機能(第1のアプリケーションプログラム100−1用の特別なデータD−1を記録ディスク60に記録する機能,以下、「第2単位機能」)とを有している。
また、第2のアプリケーションプログラム100−2は、その固有の機能として、上記第1単位機能と、第2のアプリケーションプログラム100−2に固有なデータ記録を行なう機能(第2のアプリケーションプログラム100−2用の特別なデータD−2を記録ディスク60に記録する機能,以下、「第3単位機能」)とを有している。
また、第4のアプリケーションプログラム100−4は、その固有の機能として、上記第1単位機能を有している。
図6を参照して、ユーザ端末50が第1、第2及び第4のアップグレードモジュール151−1、151−2、151−4のそれぞれを実行したときに行われるファームウェア230のアップグレードについて説明する。
(第1のアップグレードモジュール151−1の実行)
ユーザ端末50が第1のアップグレードモジュール151−1を実行すると、上記第1アプリ実現機能232a(図5)がファームウェア230に追加される(ファームウェア230のアップグレード)。上記のように、第1アプリ実現機能232aは、第1のアプリケーションプログラム100−1の固有の機能である上記第1単位機能(暗号化されたコンテンツデータ502をユーザデータエリア602に記録する機能)と第2単位機能(第1のアプリケーションプログラム100−1に固有なデータ記録を行なう機能)を実現するためのファームウェア230の特殊制御機能232である。
この第1アプリ実現機能232aがファームウェア230に追加されるアップグレードが行われる際には、図6において、ファームウェア230に対して、符号UG1〜UG3で示す3つの単位機能のアップグレードが行われる。
第1アップグレードUG1は、上記第1単位機能(暗号化されたコンテンツデータ502をユーザデータエリア602に記録する機能)を実現するために、ドライブ装置55による記録ディスク60のセクターヘッダ601に対する自由な記録を可能にするためのアップグレードである。
第2アップグレードUG2は、アプリケーションプログラム100に固有な機能を実現するための機能を追加するアップグレードの実行の許可を与える認証のためのアップグレードである。
第3アップグレードUG3は、上記第2単位機能(第1のアプリケーションプログラム100−1に固有なデータ記録を行なう機能)を実現するためのアップグレードである。
ここで、第2アップグレードUG2について説明する。
ファームウェア230において第2アップグレードUG2が行なわれると、上記アプリケーションプログラム100に固有な機能を実現するための機能を追加するアップグレードの実行の許可を与える認証の機能が与えられる。ユーザ端末50は、そのファームウェア230の認証機能を用いて、第1のアップグレードモジュール151−1に第3アップグレードUG3を実行する許可を与えてよいか否かを判定する。
ここで、第1のアップグレードモジュール151−1には、予め第3アップグレードUG3を実行する許可が与えられており、その許可内容(第3アップグレードUG3を実行する許可が与えられている旨)を示す許可データ(図示せず)が含まれている。そこで、ユーザ端末50は、上記許可データに基づいて、第1のアップグレードモジュール151−1に第3アップグレードUG3の実行の許可を与えてよいと判定し、その判定結果を踏まえて、第3アップグレードUG3を行う。
(第2のアップグレードモジュール151−2の実行)
一方、ユーザ端末50が第2のアップグレードモジュール151−2を実行すると、上記第2アプリ実現機能232b(図5)がファームウェア230に追加される(ファームウェア230のアップグレード)。上記のように、第2アプリ実現機能232bは、第2のアプリケーションプログラム100−2の固有の機能である上記第1単位機能(暗号化されたコンテンツデータ502をユーザデータエリア602に記録する機能)と第3単位機能(第2のアプリケーションプログラム100−2に固有なデータ記録を行なう機能)を実現するためのファームウェア230の特殊制御機能232である。
この場合、第2のアプリケーションプログラム100−2に固有な機能のうち、上記第1単位機能は、第1のアプリケーションプログラム100−1の上記第1単位機能と共通しており、その機能が、既に第1のアップグレードモジュール151−1による上記第1アップグレードUG1により実現可能な状態とされている場合には、第2のアップグレードモジュール151−2の実行により、ファームウェア230に第1アップグレードUG1が行なわれることはない(図6の破線参照)。この場合、第3単位機能(第2のアプリケーションプログラム100−2に固有なデータ記録を行なう機能)を実現するための第4アップグレードUG4のみが行なわれる。
この場合、上記アップグレードUG4は、上記と同様に、上記アップグレードUG2による認証機能によって、そのアップグレードUG4の実行が許可された後に、そのアップグレードUG4が行われる。
(第4のアップグレードモジュール151−4の実行)
また、ユーザ端末50が第4のアップグレードモジュール151−4を実行すると、上記第4のアプリケーションプログラム100−4に固有の機能を実現するための機能がファームウェア230に追加される(ファームウェア230のアップグレード)。この場合、第4のアプリケーションプログラム100−4が固有の機能として有する上記第1単位機能は、第1のアプリケーションプログラム100−1の上記第1単位機能と共通しており、その第1単位機能が、既に第1のアップグレードモジュール151−1による上記第1アップグレードUG1により実現可能な状態とされている場合には、第4のアップグレードモジュール151−4の実行により、ファームウェア230に上記第1アップグレードUG1が行なわれることはない。
次に、アプリケーションプログラム100に含まれる特別コマンドについて説明する。
ここでは、第2及び第4のアップグレードモジュール151−2、151−4のそれぞれが実行される前に、第1のアップグレードモジュール151−1が実行された場合を例にとり説明する。
上記図6及び図7のケースにおいて、第2及び第4のアプリケーションプログラム100−2,100−4は、それぞれ、ドライブ装置メーカ30からのライセンスのもと、第2及び第4のアプリケーションプログラム100−2,100−4に固有な機能を実現するための特別コマンド(図示せず)を発行できるよう構成されている。即ち、第2及び第4のアプリケーションプログラム100−2,100−4には、それぞれ、その特別コマンドがプログラムされている。
即ち、ユーザ端末50は、第2及び第4のアプリケーションプログラム100−2,100−4のそれぞれを実行したときに、既に第1のアップグレードモジュール151−1による第1アップグレードUG1により実現可能な状態とされている第1単位機能を実現するための特別コマンドを発行する。これにより、第2及び第4のアプリケーションプログラム100−2,100−4のそれぞれに固有な機能を実現するために必要な第1単位機能を実現することができる。
上記のケースにおいて、ドライブ装置メーカ30からライセンスを受けていない(認証されていない)一般のアプリケーションプログラム(図示せず)は、上記特別コマンドを発行できない(上記特別コマンドがプログラムされていない)ため、ユーザ端末50により実行されても、ファームウェア230においてアップグレードにより追加された機能232a,232bを不正に実行することはできない(図5)。即ち、ドライブ装置メーカ30からライセンスを受けていないアプリケーションプログラムがユーザ端末50により実行された場合には、ファームウェア230のうち上記基本機能に関する部分231だけしか使用されることができない。
ここで、上記特別コマンドを何らかの理由により、ドライブ装置メーカ30からライセンスを受けていないアプリケーションプログラムのメーカ等の側で知ることができ、その特別コマンドが発行された場合であっても、不正に上記追加された機能232a,232bを実行できないようにするために、例えば以下の構成が採用されることができる。
上記認証機能(上記第2アップグレードUG2)は、更に、アプリケーションプログラム100が、ドライブ装置メーカ30からライセンスを受けたものであるか否かを認証するように構成することができる。この場合、ユーザ端末50は、ドライブ装置55に登録された認識番号233に対して、アプリケーションプログラム100に格納された認証キー106(図1)を照合させることにより、アプリケーションプログラム100に使用が許可されている機能を特定するようにしてもよい。
以下に、アプリケーションプログラム100に含まれる認証キー106について説明する。この認証キー106は、ドライブ装置メーカ30からライセンスを受けた特定のアプリケーションプログラム100のみが、ファームウェア230のアップグレードされた機能を使用できるようにするために用いられる。
認証キー(又はID。以下同じ)106とは、あるアプリケーションプログラム100に使用が許可されている、ファームウェア230のアップグレードされた機能(特殊制御機能232)を示す識別子である。認証キー106は、例えば、図5において、アップグレードによりファームウェア230に追加された全ての機能(特殊制御機能232、同図の例では、符号232a,232bの2つ)のうち、あるアプリケーションプログラム100に使用が許可されている機能(特殊制御機能232)を判断するために用いられる。以下、認証キー106に関する2つの具体的適用例について説明する。
(第1の適用例)
例えば、図5において、ファームウェア230のアップグレードが行われると、そのアップグレードにより追加された機能に対応して付与された認識番号233がドライブ装置55に登録される(図8のステップS110)。上記例では、機能232aが追加されたときに、“01”の認識番号233が登録され、機能232bが追加されたときに、“02”の認識番号233が登録される。
一方、アプリケーションプログラム100に含まれる認証キー106は、そのアプリケーションプログラム100に使用が許可されている、ファームウェア230のアップデートされた機能の認識番号233に対応するデータを有している。図9に示すように、ユーザ端末50でアプリケーションプログラム100が実行開始されたときに(ステップS201)、ユーザ端末50は、ドライブ装置55に対して、登録されている認識番号233を要求する(ステップS202)。その要求に応答して、ドライブ装置55は、認識番号233をユーザ端末50に送信する(ステップS203)。
ユーザ端末50は、認証キー106と、認識番号233を照合する(ステップS204)。その照合の結果に基づいて、アップグレードされたファームウェア230の機能(特殊制御機能232)は、そのアプリケーションプログラム100に使用が許可されているか否かが判定される(ステップS205)。その判定の結果、そのアプリケーションプログラム100に使用が許可されている特殊制御機能232に対応する特殊機能103は、実行可能な状態に設定され(ステップS206)、そうではない特殊制御機能232に対応する特殊機能103は実行不可能な状態に設定される(ステップS207)。
その後、アプリケーションプログラム100が実行状態とされる(ステップS208)。このとき、アプリケーションプログラム100に含まれる特殊機能103は、実行可能な状態(ステップS206)と、実行不可能な状態(ステップS207)のいずれかに設定されている。
上記のように、ユーザ端末50は、そのアプリケーションプログラム100を実行するときには、その照合の結果(ステップS100)に応じて、認証されたファームウェア230の機能(そのアプリケーションプログラム100に使用が許可されているファームウェア230の機能)のみを用いる。以下具体例を用いて説明する。
例えば、ファームウェア230において、上記2つの機能232a,232bのアップグレードがなされ、ドライブ装置55に“01”と“02”の認識番号233が登録されている場合を想定する。第2のアプリケーションプログラム100−2には、そのうちの一つの機能(第2アプリ実現機能)232bの使用しか許可されておらず、その機能232bのみに対応した認証キー106が含まれているとする。その場合、ユーザ端末50は、ステップS204において、“01”と“02”の認識番号233と第2のアプリケーションプログラム100−2の認証キー106との認証の結果、その第2のアプリケーションプログラム100−2に使用が許可されている機能が機能(第2アプリ実現機能)232bのみであることを認識し、その機能232bに対応する特殊機能103のみが実行可能状態に設定される。
この場合、第2のアプリケーションプログラム100−2において実行可能状態に設定される特殊機能103は、アプリケーションプログラム100に固有な機能である、上記第1単位機能と第3単位機能の実行に際して必要となる特殊な機能である。即ち、セクターヘッダ601に暗号化データ501を記録するとともに、その記録された暗号化データ501を用いて暗号化されたコンテンツデータ502を、ユーザデータエリア602に記録する機能(第1単位機能)と、第2のアプリケーションプログラム100−2用の特別なデータD−2を記録する機能(第3単位機能)の実行に際して必要となる特殊な機能である。言い換えれば、第2のアプリケーションプログラム100−2において実行可能状態に設定される特殊機能103は、第2アプリ実現機能232bを使用する機能である。
(第2の適用例)
例えば、上記図6及び図7のケースにおいて、ドライブ装置メーカ30からライセンスを受けたアプリケーションプログラム100に含まれる認証キー106は、ファームウェア230のうち、そのアプリケーションプログラム100に固有な機能(単位機能)を実現するために使用が許可される、上記単位機能に対応してアップグレードにより追加された機能を示すデータを有している。
例えば、第1のアプリケーションプログラム100−1の第1認証キー106は、第1のアプリケーションプログラム100−1に固有な機能(上記第1単位機能と第2単位機能)を実現するために使用が許可される、上記第1単位機能と第2単位機能に対応してアップグレードにより追加された第1アップグレードUG1と、第3アップグレードUG3の機能の使用が許可されるためのデータを有している。
同様に、第2のアプリケーションプログラム100−2の第2認証キー106は、第2のアプリケーションプログラム100−2に固有な機能(上記第1単位機能と第3単位機能)を実現するために使用が許可される、上記第1単位機能と第3単位機能に対応してアップグレードにより追加された第1アップグレードUG1と、第4アップグレードUG4の機能の使用が許可されるためのデータを有している。
また同様に、第4のアプリケーションプログラム100−4の第4認証キー106は、第4のアプリケーションプログラム100−2に固有な機能(上記第1単位機能)を実現するために使用が許可される、上記第1単位機能に対応してアップグレードにより追加された第1アップグレードUG1の機能の使用が許可されるためのデータを有している。
第2適用例では、認証キー106と、認識番号233の認証を行う点は、上記第1適用例と同様であるが、本適用例では、認識番号233が単位機能に対応して追加されたアップグレードに対して付与されている点が異なっている。
図7において、記録ディスク60の第1のセクター200−1は、第1のアプリケーションプログラム100−1を用いてコンテンツ情報500が記録された状態を示しており、第2のセクター200−2は、第2のアプリケーションプログラム100−2を用いてコンテンツ情報500が記録された状態を示しており、第3のセクター200−3は、第4のアプリケーションプログラム100−4を用いてコンテンツ情報500が記録された状態を示している。
ここでは、ファームウェア230において、第1アップグレードUG1(図6)がなされており、その第1アップグレードUG1に対応して付与された認識番号233がドライブ装置55に登録されているとする。ここで、第1、第2、及び第4のアプリケーションプログラム100−1、100−2、100−4の認証キー106には、いずれも第1アップグレードUG1により追加された機能の使用が許可されるためのデータが含まれている。第1アップグレードUG1により追加された機能(上記第1単位機能)は、第1アプリ実現機能232a、第2アプリ実現機能232b及び上記第4のアプリケーションプログラム100−4に固有の機能を実現するために必要な機能(第4アプリ実現機能、図示せず)のいずれの実現にも必要であるためである。
そのため、第1、第2、及び第4のアプリケーションプログラム100−1、100−2、100−4のいずれがユーザ端末50で実行された場合においても、第1アップグレードUG1により追加された機能の使用が許可される。その結果、図7に示すように、ドライブ装置55は、上記第1単位機能の実現、即ち、第1のセクター200−1、第2のセクター200−2及び第3のセクター200−3のそれぞれにおいて、上記エリア601aには、暗号化データ501を記録し、ユーザデータエリア602には、暗号化されたコンテンツデータ502を記録することができる。
また、ファームウェア230において、上記第2単位機能(第1のアプリケーションプログラム100−1に固有なデータ記録)を可能にするためのアップグレードUG3が行なわれているとする。ここで、第1のアプリケーションプログラム100−1には、アップグレードUG3により追加された機能の使用が許可されるための認証キー106のデータが含まれている。そのため、第1のアプリケーションプログラム100−1がユーザ端末50で実行された場合には、アップグレードUG3により追加された機能の使用が許可される。その結果、第1のセクター200−1には、第1のアプリケーションプログラム100−1用の特別なデータD−1が記録される。
また、同様に、ファームウェア230において、第2のアプリケーションプログラム100−2に固有なデータ記録を可能にするためのアップグレードUG4が行なわれているとする。ここで、第2のアプリケーションプログラム100−2には、アップグレードUG4により追加された機能の使用が許可されるための認証キー106のデータが含まれている。そのため、第2のアプリケーションプログラム100−2がユーザ端末50で実行された場合には、アップグレードUG4により追加された機能の使用が許可され、その結果、第2のセクター200−2には、第2のアプリケーションプログラム100−2用の特別なデータD−2が記録される。
上記において、データD−1及びデータD−2は、コンテンツサーバ70から配信されたコンテンツ情報500に含まれているデータである。データD−1及びデータD−2は、それぞれ、ファイルシステム(FS)にのっていない場所に記録されることができる。
第4のアプリケーションプログラム100−4を購入したユーザは、コンテンツサーバ70から配信されたコンテンツ情報500のうち少なくともデータD−1及びデータD−2を除いたコンテンツデータ502を記録ディスク60に記録することができる。第1のアプリケーションプログラム100−1を購入したユーザは、コンテンツ情報500のうちデータD−1を含むがデータD−2を除いたコンテンツデータ502を記録ディスク60に記録することができる。第2のアプリケーションプログラム100−2を購入したユーザは、コンテンツ情報500のうちデータD−2を含むがデータD−1を除いたコンテンツデータ502を記録ディスク60に記録することができる。
ユーザがコンテンツサーバ70からユーザ端末50に所望のコンテンツをダウンロードするときの手順について説明する。
まず、ユーザがユーザ端末50においてアプリケーションプログラム100の実行を開始する(図9のステップS201)。アプリケーションプログラム100は、ファームウェア230のアップグレードにより追加された特殊制御機能232を使用する特殊機能103を実行可能にするために、ドライブ装置55と照合作業を行なう(ステップS202〜ステップS205)。これにより、そのアプリケーションプログラム100の認証キー106に対応するファームウェア230の認識番号233が特定され、その認識番号233によって特定された特殊制御機能232に対応する特殊機能103が実行可能状態とされる(ステップS206)。
次に、ユーザは、ユーザ端末50とコンテンツサーバ70とを接続し、ダウンロードするコンテンツを選択し、クレジットカードなどを使ってコンテンツサーバ70側に所定の料金を支払って、コンテンツをダウンロードすると同時に、記録ディスク60のエリア601aに暗号化データ501を記録すると共にユーザデータエリア602に暗号化されたコンテンツ情報500を記録する。
この場合、上記のように、同一のコンテンツ情報500をユーザ端末50にダウンロードする場合であっても、そのユーザが所有するアプリケーションプログラム100(100−1、100−2、100−4のいずれか)によって、記録ディスク60に記録できるデータの範囲が異なるように構成することができる(図7の符号D−1及びD−2参照)。
ユーザは、コンテンツ情報500のダウンロードを終了した後は、ユーザ端末50から記録ディスク60を取り出すと共に、アプリケーションプログラム100の動作を終了させ、アプリケーションプログラム100の認証キー106による特殊機能103の認証(ステップS206)を解除する。これにより、ドライブ装置55は、ファームウェア230の基本機能231に関する部分のみによって制御され、アップグレードにより追加された特殊制御機能232が使用されることはできなくなる。
(第2実施形態)
次に、図10及び図11を参照して、第2実施形態について説明する。
第2実施形態において、上記第1実施形態と共通する点についての説明は省略し、特徴部分についてのみ説明する。
上記第1実施形態(図1)では、ユーザは、その一部にアップグレードモジュール151を有するアップグレードプログラム150が含まれた単一のパッケージソフトとしてのアプリケーションプログラム100を購入し、アプリケーションプログラム100をドライブ装置55に読み込ませることにより、自動的にアップグレードモジュール151及びアップグレードプログラム150がファームウェア230をアップグレードする構成とされていた。
これに対して、第2実施形態では、図10に示すように、アップグレードモジュール151及びアップグレードプログラム150は、アプリケーションプログラム100に含まれておらず、ユーザは、アップグレードモジュール151及びアップグレードプログラム150が含まれていないアプリケーションプログラム100をパッケージソフトとして購入する。
アップグレードモジュール151及びアップグレードプログラム150は、アプリケーションプログラム100を製造するアプリケーションメーカ40のサーバ40Sに用意されており、アプリケーションプログラム100を購入したユーザは、アプリケーションメーカ40のサーバ40Sからアップグレードモジュール151及びアップグレードプログラム150及びライセンス情報107をユーザ端末50にダウンロードする。
この場合、アップグレードモジュール151及びアップグレードプログラム150がアプリケーションメーカ40のサーバ40Sから、アプリケーションプログラム100の購入者のユーザ端末50に送信されるときには、そのアップグレードモジュール151及びアップグレードプログラム150とそのアプリケーションプログラム100とが1対1対応となるように暗号化された上で送信(電子配信)される(図11のステップS301)。
次いで、管理サーバ40Sと、アプリケーションプログラム100との間で、アプリケーションプログラム100の認証機能104等を用いて認証が行なわれた上で(ステップS302)、管理サーバ40Sは、ライセンス情報107を発行し、ユーザ端末50は、そのライセンス情報107を受信・保存する(ステップS304)。
ユーザ端末50では、その暗号化されたアップグレードモジュール151及びアップグレードプログラム150が復号化されて、そのアップグレードモジュール151及びアップグレードプログラム150により、上記第1実施形態と同様に、ライセンス情報107に基づいて、ドライブ装置55のファームウェア230がアップグレードされる(図8のステップS101〜ステップ112)。このファームウェア230のアップグレードにより追加された機能によって、アプリケーションプログラム100に固有の機能が実現される。
アプリケーションメーカ40が製造するアプリケーションプログラム100が、複数のドライブ装置メーカ30が製造するドライブ装置55において汎用的に使用されるようにするためには、アプリケーションメーカ40のサーバ40Sに、それら複数のドライブ装置メーカ30のドライブ装置55にそれぞれ対応したアップグレードモジュール151及びアップグレードプログラム150が用意されればよい。即ち、アップグレードモジュール151及びアップグレードプログラム150を含まないアプリケーションプログラム100は、複数のドライブ装置メーカ30のドライブ装置55の全てに共通な単一の種類のものが用意される一方、それら複数のドライブ装置メーカ30のドライブ装置55のファームウェア230にそれぞれ対応するように複数種類のアップグレードモジュール151及びアップグレードプログラム150が用意されればよい。
更に、アプリケーションメーカ40のサーバ40Sに用意されるアップグレードモジュール151及びアップグレードプログラム150は、ドライブ装置メーカ30のサーバ30Sから、電子配信されることができる。また更に、上記ではアップグレードモジュール151を含むアップグレードプログラム150を含まないアプリケーションプログラム100が、パッケージソフトとして販売されるとして説明したが、これに代えて、アップグレードモジュール151及びアップグレードプログラム150を含まないアプリケーションプログラム100もまた、アプリケーションメーカ40のサーバ40Sからユーザ端末50に電子配信されることができる。
上記実施形態では、機器の一例として、記録又は再生装置を用いて説明したが、本発明における機器は、記録又は再生装置に限定されない。
上記実施形態では、以下の項が開示される。
(項1)
機器50の動作に関する機能232aを実現するために必要な前記機器50のファームウェア230のアップグレードを行なうように構成されているアップグレードモジュール151であって、前記機器50の動作を利用するアプリケーションプログラム100の一部として動作することを特徴としている。
(項2)
機器50の動作に関して固有の機能232aを有するアプリケーションプログラム100であって、前記固有の機能232aを実現するために必要な前記機器50のファームウェア230のアップグレードを行なうアップグレードモジュール151を備えたことを特徴としている。
(項3)
機器50の動作に関して固有の機能232aを有する認証されたアプリケーションプログラム100であって、前記認証されたアプリケーションプログラム100のみが発行可能であり、前記固有の機能を実現するために必要な前記機器50のファームウェア230のアップグレードが行われることにより追加された機能232aを使用するためのコマンドを発行することにより、前記追加された機能232aの使用が許可されるように構成されていることを特徴としている。
項1〜項3によれば、機器のファームウェアのアップグレードが機器の全てのユーザに許可されるのではなく、特別な条件でのみ許可されることが可能になる。この場合、例えば、ファームウェアのアップグレードにより追加される機能が、記録機器による暗号化された情報の記録を可能にする機能である場合のように著作権の保護に関連する機能である場合には、特定の条件下のユーザのみがファームウェアのアップグレードを行なえるようにすることで、セキュアな環境の構築が可能になる。
以上のように、本発明にかかるアップグレードモジュールは、特に、機器のファームウェアのアップグレードが機器の全てのユーザに許可されるのではなく、特別な条件でのみ許可されることを可能にするアップグレードモジュールに適している。
本発明は、アプリケーションプログラムに関する。
機器のファームウェア、例えば、コンピュータの記録機器(ドライブ装置)のファームウェアに関して、そのバージョンアップは、従来より、記録機器のメーカがバージョンアップ用のプログラムをユーザに配布することにより、行なわれている。この場合、ユーザは、例えば記録装置メーカのWebサイトにアクセスして、バージョンアップ用のプログラムをダウンロードしたり、又は、記録装置メーカから配布されるバージョンアップ用のプログラムが格納されたCD−ROMを入手することにより、ファームウェアのバージョンアップを行なっていた。
なお、特許文献1には、記録可能な情報記録媒体に記録される暗号化情報を用いて前記情報記録媒体に記録すべき記録情報を暗号化し、暗号化記録情報を生成する暗号化工程と、前記生成された暗号化記録情報を、前記暗号化情報が予め記録された前記情報記録媒体に当該暗号化記録情報を記録する情報記録装置に対して電気通信回線を介して配信する配信工程とを備えることを特徴とする情報配信方法が開示されている。
上記のように従来の手法で行なわれるファームウェアのバージョンアップは、ファームウェアに含まれるバグへの対応や機器の動作の安定性を向上させる等のファームウェアの基本機能(機器の基本機能)に関するものであり、機器の全てのユーザが行なうことができるものであった。
一方、上記のようなファームウェアの基本機能のバージョンアップとは異なり、ファームウェアの基本機能以外の機能を追加するアップグレードは、機器の全てのユーザが行なえるのではなく、特別な条件の下でのみ行なえることが望まれる。例えば、ファームウェアに追加される機能が、暗号化された情報の記録を可能にする機能である場合のように著作権の保護に関連する機能である場合には、特定の条件下のユーザのみがファームウェアのアップグレードを行なえるようにすることで、セキュアな環境の構築が可能になる。
本発明の目的は、機器のファームウェアのアップグレードが機器の全てのユーザに許可されるのではなく、特別な条件でのみ許可されることを可能にする、アプリケーションプログラムを提供することを目的としている。
請求項1に記載の発明は、機器のファームウェアのアップグレードより追加された特殊制御機能を使用するのに必要な認証キー又はIDを有するアプリケーションプログラムであって、前記アップグレードによって前記特殊制御機能を前記ファームウェアに追加させる機能追加ステップと、前記追加ステップにて追加された前記特殊制御機能の使用が許可されるか否かを、前記認証キー又はIDに基づいて判断する判断ステップと、前記判断の結果に基づき、前記追加された特殊制御機能の使用を許可する許可ステップと、を有することを特徴としている。
(第1実施形態)
以下、図1から図9を参照して、本発明のアプリケーションプログラムの一実施形態について詳細に説明する。
まず、本実施形態のアプリケーションプログラムについて説明する。
一般に、アプリケーションプログラムは、ある特定の目的のために設計されたソフトウェアであり、どのソフトウェアにも共通する基本的な機能をまとめたOSに対して、ユーザが必要とするものが組み込まれて利用される。アプリケーションプログラムの例として、ライティングソフトやオーサリングソフト、動画/音楽再生ソフト、ゲームソフトなどの他、ファイル圧縮、コンピュータウィルス駆除、メモリ管理などのユーティリティソフトが挙げられる。アプリケーションプログラムがPC(パーソナルコンピュータ)上で実行されることにより、アプリケーションプログラムの基本機能が実現され、上記特定の目的が達成される。本実施形態のアプリケーションプログラムは、上記の通常一般のアプリケーションプログラムに対して広く適用可能である。
また、一般に、ハードウェア(機器)の基本的な制御を行なうために機器に組み込まれているファームウェア(FW)に対して、大幅な改良による大規模な機能の追加(アップグレード)が行われることがある。この場合、ファームウェアのアップグレードを行うためには、ファームウェアに対してアップグレードの機能を追加するためのプログラム、即ち、アップグレードモジュールが必要とされる。
以下、具体例として、アプリケーションプログラムが、“暗号化されたコンテンツを記録すること”を基本機能とするものであり、また、ファームウェアが“PCに搭載された記録再生機器(ドライブ装置)”の基本的な制御を行なうためのものである場合について説明する。
図1は、本実施形態のアプリケーションプログラムが用いられる、ファームウェアのアップグレードシステムの概略構成を示す図である。上記のように、アプリケーションプログラム100は、コンテンツを記録するためのアプリケーションプログラム(ライティングソフトウェアないしオーサリングソフトウェア)であり、その基本機能(アプリケーションプログラム100に固有な機能)は、暗号化されたコンテンツを記録ディスク60に記録するという機能である。
アプリケーションプログラム100は、ユーザ端末(PC)50上で実行される。ユーザ端末50には、記録ディスク60(DVD)の記録再生が可能なドライブ装置55が備えられている。アプリケーションプログラム100がユーザ端末50上で実行されることにより、ドライブ装置55により記録ディスク60にコンテンツが記録される。ドライブ装置55の基本的な制御は、ファームウェア230により行なわれる。
アプリケーションプログラム100は、ビデオ編集機能101と、データ書き込み機能102と、特殊機能103と、認証機能104と、アップグレード機能105とを備えている。これらの機能の実行に際しては、アプリケーションプログラム100が有する認証キー106と、ライセンス情報107が用いられる。
ビデオ編集機能101は、通常一般のオーサリングソフトウェアが有するビデオ編集機能である。データ書き込み機能102は、コンテンツ情報を記録ディスク60に書き込む機能である。特殊機能103は、アプリケーションプログラム100に固有な機能(基本機能)である、「暗号化されたコンテンツ情報を記録ディスク60に記録すること」の実行に際して必要となる特殊な機能である。認証機能104は、ドライブ装置55等を認証する機能である。
アップグレード機能105は、以下に述べるアップグレードプログラム150等が実行されることにより実現される機能である。認証キー106は、ファームウェア230のアップグレードされた機能を使用できるようにするために用いられる。ライセンス情報107は、アップグレードプログラム150等が真正にライセンスされたものであることを示す情報である。
アプリケーションプログラム100は、アップグレードプログラム150を有している。アップグレードプログラム150は、アップグレードモジュール151を含んでいる。アップグレードモジュール151は、後述するように、ユーザ端末50のドライブ装置55のファームウェア230に対して特殊制御機能232を追加するためのプログラムである。アップグレードモジュール151は、単独で実行されるものではなく、アップグレードプログラム150から呼び出される機能小単位のプログラムである。アップグレード機能105は、アップグレードプログラム150が実行されることにより実現される機能である。
ファームウェア230は、記録再生制御機能231と、特殊制御機能232と、認識番号233を有している。ドライブ装置55の基本的な制御は、ファームウェア230の記録再生制御機能231に基づいて行なわれる。しかし、ドライブ装置55において、アプリケーションプログラム100が有する、暗号化されたコンテンツを書き込む機能(上記基本機能)が実現されるためには、ファームウェア230に、アプリケーションプログラム100の上記基本機能が実現されるための特殊制御機能232を追加するアップグレードが必要とされる。この特殊制御機能232については後述する。ファームウェア230に特殊制御機能232を追加するアップグレードは、アップグレードモジュール151を含むアップグレードプログラム150とアプリケーションプログラム100が協働することにより実行される。認識番号233は、アップグレードによりファームウェア230に追加された特殊制御機能232にそれぞれ付与される番号である。
上記のように、アップグレードモジュール151を含むアップグレードプログラム150は、アプリケーションプログラム100と協働する。アプリケーションプログラム100がユーザ端末50によって実行されることで、アップグレードプログラム150によってファームウェア230に特殊制御機能232を追加するアップグレードが行われ、アップグレードされたファームウェア230を使用する機能(特殊機能103)が実現される。
なお、本明細書において、ファームウェアのアップグレードとは、ファームウェアのバージョンアップとは異なる意味で用いられる。ファームウェアのバージョンアップとは、上記のように、ファームウェアに含まれるバグへの対応やドライブ装置55の動作の安定性を向上させる等のファームウェアの基本機能(ドライブ装置55の基本機能)の改善に関するものである。ファームウェアのバージョンアップは、通常、ドライブ装置55のメーカ側から提供されるバージョンアップ用プログラムを入手することにより、ドライブ装置55の全てのユーザが自由に行なえるようになっている。これに対して、本実施形態におけるファームウェアのアップグレードは、ファームウェアの上記基本機能以外の機能をファームウェアに追加するものをいう。ここで、「ファームウェアの上記基本機能以外の機能」は、アプリケーションプログラム100の上記基本機能が実現されるための特殊制御機能232に対応している。
アプリケーションプログラム100は、読み取り専用の記録媒体に記録された形でパッケージプログラムとして、ユーザに対して販売等の譲渡がなされる。図1の符号Y1に示すように、アップグレードプログラム150(アップグレードモジュール151を含む)又はアップグレードモジュール151は、ドライブ装置メーカ30からアプリケーションプログラム100を製造するアプリケーションメーカ40にライセンス(販売等の譲渡を含む)される。この場合、アップグレードモジュール151がドライブ装置メーカ30から真正にライセンスされたものであることを示すライセンス情報107がドライブ装置メーカ30からアプリケーションメーカ40に付与される。
ドライブ装置55のファームウェア230の情報を有しているのは、ドライブ装置メーカ30であり、アプリケーションメーカ40は、ファームウェア230の情報を所有していないため、ファームウェア230をアップグレードさせるアップグレードモジュール151(アップグレードプログラム150)は、ドライブ装置メーカ30だけが製造することができる。
アプリケーションメーカ40は、そのライセンスされたアップグレードモジュール151(アップグレードプログラム150)及びライセンス情報107を含めた形でアプリケーションプログラム100を製造して、ユーザに対して販売等を行なう。即ち、アプリケーションプログラム100は、その一部にアップグレードモジュール151(アップグレードプログラム150)を有する単一のパッケージソフトとして、ユーザに対して販売等の譲渡がなされる。アプリケーションメーカ40のデータベース41では、アプリケーションプログラム100と、ドライブ装置メーカ30から付与されたライセンス情報107とが管理される。
アプリケーションプログラム100のアップグレード機能105について説明する。図2に示すように、アップグレードモジュール151を含むアップグレードプログラム150を有する特定のアプリケーションプログラム100、換言すれば、ドライブ装置メーカ30からライセンスを受けた特定のアプリケーションプログラム100のみが、ドライブ装置55のファームウェア230に対して、アプリケーションプログラム100の上記基本機能を実現するための特殊制御機能232を追加するアップグレードを行なうことが許可されている。
また、上記のようにアプリケーションプログラム100の上記基本機能を実現するための特殊制御機能232を有するようにアップグレードがなされたドライブ装置55のファームウェア230を使用する許可は、ドライブ装置メーカ30からライセンスを受けた特定のアプリケーションプログラム100に対してのみ与えられている。
これにより、アプリケーションプログラム100を購入等したユーザのみがアップグレードモジュール151を含むアップグレードプログラム150を用いてドライブ装置55のファームウェア230をアップグレードすることができ、そのアップグレードされたファームウェア230を用いて、アプリケーションプログラム100の上記基本機能である、暗号化されたコンテンツを記録ディスク60に記録することが許可される。これにより、コンテンツの著作権の保護が図られる。
この場合、ドライブ装置メーカ30からライセンスを受けた特定のアプリケーションプログラム100の中には、アップグレードされたファームウェア230を使用する機能(特殊機能103)を有するが、ファームウェア230のアップグレード機能105を有さない、即ち、自らがファームウェア230をアップグレードするためのアップグレードモジュール151を含むアップグレードプログラム150を有さないアプリケーションプログラム100があってもよい。その特殊機能103の有無の判断は、後述するように、認証キー106を用いて行なわれる(図9参照)。
図1に示すように、コンテンツサーバ70からコンテンツ情報500が電子配信される。この電子配信に際しては、例えば、DRM(デジタルライツマネージメント)の方法によりコンテンツ情報500が送信される。記録ディスク60は、複数回の情報記録(情報書き換え)が可能なDVDであり、暗号キーKの情報がその製造時において記録され、その暗号キーKの情報が記録されている状態で販売等の譲渡がなされる。
ここで、コンテンツサーバ70からコンテンツ情報500が電子配信されるに際しては、以下の二つの形式がある。即ち、そのうちの一つは、コンテンツ情報500が記録ディスク60に記録されている暗号キーKを用いて暗号化されていない状態で、コンテンツサーバ70からユーザ端末50に電子配信される形式(形式1)であり、残りの一つは、コンテンツ情報500が暗号キーKを用いて暗号化された状態でコンテンツサーバ70からユーザ端末50に電子配信される形式(形式2)である。
形式1及び形式2について、それぞれ説明する。ここでは、前提として、ユーザ端末50がアプリケーションプログラム100のアップグレードモジュール151(アップグレードプログラム150)を実行することにより、ファームウェア230のアップグレード(特殊制御機能232の追加)が行われているものとする。
(形式1)
ユーザ端末50は、コンテンツサーバ70からコンテンツ情報500を受信すると、アプリケーションプログラム100を実行して、記録ディスク60の暗号キーKを用いて暗号化を行った後に、ドライブ装置55を動作させることにより、その暗号化されたコンテンツ情報500を記録ディスク60に記録する。
(形式2)
ユーザ端末50は、記録ディスク60の暗号キーKの情報をコンテンツサーバ70に送信し、コンテンツサーバ70では、その暗号キーKによってコンテンツ情報500の暗号化が行われる。その後に、その暗号化されたコンテンツ情報500がユーザ端末50に配信される。ユーザ端末50は、アプリケーションプログラム100を実行してドライブ装置55を動作させることにより、その暗号化されたコンテンツ情報500を記録ディスク60に記録する。
上記形式1及び形式2のいずれの場合においても、暗号キーKにより暗号化されたコンテンツ情報500が記録ディスク60に記録されると、予め記録されている暗号キーKを用いて情報の暗号化を解読して出力する形式の既存の情報再生装置全てにおいて、上記暗号化されたコンテンツ情報500を解読して再生することができる。
一般に、DVDに暗号化された情報が記録されるためには、DVDのうち、通常のファームウェア(アップグレードされていないファームウェア)によって制御されるドライブ装置では、自由に記録することができないエリア(後述する例ではセクターヘッダ)に対する自由な記録が可能な状態とされた上で、同エリアにユーザデータの暗号化に必要なデータ(暗号化されたデータの書き込みに必要なデータ)が記録される必要がある。
ここで、通常のファームウェア(記録再生制御機能231)によって制御されるドライブ装置では、同エリアに対する自由な記録ができないようにされることで、DVDに暗号化された情報が記録できないようにされており、これにより、コンテンツ情報の著作権保護が図られている。このことに関して、図3を参照して、具体的に説明する。
図3において、コンテンツサーバ70から配信されたコンテンツ情報(上記形式1及び形式2を含む)500には、コンテンツの内容を示すコンテンツデータ502の他に、コンテンツデータ502の暗号化に必要なデータ(暗号化データ)501が含まれている。
記録ディスク60の1セクターに対応するデータエリア600は、セクターヘッダ601と、ユーザデータエリア602とを有している。セクターヘッダ601は、アドレス用のセクターIDのデータが記録されるためのエリア(図示せず)と、ユーザデータエリア602に記録されるユーザデータ(コンテンツデータ502)の暗号化に必要な暗号化データ501が記録されるための暗号化データ記録エリア601aとを有している。
なお、本例では、暗号化データ記録エリア601aは、セクターヘッダ601に設けられているとして説明するが、暗号化データ記録エリア601aが設けられる場所は、セクターヘッダ601に限定されず、ユーザデータエリア602以外の特定の場所であればよい。
アプリケーションプログラム100の実行により、ドライブ装置55が記録ディスク60に暗号化されたコンテンツ情報500を記録するためには、セクターヘッダ601に暗号化データ501を記録するとともに、その記録された暗号化データ501を用いて暗号化されたコンテンツデータ502を、ユーザデータエリア602に記録する必要がある。
アプリケーションプログラム100が有する特殊機能103とは、アップグレードされたファームウェア230を使用する機能であり、セクターヘッダ601に暗号化データ501を記録するとともに、その記録された暗号化データ501を用いて暗号化されたコンテンツデータ502を、ユーザデータエリア602に記録する機能である。
ここで、上記のように、通常一般のファームウェアによって制御されるドライブ装置55では、コンテンツ情報500の著作権保護の観点から、記録ディスク60のセクターヘッダ601への自由な記録ができないようにされている。具体的には、通常一般のファームウェアによって制御されるドライブ装置55は、セクターヘッダ601の暗号化データ記録エリア601aに、一義的にゼロのデータを記録する。これにより、暗号化データ501がセクターヘッダ601(暗号化データ記録エリア601a)に記録されることができないようになっている。
このことから、ユーザ端末50が、セクターヘッダ601に記録された暗号化データ501を使って(上記形式1の場合には更に暗号キーKの情報を使って)、暗号化されたコンテンツデータ502をユーザデータエリア602に記録しようとしても、セクターヘッダ601に暗号化データ501を記録できないため、暗号化されたコンテンツデータ502をユーザデータエリア602に記録することができないようにされている。
上記のように、暗号化されたコンテンツ情報500を記録ディスク60に記録するためには、ドライブ装置55によるセクターヘッダ601への自由な記録が可能とされている必要がある。しかしながら、どのドライブ装置においてもセクターヘッダ601への自由な記録が可能とされると、コンテンツ情報500の著作権保護の観点におけるセキュアレベルが低下してしまう。
そこで、本実施形態では、特別に許可されたアプリケーションプログラム100のアップグレードモジュール151(アップグレードプログラム150)がドライブ装置55のファームウェア230をアップグレードして、図4に示すように、ドライブ装置55による記録ディスク60のセクターヘッダ601に対する自由な記録ができるようにされている。
その結果、アップグレードモジュール151(アップグレードプログラム150)によりアップグレードされたファームウェア230によって制御されるドライブ装置55は、セクターヘッダ601の暗号化データ記録エリア601aに、暗号化データ501を記録できるようになる。これにより、ユーザ端末50は、セクターヘッダ601に記録された暗号化データ501を使って(上記形式1の場合には更に暗号キーKの情報を使って)、暗号化されたコンテンツデータ502をユーザデータエリア602に記録することが可能となる。
図8を参照して、ファームウェア230のアップグレードを行なう際の処理について説明する。
ユーザがユーザ端末50を起動すると、ユーザ端末50がドライブ装置55を認識する(ステップS101)。ユーザ端末50は、アプリケーションプログラム100の実行を開始する(ステップS102)。ドライブ装置55は、パッケージソフトウェアであるアプリケーションプログラム100のディスク再生を開始する(ステップS103)。
ドライブ装置55とアプリケーションプログラム100とは、相互認証されることにより、そのアプリケーションプログラム100とドライブ装置55はペアの形でしか使用できなくなる。あるアプリケーションプログラム100によって、ある一のドライブ装置55のファームウェア230のアップグレードが行われると、他のドライブ装置55のファームウェア230をアップグレードすることはできず、また、そのアプリケーションプログラム100は、上記一のドライブ装置55でのみ使用できることになる。これらのことから、コンテンツの不正なコピーが抑制される。また、アプリケーションプログラム100を購入したユーザのユーザ登録が、アプリケーションメーカ40に対して行なわれる(図示せず)。
ユーザ端末50では、アプリケーションプログラム100のアップグレードプログラム150又はアップグレードモジュール151を検出し(ステップS104)、アップグレードモジュール151をドライブ装置55に送信する(ステップS105)。また、ユーザ端末50は、ライセンス情報107をドライブ装置55に送信する(ステップS106)。ここで、ユーザ端末50からドライブ装置55に送信されるライセンス情報107は、予めアプリケーションメーカ40側からユーザ端末50に通知されている正しいライセンス情報107である。
ドライブ装置55は、ユーザ端末50から、アップグレードモジュール151とライセンス情報107を受信する(ステップS107)。次いで、ドライブ装置55では、ステップS108において、受信したライセンス情報107と、アプリケーションプログラム100に含まれているライセンス情報107とを比較して、アプリケーションプログラム100に含まれているライセンス情報107が正しいか否かを判定する。
その判定の結果、アプリケーションプログラム100に含まれているライセンス情報107が正しいと判定された場合には、ドライブ装置メーカ30から提供されたアップグレードモジュール151であると判断されて、ファームウェア230のアップグレードが可能であると判定される(ステップS108−Y)。
ドライブ装置55において、ステップS108の判定の結果、アップグレードが可能であると判定された場合には、アップグレードモジュール151により、ファームウェア230のアップグレードが実行される(ステップS109)。これにより、ファームウェア230の特殊制御機能232が実行可能な状態となる。
次いで、ドライブ装置55では、認識番号233がメモリに記録される(ステップS110)。上記のように、認識番号233とは、アップグレードによりファームウェア230に追加された機能にそれぞれ付与される番号である。
ファームウェア230において、ファームウェア230の基本機能(記録再生制御機能231)以外の機能が追加されるためのアップグレードが行なわれた場合には、ファームウェア230の基本機能(記録再生制御機能)231のバージョンアップと区別可能な認識番号233が付与される。
例えば、ファームウェア230の認識番号233がVer.−x.y−abで表される場合、xは、ファームウェア230の基本機能231のメジャーバージョン、yは基本機能231のマイナーバージョン、abはファームウェア230のアップグレードをそれぞれ表すことができる。この場合、基本機能231のバージョンを表すx,yと、基本機能231以外の機能が追加されるためのアップグレードを表すabは、互いに無関係な値を持つことになる。ステップS110では、上記ステップS109において実行されたアップグレードを表す認識番号233がメモリに記録される。
次いで、ドライブ装置55は、ファームウェア230のアップグレードに関する結果をユーザ端末50に通知する(ステップS111)。この場合、アップグレードが実行された場合には、そのアップグレードを表す認識番号233がユーザ端末50に通知され、アップグレードが不可能であると判定された場合(ステップS108−N)には、その旨がユーザ端末50に通知される。これにより、ユーザ端末50では、アップグレードが終了する(ステップS112)。
アプリケーションプログラム100は、複数種類用意されることができ、その場合、それぞれの種類のアプリケーションプログラム100によって、ファームウェア230のアップグレードによって追加される機能が異なるように構成することができる。
図5に示すように、ドライブ装置メーカ30により提供されたドライブ装置55のファームウェア230には、もともとドライブ装置55の基本動作を制御するための基本機能(記録再生制御機能231)が含まれている。ファームウェア230のバージョンアップが行なわれる場合には、このファームウェア230の基本機能(記録再生制御機能231)の部分の内容が変更又は更新(バージョンアップ)される。
これに対して、ユーザ端末50が、第1の種類のアプリケーションプログラム100(以下、図示はしないが「第1のアプリケーションプログラム100−1」と称する)をドライブ装置55を介して読み込むと、そのアップグレードモジュール151(以下、図示はしないが「第1のアップグレードモジュール151−1」と称する)により、その第1のアプリケーションプログラム100−1の固有の機能(基本機能)を実現するための機能(以下「第1アプリ実現機能」と称する)である特殊制御機能232(232a)が追加されるようにファームウェア230がアップグレードされる。
更に、ユーザ端末50が、第2の種類のアプリケーションプログラム100(以下、「第2のアプリケーションプログラム100−2」と称する)をドライブ装置55を介して読み込むと、そのアップグレードモジュール151(以下「第2のアップグレードモジュール151−2」と称する)により、その第2のアプリケーションプログラム100−2の固有の機能を実現するための機能(以下「第2アプリ実現機能」と称する)である特殊制御機能232(232b)が追加されるようにファームウェア230がアップグレードされる。
また、第3の種類のアプリケーションプログラム100(以下、「第3のアプリケーションプログラム100−3」と称する)が、第1のアプリケーションプログラム100−1の固有の機能と、第2のアプリケーションプログラム100−2の固有の機能の両方を有している場合には、そのアップグレードモジュール151(以下「第3のアップグレードモジュール151−3」と称する)により、第1のアプリケーションプログラム100−1の固有の機能と、第2のアプリケーションプログラム100−2の固有の機能の両方を実現するための両機能232a,232bが追加されるようにファームウェア230がアップグレードされる。
例えば、認識番号233において、アップグレードを表すabは、上記第1アプリ実現機能232aのアップグレードについては、“01”とされ、上記第2アプリ実現機能232bのアップグレードについては“02”とされ、第1のアプリケーションプログラム100−1の固有の機能と、第2のアプリケーションプログラム100−2の固有の機能の両方を実現するための両機能232a,232bのアップグレードについては、“12”とされることができる。
次に、アップグレードモジュール151に含まれる許可データについて説明する。
許可データは、その許可データを含むアップグレードモジュール151がファームウェア230のアップグレードを実行することが許可されていることを示すデータである。以下、図6及び図7の例を参照して説明する。
図7に示すように、第1のアプリケーションプログラム100−1は、その固有の機能として、暗号化されたコンテンツデータ502をユーザデータエリア602に記録する機能(以下、「第1単位機能」)と、第1のアプリケーションプログラム100−1に固有なデータ記録を行なう機能(第1のアプリケーションプログラム100−1用の特別なデータD−1を記録ディスク60に記録する機能,以下、「第2単位機能」)とを有している。
また、第2のアプリケーションプログラム100−2は、その固有の機能として、上記第1単位機能と、第2のアプリケーションプログラム100−2に固有なデータ記録を行なう機能(第2のアプリケーションプログラム100−2用の特別なデータD−2を記録ディスク60に記録する機能,以下、「第3単位機能」)とを有している。
また、第4のアプリケーションプログラム100−4は、その固有の機能として、上記第1単位機能を有している。
図6を参照して、ユーザ端末50が第1、第2及び第4のアップグレードモジュール151−1、151−2、151−4のそれぞれを実行したときに行われるファームウェア230のアップグレードについて説明する。
(第1のアップグレードモジュール151−1の実行)
ユーザ端末50が第1のアップグレードモジュール151−1を実行すると、上記第1アプリ実現機能232a(図5)がファームウェア230に追加される(ファームウェア230のアップグレード)。上記のように、第1アプリ実現機能232aは、第1のアプリケーションプログラム100−1の固有の機能である上記第1単位機能(暗号化されたコンテンツデータ502をユーザデータエリア602に記録する機能)と第2単位機能(第1のアプリケーションプログラム100−1に固有なデータ記録を行なう機能)を実現するためのファームウェア230の特殊制御機能232である。
この第1アプリ実現機能232aがファームウェア230に追加されるアップグレードが行われる際には、図6において、ファームウェア230に対して、符号UG1〜UG3で示す3つの単位機能のアップグレードが行われる。
第1アップグレードUG1は、上記第1単位機能(暗号化されたコンテンツデータ502をユーザデータエリア602に記録する機能)を実現するために、ドライブ装置55による記録ディスク60のセクターヘッダ601に対する自由な記録を可能にするためのアップグレードである。
第2アップグレードUG2は、アプリケーションプログラム100に固有な機能を実現するための機能を追加するアップグレードの実行の許可を与える認証のためのアップグレードである。
第3アップグレードUG3は、上記第2単位機能(第1のアプリケーションプログラム100−1に固有なデータ記録を行なう機能)を実現するためのアップグレードである。
ここで、第2アップグレードUG2について説明する。
ファームウェア230において第2アップグレードUG2が行なわれると、上記アプリケーションプログラム100に固有な機能を実現するための機能を追加するアップグレードの実行の許可を与える認証の機能が与えられる。ユーザ端末50は、そのファームウェア230の認証機能を用いて、第1のアップグレードモジュール151−1に第3アップグレードUG3を実行する許可を与えてよいか否かを判定する。
ここで、第1のアップグレードモジュール151−1には、予め第3アップグレードUG3を実行する許可が与えられており、その許可内容(第3アップグレードUG3を実行する許可が与えられている旨)を示す許可データ(図示せず)が含まれている。そこで、ユーザ端末50は、上記許可データに基づいて、第1のアップグレードモジュール151−1に第3アップグレードUG3の実行の許可を与えてよいと判定し、その判定結果を踏まえて、第3アップグレードUG3を行う。
(第2のアップグレードモジュール151−2の実行)
一方、ユーザ端末50が第2のアップグレードモジュール151−2を実行すると、上記第2アプリ実現機能232b(図5)がファームウェア230に追加される(ファームウェア230のアップグレード)。上記のように、第2アプリ実現機能232bは、第2のアプリケーションプログラム100−2の固有の機能である上記第1単位機能(暗号化されたコンテンツデータ502をユーザデータエリア602に記録する機能)と第3単位機能(第2のアプリケーションプログラム100−2に固有なデータ記録を行なう機能)を実現するためのファームウェア230の特殊制御機能232である。
この場合、第2のアプリケーションプログラム100−2に固有な機能のうち、上記第1単位機能は、第1のアプリケーションプログラム100−1の上記第1単位機能と共通しており、その機能が、既に第1のアップグレードモジュール151−1による上記第1アップグレードUG1により実現可能な状態とされている場合には、第2のアップグレードモジュール151−2の実行により、ファームウェア230に第1アップグレードUG1が行なわれることはない(図6の破線参照)。この場合、第3単位機能(第2のアプリケーションプログラム100−2に固有なデータ記録を行なう機能)を実現するための第4アップグレードUG4のみが行なわれる。
この場合、上記アップグレードUG4は、上記と同様に、上記アップグレードUG2による認証機能によって、そのアップグレードUG4の実行が許可された後に、そのアップグレードUG4が行われる。
(第4のアップグレードモジュール151−4の実行)
また、ユーザ端末50が第4のアップグレードモジュール151−4を実行すると、上記第4のアプリケーションプログラム100−4に固有の機能を実現するための機能がファームウェア230に追加される(ファームウェア230のアップグレード)。この場合、第4のアプリケーションプログラム100−4が固有の機能として有する上記第1単位機能は、第1のアプリケーションプログラム100−1の上記第1単位機能と共通しており、その第1単位機能が、既に第1のアップグレードモジュール151−1による上記第1アップグレードUG1により実現可能な状態とされている場合には、第4のアップグレードモジュール151−4の実行により、ファームウェア230に上記第1アップグレードUG1が行なわれることはない。
次に、アプリケーションプログラム100に含まれる特別コマンドについて説明する。
ここでは、第2及び第4のアップグレードモジュール151−2、151−4のそれぞれが実行される前に、第1のアップグレードモジュール151−1が実行された場合を例にとり説明する。
上記図6及び図7のケースにおいて、第2及び第4のアプリケーションプログラム100−2,100−4は、それぞれ、ドライブ装置メーカ30からのライセンスのもと、第2及び第4のアプリケーションプログラム100−2,100−4に固有な機能を実現するための特別コマンド(図示せず)を発行できるよう構成されている。即ち、第2及び第4のアプリケーションプログラム100−2,100−4には、それぞれ、その特別コマンドがプログラムされている。
即ち、ユーザ端末50は、第2及び第4のアプリケーションプログラム100−2,100−4のそれぞれを実行したときに、既に第1のアップグレードモジュール151−1による第1アップグレードUG1により実現可能な状態とされている第1単位機能を実現するための特別コマンドを発行する。これにより、第2及び第4のアプリケーションプログラム100−2,100−4のそれぞれに固有な機能を実現するために必要な第1単位機能を実現することができる。
上記のケースにおいて、ドライブ装置メーカ30からライセンスを受けていない(認証されていない)一般のアプリケーションプログラム(図示せず)は、上記特別コマンドを発行できない(上記特別コマンドがプログラムされていない)ため、ユーザ端末50により実行されても、ファームウェア230においてアップグレードにより追加された機能232a,232bを不正に実行することはできない(図5)。即ち、ドライブ装置メーカ30からライセンスを受けていないアプリケーションプログラムがユーザ端末50により実行された場合には、ファームウェア230のうち上記基本機能に関する部分231だけしか使用されることができない。
ここで、上記特別コマンドを何らかの理由により、ドライブ装置メーカ30からライセンスを受けていないアプリケーションプログラムのメーカ等の側で知ることができ、その特別コマンドが発行された場合であっても、不正に上記追加された機能232a,232bを実行できないようにするために、例えば以下の構成が採用されることができる。
上記認証機能(上記第2アップグレードUG2)は、更に、アプリケーションプログラム100が、ドライブ装置メーカ30からライセンスを受けたものであるか否かを認証するように構成することができる。この場合、ユーザ端末50は、ドライブ装置55に登録された認識番号233に対して、アプリケーションプログラム100に格納された認証キー106(図1)を照合させることにより、アプリケーションプログラム100に使用が許可されている機能を特定するようにしてもよい。
以下に、アプリケーションプログラム100に含まれる認証キー106について説明する。この認証キー106は、ドライブ装置メーカ30からライセンスを受けた特定のアプリケーションプログラム100のみが、ファームウェア230のアップグレードされた機能を使用できるようにするために用いられる。
認証キー(又はID。以下同じ)106とは、あるアプリケーションプログラム100に使用が許可されている、ファームウェア230のアップグレードされた機能(特殊制御機能232)を示す識別子である。認証キー106は、例えば、図5において、アップグレードによりファームウェア230に追加された全ての機能(特殊制御機能232、同図の例では、符号232a,232bの2つ)のうち、あるアプリケーションプログラム100に使用が許可されている機能(特殊制御機能232)を判断するために用いられる。以下、認証キー106に関する2つの具体的適用例について説明する。
(第1の適用例)
例えば、図5において、ファームウェア230のアップグレードが行われると、そのアップグレードにより追加された機能に対応して付与された認識番号233がドライブ装置55に登録される(図8のステップS110)。上記例では、機能232aが追加されたときに、“01”の認識番号233が登録され、機能232bが追加されたときに、“02”の認識番号233が登録される。
一方、アプリケーションプログラム100に含まれる認証キー106は、そのアプリケーションプログラム100に使用が許可されている、ファームウェア230のアップデートされた機能の認識番号233に対応するデータを有している。図9に示すように、ユーザ端末50でアプリケーションプログラム100が実行開始されたときに(ステップS201)、ユーザ端末50は、ドライブ装置55に対して、登録されている認識番号233を要求する(ステップS202)。その要求に応答して、ドライブ装置55は、認識番号233をユーザ端末50に送信する(ステップS203)。
ユーザ端末50は、認証キー106と、認識番号233を照合する(ステップS204)。その照合の結果に基づいて、アップグレードされたファームウェア230の機能(特殊制御機能232)は、そのアプリケーションプログラム100に使用が許可されているか否かが判定される(ステップS205)。その判定の結果、そのアプリケーションプログラム100に使用が許可されている特殊制御機能232に対応する特殊機能103は、実行可能な状態に設定され(ステップS206)、そうではない特殊制御機能232に対応する特殊機能103は実行不可能な状態に設定される(ステップS207)。
その後、アプリケーションプログラム100が実行状態とされる(ステップS208)。このとき、アプリケーションプログラム100に含まれる特殊機能103は、実行可能な状態(ステップS206)と、実行不可能な状態(ステップS207)のいずれかに設定されている。
上記のように、ユーザ端末50は、そのアプリケーションプログラム100を実行するときには、その照合の結果(ステップS100)に応じて、認証されたファームウェア230の機能(そのアプリケーションプログラム100に使用が許可されているファームウェア230の機能)のみを用いる。以下具体例を用いて説明する。
例えば、ファームウェア230において、上記2つの機能232a,232bのアップグレードがなされ、ドライブ装置55に“01”と“02”の認識番号233が登録されている場合を想定する。第2のアプリケーションプログラム100−2には、そのうちの一つの機能(第2アプリ実現機能)232bの使用しか許可されておらず、その機能232bのみに対応した認証キー106が含まれているとする。その場合、ユーザ端末50は、ステップS204において、“01”と“02”の認識番号233と第2のアプリケーションプログラム100−2の認証キー106との認証の結果、その第2のアプリケーションプログラム100−2に使用が許可されている機能が機能(第2アプリ実現機能)232bのみであることを認識し、その機能232bに対応する特殊機能103のみが実行可能状態に設定される。
この場合、第2のアプリケーションプログラム100−2において実行可能状態に設定される特殊機能103は、アプリケーションプログラム100に固有な機能である、上記第1単位機能と第3単位機能の実行に際して必要となる特殊な機能である。即ち、セクターヘッダ601に暗号化データ501を記録するとともに、その記録された暗号化データ501を用いて暗号化されたコンテンツデータ502を、ユーザデータエリア602に記録する機能(第1単位機能)と、第2のアプリケーションプログラム100−2用の特別なデータD−2を記録する機能(第3単位機能)の実行に際して必要となる特殊な機能である。言い換えれば、第2のアプリケーションプログラム100−2において実行可能状態に設定される特殊機能103は、第2アプリ実現機能232bを使用する機能である。
(第2の適用例)
例えば、上記図6及び図7のケースにおいて、ドライブ装置メーカ30からライセンスを受けたアプリケーションプログラム100に含まれる認証キー106は、ファームウェア230のうち、そのアプリケーションプログラム100に固有な機能(単位機能)を実現するために使用が許可される、上記単位機能に対応してアップグレードにより追加された機能を示すデータを有している。
例えば、第1のアプリケーションプログラム100−1の第1認証キー106は、第1のアプリケーションプログラム100−1に固有な機能(上記第1単位機能と第2単位機能)を実現するために使用が許可される、上記第1単位機能と第2単位機能に対応してアップグレードにより追加された第1アップグレードUG1と、第3アップグレードUG3の機能の使用が許可されるためのデータを有している。
同様に、第2のアプリケーションプログラム100−2の第2認証キー106は、第2のアプリケーションプログラム100−2に固有な機能(上記第1単位機能と第3単位機能)を実現するために使用が許可される、上記第1単位機能と第3単位機能に対応してアップグレードにより追加された第1アップグレードUG1と、第4アップグレードUG4の機能の使用が許可されるためのデータを有している。
また同様に、第4のアプリケーションプログラム100−4の第4認証キー106は、第4のアプリケーションプログラム100−2に固有な機能(上記第1単位機能)を実現するために使用が許可される、上記第1単位機能に対応してアップグレードにより追加された第1アップグレードUG1の機能の使用が許可されるためのデータを有している。
第2適用例では、認証キー106と、認識番号233の認証を行う点は、上記第1適用例と同様であるが、本適用例では、認識番号233が単位機能に対応して追加されたアップグレードに対して付与されている点が異なっている。
図7において、記録ディスク60の第1のセクター200−1は、第1のアプリケーションプログラム100−1を用いてコンテンツ情報500が記録された状態を示しており、第2のセクター200−2は、第2のアプリケーションプログラム100−2を用いてコンテンツ情報500が記録された状態を示しており、第3のセクター200−3は、第4のアプリケーションプログラム100−4を用いてコンテンツ情報500が記録された状態を示している。
ここでは、ファームウェア230において、第1アップグレードUG1(図6)がなされており、その第1アップグレードUG1に対応して付与された認識番号233がドライブ装置55に登録されているとする。ここで、第1、第2、及び第4のアプリケーションプログラム100−1、100−2、100−4の認証キー106には、いずれも第1アップグレードUG1により追加された機能の使用が許可されるためのデータが含まれている。第1アップグレードUG1により追加された機能(上記第1単位機能)は、第1アプリ実現機能232a、第2アプリ実現機能232b及び上記第4のアプリケーションプログラム100−4に固有の機能を実現するために必要な機能(第4アプリ実現機能、図示せず)のいずれの実現にも必要であるためである。
そのため、第1、第2、及び第4のアプリケーションプログラム100−1、100−2、100−4のいずれがユーザ端末50で実行された場合においても、第1アップグレードUG1により追加された機能の使用が許可される。その結果、図7に示すように、ドライブ装置55は、上記第1単位機能の実現、即ち、第1のセクター200−1、第2のセクター200−2及び第3のセクター200−3のそれぞれにおいて、上記エリア601aには、暗号化データ501を記録し、ユーザデータエリア602には、暗号化されたコンテンツデータ502を記録することができる。
また、ファームウェア230において、上記第2単位機能(第1のアプリケーションプログラム100−1に固有なデータ記録)を可能にするためのアップグレードUG3が行なわれているとする。ここで、第1のアプリケーションプログラム100−1には、アップグレードUG3により追加された機能の使用が許可されるための認証キー106のデータが含まれている。そのため、第1のアプリケーションプログラム100−1がユーザ端末50で実行された場合には、アップグレードUG3により追加された機能の使用が許可される。その結果、第1のセクター200−1には、第1のアプリケーションプログラム100−1用の特別なデータD−1が記録される。
また、同様に、ファームウェア230において、第2のアプリケーションプログラム100−2に固有なデータ記録を可能にするためのアップグレードUG4が行なわれているとする。ここで、第2のアプリケーションプログラム100−2には、アップグレードUG4により追加された機能の使用が許可されるための認証キー106のデータが含まれている。そのため、第2のアプリケーションプログラム100−2がユーザ端末50で実行された場合には、アップグレードUG4により追加された機能の使用が許可され、その結果、第2のセクター200−2には、第2のアプリケーションプログラム100−2用の特別なデータD−2が記録される。
上記において、データD−1及びデータD−2は、コンテンツサーバ70から配信されたコンテンツ情報500に含まれているデータである。データD−1及びデータD−2は、それぞれ、ファイルシステム(FS)にのっていない場所に記録されることができる。
第4のアプリケーションプログラム100−4を購入したユーザは、コンテンツサーバ70から配信されたコンテンツ情報500のうち少なくともデータD−1及びデータD−2を除いたコンテンツデータ502を記録ディスク60に記録することができる。第1のアプリケーションプログラム100−1を購入したユーザは、コンテンツ情報500のうちデータD−1を含むがデータD−2を除いたコンテンツデータ502を記録ディスク60に記録することができる。第2のアプリケーションプログラム100−2を購入したユーザは、コンテンツ情報500のうちデータD−2を含むがデータD−1を除いたコンテンツデータ502を記録ディスク60に記録することができる。
ユーザがコンテンツサーバ70からユーザ端末50に所望のコンテンツをダウンロードするときの手順について説明する。
まず、ユーザがユーザ端末50においてアプリケーションプログラム100の実行を開始する(図9のステップS201)。アプリケーションプログラム100は、ファームウェア230のアップグレードにより追加された特殊制御機能232を使用する特殊機能103を実行可能にするために、ドライブ装置55と照合作業を行なう(ステップS202〜ステップS205)。これにより、そのアプリケーションプログラム100の認証キー106に対応するファームウェア230の認識番号233が特定され、その認識番号233によって特定された特殊制御機能232に対応する特殊機能103が実行可能状態とされる(ステップS206)。
次に、ユーザは、ユーザ端末50とコンテンツサーバ70とを接続し、ダウンロードするコンテンツを選択し、クレジットカードなどを使ってコンテンツサーバ70側に所定の料金を支払って、コンテンツをダウンロードすると同時に、記録ディスク60のエリア601aに暗号化データ501を記録すると共にユーザデータエリア602に暗号化されたコンテンツ情報500を記録する。
この場合、上記のように、同一のコンテンツ情報500をユーザ端末50にダウンロードする場合であっても、そのユーザが所有するアプリケーションプログラム100(100−1、100−2、100−4のいずれか)によって、記録ディスク60に記録できるデータの範囲が異なるように構成することができる(図7の符号D−1及びD−2参照)。
ユーザは、コンテンツ情報500のダウンロードを終了した後は、ユーザ端末50から記録ディスク60を取り出すと共に、アプリケーションプログラム100の動作を終了させ、アプリケーションプログラム100の認証キー106による特殊機能103の認証(ステップS206)を解除する。これにより、ドライブ装置55は、ファームウェア230の基本機能231に関する部分のみによって制御され、アップグレードにより追加された特殊制御機能232が使用されることはできなくなる。
(第2実施形態)
次に、図10及び図11を参照して、第2実施形態について説明する。
第2実施形態において、上記第1実施形態と共通する点についての説明は省略し、特徴部分についてのみ説明する。
上記第1実施形態(図1)では、ユーザは、その一部にアップグレードモジュール151を有するアップグレードプログラム150が含まれた単一のパッケージソフトとしてのアプリケーションプログラム100を購入し、アプリケーションプログラム100をドライブ装置55に読み込ませることにより、自動的にアップグレードモジュール151及びアップグレードプログラム150がファームウェア230をアップグレードする構成とされていた。
これに対して、第2実施形態では、図10に示すように、アップグレードモジュール151及びアップグレードプログラム150は、アプリケーションプログラム100に含まれておらず、ユーザは、アップグレードモジュール151及びアップグレードプログラム150が含まれていないアプリケーションプログラム100をパッケージソフトとして購入する。
アップグレードモジュール151及びアップグレードプログラム150は、アプリケーションプログラム100を製造するアプリケーションメーカ40のサーバ40Sに用意されており、アプリケーションプログラム100を購入したユーザは、アプリケーションメーカ40のサーバ40Sからアップグレードモジュール151及びアップグレードプログラム150及びライセンス情報107をユーザ端末50にダウンロードする。
この場合、アップグレードモジュール151及びアップグレードプログラム150がアプリケーションメーカ40のサーバ40Sから、アプリケーションプログラム100の購入者のユーザ端末50に送信されるときには、そのアップグレードモジュール151及びアップグレードプログラム150とそのアプリケーションプログラム100とが1対1対応となるように暗号化された上で送信(電子配信)される(図11のステップS301)。
次いで、管理サーバ40Sと、アプリケーションプログラム100との間で、アプリケーションプログラム100の認証機能104等を用いて認証が行なわれた上で(ステップS302)、管理サーバ40Sは、ライセンス情報107を発行し、ユーザ端末50は、そのライセンス情報107を受信・保存する(ステップS304)。
ユーザ端末50では、その暗号化されたアップグレードモジュール151及びアップグレードプログラム150が復号化されて、そのアップグレードモジュール151及びアップグレードプログラム150により、上記第1実施形態と同様に、ライセンス情報107に基づいて、ドライブ装置55のファームウェア230がアップグレードされる(図8のステップS101〜ステップ112)。このファームウェア230のアップグレードにより追加された機能によって、アプリケーションプログラム100に固有の機能が実現される。
アプリケーションメーカ40が製造するアプリケーションプログラム100が、複数のドライブ装置メーカ30が製造するドライブ装置55において汎用的に使用されるようにするためには、アプリケーションメーカ40のサーバ40Sに、それら複数のドライブ装置メーカ30のドライブ装置55にそれぞれ対応したアップグレードモジュール151及びアップグレードプログラム150が用意されればよい。即ち、アップグレードモジュール151及びアップグレードプログラム150を含まないアプリケーションプログラム100は、複数のドライブ装置メーカ30のドライブ装置55の全てに共通な単一の種類のものが用意される一方、それら複数のドライブ装置メーカ30のドライブ装置55のファームウェア230にそれぞれ対応するように複数種類のアップグレードモジュール151及びアップグレードプログラム150が用意されればよい。
更に、アプリケーションメーカ40のサーバ40Sに用意されるアップグレードモジュール151及びアップグレードプログラム150は、ドライブ装置メーカ30のサーバ30Sから、電子配信されることができる。また更に、上記ではアップグレードモジュール151を含むアップグレードプログラム150を含まないアプリケーションプログラム100が、パッケージソフトとして販売されるとして説明したが、これに代えて、アップグレードモジュール151及びアップグレードプログラム150を含まないアプリケーションプログラム100もまた、アプリケーションメーカ40のサーバ40Sからユーザ端末50に電子配信されることができる。
上記実施形態では、機器の一例として、記録又は再生装置を用いて説明したが、本発明における機器は、記録又は再生装置に限定されない。
上記実施形態では、以下の項が開示される。
(項1)
機器50の動作に関する機能232aを実現するために必要な前記機器50のファームウェア230のアップグレードを行なうように構成されているアップグレードモジュール151であって、前記機器50の動作を利用するアプリケーションプログラム100の一部として動作することを特徴としている。
(項2)
機器50の動作に関して固有の機能232aを有するアプリケーションプログラム100であって、前記固有の機能232aを実現するために必要な前記機器50のファームウェア230のアップグレードを行なうアップグレードモジュール151を備えたことを特徴としている。
(項3)
機器50の動作に関して固有の機能232aを有する認証されたアプリケーションプログラム100であって、前記認証されたアプリケーションプログラム100のみが発行可能であり、前記固有の機能を実現するために必要な前記機器50のファームウェア230のアップグレードが行われることにより追加された機能232aを使用するためのコマンドを発行することにより、前記追加された機能232aの使用が許可されるように構成されていることを特徴としている。
項1〜項3によれば、機器のファームウェアのアップグレードが機器の全てのユーザに許可されるのではなく、特別な条件でのみ許可されることが可能になる。この場合、例えば、ファームウェアのアップグレードにより追加される機能が、記録機器による暗号化された情報の記録を可能にする機能である場合のように著作権の保護に関連する機能である場合には、特定の条件下のユーザのみがファームウェアのアップグレードを行なえるようにすることで、セキュアな環境の構築が可能になる。
以上のように、本発明にかかるアップグレードプログラムは、特に、機器のファームウェアのアップグレードが機器の全てのユーザに許可されるのではなく、特別な条件でのみ許可されることを可能にするアップグレードモジュールに適している。
図1は、本発明のアプリケーションプログラムの第1実施形態が用いられる、ファームウェアのアップグレードシステムの概略構成を示すブロック図である。
図2は、本発明のアプリケーションプログラムの第1実施形態に含まれるアップグレードモジュールによって、ドライブ装置のファームウェアがアップグレードされる状態を説明するための図である。
図3は、本発明のアプリケーションプログラムの第1実施形態に含まれるアップグレードモジュールによって、アップグレードされる前のファームウェアによって制御されるドライブ装置の動作を説明するための図である。
図4は、本発明のアプリケーションプログラムの第1実施形態に含まれるアップグレードモジュールによって、アップグレードされた後のファームウェアによって制御されるドライブ装置の動作を説明するための図である。
図5は、本発明のアプリケーションプログラムの第1実施形態に含まれるアップグレードモジュールによってファームウェアがアップグレードされることにより追加される機能と、アップグレードされる前から存在する基本機能を説明するための図である。
図6は、本発明のアプリケーションプログラムの第1実施形態において、複数種類のアプリケーションプログラムに含まれるアップグレードモジュールによってファームウェアがそれぞれアップグレードされることにより追加される機能を説明するための図である。
図7は、本発明のアプリケーションプログラムの第1実施形態において、複数種類のアプリケーションプログラムに含まれるアップグレードモジュールによってファームウェアがそれぞれアップグレードされることにより追加された機能によって制御されたドライブ装置により記録ディスクに記録されたデータを説明するための図である。
図8は、本発明のアプリケーションプログラムの第1実施形態の動作を示すフローチャートである。
図9は、本発明のアプリケーションプログラムの第1実施形態の他の動作を示すフローチャートである。
図10は、本発明のアプリケーションプログラムの第2実施形態が用いられる、ファームウェアのアップグレードモジュールの配信システムの概略構成を示すブロック図である。
図11は、本発明のアプリケーションプログラムの第1実施形態の更に他の動作を示すフローチャートである。
符号の説明
50 ユーザ端末
55 ドライブ装置
60 記録ディスク
30 ドライブ装置メーカ
30S ドライブ装置メーカのサーバ
40 アプリケーションメーカ
40S アプリケーションメーカのサーバ
70 コンテンツサーバ
100 アプリケーションプログラム
100−1 第1のアプリケーションプログラム
100−2 第2のアプリケーションプログラム
100−4 第4のアプリケーションプログラム
151 アップグレードモジュール
151−1 第1のアップグレードモジュール
151−2 第2のアップグレードモジュール
151−4 第4のアップグレードモジュール
230 ファームウェア
231 基本機能
232a,232b 追加された機能
500 コンテンツ情報
501 暗号化データ
502 コンテンツデータ
600 記録ディスクの1セクターに対応するデータエリア
600−1 記録ディスクの1セクターに対応するデータエリア
600−2 記録ディスクの1セクターに対応するデータエリア
600−3 記録ディスクの1セクターに対応するデータエリア
601 セクターヘッダ
601a 暗号化データが記録されるためのエリア
602 ユーザデータエリア
D−1 データ
D−2 データ
K 暗号キー