説明

データ処理回路

【課題】コストを抑えつつ、セキュリティを向上し得るデータ処理回路を実現する。
【解決手段】PCI−Localブリッジ8Bが、モジュール外から供給されるプロセッサ起動コマンドに応じて、自身に記憶してある初期設定ファームを汎用プロセッサ8Aの実行開始アドレスに書き込んでから汎用プロセッサ8Aを起動させるようにしたことにより、例えば、不正なファームウェアがこの実行開始アドレスに書き込まれていたとしても、汎用プロセッサ8Aが起動する際には、この不正なファームウェアを初期設定ファームで上書き消去するので、汎用プロセッサ8Aを不正に起動させる不正起動攻撃を確実に防ぐことができ、またこのような初期設定ファームの書き込み及び汎用プロセッサ8Aの起動を、PCI−Localブリッジ8Bが担うようにしたことにより、汎用のプロセッサを用いることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はデータ処理回路に関し、特にセキュリティ処理を行うデータ処理回路に適用して好適なものである。
【背景技術】
【0002】
近年、インターネット等のネットワークを介した種々のコンテンツ配信サービスが広く普及している。このようなコンテンツ配信サービスでは、CDやDVDといった媒体を介してではなく、コンテンツのデータ(以下、これをコンテンツデータとも呼ぶ)そのものをネットワークを介してユーザの端末に提供するようになされているため、コンテンツの不正利用を防止することがいっそう強く求められており、このため様々なセキュリティ対策が講じられている。
【0003】
かかるセキュリティ対策の一つとして、例えばサービスを利用するための端末に、外部からの解析や改竄を困難にしたタンパレジスタントモジュールと呼ばれる特殊なハードウェアモジュールを組み込み、このモジュール内で、外部から隠蔽することが望ましいコンテンツ保護のためのセキュリティ処理を行うことにより、このセキュリティ処理をブラックボックス化してコンテンツの不正利用を防止するようになされたものがある(例えば特許文献1参照)。
【特許文献1】特開2001−22271公報(第9図)
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、上述のような特定のセキュリティ処理に特化した専用のハードウェアモジュール(以下、これを専用モジュールと呼ぶことにする)は、その特殊性から、汎用のハードウェアモジュール(以下、これを汎用モジュールと呼ぶことにする)と比べて多大なコストがかかるという問題がある。
【0005】
このような問題を解決するため、例えばファームウェアを書き替えることで種々の処理を行い得る汎用の演算プロセッサ(以下、これを単に汎用プロセッサと呼ぶ)を有する汎用モジュールを、専用モジュールの代わりとして用いることが考えられるが、このような汎用モジュールを用いた場合、コンテンツの不正利用を防止し得るのに十分なセキュリティを得ることが難しかった。
【0006】
例えば図5に示すような汎用モジュール100を実装した従来の端末T100で、セキュリティ処理を実行する場合、以下のようなセキュリティ上の問題が生じる。
【0007】
端末T100は、全体を統括制御するCPU101、及び各種ファームウェアを記録するハードディスクドライブ102が、PCIバスPB等を介して汎用モジュール100と接続されており、CPU101の制御のもと、ハードディスクドライブ102から読み出したファームウェアを汎用モジュール100で実行させることにより、上述のようなセキュリティ処理を行うようになされている。
【0008】
汎用モジュール100は、汎用プロセッサ100Aと、汎用プロセッサ100Aのメモリ(以下、これをプロセッサメモリとも呼ぶ)PMと、汎用プロセッサ100AのLocalバスLBとモジュール外のPCIバスPBとを中継するPCI−Localブリッジ100Bとを有し、CPU101の制御のもと、ハードディスクドライブ102から読み出されたファームウェアが、このPCI−ローカルブリッジ100Bを介して汎用プロセッサ100AのプロセッサメモリPMに書き込まれる。
【0009】
ちなみに、このプロセッサメモリPMには、図5(B)に示すように、汎用プロセッサ100Aが起動時最初にアクセスするアドレス(以下、これを実行開始アドレスとも呼ぶ)が予め設定されており、ファームウェアはこの実行開始アドレスから順に書き込まれるようになされている。
【0010】
このようにしてCPU101は、ファームウェアを汎用プロセッサ100AのプロセッサメモリPMに実行開始アドレスから書き込んだ後、汎用プロセッサ100Aを起動させるためのプロセッサ起動コマンドを、PCIバスPBを介して汎用モジュール100に供給する。
【0011】
汎用モジュール100のPCI−ローカルブリッジ100Bは、CPU101からプロセッサ起動コマンドを受け取ると、このプロセッサ起動コマンドを汎用プロセッサ100A用のプロセッサ起動コマンドに変換して、これを汎用プロセッサ100Aに送信する。
【0012】
汎用プロセッサ100Aは、このプロセッサ起動コマンドに応じて起動すると共に、プロセッサメモリPMの実行開始アドレスにアクセスして、ここに書き込まれたファームウェアを実行することにより、当該ファームウェアに基づくセキュリティ処理を開始する。
【0013】
このように、かかる汎用モジュール100は、外部からファームウェアがプロセッサメモリPMの実行開始アドレスから書き込まれた後、プロセッサ起動コマンドが供給されさえすれば、この書き込まれたファームウェアを汎用プロセッサ100Aに実行させるようになされているため、例えば外部から不正なファームウェアがプロセッサメモリPMの実行開始アドレスから書き込まれた状態で、プロセッサ起動コマンドが供給されてしまえば、この不正なファームウェアを正当なファームウェアと同様に汎用プロセッサ100Aに実行させることになる。ちなみに、この場合の不正なファームウェアとは、コンテンツの不正利用を目的として、例えばセキュリティ処理の内容を解析・改竄するようなファームウェアのことである。
【0014】
すなわち、このような汎用モジュール100でセキュリティ処理を実行する場合、汎用モジュールを不正に起動させて不正なファームウェアを実行させるといった不正起動攻撃を防ぐことが難しく、このためセキュリティ処理の内容を容易に解析・改竄される恐れがあり、結果として、コンテンツの不正利用を防止し得るのに十分なセキュリティを得ることが困難であった。
【0015】
このように、汎用モジュール100を用いた場合、専用モジュールを用いる場合と比べて、コストは抑えられるものの、セキュリティが著しく低くなるという問題があった。
【0016】
本発明は以上の点を考慮してなされたもので、コストを抑えつつ、セキュリティを向上し得るデータ処理回路を提案しようするものである。
【課題を解決するための手段】
【0017】
かかる課題を解決するため本発明のデータ処理回路においては、アクセス可能なメモリに書き込まれるファームウェアを実行する汎用プロセッサと、第1のファームウェアを記憶すると共に、汎用プロセッサと外部とを中継して、外部からの命令に応じて汎用プロセッサを制御する中継回路とを設け、中継回路が、外部から供給される第1の起動命令に応じて、第1のファームウェアをメモリの実行開始アドレスから書き込み、続いて汎用プロセッサに対して第1の起動命令に応じた第2の起動命令を出力し、汎用プロセッサが、第2の起動命令に応じて起動すると共に、実行開始アドレスに書き込まれた第1のファームウェアを実行するようにした。
【0018】
このようにこのデータ処理回路では、中継回路が、外部から供給される汎用プロセッサを起動させるための第1の起動命令に応じて、中継回路に記憶してあるファームウェアを汎用プロセッサの実行開始アドレスに書き込んでから汎用プロセッサを起動させてこのファームウェアを実行させるようにしたことにより、例えば、不正なファームウェアが汎用プロセッサの実行開始アドレスに書き込まれた状態で、外部から第1の起動命令が供給されたとしても、汎用プロセッサが起動する際、この不正なファームウェアを中継回路に記憶してあるファームウェアで上書き消去するので、汎用プロセッサを不正に起動させて不正なファームウェアを実行させるといった不正起動攻撃を確実に防ぐことができる。
【0019】
またこのようにこのデータ処理回路では、第1の起動命令に応じたファームウェアの書き込み及び汎用プロセッサの起動を、中継回路が担うようにしたことにより、中継回路以外の部分であるプロセッサ及びメモリには、汎用のものを用いることができる。
【発明の効果】
【0020】
本発明によれば、中継回路が、外部から供給される汎用プロセッサを起動させるための第1の起動命令に応じて、中継回路に記憶してあるファームウェアを汎用プロセッサの実行開始アドレスに書き込んでから汎用プロセッサを起動させてこのファームウェアを実行させるようにしたことにより、例えば、不正なファームウェアが汎用プロセッサの実行開始アドレスに書き込まれた状態で、外部から第1の起動命令が供給されたとしても、汎用プロセッサが起動する際、この不正なファームウェアを中継回路に記憶してあるファームウェアで上書き消去するので、汎用プロセッサを不正に起動させて不正なファームウェアを実行させるといった不正起動攻撃を確実に防ぐことができ、またこのように第1の起動命令に応じたファームウェアの書き込み及び汎用プロセッサの起動を、中継回路が担うようにしたことにより、中継回路以外の部分であるプロセッサ及びメモリには、汎用のものを用いることができ、かくしてコストを抑えつつ、セキュリティを向上し得るデータ処理回路を実現できる。
【発明を実施するための最良の形態】
【0021】
以下図面について、本発明の一実施の形態を詳述する。
【0022】
(1)コンテンツ再生装置の構成
図1において、1は全体としてネットワークNTを介して配信される楽曲コンテンツを再生可能なコンテンツ再生装置を示し、ホストCPU(Central Processing Unit)2、ROM(Read Only Memory)3、RAM(Random Access Memory)4、ハードディスクドライブ5、及び操作部6(以下、これらをホスト側とも呼ぶ)が、ホストバスHBに接続されると共に、ネットワークインタフェース部7、及びセキュリティ処理モジュール8(後述する)がPCIバスPBに接続され、さらにホストバスHBとPCIバスPBとがホスト−PCIブリッジ9を介して接続されている。また、セキュリティ処理モジュール8には、音声処理部10を介してスピーカSPが接続されている。
【0023】
このコンテンツ再生装置1は、ホストCPU2が全体を統括制御するようになされており、操作部6を介して、ネットワークNT上のコンテンツ配信サーバ(図示せず)から配信される楽曲コンテンツの取得操作が行われると、これに応じて、楽曲コンテンツの配信を要求する要求信号を、ネットワークインタフェース部7を介して、ネットワークNT上のコンテンツ配信サーバに送信する。
【0024】
コンテンツ配信サーバは、コンテンツ再生装置1から、かかる要求信号を受信すると、これに応じて、要求された楽曲コンテンツの配信にともなう対価をコンテンツ再生装置1のユーザに対して課金するための課金処理を実行すると共に、要求された楽曲コンテンツに対応するコンテンツデータと、当該コンテンツデータを利用する権利がある旨を示す権利情報とを、ネットワークNTを介して、コンテンツ再生装置1に送信する。
【0025】
コンテンツ再生装置1は、コンテンツ配信サーバから、コンテンツデータとその権利情報とを、ネットワークインタフェース部7を介して受信すると、これらをハードディスクドライブ5に記録する。その後、コンテンツ再生装置1は、操作部6を介してコンテンツデータの再生操作が行われると、これに応じて、コンテンツデータとその権利情報とをハードディスクドライブ5から読み出し、これらをセキュリティ処理モジュール8に供給する。
【0026】
セキュリティ処理モジュール8は、ホストCPU2からの命令に応じて、ハードディスクドライブ5から読み出されたセキュリティ処理用のファームウェア(以下、これをセキュリティファームとも呼ぶ)を実行することにより、権利情報が正しいものであるか否か(すなわちコンテンツ再生装置1で正規に取得した権利情報であるか否か)を確認して、正しいものであると確認できた場合にのみ、この権利情報に対応するコンテンツデータの利用を許可するといったコンテンツ保護のためのセキュリティ処理を実行するようになされている。
【0027】
ここで、ハードディスクドライブ5に記録されているコンテンツデータ、権利情報、及びセキュリティファームは、それぞれが異なる暗号鍵で暗号化されているものとする。
【0028】
実際上、セキュリティ処理モジュール8は、その内部に、暗号化されたセキュリティファームウェアを復号するための復号鍵(以下、これをセキュリティファームキーとも呼ぶ)と、このセキュリティファームキーを用いてセキュリティファームを復号すると共に、復号したセキュリティファームを実行するためのプログラム(以下、これをFirmwareLoaderとも呼ぶ)とを格納しており、ホストCPU2からの命令に応じて、このFirmwareLoaderを起動することにより、セキュリティファームを実行してセキュリティ処理を開始するようになされている。
【0029】
セキュリティ処理を開始したセキュリティ処理モジュール8は、まずハードディスクドライブ5から読み出された権利情報を、例えば自身が持つ、暗号化された権利情報を復号するための復号鍵(以下、これを権利情報キー)を用いて復号する。
【0030】
次いで、このセキュリティ処理モジュール8は、復号した権利情報が正しいものであるか否かを確認し、正しいものであると確認できた場合にのみ、この権利情報と、例えば自身が持つコンテンツデータ用の鍵情報とを用いて、暗号化されたコンテンツデータを復号するための復号鍵(以下、これをコンテンツキーとも呼ぶ)を生成し、このコンテンツキーを用いて、権利情報と共に読み出されたコンテンツデータを復号することで、このコンテンツデータの利用を許可し、この復号したコンテンツデータ(以下、これを復号済コンテンツデータとも呼ぶ)を音声処理部10に供給する。
【0031】
音声処理部10は、セキュリティ処理モジュール8から供給された復号済コンテンツデータに対して所定のデジタルアナログ変換処理を施すことにより音声信号を得、この音声信号に基づく音声(すなわち楽曲コンテンツ)を、スピーカSPを介して出力する。
【0032】
このようにコンテンツ再生装置1では、楽曲コンテンツの再生時、権利情報の確認や暗号化されたコンテンツデータの復号といったコンテンツ保護のためのセキュリティ処理をセキュリティ処理モジュール8内で実行するようになされており、以下、このセキュリティ処理の実行手順について、セキュリティ処理モジュール8の内部構成と合わせて説明する。
【0033】
(2)セキュリティ処理モジュールの内部構成及びセキュリティ処理の実行手順
まず、セキュリティ処理モジュール8の内部構成について、図2を用いて説明する。セキュリティ処理モジュール8は、汎用プロセッサ8Aと、汎用プロセッサ8Aの外部メモリ(以下、これをプロセッサ外メモリとも呼ぶ)PMeと、汎用プロセッサ8AのLocalバスLBとモジュール外のPCIバスPBとを中継するPCI−Localブリッジ8Bとを有しており、このうち汎用プロセッサ8A及びプロセッサ外メモリPMeには、既存の汎用DSP(Digital Signal Processor)及び汎用RAMが用いられているのに対し、PCI−Localブリッジ8Bには、コンテンツ再生装置1専用のデバイスが用いられている。
【0034】
汎用プロセッサ8Aは、複数のレジスタ(図示せず)と、これとは異なる内蔵メモリ(以下、これをプロセッサ内メモリとも呼ぶ)PMiとを有し、これら複数のレジスタ及びプロセッサ内メモリPMiのアドレスと、プロセッサ外メモリPMeのアドレスとをまとめて、1つのアドレス空間として利用するようになされている。
【0035】
つまり、汎用プロセッサ8Aのアドレス空間は、図3に示すように、プロセッサ内メモリ領域20と、レジスタ領域21と、プロセッサ外メモリ領域22とでなり、さらにこのうちのレジスタ領域21は、後述する外部メモリインタフェース設定レジスタ21aとその他の設定レジスタ21bとに分けられ、プロセッサ外メモリ領域22は、使用部22aと未使用部22bとに分けられている。
【0036】
さらに、プロセッサ外メモリ領域22の使用部22aは、その先頭アドレスから順に、上述のFirmwareLoaderなどを格納するFirmwareLoaderエリアa1と、セキュリティ処理モジュール8の状態を示すステータス情報を格納するStatusエリアa2と、セキュリティ処理モジュール8がCPU2に通知する(ホストCPU2が読み出す)応答コマンドやイベントコマンドを格納するModuleCommandエリアa3と、セキュリティ処理モジュール8がホストCPU2に転送する(ホストCPU2が読み出す)データを格納するReadBufferエリアa4と、ホストCPU2がセキュリティ処理モジュール8に発行する(ホストCPU2が書き込む)コマンドを格納するHostCommandエリアa5と、ホストCPU2がセキュリティ処理モジュール8に転送する(ホストCPU2が書き込む)データを格納するWriteBufferエリアa6と、復号後のセキュリティファームを格納するファームウェア実行エリアa7とに分けられている。
【0037】
また、このうちのModuleCommandエリアa3、ReadBufferエリアa4、HostCommandエリアa5、及びWriteBufferエリアa6は、ホストCPU2から転送される復号前の暗号化されたセキュリティファームなどを一時的に格納する暗号化ファームウェア転送エリアa8を兼用するようにもなされている。
【0038】
さらにこの汎用プロセッサ8Aでは、プロセッサ内メモリ領域20の先頭アドレスが、起動時最初にアクセスするアドレス(すなわち実行開始アドレス)に規定されている。
【0039】
一方、PCI−Localブリッジ8B(図2)は、外部からのアクセスが禁止された内蔵メモリ(以下、これをブリッジ内メモリとも呼ぶ)BMを有し、このブリッジ内メモリBMに、上述した権利情報キー、コンテンツデータ用の鍵情報、セキュリティファームキー、及びFirmwareLoaderと、後述する汎用プロセッサ8Aを初期設定する初期設定処理用のファームウェア(以下、これを初期設定ファームとも呼ぶ)とを格納しており、必要に応じて、これらを汎用プロセッサ8Aが利用するアドレス空間の所定エリアに書き込むようになされている。
【0040】
セキュリティ処理モジュール8は、ホストCPU2からの命令を、PCI−Localブリッジ8Bで受け取り、当該PCI−Localブリッジ8Bが、この命令に応じて、汎用プロセッサ8Aを制御することにより、上述のセキュリティ処理を実行するようになされている。
【0041】
ここで、汎用プロセッサ8Aの起動からセキュリティ処理を実行するまでの手順(すなわちセキュリティ処理の実行手順)について、図4のシーケンスチャートを用いて説明する。このシーケンスチャートは、ホストCPU2、PCI−Localブリッジ8B、及び汎用プロセッサ8Aによるセキュリティ処理の実行手順を示すものであり、このときホストCPU2はROM3に記録してあるプログラムに従って、またPCI−Localブリッジ8Bはブリッジ内メモリBMに記録してあるプログラムに従って動作するようになされている。
【0042】
コンテンツ再生装置1のホストCPU2は、例えば電源投入時、あるいは操作部6を介した手動操作に応じて、開始ステップSP1において、セキュリティ処理モジュール8をリセットするためのリセット信号を、PCI−Localブリッジ8Bに送信する。
【0043】
PCI−Localブリッジ8Bは、ホストCPU2から送られてくるリセット信号を受け取ると、ステップSP2において、受け取ったリセット信号を汎用プロセッサ8A用のリセット信号に変換して、これを汎用プロセッサ8Aに送信する。ここで、このリセット信号により汎用プロセッサ8Aが一旦リセットされる。
【0044】
つづいてホストCPU2は、ステップSP1からステップSP3に移り、このステップSP3において、汎用プロセッサ8A内のレジスタを初期設定するための初期設定用データを、汎用プロセッサ8Aが利用するアドレス空間の暗号化ファームウェア転送エリアa8に書き込み、次のステップSP4に移る。ここで、この初期設定用データとは、汎用プロセッサ8Aのクロックを設定するクロック設定用データや、汎用プロセッサ8Aのキャッシュメモリのサイズを設定するキャッシュメモリ設定用データや、プロセッサ外メモリPMeのインタフェースを設定する外部メモリI/F設定データ等である。
【0045】
ステップSP4においてホストCPU2は、一旦リセットされた汎用プロセッサ8Aを起動させるためのプロセッサ起動コマンドを、PCI−Localブリッジ8Bに送信する。
【0046】
PCI−Localブリッジ8Bは、ホストCPU2から送られてくるプロセッサ起動コマンドを受け取ると、ステップSP5において、自身のブリッジ内メモリBMに記憶されている初期設定ファームを読み出し、これを汎用プロセッサ8Aの実行開始アドレス(プロセッサ内メモリ領域20の先頭アドレス)から書き込み、次のステップSP6に移る。
【0047】
ステップSP6においてPCI−Localブリッジ8Bは、ホストCPU2から受け取ったプロセッサ起動コマンドを汎用プロセッサ8A用のプロセッサ起動コマンドに変換して、これを汎用プロセッサ8Aに送信する。
【0048】
このようにこのPCI−Localブリッジ8Bは、ホストCPU2から受け取ったプロセッサ起動コマンドに応じて、PCI−Localブリッジ8B内に格納された初期設定ファームを、汎用プロセッサ8Aの実行開始アドレスに書き込んでから、この汎用プロセッサ8Aにプロセッサ起動コマンドを送るようにしたことにより、何らかのモジュール上の不具合(例えばセキュリティホール)などを利用して、外部から不正なファームウェアが、汎用プロセッサ8Aの実行開始アドレスに書き込まれたとしても、この不正なファームウェアを初期設定ファームで上書き消去して、この不正なファームウェアが復号及び実行されることを防止することができる。
【0049】
汎用プロセッサ8Aは、PCI−Localブリッジ8Bから送られてくるプロセッサ起動コマンドに応じて起動すると共に、ステップSP7において、規定されている実行開始アドレス(プロセッサ内メモリ領域20の先頭アドレス)にアクセスして、ここに書き込まれている初期設定ファームを実行する。この初期設定ファームは、暗号化ファームウェア転送エリアa8に書き込まれた初期設定データに基づいて、汎用プロセッサ8Aの初期設定処理を行うファームウェアであり、汎用プロセッサ8Aは、この初期設定ファームを実行することにより自身の初期設定を行う。
【0050】
そして汎用プロセッサ8Aは、この初期設定処理が終了すると、ステップSP8に移り、このステップSP8において、初期設定処理が終了したことを示す終了通知情報をPCI−Localブリッジ8Bに送信する。
【0051】
PCI−Localブリッジ8Bは、汎用プロセッサ8Aから初期設定処理が終了したことを示す終了通知情報を受け取ると、ステップSP9において、受け取った終了通知情報をホストCPU2用の終了通知情報に変換して、これをホストCPU2に送信する。
【0052】
ホストCPU2は、PCI−Localブリッジ8Bから初期設定処理が終了したことを示す終了通知情報を受け取ると、汎用プロセッサ8Aが起動して初期設定処理が終了したことを認識し、ステップSP10において、ハードディスクドライブ5から読み出した暗号化された状態のセキュリティファームを、汎用プロセッサ8Aの暗号化ファームウェア転送エリアa8に書き込み、次のステップSP11に移る。
【0053】
ステップSP11においてホストCPU2は、汎用プロセッサ8Aに、FirmwareLoaderを起動させるためのコマンド(以下、これをFirmwareLoader起動コマンドとも呼ぶ)を、PCI−Localブリッジ8Bに送信する。
【0054】
PCI−Localブリッジ8Bは、ホストCPU2から送られてくるFirmwareLoader起動コマンドを受け取ると、ステップSP12において、自身のブリッジ内メモリBMに記憶されているFirmwareLoaderとセキュリティファームキーとを読み出し、読み出したFirmwareLoaderを汎用プロセッサ8AのFirmwareLoaderエリアa1の先頭アドレスから書き込み、またセキュリティファームキーをプロセッサ内メモリ領域20に書き込み、次のステップSP13に移る。
【0055】
ステップSP13においてPCI−Localブリッジ8Bは、ステップSP11でホストCPU2から受け取ったFirmwareLoader起動コマンドを、汎用プロセッサ8A用のFirmwareLoader起動コマンドに変換し、この変換したFirmwareLoader起動コマンドを汎用プロセッサ8Aに送信する。
【0056】
汎用プロセッサ8Aは、PCI−Localブリッジ8Bから送られてくるFirmwareLoader起動コマンドを受け取ると、ステップSP14において、FirmwareLoaderエリアa1の先頭アドレスにアクセスして、ここに書き込まれているFirmwareLoaderを実行する。
【0057】
このFirmwareLoaderは、上述したように、暗号化された状態のセキュリティファームを、セキュリティファームキーを用いて復号してから実行するファームウェアであり、くわえて本実施の形態のFirmwareLoaderは、復号する前にセキュリティファームの正当性をチェックするようにもなされている。
【0058】
すなわち汎用プロセッサ8Aは、このステップSP14において、FirmwareLoaderを実行することにより、まず自身の暗号化ファームウェア転送エリアa8に書き込まれている暗号化された状態のセキュリティファームの正当性をチェックする。
【0059】
ここで、このセキュリティファームの正当性をチェックする手法については、例えば、このセキュリティファームのハッシュ値や、MAC値を取るなどの手法を用いればよく、また、セキュリティファームの正当性をチェックし得る手法であれば、この他種々の手法を用いてもよい。
【0060】
そして汎用プロセッサ8Aは、セキュリティファームが正当なものであると確認できた場合には、このセキュリティファームをプロセッサ内メモリ領域20に書き込まれているセキュリティファームキーを用いて復号し、この復号したセキュリティファームをファームウェア実行エリアa7に書き込み、次のステップSP15に移る。
【0061】
また一方で、セキュリティファームが正当であると確認できなかった場合、汎用プロセッサ8Aは、このセキュリティファームを復号せずに、次のステップSP15に移る。
【0062】
ステップSP15において汎用プロセッサ8Aは、FirmwareLoaderによる、正当性のチェック及びセキュリティファームの復号(ただし復号は、セキュリティファームが正当なものであると確認できた場合にのみ)が終了したことを示す終了通知情報をPCI−Localブリッジ8Bに送信する。ここで、この終了通知情報には、正当性のチェック結果も含まれているものとする。
【0063】
PCI−Localブリッジ8Bは、汎用プロセッサ8Aから、正当性のチェック及びセキュリティファームの復号が終了したこと及び正当性のチェック結果を示す終了通知情報を受け取ると、ステップSP16において、受け取った終了通知情報をホストCPU2用の終了通知情報に変換して、これをホストCPU2に送信する。
【0064】
これによりホストCPU2は、暗号化ファームウェア転送エリアa8に書き込まれたセキュリティファームが正当なものであるか否かを判断し得、このセキュリティファームが正当なものではない、すなわち不正なものであると判断した場合には、例えば、再度リセット信号をPCI−Localブリッジ8Bに送信して汎用プロセッサ8Aを再起動させるようにしてもよいし、あるいは不正なファームウェアが書き込まれたことを音声等でユーザに通知して、以降の処理を中断するようにしてもよい。
【0065】
上述のステップSP14で、セキュリティファームが正当なものであると確認でき、このセキュリティファームを復号した汎用プロセッサ8Aは、上述のようにステップSP15で終了通知情報を送信した後、次のステップSP17に移る。
【0066】
ステップSP17において汎用プロセッサ8Aは、FirmwareLoaderによるセキュリティファームの実行に移行し、ファームウェア実行エリアa7に書き込まれている復号されたセキュリティファームを実行する。これにより汎用プロセッサ8Aは、このセキュリティファームに基づいて、上述のセキュリティ処理を行う。
【0067】
以上で、汎用プロセッサ8Aの起動からセキュリティ処理を実行するまでの手順(すなわちセキュリティ処理の実行手順)の説明を終了する。なお、ステップSP8からステップSP9、及びステップSP15からステップSP16においては、説明の便宜上、汎用プロセッサ8AがPCI−Localブリッジ8Bを介してホストCPU2に終了通知情報を送信すると述べたが、実際には、この終了通知情報が、汎用プロセッサ8Aにより、ReadBufferエリアa4などに書き込まれ、これをホストCPU2が、読み出すようになされている。
【0068】
このようにこのセキュリティ処理モジュール8では、モジュール外(すなわちホストCPU2)からプロセッサ起動コマンドが供給されると、これに応じて、モジュール内のPCI−Localブリッジ8Bが、自身のブリッジ内メモリBMに格納されている初期設定ファームを、汎用プロセッサ8Aが利用するアドレス空間の実行開始アドレスに書き込み、つづいてこのPCI−Localブリッジ8Bが、汎用プロセッサ8Aにプロセッサ起動コマンドを送信して、汎用プロセッサ8Aを起動させ、初期設定ファームを実行させるようにした。
【0069】
すなわちこのセキュリティ処理モジュール8では、モジュール外から供給されるプロセッサ起動コマンドに応じて、PCI−Localブリッジ8B内に格納された初期設定ファームを、汎用プロセッサ8Aの実行開始アドレスに書き込んでから、この汎用プロセッサ8Aを起動させるようにしたことにより、例えば、不正なファームウェアが汎用プロセッサ8Aの実行開始アドレスに書き込まれた状態で、プロセッサ起動コマンドが供給されたとしても、このときこの不正なファームウェアが初期設定ファームで上書き消去されるので、汎用プロセッサ8Aを不正に起動させて不正なファームウェアを実行させるような不正起動攻撃を確実に防ぐことができる。
【0070】
また、このセキュリティ処理モジュール8では、上述したように、暗号化されたセキュリティファームを復号するためのセキュリティファームキーと、このセキュリティファームキーを用いて暗号化されたセキュリティファームを復号して実行するFirmwareLoaderとを、PCI−Localブリッジ8Bのブリッジ内メモリBMに格納しておき、モジュール外から供給されるFirmwareLoader起動コマンドに応じて、PCI−Localブリッジ8Bが汎用プロセッサ8AにFirmwareLoaderを実行させるようにした。
【0071】
すなわちこのセキュリティ処理モジュール8では、モジュール内に格納されているセキュリティファームキーとFirmwareLoaderとを用いて、モジュール外から供給される暗号化されたセキュリティファームをモジュール内で復号して実行するようにしたことにより、モジュール外に格納されたセキュリティファームが不正に読み出されて容易に解析・改竄されることを防止することができる。また、このセキュリティファームキーとFirmwareLoaderとを、モジュール内のPCI−Localブリッジ8Bに格納しておくようにしたことにより、このセキュリティファームキーとFirmwareLoaderとをモジュール外から隠蔽することができると共に、PCI−Localブリッジ8B以外の部分(すなわち汎用プロセッサ8A及びプロセッサ外メモリPMeなど)については、汎用のものを用いることができる。
【0072】
さらに、このセキュリティ処理モジュール8では、暗号化されたセキュリティファームの復号前に、このセキュリティファームに対する正当性のチェックを行い、正当なものであると確認できた場合にのみ、セキュリティファームを復号して実行するようにした。これにより、外部から不正なファームウェアや改竄された暗号化ファームウェアが、セキュリティ処理モジュール8内の暗号化ファームウェア転送エリアa8に書き込まれたとしても、この不正なファームウェアや改竄された暗号化ファームウェアの復号及び実行を防止することができる。
【0073】
(3)アドレス空間のアクセス制限
さらにこのセキュリティ処理モジュール8では、PCI−Localブリッジ8Bにより、汎用プロセッサ8Aのアドレス空間の各領域に対して、その領域に格納される情報の用途に応じたアクセス制限がかけられている。
【0074】
実際上、このアクセス制限としては、図3に示すように、モジュール外からの書き込みのみを許可するWriteOnlyと、モジュール外からの読み出し及び書き込みの両方を許可するRead/Writeと、モジュール外からのアクセスを禁止するアクセス禁止との3種類があり、アドレス空間の各領域は、これら3種類のアクセス制限によりWriteOnlyエリア、Read/Writeエリア、及びアクセス禁止エリアのいずれかに設定されている。
【0075】
ここで、WriteOnlyエリアに設定される領域は、ホストCPU2がセキュリティ処理モジュール8に発行する(ホストCPU2が書き込む)コマンドを格納するHostCommandエリアa5と、ホストCPU2がセキュリティ処理モジュール8に転送する(ホストCPU2が書き込む)データを格納するWriteBufferエリアa6とする。このように、ホストCPU2から送られてくる情報を格納する領域は、WriteOnlyエリアに設定する。
【0076】
次に、Read/Writeエリアに設定される領域は、外部メモリインタフェース設定レジスタ21aと、セキュリティ処理モジュール8の状態を示すステータス情報を格納するStatusエリアa2と、セキュリティ処理モジュール8がホストCPU2に通知する(ホストCPU2が読み出す)応答コマンドやイベントコマンドを格納するModuleCommandエリアa3と、セキュリティ処理モジュール8がホストCPU2に転送する(ホストCPU2が読み出す)データを格納するReadBufferエリアa4とする。
【0077】
実際上、外部メモリインタフェース設定レジスタ21aは、プロセッサ外メモリPMeを使用するためにホストCPU2が設定するレジスタであり、正しく設定できたかどうかをホストCPU2が確認できるように、この外部メモリインタフェース設定レジスタ21aに対してはモジュール外からの書き込みだけでなく読み出しも許可する。
【0078】
また同様に、Statusエリアa2、ModuleCommandエリアa3及びReadBufferエリアa4についても、ホストCPU2が情報を読み出した後にこの情報を書換/消去する場合などもあるので、モジュール外からの読み出しだけでなく書き込みも許可する。
【0079】
このように、ホストCPU2から送られてくる情報、及びホストCPU2に送る情報を格納する領域はRead/Writeエリアに設定する。
【0080】
そして、これ以外の領域である、プロセッサ内メモリ領域20、その他の設定レジスタ21b、プロセッサ外メモリ領域22の未使用部22b、FirmwareLoaderエリアa1、及びファームウェア実行エリアa7は、アクセス禁止エリアに設定される。
【0081】
実際上、プロセッサ内メモリ領域20は、汎用プロセッサ8Aの実行開始アドレスを含み、PCI−Localブリッジ8Bから送られてくる初期設定ファームやセキュリティキーを格納する領域であると共に、セキュリティ処理の最重要部分を実行するために使用される領域であり、セキュリティ処理の改竄・解析を防ぐためにモジュール外からのアクセスが禁止される。
【0082】
また、その他の設定レジスタ21bは、汎用プロセッサ8Aの各種設定を行うレジスタであり、この設定がモジュール外から不正に変更されてセキュリティホールを作られることを防ぐために、モジュール外からのアクセスが禁止される。
【0083】
さらに、プロセッサ外メモリ領域22の未使用部22bには、使用部22aに書き込まれたデータの写像が現れる恐れがあるので、モジュール外からのアクセスが禁止される。
【0084】
さらに、FirmwareLoaderエリアa1は、PCI−Localブリッジ8Bから送られてくるFirmwareLoaderを格納する領域であり、FirmwareLoaderの改竄・解析を防ぐためにモジュール外からのアクセスが禁止される。
【0085】
さらに、ファームウェア実行エリアa7は、FirmwareLoaderによって復号されたファームウェアを格納して実行する領域であり、復号したファームウェアの改竄・解析を防ぐためにモジュール外からのアクセスが禁止される。
【0086】
このように、ホストCPU2がアクセスする必要がなく、セキュリティ処理に係わるセキュリティキー、FirmwareLoader、及び復号したセキュリティファームなどの秘密情報を格納する領域はアクセス禁止エリアに設定する。
【0087】
また、暗号化ファームウェア転送エリアa8は、ModuleCommandエリアa3、ReadBufferエリアa4、HostCommandエリアa5、及びWriteBufferエリアa6と兼用されているので、WriteOnlyエリア又はRead/Writeエリアとなる。
【0088】
このようにしてセキュリティ処理モジュール8では、PCI−Localブリッジ8Bにより、汎用プロセッサ8Aのアドレス空間の各領域に対して、その領域に格納される情報の用途に応じたアクセス制限をかけるようにし、特に、ホストCPU2がアクセスする必要がなく、セキュリティ処理に係わる秘密情報を格納する領域については、モジュール外からのアクセスを禁止するようにした。これにより、秘密情報が漏洩してセキュリティ処理が解析・改竄されることを防止することができる。
【0089】
(4)動作及び効果
以上の構成においてセキュリティ処理モジュール8では、ホストCPU2からプロセッサ起動コマンドが供給されると、これに応じて、モジュール内のPCI−Localブリッジ8Bが、自身のブリッジ内メモリBMに格納されている初期設定ファームを、汎用プロセッサ8Aが利用するアドレス空間の実行開始アドレスに書き込み、つづいてこのPCI−Localブリッジ8Bが、汎用プロセッサ8Aにプロセッサ起動コマンドを送信して、汎用プロセッサ8Aを起動させ、初期設定ファームを実行させるようにした。
【0090】
すなわちこのセキュリティ処理モジュール8では、モジュール外から供給されるプロセッサ起動コマンドに応じて、PCI−Localブリッジ8B内に格納された初期設定ファームを、汎用プロセッサ8Aの実行開始アドレスに書き込んでから、この汎用プロセッサ8Aを起動させるようにしたことにより、例えば、不正なファームウェアが汎用プロセッサ8Aの実行開始アドレスに書き込まれた状態で、プロセッサ起動コマンドが供給されたとしても、この不正なファームウェアが初期設定ファームにより上書き消去されるので、汎用プロセッサ8Aを不正に起動させて不正なファームウェアを実行させるような不正起動攻撃を確実に防ぐことができる。
【0091】
また、このセキュリティ処理モジュール8では、モジュール内のPCI−Localブリッジ8B内に格納された、暗号化されたセキュリティファームを復号して実行するプログラムであるFirmwareLoaderに、暗号化されたセキュリティファームに対する正当性のチェック機能を設けるようにした。
【0092】
すなわち、セキュリティ処理モジュール8では、セキュリティ処理を実行する前に、このFirmwareLoaderを汎用プロセッサ8Aに実行させることで、暗号化されたセキュリティファームの復号前に、このセキュリティファームに対する正当性のチェックを行い、正当なものであると確認できた場合にのみ、セキュリティファームを復号して実行するようにした。
【0093】
これにより、セキュリティ処理モジュール8では、外部から不正なファームウェアや改竄された暗号化ファームウェアが、モジュール内に書き込まれたとしても、この不正なファームウェアや改竄された暗号化ファームウェアの復号及び実行を防止することができる。
【0094】
また、このようなセキュリティを向上させるための初期設定ファーム及びFirmwareLoaderなどをPCI−Localブリッジ8Bに記憶し、またこれら初期設定ファーム及びFirmwareLoaderなどの所定エリアへの書き込みをこのPCI−Localブリッジ8Bが担うようにしたことにより、セキュリティ処理モジュール8のPCI−Localブリッジ8B以外の部分(すなわち汎用プロセッサ8Aが及びプロセッサ外メモリPMeなど)には、汎用のものを採用することができる。またこのことを言い換えれば、新規に開発する部分がPCI−Localブリッジ8Bだけでよく、このためセキュリティ処理モジュール8の全てを新規に開発する場合と比して、その開発費、開発時間、コストを大幅に削減できる。
【0095】
以上の構成によれば、PCI−Localブリッジ8Bが、モジュール外から供給されるプロセッサ起動コマンドに応じて、ブリッジ内メモリBMに記憶してある初期設定ファームを汎用プロセッサ8Aが利用するアドレス空間の実行開始アドレスに書き込んでから汎用プロセッサ8Aを起動させてこの初期設定ファームを実行させるようにしたことにより、例えば、不正なファームウェアがこの実行開始アドレスに書き込まれた状態で、モジュール外からプロセッサ起動コマンドが供給されたとしても、汎用プロセッサ8Aが起動する際には、この不正なファームウェアを初期設定ファームで上書き消去するので、汎用プロセッサ8Aを不正に起動させて不正なファームウェアを実行させるといった不正起動攻撃を確実に防ぐことができ、またこのようにプロセッサ起動コマンドに応じた初期設定ファームの書き込み及び汎用プロセッサ8Aの起動を、PCI−Localブリッジ8Bが担うようにしたことにより、PCI−Localブリッジ8B以外の部分には、汎用のものを用いることができ、かくして汎用プロセッサを用いてコストを抑えつつ、セキュリティを向上させることができる。
【0096】
(5)他の実施の形態
なお上述の実施の形態においては、コンテンツの不正利用を防止するためのセキュリティ処理を実行するセキュリティ処理モジュール8に本発明を適用する場合について述べたが、本発明はこれに限らず、例えば、個人情報、暗号データ、ネットワーク認証データ、及び接続機器認証データなどのような外部から隠蔽したい秘密情報を処理するモジュールに適用することができ、この場合も、コストを抑えてセキュリティを向上させたモジュールを実現することができる。また、このようなモジュールに本発明を適用することができるので、セキュリティ処理モジュール8を有するコンテンツ再生装置1に限らず、例えば、ICカード、携帯電話機、及び防犯装置などのような、種々のセキュリティ処理を行う装置に適用することができる。
【0097】
また上述の実施の形態においては、ホストCPU2から供給されるプロセッサ起動コマンドに応じて、PCI−Localブリッジ8Bが、初期設定ファームを汎用プロセッサ8Aが利用するアドレス空間の実行開始アドレスに書き込んでから汎用プロセッサ8Aを起動させるようにした場合について述べたが、本発明はこれに限らず、このとき例えば初期設定用ファーム以外の役割を担うファームウェアをこの実行開始アドレスに書き込むようにしてもよい。実際上、本発明では、プロセッサ起動コマンドに応じて、汎用プロセッサ8Aを起動させる直前に、何らかのファームウェアを実行開始アドレスに書き込めばよく、こうすることで、不正なファームウェアを上書き消去することができる。
【0098】
さらに上述の実施の形態においては、FirmwareLoaderを、プロセッサ外メモリ領域22のFirmwareLoaderエリアa1の先頭アドレスから書き込むようにしたが、本発明はこれに限らず、セキュリティファームが書き込まれる暗号化ファームウェア転送エリアa8及びファームウェア実行エリアa7と違う領域であり、かつモジュール外からのアクセスが禁止されたエリアであれば、どのエリアに書き込んでもよい。
【0099】
さらに上述の実施の形態においては、ホストCPU2が初期設定用データを汎用プロセッサ8Aの暗号化ファームウェア転送エリアa8に書き込むようにした場合について述べたが、本発明はこれに限らず、この初期設定用データを、PCI−Localブリッジ8Bのブリッジ内メモリBMに記憶しておき、ホストCPU2からのプロセッサ起動コマンドに応じて、PCI−Localブリッジ8Bが、汎用プロセッサ8Aの例えばアクセス禁止エリアに書き込むようにしてもよい。このようにすれば、さらにセキュリティを向上させることができる。
【0100】
さらに上述の実施の形態においては、汎用プロセッサ8Aが利用するアドレス空間の各領域を図3に示すように割り当て、それぞれの領域にアクセス制限をかけるようにした場合について述べたが、本発明はこれに限らず、汎用プロセッサ8A及び各領域の用途に応じて、領域の割り当て及びアクセス制限を設定すればよく、必ずしも、図3に示すような領域の割り当て及びアクセス制限に限定するものではない。
【0101】
さらに上述の実施の形態においては、汎用プロセッサ8Aの実行開始アドレスを、プロセッサ内メモリ領域20の先頭アドレスとした場合について述べたが、本発明はこれに限らず、汎用プロセッサ8Aの仕様などに合わせて、他の領域のアドレスを実行開始アドレスとして規定するようにしてもよい。
【0102】
さらに上述の実施の形態においては、セキュリティファームを暗号化した状態で、モジュール外のハードディスクドライブ5に記録しておくようにした場合について述べたが、本発明はこれに限らず、このセキュリティファームが仮に暗号化されていなくとも、FirmwareLoaderによりこのセキュリティファームの正当性をチェックするので、不正なセキュリティファームの実行を防止することができる。ただし、セキュリティファームを暗号化しておくほうが、セキュリティが強固になることは言うまでもない。
【0103】
さらに上述の実施の形態においては、PCI−Localブリッジ8Bに記憶されているセキュリティファームキーを、汎用プロセッサ8Aのプロセッサ内メモリ領域20に書き込み、このセキュリティファームキーを用いて、暗号化されたセキュリティファームを復号するようにした場合について述べたが、本発明はこれに限らず、例えば、PCI−Localブリッジ8Bには、セキュリティファームキーを生成するための鍵情報を書き込んでおき、この鍵情報を用いてFirmwareLoader上でセキュリティファームキーを生成して、セキュリティファームを復号するようにしてもよい。この場合、セキュリティファームキーは、実際にセキュリティファームを復号するときになって初めてFirmwareLoader上で生成されるので、PCI−Localブリッジ8Bから不正に読み出される恐れをなくすことができる。このことは、セキュリティファームキーに限らず、秘密情報である権利情報キーや、コンテンツデータ用の鍵情報に対しても同様であり、こうすることで、さらにセキュリティを向上させることができる。
【0104】
さらに上述の実施の形態においては、第1のファームウェアとしての初期設定ファームや、実行用プログラムとしてのFirmwareLoaderや、第2のファームウェアとしてのセキュリティファームを実行する汎用プロセッサと、初期設定ファーム及びFirmwareLoaderを記憶すると共に、CPU2から供給されるプロセッサ起動コマンド(第1の起動命令)を汎用プロセッサ用のプロセッサ起動コマンド(第2の起動命令)に変換し、またホストCPU2から供給されるFirmwareLoader起動コマンド(第3の起動命令)を汎用プロセッサ用のFirmwareLoader起動コマンド(第4の起動命令)に変換して出力する中継回路としてのPCI−Localブリッジ8Bと、汎用プロセッサ8Aがアクセス可能なメモリであるプロセッサ外メモリPMeなどによって、データ処理回路としてのセキュリティ処理モジュール8を構成するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成を用いるようにしてもよい。
【0105】
さらに上述の実施の形態においては、制御部としてのホストCPU2や、データ処理回路としてのセキュリティ処理モジュール8などによって、データ処理装置としてのコンテンツ再生装置1を構成するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成を用いるようにしてもよい。
【産業上の利用可能性】
【0106】
本発明は、セキュリティ処理を実行する様々な回路及び装置で広く利用できる。
【図面の簡単な説明】
【0107】
【図1】コンテンツ再生装置の全体構成を示す略線図である。
【図2】セキュリティ処理モジュールの内部構成を示す略線図である。
【図3】汎用プロセッサのアドレス空間を示す略線図である。
【図4】セキュリティ処理の実行手順を示すシーケンスチャートである。
【図5】汎用モジュールを実装した従来端末の構成を示す略線図である。
【符号の説明】
【0108】
1……コンテンツ再生装置、2……ホストCPU、3……ROM、4……RAM、5……ハードディスクドライブ、6……操作部、7……ネットワークインタフェース部、8……セキュリティ処理モジュール、8A……汎用プロセッサ、8B……PCI−Localブリッジ、9……ホスト−PCIブリッジ、10……音声処理部、20……プロセッサ内メモリ領域、21……レジスタ領域、21a……外部メモリ設定インタフェース設定レジスタ、21b……その他の設定レジスタ、22……プロセッサ外メモリ領域、22a……使用部、22b……未使用部、a1……FirmwareLoaderエリア、a2……Statusエリア、a3……ModuleCommandエリア、a4……ReadBufferエリア、a5……HostCommandエリア、a6……WriteBufferエリア、a7……ファームウェア実行エリア、a8……暗号化ファームウェア転送エリア、BM……ブリッジ内メモリ、HB……ホストバス、LB……Localバス、NT……ネットワーク、PB……PCIバス、PMe……プロセッサ外メモリ、PMi……プロセッサ内メモリ。

