(57)【要約】【課題】再生装置におけるプログラムの実行を適切に制御するための技術を提供する。【解決手段】ファームウェア検証部３１０は、コンテンツの起動に先立って、前記コンテンツの起動を制御するファームウェアが改竄されているか否かを確認する。復号鍵設定部３０４は、前記ファームウェアが改竄されていない場合、前記コンテンツを起動するための暗号化された起動プログラムを復号するための鍵を、前記ファームウェアに設定する。起動プログラム復号部１０６は、鍵の設定された前記ファームウェアにより、暗号化された起動プログラムを復号する。【選択図】図５
2011076354.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツの起動に先立って、前記コンテンツの起動を制御するファームウェアが改竄されているか否かを確認するファームウェア検証ステップと、
前記ファームウェアが改竄されていない場合、前記コンテンツを起動するための暗号化された起動プログラムを復号するための鍵を、前記ファームウェアに設定する復号鍵設定ステップと、
鍵の設定された前記ファームウェアにより、暗号化された起動プログラムを復号する起動プログラム復号ステップとをプロセッサに実行させることを特徴とするコンテンツ起動方法。
【請求項２】
前記ファームウェア検証ステップと前記復号鍵設定ステップとを実行するためのプログラムモジュールは、前記ファームウェアとは分離して提供されるものであり、
前記ファームウェアはメモリに常駐される一方で、前記プログラムモジュールは、実行前に前記メモリに読み込まれ、実行後に前記メモリから解放されることを特徴とする請求項１に記載の方法。
【請求項３】
コンテンツの起動に先立って、前記コンテンツの起動を制御するファームウェアが改竄されているか否かを確認するファームウェア検証部と、
前記ファームウェアが改竄されていない場合、前記コンテンツを起動するための暗号化された起動プログラムを復号するための鍵を、前記ファームウェアに設定する復号鍵設定部と、
鍵の設定された前記ファームウェアにより、暗号化された起動プログラムを復号する起動プログラム復号部とを含むことを特徴とするコンテンツ再生装置。
【請求項４】
前記ファームウェア検証部と前記復号鍵設定部とは、前記ファームウェアとは分離して提供されるプログラムによって実現されるものであり、
前記プログラムは、前記ファームウェアの更新頻度よりも高い頻度で更新されることを特徴とする請求項３に記載の装置。
【請求項５】
前記プログラムは、前記コンテンツを格納する記録媒体に前記コンテンツとともに格納されて配布されることを特徴とする請求項４に記載の装置。
【請求項６】
コンテンツの起動に先立って、前記コンテンツの起動を制御するファームウェアが改竄されているか否かを確認するファームウェア検証機能と、
前記ファームウェアが改竄されていない場合、前記コンテンツを起動するための暗号化された起動プログラムを復号するための鍵を、前記ファームウェアに設定する復号鍵設定機能と、
鍵の設定された前記ファームウェアにより、暗号化された起動プログラムを復号する起動プログラム復号機能とをコンピュータに実現させることを特徴とするプログラム。
【請求項７】
コンテンツの起動に先立って、前記コンテンツを実行するコンテンツ再生装置の動作を制御するファームウェアが改竄されているか否かを確認するファームウェア検証機能と、
前記ファームウェアが第三者に改竄されていないことが確認できた場合、あらかじめ前記コンテンツの作成者によって暗号化された、前記コンテンツを起動するための起動プログラムを復号する鍵を、複数の前記鍵を格納する復号鍵のデータベースから選択して取得する復号鍵取得機能とを前記再生装置のプロセッサに実現させることを特徴とする、前記ファームウェアとは分離して提供されるプログラム。
【請求項８】
請求項７に記載のプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、コンテンツの起動を制御する方法に関する。
【背景技術】
【０００２】
ゲームや音楽、写真や動画などを再生したりウェブコンテンツの閲覧等を可能にする再生装置は、通常ファームウェアを備えている。ここでファームウェアとは、再生装置を制御してこれらの機能を実現するためのインターフェイスをユーザに提供したり、ゲーム等の有償のコンテンツプログラムに再生装置の制御を移行したりする機能を実現するプログラムである。ファームウェアは新機能の追加等を目的として定期的に更新され、通常無償で公開される。ユーザは、新しいファームウェアをダウンロードする等により取得して更新し、再生装置上で新機能を実行することができるようになっている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ファームウェアは公開されて誰もが自由に入手できる。このため、ファームウェアにおけるコンテンツプログラムへの制御移行の仕組みが、ファームウェアの提供者以外の第三者によって改竄され、記録媒体から不正に抜き出されたコンテンツ等、再生装置で本来実行されるべきではないコンテンツプログラムが実行される可能性がある。
【０００４】
本発明はこのような課題に鑑みてなされたものであり、その目的は、再生装置におけるプログラムの起動を安全に制御するための技術を提供することにある。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明のある態様は、コンテンツの起動を制御する方法に関する。この方法は、コンテンツの起動に先立って、前記コンテンツの起動を制御するファームウェアが改竄されているか否かを確認するファームウェア検証ステップと、前記ファームウェアが改竄されていない場合、前記コンテンツを起動するための暗号化された起動プログラムを復号するための鍵を、前記ファームウェアに設定する復号鍵設定ステップと、鍵の設定された前記ファームウェアにより、暗号化された起動プログラムを復号する起動プログラム復号ステップとをプロセッサに実行させる。
【０００６】
上記課題を解決するために、本発明の別の態様は、コンテンツ再生装置に関する。この装置は、コンテンツの起動に先立って、前記コンテンツの起動を制御するファームウェアが改竄されているか否かを確認するファームウェア検証部と、前記ファームウェアが改竄されていない場合、前記コンテンツを起動するための暗号化された起動プログラムを復号するための鍵を、前記ファームウェアに設定する復号鍵設定部と、鍵の設定された前記ファームウェアにより、暗号化された起動プログラムを復号する起動プログラム復号部とを含む。
【０００７】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、システム、コンピュータプログラム、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００８】
本発明によれば、再生装置におけるプログラムの起動を安全に制御するための技術を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態１に係る再生装置に搭載されているファームウェアとその再生装置で実行されるゲームプログラムとにおける、ゲームプログラムの起動から終了までの間に関わる機能ブロックを模式的に表した図である。
【図２】実施形態１におけるゲームプログラムの実行指示からゲーム終了までの間にファームウェアおよびゲームプログラムで行われる処理の流れを示したフローチャートである。
【図３】実施形態２に係る再生装置で実行されるゲームプログラムにおける、ゲームプログラムの起動から終了までの間に関わる機能ブロックを模式的に表した図である。
【図４】実施形態２におけるゲームプログラムの実行指示からゲーム終了までの間にファームウェアおよびゲームプログラムで行われる処理の流れを示したフローチャートである。
【図５】実施形態３に係る再生装置に搭載されているファームウェア１００とその再生装置で実行されるゲームプログラム２００、および起動プログラムを復号する鍵の設定に特化した復号鍵設定プログラム３００における、ゲームプログラム２００の起動から終了までの間に関わる機能ブロックを模式的に表した図である。
【図６Ａ】実施形態３におけるゲームプログラムの実行指示からゲームプログラムに制御を移行するまでの間にファームウェアおよび復号鍵設定プログラムで行われる処理の流れを示したフローチャートである。
【図６Ｂ】図６Ａにおける処理の後半部分であり、ファームウェア１００から再生装置の制御を受けてから再びファームウェア１００に制御を戻すまでの間にゲームプログラム２００で行われる処理の流れを示したフローチャートである。
【発明を実施するための形態】
【００１０】
本発明の実施の形態（以下、「実施形態」という。）を実施形態１、実施形態２、実施形態３の３つに分けて説明する。これらの実施形態を説明するに先立って、まずこれらの概要を述べる。以下ではコンテンツプログラムとしてゲームプログラムを例に説明する。
【００１１】
実施形態１は、ゲームを起動するための起動プログラムをあらかじめ暗号化しておき、ファームウェアの中にその起動プログラムの復号に用いる鍵を埋め込んでおく、というものである。実施形態２は、再生装置において実行されるゲームプログラムの中で再生装置のファームウェアが改竄されているか否かを確認し、改竄が確認されればゲームプログラムを終了する、というものである。実施形態３は、ゲームプログラムの起動に先立って、再生装置のファームウェアが改竄されているか否かを確認し、改竄されていないことが確認された場合、あらかじめ暗号化されている、ゲームを起動するための起動プログラムを復号する鍵を使用可能な状態にする、というものである。実施形態３は、ファームウェアの改竄の確認と鍵設定とを、ファームウェアやゲーム等のプログラムとは異なる専用のプログラムで行う。このプログラムはゲームの起動前に読み出されて実行され、メモリには常駐しない。
【００１２】
（実施形態１）
図１は、実施形態１に係る再生装置に搭載されているファームウェア１００とその再生装置で実行されるゲームプログラム２００とにおける、ゲームプログラム２００の起動から終了までの間に関わる機能ブロックを模式的に表した図である。ファームウェア１００とゲームプログラム２００とは、再生装置のメモリ４００にロードされ、図示しない再生装置のプロセッサによって実行される。
【００１３】
ファームウェア１００は、実行指示受付部１０２、復号鍵設定部１０４、起動プログラム復号部１０６、復号鍵記憶部１０８、ファームウェア側制御移行部１１０を含む。実行指示受付部１０２は、再生装置のユーザからゲームプログラムの実行指示を受け付ける。これは例えばＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）等の既知の技術で実現される。復号鍵設定部１０４は、まず実行指示受付部１０２からゲームプログラムの情報を受け取る。次に、ゲームを起動するためのプログラムを復号するのに用いる鍵を復号鍵記憶部１０８から取得する。
【００１４】
ここで、ゲームを起動するための起動プログラムは、ゲームの作成者によってあらかじめ暗号化されている。暗号化および復号に用いる鍵は、ゲーム作成時の最新のファームウェア１００に格納されている最新の鍵を用いることとする。ファームウェア１００を更新する度に鍵を追加するようにすれば、仮に何らかの手段によって過去の鍵が第三者に漏洩したとしても、最新の鍵を利用した起動プログラムは復号できない。また、最新の鍵が第三者に漏洩したことが確認された場合には、再度新しい鍵を追加したファームウェア１００を更新する。
【００１５】
したがって「ゲームプログラムの情報」とは、そのゲームの起動プログラムを復号するための鍵を特定する情報であり、具体的にはゲームの発売年月日やタイトル名、あるいは鍵のバージョン等の情報である。また、復号鍵記憶部１０８には、過去に発売されたゲームの起動プログラムを復号するために、作成されている全ての鍵を格納する。
【００１６】
ここで、起動プログラムの暗号化および復号は、ＲＳＡ暗号等既知の公開鍵暗号方式を用いれば実現できる。あるいは、ファームウェア１００の作成者とゲームプログラム２００の作成者との間であらかじめ取り決めて共有する共有鍵を用いても実現できる。
【００１７】
起動プログラム復号部１０６は、復号鍵設定部１０４が復号鍵記憶部１０８から取得した鍵を受け取り、起動プログラムを復号する。ファームウェア側制御移行部１１０は、起動プログラムが復号されたら、再生装置の制御をゲームプログラム２００に受け渡す。
【００１８】
ゲームプログラム２００は、ゲームプログラム起動部２０２、ゲームプログラム実行部２０４、ゲームプログラム側制御移行部２０６を含む。
【００１９】
ゲームプログラム起動部２０２は、起動プログラム復号部１０６が復号した起動プログラムを実行し、再生装置においてゲームプログラムを実行するための初期化作業を行う。ゲームプログラム実行部２０４はゲームプログラムの本体を実行し、再生装置を制御してユーザにゲームを提供する。ゲームプログラム側制御移行部２０６は、ゲームプログラム実行部２０４においてゲームプログラムが終了すると、メモリ解放等の後処理をして、再生装置の制御をファームウェア１００に受け渡す。
【００２０】
図２は、実施形態１におけるゲームプログラムの実行指示からゲーム終了までの間にファームウェア１００およびゲームプログラム２００で行われる処理の流れを示したフローチャートである。本フローチャートにおける処理は、ユーザによりゲームプログラムの実行指示がされると開始する。
【００２１】
実行指示受付部１０２は、再生装置のユーザからゲームプログラムの実行指示を受け付ける（Ｓ１０）。復号鍵設定部１０４は、復号鍵記憶部１０８から起動プログラムを復号するための鍵を取得する（Ｓ１２）。起動プログラム復号部１０６は、復号鍵設定部１０４が復号鍵記憶部１０８から取得した鍵を受け取り、起動プログラムを復号する（Ｓ１４）。ファームウェア側制御移行部１１０は、起動プログラムが復号されたら、再生装置の制御をゲームプログラム２００に受け渡す（Ｓ１６）。
【００２２】
ゲームプログラム起動部２０２は起動プログラムを実行し、再生装置においてゲームプログラムを実行するための初期化作業を行う（Ｓ１８）。ゲームプログラム実行部２０４は再生装置を制御してユーザにゲームを提供する（Ｓ２０）。ゲームプログラム側制御移行部２０６は、ゲームプログラム実行部２０４においてゲームプログラムが終了すると、再生装置の制御をファームウェア１００に受け渡す（Ｓ２２）。受け渡しが終われば本フローチャートにおける処理は終了する。
【００２３】
以上の構成による実施形態１の利用シーンは以下のとおりである。まず、ユーザは再生装置にゲームプログラムの格納された記録媒体を挿入し、ゲーム開始を指示する。ファームウェア１００はゲームプログラムの情報を確認し、起動プログラムを復号する鍵を設定する。鍵が設定されれば起動プログラムは復号され、ユーザはゲームを実行することができる。
【００２４】
ゲームプログラムの情報から、起動プログラムを復号する鍵をファームウェア１００が持っていないことが分かると、ファームウェア１００はゲームプログラムの格納された記録媒体に格納されている更新用のファームウェアを用いてファームウェア１００を更新する必要がある旨、あるいは、ネットワーク等を介して最新版のファームウェアをダウンロードしてファームウェア１００を更新する必要がある旨のメッセージをユーザに通知する。
【００２５】
以上より、実施形態１によれば、何らかの理由（例えばファームウェア１００が第三者によって解析され鍵が取得される等）によってファームウェア１００が所持する鍵が第三者に漏洩したとしても、新しい鍵を追加してファームウェアを更新すれば、その鍵を用いて起動プログラムを暗号化したゲームは、第三者によって不正に実行されることを防止できる。
【００２６】
（実施形態２）
図３は実施形態２に係る再生装置で実行されるゲームプログラム２００における、ゲームプログラム２００の起動から終了までの間に関わる機能ブロックを模式的に表した図である。実施形態２は、ファームウェア１００については実施形態１と同様なのでその説明は省略する。また、実施形態１と同様に、ファームウェア１００とゲームプログラム２００とは、再生装置のメモリ４００にロードされ、図示しない再生装置のプロセッサによって実行される。
【００２７】
実施形態２に係るゲームプログラム２００は実施形態１に係るゲームプログラム２００と同様に、ゲームプログラム起動部２０２、ゲームプログラム実行部２０４、ゲームプログラム側制御移行部２０６を含む。実施形態２に係るゲームプログラム２００はさらに、ファームウェア検証部２１０を含む。
【００２８】
ゲームプログラム起動部２０２は、起動プログラム復号部１０６が復号した起動プログラムを実行し、再生装置においてゲームプログラムを実行するための初期化作業を行う。起動プログラムが実行されゲームが立ち上がると、ファームウェア検証部２１０は、再生装置に搭載されているファームウェア１００が第三者に改竄されたものか否かを確認する。
【００２９】
ここで、ファームウェア検証部２１０は、ファームウェアの提供者がゲームの開発者に対してＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）の形で提供することにより実現できる。このＡＰＩは、メモリ４００内にロードされた、ファームウェア１００の実行プログラムやデータのメモリ配置を調べること等、既知の方法により当該ファームウェアが第三者に改竄されたものか否かを確認する。
【００３０】
ファームウェア検証部２１０がファームウェア１００をファームウェアの提供者が提供した正当なものであると確認した場合、ゲームプログラム実行部２０４は再生装置を制御してユーザにゲームを提供する。ゲームプログラム側制御移行部２０６は、ゲームプログラム実行部２０４においてゲームプログラムが終了すると、再生装置の制御をファームウェア１００に受け渡す。ファームウェア検証部２１０がファームウェア１００が不正なものであると確認した場合、ファームウェア検証部２１０はゲームプログラム側制御移行部２０６に通知し、ゲームプログラム側制御移行部２０６は再生装置の制御をファームウェア１００に受け渡す。
【００３１】
あるいは、ファームウェア検証部２１０がファームウェア１００が不正なものであると確認した場合、ゲームプログラム実行部２０４は、ファームウェア１００が正当なものであると確認した場合とは異なる不正検知モードでゲームプログラムを実行するようにしてもよい。ここで「不正検知モード」とは、ファームウェア検証部２１０がファームウェア１００が不正なものであると確認した場合にゲームプログラム実行部２０４が入るモードである。このモードでは、ゲームプログラム実行部２０４は、ファームウェアが不正である旨のメッセージを表示したり、ゲームの難易度を通常よりも上げたりしてゲームプログラムを実行する。ゲームの難易度の調整は、例えばゲームの進行速度を早めたり、ゲーム内の敵を強くしたりする等、ゲームを実行する際のパラメータを調整することで実現できる。
【００３２】
図４は、実施形態２におけるゲームプログラムの実行指示からゲーム終了までのファームウェア１００およびゲームプログラム２００で行われる処理の流れを示したフローチャートである。実行指示受付部１０２は、再生装置のユーザからゲームプログラムの実行指示を受け付けてから（Ｓ１０）、ゲームプログラム起動部２０２がゲームプログラム起動し、再生装置においてゲームプログラムを実行するための初期化作業を行う（Ｓ１８）までの流れは実施形態１と同一である。
【００３３】
ファームウェア検証部２１０は、起動プログラムが実行されゲームが立ち上がると、再生装置に搭載されているファームウェア１００が第三者に改竄されたものか否かを確認する（Ｓ２４）。ファームウェア１００が正当な場合（Ｓ２６Ｙ）、ゲームプログラム実行部２０４は再生装置を制御してユーザにゲームを提供する（Ｓ２８）。ゲームプログラム実行部２０４においてゲームプログラムが終了すると、ゲームプログラム側制御移行部２０６は、再生装置の制御をファームウェア１００に受け渡す（Ｓ３０）。ファームウェア１００が正当でない場合（Ｓ２６Ｎ）は、ゲームプログラムは実行されることなく、直ちにファームウェア１００に再生装置の制御が受け渡される（Ｓ３０）。ファームウェア１００に再生装置の制御が受け渡されると、本フローチャートにおける処理は終了する。なお、ゲームプログラム実行部２０４に「不正検知モード」がある場合には、ファームウェア１００が正当でない場合（Ｓ２６Ｎ）に、ゲームプログラム実行部２０４が「不正検知モード」となってゲームプログラムが実行されるようにしてもよい。
【００３４】
以上の構成による実施形態２の利用シーンは以下のとおりである。実施形態１と同様に、まず、ユーザは再生装置にゲームプログラムの格納された記録媒体を挿入し、ゲーム開始を指示する。ファームウェア１００はゲームプログラムの情報を確認し、起動プログラムを復号する鍵を設定する。鍵が設定されれば起動プログラムは復号されゲームプログラムが開始する。
【００３５】
ゲームプログラムが開始すると、ゲームプログラム内において、ファームウェア１００が第三者に改竄されたものか否かを確認する。もしファームウェア１００が第三者に改竄されたものであることが確認できると、ゲームプログラムはゲーム本体を実行することなく処理を終了する。これにより、ファームウェア１００が第三者に改竄されて起動プログラムを復号する鍵が漏洩し、ゲームプログラムが不正に実行されたとしても、ゲームプログラムの本体部分を実行することなくゲームプログラムを終了することができる。
【００３６】
（実施形態３）
図５は、実施形態３に係る再生装置に搭載されているファームウェア１００とその再生装置で実行されるゲームプログラム２００、および起動プログラムを復号する鍵の設定に特化した復号鍵設定プログラム３００における、ゲームプログラム２００の起動から終了までの間に関わる機能ブロックを模式的に表した図である。ファームウェア１００、ゲームプログラム２００および復号鍵設定プログラム３００は、再生装置のメモリ４００にロードされ、図示しない再生装置のプロセッサによって実行される。
【００３７】
ファームウェア１００は、実行指示受付部１０２、起動プログラム復号部１０６，ファームウェア側制御移行部１１０を含む。実行指示受付部１０２が再生装置のユーザからゲームプログラムの実行指示を受け付けると、復号鍵設定プログラム３００をメモリ４００にロードし実行する。
【００３８】
復号鍵設定プログラム３００は、ファームウェア検証部３１０、復号鍵設定部３０４、復号鍵記憶部３０８を含む。復号鍵設定プログラム３００が起動すると、まず、ファームウェア検証部３１０は、再生装置に搭載されているファームウェア１００が第三者に改竄されたものか否かを確認する。ファームウェア１００が改竄されていないことが確認できた場合、復号鍵設定部３０４は、ファームウェア検証部３１０を介して実行指示受付部１０２から受け取ったゲームプログラムの情報に基づいて、復号鍵記憶部３０８から起動プログラムを復号する鍵を選択して取得し、起動プログラム復号部１０６に鍵を渡す。起動プログラム復号部１０６が鍵を受け取ると、復号鍵設定プログラム３００の実行は終了し、メモリ４００から解放される。
【００３９】
ファームウェア１００が改竄されていることが確認されると、ファームウェア検証部３１０は何もせずに起動プログラム復号部１０６に処理を渡して復号鍵設定プログラム３００の実行が終了し、メモリ４００から解放される。
【００４０】
起動プログラム復号部１０６は、復号鍵設定部３０４から鍵を受け取った場合、起動プログラムを復号する。復号鍵設定部３０４から鍵を受け取らない場合には何も行わない。ファームウェア側制御移行部１１０は再生装置の制御をゲームプログラム２００に受け渡す。
【００４１】
ゲームプログラム起動部２０２は、起動プログラムの開始を試みる。起動プログラム復号部１０６によって起動プログラムが復号されている場合には、起動プログラムが正しく実行され、再生装置においてゲームプログラムを実行するための初期化作業が行われる。初期化作業の後、ゲームプログラム実行部２０４はゲーム本体を実行し、ユーザにゲームを提供する。ゲームが終了すると、ゲームプログラム実行部２０４はゲームプログラム側制御移行部２０６に制御を渡す。
【００４２】
起動プログラム復号部１０６によって起動プログラムが復号されていない場合には、ゲームプログラム起動部２０２は、起動プログラムを開始できない。この場合、ゲームプログラム起動部２０２は、起動プログラムを開始せずに、ゲームプログラム側制御移行部２０６に制御を渡す。なお、起動プログラムが復号されていない場合は、ファームウェア１００が改竄されていると考えられるため、ユーザにその旨を通知するメッセージを表示したり、ファームウェア１００の更新を促すメッセージを表示したりしてもよい。
【００４３】
ゲームプログラム側制御移行部２０６は、再生装置の制御をファームウェア１００に受け渡す。
【００４４】
実施形態３におけるゲームプログラム２００の実行指示からゲーム終了までのファームウェア１００、ゲームプログラム２００および復号鍵設定プログラム３００の処理の流れを図６Ａおよび図６Ｂを参照して説明する。
【００４５】
図６Ａはゲームプログラム２００の実行指示からゲームプログラム２００に制御を移行するまでの間にファームウェア１００および復号鍵設定プログラム３００で行われる処理の流れを示したフローチャートである。
【００４６】
実行指示受付部１０２が再生装置のユーザからゲームプログラムの実行指示を受け付けると（Ｓ３２）、復号鍵設定プログラム３００をメモリ４００にロードし実行する（Ｓ３４）。ファームウェア検証部３１０は、再生装置に搭載されているファームウェア１００が第三者に改竄されたものか否かを確認する（Ｓ３６）。ファームウェア１００が改竄されていない正当なものであることが確認できた場合（Ｓ３８Ｙ）、復号鍵設定部３０４は、復号鍵記憶部３０８から起動プログラムを復号する鍵を取得する（Ｓ４０）。起動プログラム復号部１０６は復号鍵設定部３０４から鍵を受け取ると、起動プログラムを復号する（Ｓ４２）。
【００４７】
ファームウェア１００が改竄されていることを確認した場合（Ｓ３８Ｎ）、復号鍵設定プログラム３００は鍵を取得することなく、ファームウェア１００の起動プログラム復号部１０６に制御を受け渡す。ファームウェア側制御移行部１１０は、起動プログラム復号部１０６が起動プログラムを復号したか否かに関わらず、ゲームプログラム２００に再生装置の制御を移行する（Ｓ４４）。
【００４８】
図６Ｂは、ファームウェア１００から再生装置の制御を受けてから再びファームウェア１００に制御を戻すまでの間にゲームプログラム２００で行われる処理の流れを示したフローチャートである。
【００４９】
ゲームプログラム起動部２０２は、起動プログラムの開始を試みる（Ｓ４６）。起動プログラム復号部１０６によって起動プログラムが復号されている場合には、起動プログラムの起動に成功し（Ｓ４８Ｙ）、再生装置においてゲームプログラムを実行するための初期化作業が行われる。初期化作業の後、ゲームプログラム実行部２０４はゲーム本体を実行し、ユーザにゲームを提供する（Ｓ５０）。ゲームが終了すると、ゲームプログラム側制御移行部２０６は、再生装置の制御をファームウェア１００に受け渡す（Ｓ５２）。
【００５０】
起動プログラム復号部１０６によって起動プログラムが復号されていない場合には、ゲームプログラム起動部２０２は、起動プログラムを開始できない（Ｓ４８Ｎ）。この場合、ゲーム本体は実行されることなく、ゲームプログラム側制御移行部２０６は、再生装置の制御をファームウェア１００に受け渡す（Ｓ５２）。再生装置の制御をファームウェア１００に受け渡されると、本フローチャートにおける処理は終了する。
【００５１】
以上の構成による実施形態３の利用シーンは以下のとおりである。実施形態１と同様に、まず、ユーザは再生装置にゲームプログラムの格納された記録媒体を挿入し、ゲーム開始を指示する。ファームウェア１００はゲームプログラム２００の情報を確認し、復号鍵設定プログラム３００を実行する。ファームウェア１００が改竄されていなければ、復号鍵設定プログラム３００は起動プログラムを復号する鍵を適切に設定するので、ユーザはゲームを実行することができる。
【００５２】
ゲームプログラムの情報から、起動プログラムを復号する鍵を復号鍵設定プログラム３００が持っていないことが分かると、ファームウェア１００はゲームプログラムの格納された記録媒体に格納されている更新用の復号鍵設定プログラム３００に置き換える。あるいは、ネットワーク等を介して最新版の復号鍵設定プログラム３００をダウンロードして復号鍵設定プログラム３００を更新する必要がある旨のメッセージをユーザに通知する。
【００５３】
以上より、実施形態３によれば、ファームウェア１００が第三者によって解析されたとしても、ファームウェア１００には起動プログラムを復号するための鍵は存在しないので、第三者に鍵が漏洩することがない。実施形態２の場合では、ゲームプログラム２００内でファームウェア１００の改竄の検証を行うため、第三者がゲームプログラム２００を改竄することにより、当該検証をスキップしてゲームを不正に実行する可能性もあり得る。実施形態３によれば、ファームウェア１００が不正なものであると確認できた場合、ゲームプログラム２００はそもそも起動しないので、第三者がゲームプログラム２００を改竄することにより不正に実行することが防止できる。
【００５４】
前述したように、ファームウェア１００は起動プログラムを復号してゲームプログラム２００に再生装置の制御を移行する機能のみならず、再生装置上で静止画や動画の再生、ウェブコンテンツの閲覧等の機能を実現する役割も担っている。ファームウェア１００を更新するためにはこれら全ての機能の動作検証等が必要であり、ファームウェア１００の更新頻度は数ヶ月に１回程度に制限される。
【００５５】
実施形態３によれば、ファームウェア１００の改竄確認と起動プログラムを復号するための鍵設定とを行う復号鍵設定プログラム３００は、ファームウェア１００から分離して存在する。復号鍵設定プログラム３００の更新はファームウェア１００の更新のタイミングに縛られることはなく、復号鍵設定プログラム３００の更新頻度をファームウェア１００の更新頻度よりも高くすることが可能となる。したがって、例えば第三者がファームウェア１００および復号鍵設定プログラム３００を改竄してゲームを不正に実行できるようにしたとしても、早い時期に復号鍵設定プログラム３００を更新し、新しい鍵を迅速に追加することができる。
【００５６】
さらに、復号鍵設定プログラム３００はファームウェア１００とは異なり、ゲームの起動に特化して用いられるプログラムである。したがって、ゲームプログラム２００を格納する記録媒体にゲームプログラム２００とともに格納することでユーザに配布するという形態を取ることもできる。ゲームを実行しないユーザには復号鍵設定プログラム３００は不要だからである。こうすると、ファームウェア１００をインターネット等を通じて公開する場合と比較して、第三者が復号鍵設定プログラム３００を入手する機会が少なくなり、当該プログラムが改竄されにくくなるという効果もある。また、復号鍵設定プログラム３００はゲームプログラム２００の起動前に呼び出され、処理が終わるとメモリから開放される。メモリ上に常駐しないため、第三者は当該プログラムを解析しにくいという効果もある。
【００５７】
また、復号鍵設定プログラム３００はファームウェア１００の数十分の一程度の大きさのプログラムで足りる。したがって、例えばユーザが再生装置をインターネット等のネットワークに接続した場合に、新しい復号鍵設定プログラム３００を自動でダウンロードして更新するようにしたとしても、ユーザにストレスを感じさせないという効果もある。ファームウェア１００をダウンロードする場合とは異なり、短時間でダウンロードが終了するからである。
【００５８】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００５９】
上記の説明において、ゲームの作成者が起動プログラムをあらかじめ暗号化すると説明した。ゲームの作成者は、起動プログラムを暗号化するのみならず、起動プログラムに電子署名を付加することもできる。この場合、起動プログラム復号部１０６は、起動プログラムを復号するとともに、デジタル署名の検証も行うようにすればよい。あるいは、起動プログラム復号部１０６内にデジタル署名検証部（図示しない）を設け、デジタル署名検証部がデジタル署名の検証も行うようにしてもよい。起動プログラムの暗号化に加えてデジタル署名も付すことにより、起動プログラムの改竄を検証できるようになる点で有利である。
【符号の説明】
【００６０】
１００  ファームウェア、  １０２  実行指示受付部、  １０４  復号鍵設定部、  １０６  起動プログラム復号部、  １０８  復号鍵記憶部、  １１０  ファームウェア側制御移行部、  ２００  ゲームプログラム、  ２０２  ゲームプログラム起動部、  ２０４  ゲームプログラム実行部、  ２０６  ゲームプログラム側制御移行部、  ２１０  ファームウェア検証部、  ３００  復号鍵設定プログラム、  ３０４  復号鍵設定部、  ３０８  復号鍵記憶部、  ３１０  ファームウェア検証部、  ４００  メモリ。
【図１】
2011076354.tif 000003
【図２】
2011076354.tif 000004
【図３】
2011076354.tif 000005
【図４】
2011076354.tif 000006
【図５】
2011076354.tif 000007
【図６Ａ】
2011076354.tif 000008
【図６Ｂ】
2011076354.tif 000009
【手続補正書】
【提出日】平成22年7月1日(2010.7.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンテンツの起動に先立って、前記コンテンツの起動を制御するファームウェアが改竄されているか否かを確認するファームウェア検証ステップと、
前記ファームウェアが改竄されていない場合、前記コンテンツを起動するための暗号化された起動プログラムを復号するための鍵を、前記ファームウェアに設定する復号鍵設定ステップと、
鍵の設定された前記ファームウェアにより、暗号化された起動プログラムを復号する起動プログラム復号ステップとを含み、
前記ファームウェア検証ステップと前記復号鍵設定ステップとを実行するためのプログラムモジュールは、前記ファームウェアとは分離して提供されるものであり、
前記ファームウェアをメモリに常駐させる一方で、前記プログラムモジュールを、実行前に前記メモリに読み込み、実行後に前記メモリから解放することをプロセッサに実行させることを特徴とするコンテンツ起動方法。
【請求項２】
コンテンツ再生装置であって、
当該コンテンツ再生装置でコンテンツを再生するための初期化作業に先立って、前記初期化作業を制御するファームウェアが改竄されているか否かを確認するファームウェア検証部と、
前記ファームウェアが改竄されていない場合、あらかじめ暗号化されている、前記初期化作業を実行するためのプログラムである起動プログラムを復号するための鍵を、前記ファームウェアに設定する復号鍵設定部と、
鍵の設定された前記ファームウェアにより、前記暗号化されている起動プログラムを復号する起動プログラム復号部とを含むことを特徴とするコンテンツ再生装置。
【請求項３】
前記ファームウェア検証部と前記復号鍵設定部とは、前記ファームウェアとは分離して提供されるプログラムによって実現されるものであり、
前記プログラムは、前記ファームウェアの更新頻度よりも高い頻度で更新されることを特徴とする請求項２に記載の装置。
【請求項４】
前記プログラムは、前記コンテンツを格納する記録媒体に前記コンテンツとともに格納されて配布されることを特徴とする請求項３に記載の装置。
【請求項５】
コンテンツを再生するための初期化作業に先立って、前記初期化作業を制御するファームウェアが改竄されているか否かを確認するファームウェア検証機能と、
前記ファームウェアが改竄されていない場合、前記初期化作業を実行するプログラムであって暗号化されているプログラムである起動プログラムを復号するための鍵を、前記ファームウェアに設定する復号鍵設定機能と、
鍵の設定された前記ファームウェアにより、前記暗号化されている起動プログラムを復号する起動プログラム復号機能とをコンピュータに実現させることを特徴とするプログラム。
【請求項６】
コンテンツ再生装置でコンテンツを再生するための初期化作業に先立って、当該コンテンツ再生装置の動作を制御するファームウェアが改竄されているか否かを確認するファームウェア検証機能と、
前記ファームウェアが第三者に改竄されていないことが確認できた場合、あらかじめ前記コンテンツの作成者によって暗号化された、前記初期化作業を実行するためのプログラムである起動プログラムを復号する鍵を、複数の前記鍵を格納する復号鍵のデータベースから選択して取得する復号鍵取得機能とを前記再生装置のプロセッサに実現させることを特徴とする、前記ファームウェアとは分離して提供されるプログラム。
【請求項７】
請求項６に記載のプログラムを記録した記録媒体。