【特許請求の範囲】
【請求項1】
アクセス可能なメモリに書き込まれるファームウェアを実行する汎用プロセッサと、
第1のファームウェアを記憶すると共に、上記汎用プロセッサと外部とを中継して、外部からの命令に応じて上記汎用プロセッサを制御する中継回路と
を具え、
上記中継回路は、
外部から供給される第1の起動命令に応じて、上記第1のファームウェアを上記メモリの実行開始アドレスから書き込み、続いて上記汎用プロセッサに対して上記第1の起動命令に応じた第2の起動命令を出力し、
上記汎用プロセッサは、
上記第2の起動命令に応じて起動すると共に、上記実行開始アドレスに書き込まれた上記第1のファームウェアを実行する
ことを特徴とするデータ処理回路。
【請求項2】
上記メモリには、上記汎用プロセッサを初期設定するための初期設定用データが書き込まれ、
上記汎用プロセッサは、
上記第2の起動命令に応じて起動すると共に、上記実行開始アドレスに書き込まれた上記第1のファームウェアを実行することにより、上記初期設定用データに基づいて初期設定を行う
ことを特徴とする請求項1に記載のデータ処理回路。
【請求項3】
上記メモリには、第2のファームウェアが書き込まれ、
上記中継回路は、
上記第2のファームウェアの正当性を検出して実行するための実行用プログラムを記憶し、外部から供給される第3の起動命令に応じて、上記実行用プログラムを上記メモリの上記第2のファームウェアが書き込まれた位置とは異なる位置に書き込み、続いて上記汎用プロセッサに対して上記第3の起動命令に応じた第4の起動命令を出力し、
上記汎用プロセッサは、
上記第4の起動命令に応じて、上記メモリに書き込まれた上記実行用プログラムを実行することにより、上記メモリに書き込まれた上記第2のファームウェアの正当性を検出し、当該検出結果に応じて、当該第2のファームウェアを実行する
ことを特徴とする請求項2に記載のデータ処理回路。
【請求項4】
上記中継回路は、
外部のバスと上記汎用プロセッサのバスとをブリッジするブリッジ回路である
ことを特徴とする請求項3に記載のデータ処理回路。
【請求項5】
上記実行用プログラムは、
暗号化された上記第2のファームウェアを復号する機能を有し、
上記汎用プロセッサは、
上記第4の起動命令に応じて、上記メモリに書き込まれた上記実行用プログラムを実行することにより、上記メモリに書き込まれた暗号化された上記第2のファームウェアの正当性を検出し、当該検出結果に応じて、当該暗号化された第2のファームウェアを復号して実行する
ことを特徴とする請求項3に記載のデータ処理回路。
【請求項6】
制御部と、
アクセス可能なメモリに書き込まれるファームウェアを実行する汎用プロセッサと、
第1のファームウェアを記憶すると共に、上記汎用プロセッサと外部とを中継して、制御部からの命令に応じて上記汎用プロセッサを制御する中継回路と
を具え、
上記中継回路は、
上記制御部から供給される第1の起動命令に応じて、上記第1のファームウェアを上記メモリの実行開始アドレスから書き込み、続いて上記汎用プロセッサに対して上記第1の起動命令に応じた第2の起動命令を出力し、
上記汎用プロセッサは、
上記第2の起動命令に応じて起動すると共に、上記実行開始アドレスに書き込まれた上記第1のファームウェアを実行する
ことを特徴とするデータ処理装置。
【請求項7】
外部から供給される第1の起動命令に応じて、汎用プロセッサと外部とを中継する中継回路に記憶された第1のファームウェアを、汎用プロセッサがアクセスするメモリの実行開始アドレスに書き込む第1ファームウェア書込ステップと、
上記第1ファームウェア書込ステップで上記第1のファームウェアが書き込まれた後、上記第1の起動命令に応じた第2の起動命令を上記汎用プロセッサに出力して当該汎用プロセッサを起動させると共に、当該汎用プロセッサに、上記実行開始アドレスに書き込まれた上記第1のファームウェアを実行させる第1ファームウェア実行ステップと
を具えることを特徴とするデータ処理方法。
【請求項8】
上記メモリに上記汎用プロセッサを初期設定するための初期設定用データを書き込む初期設定用データ書込ステップを具え、
上記第1ファームウェア実行ステップでは、
上記実行開始アドレスに書き込まれた上記第1のファームウェアを、上記汎用プロセッサに実行させることにより、上記初期設定用データに基づいて上記汎用プロセッサの初期設定を行う
ことを特徴とする請求項7に記載のデータ処理方法。
【請求項9】
上記メモリに第2のファームウェアを書き込む第2ファームウェア書込ステップと、
外部から供給される第3の起動命令に応じて、上記中継回路に記憶された、上記第2のファームウェアの正当性を検出して実行するための実行用プログラムを、上記メモリの上記第2のファームウェアが書き込まれた位置とは異なる位置に書き込む実行用プログラム書込ステップと、
上記実行用プログラム書込ステップで上記実行用プログラムが書き込まれた後、上記第3の起動命令に応じた第4の起動命令を上記汎用プロセッサに出力して、上記メモリに書き込まれた上記実行用プログラムを上記汎用プロセッサに実行させることにより、上記メモリに書き込まれた上記第2のファームウェアの正当性を検出し、当該検出結果に応じて、当該第2のファームウェアを上記汎用プロセッサに実行させる実行用プログラム実行ステップと
を具えることを特徴とする請求項8に記載のデータ処理方法。
【請求項10】
上記中継回路は、外部のバスと上記汎用プロセッサのバスとをブリッジするブリッジ回路である
ことを特徴とする請求項9に記載のデータ処理方法。
【請求項11】
上記実行用プログラムは、暗号化された上記第2のファームウェアを復号する機能を有し、
上記実行用プログラム実行ステップでは、
上記メモリに書き込まれた上記実行用プログラムを上記汎用プロセッサに実行させることにより、上記メモリに書き込まれた暗号化された上記第2のファームウェアの正当性を検出し、当該検出結果に応じて、当該暗号化された第2のファームウェアを上記汎用プロセッサに復号させて実行させる
ことを特徴とする請求項9に記載のデータ処理方法。
【請求項12】
アクセス可能なメモリに書き込まれるファームウェアを実行する汎用プロセッサと、第1のファームウェアを記憶すると共に上記汎用プロセッサと外部とを中継して外部からの命令に応じて上記汎用プロセッサを制御する中継回路とを有するデータ処理回路に対し、上記第1のファームウェアを上記中継回路から上記メモリの実行開始アドレスに書き込ませ、続いて上記実行開始アドレスに書き込ませた上記第1のファームウェアを上記汎用プロセッサに実行させるための起動命令を供給する供給ステップ
を具えることを特徴とするデータ処理制御方法。
【請求項13】
データ処理回路に対して、
外部から供給される第1の起動命令に応じて、汎用プロセッサと外部とを中継する中継回路に記憶された第1のファームウェアを、汎用プロセッサがアクセスするメモリの実行開始アドレスに書き込む第1ファームウェア書込ステップと、
上記第1ファームウェア書込ステップで上記第1のファームウェアが書き込まれた後、上記第1の起動命令に応じた第2の起動命令を上記汎用プロセッサに出力して当該汎用プロセッサを起動させると共に、当該汎用プロセッサに、上記実行開始アドレスに書き込まれた上記第1のファームウェアを実行させる第1ファームウェア実行ステップと
を実行させることを特徴とするデータ処理プログラム。
【請求項14】
データ処理装置に対して、
アクセス可能なメモリに書き込まれるファームウェアを実行する汎用プロセッサと、第1のファームウェアを記憶すると共に上記汎用プロセッサと外部とを中継して外部からの命令に応じて上記汎用プロセッサを制御する中継回路とを有するデータ処理回路に対し、上記第1のファームウェアを上記中継回路から上記メモリの実行開始アドレスに書き込ませ、続いて上記実行開始アドレスに書き込ませた上記第1のファームウェアを上記汎用プロセッサに実行させるための起動命令を供給する供給ステップ
を実行させることを特徴とするデータ処理制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2006−209690(P2006−209690A)
【公開日】平成18年8月10日(2006.8.10)
【国際特許分類】
【出願番号】特願2005−24358(P2005−24358)
【出願日】平成17年1月31日(2005.1.31)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】