以下、本発明の好適な実施の形態について、添付の図面を参照しつつ、詳細に説明する。
<1. 実施の形態>
図1は、本発明に係る情報処理システム1を示す図である。情報処理システム1は、情報処理装置2(2a,2b,2c)および情報処理装置2のいずれにも装着可能な記憶装置3(3a,3b)から構成されている。なお、図1には、3台の情報処理装置2および2つの記憶装置3を図示しているが、これらの数は図1に示した数に限定されるものではない。
図2は、情報処理装置2の各構成が互いに接続される様子を示すバス配線図である。情報処理装置2は、制御部22、ROM23、ハードディスク24、操作部25、表示部26およびインターフェース部27を備える。情報処理装置2は、例えば、ゲーム機等であり、一般的なコンピュータとしての機能を有している。情報処理装置2としては、図1に示すように、据え置き型の装置に限定されるものではなく、可搬性の装置として構成されていてもよい。
ここで、ゲームプログラム4とは、制御部22によって実行されるアプリケーションプログラム(ユーザデータ)であって、記憶装置3のいずれかからハードディスク24にインストールされた状態のプログラムである。複数の記憶装置3からそれぞれ異なるプログラムをインストールした場合には、ゲームプログラム4はこれら複数のプログラムの総称となる。なお、情報処理装置2において、インストールが実行される以前の状態では、ゲームプログラム4はハードディスク24に記憶されていない。すなわち、図2では、既に記憶装置3からのプログラムのインストールが行われた後の状態を示している。
特定情報20とは、情報処理装置2a,2b,2cを個々に特定するための識別情報であって、各情報処理装置2に固有の情報である。以下の説明では、情報処理装置2aのROM23には特定情報20として「2a」が格納されているものとし、情報処理装置2bのROM23には特定情報20として「2b」が格納されているものとし、情報処理装置2cのROM23には特定情報20として「2c」が格納されているものとして説明する。なお、特定情報20は必ずしもROM23に格納されている必要はなく、例えばハードディスク24に記憶されていてもよい。しかし、特定情報20は、容易に書き換えられないように読み取り専用のROM23に格納されている方が好ましい。
プログラム21とは、制御部22によって実行されるプログラムであって、情報処理装置2のハードディスク24に記憶されているプログラムである。本実施の形態では、プログラム21はゲームプログラム4以外のプログラムの総称とし、BIOSプログラムやOSプログラム、アプリケーションプログラムおよびこれらのプログラムによって使用されるデータ等が含まれる。なお、プログラム21は必ずしもハードディスク24に記憶されている必要はなく、情報処理装置2が備える記憶装置に記憶されていればよい。例えば、プログラム21の一部または全部がROM23に格納されていてもよい。
制御部22は、図2に示すように、情報処理装置2が備える各構成とバス配線によって接続されている。制御部22は、主にプログラム21およびゲームプログラム4に従って動作することにより、各種データの演算を行うとともに、制御信号の生成を行い、情報処理装置2の各構成を制御する。
図3は、情報処理装置2の制御部22の構成と情報処理装置2におけるデータの流れとを示すブロック図である。
制御部22は、演算部28およびコマンド生成部29と図示しないRAM等のメモリを備える。
詳細は図示しないが、演算部28は、CPU等の論理回路から構成され、プログラム21に従って動作する。また、演算部28は、ゲームプログラム4がハードディスク24に記憶されている場合には、当該ゲームプログラム4を実行する機能を有する。
また、演算部28は、プログラム21を実行することにより適宜必要となるコマンドをコマンド生成部29に生成するように指示する。このようなコマンドとしては、通常、記憶装置3に記憶されている情報を読み出すためのリードコマンド、記憶装置3に情報を書き込むためのライトコマンド、記憶装置3に記憶されている情報を消去するためのデリートコマンド等がある。本実施の形態では、これらのコマンドに加えて、記憶装置3をプロテクト状態に遷移させるプロテクトコマンド、プロテクト状態を解除する解除コマンドおよび記憶装置3に格納されている情報を情報処理装置2にインストールするためのインストールコマンドがある。
また、演算部28は、ユーザからの指示を操作部25からのデータに基づいて取得するとともに、インターフェース部27が記憶装置3から受信したデータ(コマンドに対する応答)をインターフェース部27から取得する。さらに、必要なデータを表示部26に伝達して表示させる機能も有する。
コマンド生成部29は、演算部28からの制御信号に基づいて、装着されている記憶装置3に対するコマンドを生成し、インターフェース部27に伝達する。なお、コマンド生成部29は専用の電気回路でハードウェア的に構成されていてもよいし、プログラム21に従って演算部28が動作することによってソフトウェア的に実現されていてもよい。コマンド生成部29は、必要に応じて、ROM23に格納されている特定情報20を参照し、生成するコマンドに特定情報20を含める機能(特定情報付加機能)も有しているが、詳細は後述する。
図2に戻って、ROM23は読み取り専用の不揮発性の記憶装置であり、本実施の形態では先述のように特定情報20を格納している。ROM23は、必要に応じて、制御部22によって参照される。なお、図2では1つのROM23のみを図示しているが、ROM23は複数の記憶装置によって構成されていてもよい。
ハードディスク24は、比較的大容量の情報を記憶することが可能な不揮発性の記憶装置であり、本実施の形態では、先述のように、プログラム21およびゲームプログラム4を記憶する。
操作部25は、各種ボタン類、キーボード、マウス、ジョイスティックおよびコントローラ等から構成され、ユーザが情報処理装置2に対する指示を入力するために使用される。また、表示部26は、例えば、液晶ディスプレイやモニター装置、LEDあるいはランプ等が該当する。表示部26は、制御部22からの制御信号に基づいて、各種データを表示することにより、ユーザに様々な情報を提供する機能を有する。
インターフェース部27は、記憶装置3が接続されるコネクタやケーブル等を含み、情報処理装置2と記憶装置3との間のデータ通信を行う機能を提供する。
なお、情報処理装置2が備える構成はこれらに限定されるものではなく、例えば、情報処理装置2をインターネット等のネットワークに接続するためのネットワークインターフェースや、可搬性の記録媒体(CD−ROM等)を読み取るディスクドライブ、紙媒体に情報を出力するプリンタ、および、音声を出力するスピーカ等を備えていてもよい。
図4は、記憶装置3の構成を示す図である。記憶装置3は、第1記憶部33、第2記憶部34、第3記憶部35、インターフェース部36および制御部37を備えている。記憶装置3は、可搬性の記憶媒体として構成されており、例えば、メモリカードやメモリカートリッジ等が該当する。
第1記憶部33は、不揮発性の半導体メモリアレイであり、記憶装置3が装着される情報処理装置2によって読み出されるゲームプログラム30(ユーザデータ)が格納される。ゲームプログラム30は記憶装置3によって情報処理装置2に供給されるアプリケーションプログラムであり、情報処理装置2は第1記憶部33に格納された状態のゲームプログラム30を第1記憶部33にアクセスすることにより実行することが可能である。ただし、詳細は後述するが、第1記憶部33がプロテクト状態に遷移すると、プロテクト状態に遷移させた情報処理装置2においてのみ実行可能となる。
第2記憶部34は、不揮発性の記憶媒体であり、第1記憶部33をプロテクト状態に遷移させるプロテクトコマンドに応じて取得される特定情報20が特定情報31として格納される。図4では、特定情報31が既に第2記憶部34に記憶されている状態を示している。しかし、非プロテクト状態の第2記憶部34においては特定情報31は第2記憶部34に記憶されていない。
第3記憶部35は、プロテクトコマンドに応じて、第1記憶部33がプロテクト状態であることを示すプロテクト情報32が格納される。図4では、プロテクト情報32が第3記憶部35に記憶されている状態を示しているが、第3記憶部35の初期状態としては、プロテクト情報32は格納されていない。
インターフェース部36は、記憶装置3と当該記憶装置3が装着されている情報処理装置2との間のデータ通信機能を提供する。特に、当該情報処理装置2が発行したコマンドを制御部37に転送するとともに、コマンドに対する応答を制御部37から受け取って情報処理装置2に向けて転送する機能を有する。
制御部37は、記憶装置3が装着されている情報処理装置2から受け取ったコマンドに応じて、第1記憶部33、第2記憶部34および第3記憶部35を制御し、情報の読み出し、書き込みおよび消去等を行う。
特に、制御部37は、装着されている情報処理装置2からプロテクトコマンドを取得した場合に、当該プロテクトコマンドに応じて取得される特定情報20を特定情報31として第2記憶部34に記憶させるとともに、第3記憶部35にプロテクト情報32を記憶させることにより、第1記憶部33をプロテクト状態に遷移させる。
また、制御部37は、第3記憶部35にプロテクト情報32が記憶されているか否かに応じて、第1記憶部33がプロテクト状態であるか非プロテクト状態であるかを判定する。
さらに、第1記憶部33がプロテクト状態である場合において、第2記憶部34に記憶されている特定情報31と記憶装置3が装着されている情報処理装置2の特定情報20とが一致しなかった場合には記憶装置3が装着されている情報処理装置2に対して第1記憶部33へのアクセスを禁止する。一方、第2記憶部34に記憶されている特定情報31と記憶装置3が装着されている情報処理装置2の特定情報20とが一致した場合には第1記憶部33のプロテクト状態を解除することなく、記憶装置3が装着されている情報処理装置2に対して第1記憶部33へのアクセスを許可する。
なお、制御部37の動作の詳細については、後述する。
以上が、情報処理システム1の構成および機能の説明である。次に、情報処理システム1における情報処理装置2および記憶装置3の動作を説明する。
図5は、情報処理システム1の動作を示す流れ図である。なお、以下の説明において、ゲームを実行する以外の情報処理装置2における処理は、当該情報処理装置2の制御部22が主にプログラム21に従って動作することにより実現される。
情報処理システム1(主に情報処理装置2)は、当該情報処理装置2に電源が投入されると、ユーザによって終了が指示される(ステップS9においてYes)まで、情報処理装置2に記憶装置3が装着されたか(ステップS1)、ユーザによってインストールが指示されたか(ステップS3)、ユーザによって解除が指示されたか(ステップS5)、ユーザによってゲームが選択されたか(ステップS7)を監視している。
情報処理装置2に新たに記憶装置3が装着された場合は、ステップS1においてYesと判定し、モード設定処理を実行する(ステップS2)。なお、以下の説明では、情報処理装置2aに、記憶装置3aが装着された例について説明する。また、ステップS2の処理は、新たな記憶装置3がインターフェース部27に装着された場合以外にも、情報処理装置2aに電源が投入された時点で既に記憶装置3aが装着されている場合には一度だけ実行されるものとする。
図6は、モード設定処理を示す図である。
ステップS2のモード設定処理が開始されると、新たな記憶装置3aがインターフェース部27に装着されたことを検出した情報処理装置2aの制御部22が、コマンド生成部29により、問い合わせコマンドを生成する。
本実施の形態におけるコマンド生成部29は、問い合わせコマンドを生成する場合には、ROM23を参照して、当該ROM23に格納されている特定情報20を取得し、取得した特定情報20を、生成する問い合わせコマンドに含める。例えば、情報処理装置2aのコマンド生成部29が問い合わせコマンドを生成する場合には、特定情報20として、情報処理装置2aを識別する固有の情報「2a」が当該問い合わせコマンドに含められる。
なお、問い合わせコマンドに特定情報20を含めない場合には、問い合わせコマンドを受信した記憶装置3からの要求に応じて、別途、特定情報20を送信するように構成してもよい。すなわち、問い合わせコマンドに応じて、特定情報20が記憶装置3に取得されるように構成されていれば、記憶装置3における特定情報20の取得方法は、本実施の形態に示す例に限定されるものではない。これは、他のコマンドについても同様である。
生成された問い合わせコマンドは、インターフェース部27に転送され、インターフェース部27によって、新たに装着された記憶装置3aに向けて送信される(ステップS11)。ステップS11を実行すると、情報処理装置2aは待機状態となる。
ステップS11において送信された問い合わせコマンドは、記憶装置3aのインターフェース部36により受信され(ステップS12)、制御部37に転送される。制御部37は、問い合わせコマンドを取得すると、第3記憶部35にプロテクト情報32が記憶されているか否かに応じて、第1記憶部33がプロテクト状態か非プロテクト状態かを判定する(ステップS13)。
プロテクト状態の場合、ステップS13においてYesと判定し、さらに、相手先判定を実行する(ステップS14)。具体的には、問い合わせコマンドに含まれる特定情報20と、第2記憶部34に格納されている特定情報31とが一致するか否かを判定することにより、ステップS11において問い合わせコマンドを送信した情報処理装置2aが第1記憶部33をプロテクト状態にした情報処理装置2であるか否かを判定する。
一方、非プロテクト状態の場合は、ステップS13においてNoと判定し、ステップS14をスキップする。
次に、制御部37は、ステップS13およびS14における判定結果をインターフェース部36に転送し、インターフェース部36は当該判定結果を当該記憶装置3aが装着されている情報処理装置2aに向けて送信する(ステップS15)。具体的には、第1記憶部33が非プロテクト状態の場合は、その旨が判定結果として送信される。また、第1記憶部33がプロテクト状態の場合であって、特定情報20と特定情報31とが一致した場合は、使用可能である旨が判定結果として送信される。また、第1記憶部33がプロテクト状態の場合であって、特定情報20と特定情報31とが一致しなかった場合は、情報処理装置2aの第1記憶部33へのアクセスを禁止するために、使用不可である旨が判定結果として送信される。なお、ステップS15を実行すると、記憶装置3aはモード設定処理を終了して待機状態となる。
ステップS15において送信された判定結果はインターフェース部27によって受信され(ステップS16)、制御部22(演算部28)に転送される。そして、演算部28は、判定結果に応じて問い合わせコマンドによる結果を判定し(ステップS17)、情報処理装置2aのモードを設定する(ステップS18)。
具体的には、判定結果が「非プロテクト状態」である場合(記憶装置3aの第1記憶部33が非プロテクト状態であった場合)、情報処理装置2aのモードをノーマルモードに設定する。また、判定結果が「使用可能」である場合(記憶装置3aの第1記憶部33がプロテクト状態であり、かつ、特定情報20と特定情報31とが一致した場合)、情報処理装置2aのモードをプロテクトモードに設定する。また、判定結果が「使用不可」である場合(記憶装置3aの第1記憶部33がプロテクト状態であり、かつ、特定情報20と特定情報31とが一致しなかった場合)、制御部22は警告メッセージを表示部26に表示させた後、記憶装置3aを使用できない装置(デバイス)として扱う。
このように、情報処理システム1において、モード設定処理が実行されることにより、情報処理装置2は、装着されている記憶装置3の第1記憶部33がプロテクト状態であるか否か、および使用可能であるか否かを確認することができ、後述する処理において当該記憶装置3に対する適切な処理が可能となる。
特に、記憶装置3の第1記憶部33がプロテクト状態とされている場合には、当該第1記憶部33をプロテクト状態にした情報処理装置2のみが当該記憶装置3を使用可能なデバイスと判定することにより、当該第1記憶部33をプロテクト状態にした情報処理装置2以外の情報処理装置2の第1記憶部33へのアクセスを適切に禁止できる。
ステップS17を実行すると、情報処理装置2a(情報処理システム1)は、ステップS2のモード設定処理を終了して、図5に示す処理に戻る。
図5に戻って、ユーザによってインストールが指示されると、情報処理システム1は、ステップS3においてYesと判定し、インストール処理を実行する(ステップS4)。
図7は、インストール処理を示す図である。
ステップS4のインストール処理が開始されると、情報処理装置2aの演算部28は、コマンド生成部29にインストールコマンドを生成するように制御信号を伝達する。これにより、コマンド生成部29は、インストールコマンドを生成し、インターフェース部27に転送する。
詳細は後述するが、本実施の形態では、インストール処理が実行されると、記憶装置3の第1記憶部33はプロテクト状態に遷移する。これは、一度、インストール処理が実行された後は、インストール処理を行った情報処理装置2(情報処理装置2a)以外の情報処理装置2(情報処理装置2b,2c)において、当該記憶装置3を使用することができないようにするためである。したがって、インストールコマンドの生成を指示した演算部28は、情報処理装置2aのモードをプロテクトモードに設定する。
また、本実施の形態におけるコマンド生成部29は、インストールコマンドを生成する場合には、ROM23を参照して、当該ROM23に格納されている特定情報20を取得し、取得した特定情報20を、生成するインストールコマンドに含める。例えば、情報処理装置2aのコマンド生成部29がインストールコマンドを生成する場合には、特定情報20として、情報処理装置2aを識別する固有の情報「2a」が当該インストールコマンドに含められる。
コマンド生成部29からインターフェース部27に転送されたインストールコマンドは、インターフェース部27によって記憶装置3aに向けて送信される(ステップS21)。そして、ステップS21を実行すると、情報処理装置2aは待機状態となる。
ステップS21において送信されたインストールコマンドは、記憶装置3aのインターフェース部36によって受信され(ステップS22)、制御部37に転送される。
インストールコマンドが転送されると、制御部37は、第1記憶部33をプロテクト状態に遷移させる(ステップS23)。具体的には、制御部37は、取得したインストールコマンドに含まれる特定情報20を、特定情報31として第2記憶部34に記憶させるとともに、プロテクト情報32を第3記憶部35に記憶させる。
このように、記憶装置3aの第1記憶部33に格納されているゲームプログラム30を記憶装置3aが装着されている情報処理装置2aにインストールするインストールコマンドが取得された場合には、制御部37は、第1記憶部33をプロテクト状態に遷移させることにより、インストールコマンドが実行されるときに、第1記憶部33を確実にプロテクト状態に遷移させることができ、以後、第1記憶部33に対するアクセスを情報処理装置2aに限定することができる。
また、インストールコマンドがプロテクトコマンドとしての機能を有していることにより、情報処理装置2が、インストールコマンドとは別に、プロテクトコマンドを発行する必要がない。なお、インストールコマンドがプロテクトコマンドと兼用されていない場合には、インストールコマンドを受信した記憶装置3が、インストールコマンドを送信した情報処理装置2に対して、プロテクトコマンドを要求するように構成してもよい。あるいは、インストールコマンドを送信する前に、情報処理装置2が必ずプロテクトコマンドを送信するように構成してもよい。プロテクトコマンドを受信した記憶装置3は、当該プロテクトコマンドに含まれる特定情報20に応じてステップS23と同様の処理を実行することにより、当該第1記憶部33をプロテクト状態に遷移させる。
ステップS23が実行されると、制御部37は、第3記憶部35にプロテクト情報32が格納されているか否かを判定することにより、第1記憶部33がプロテクト状態となっているか否かを判定するとともに、インストールコマンドに含まれる特定情報20と第2記憶部34に記憶されている特定情報31とが一致するか否かを判定する(ステップS24)。
特定情報20と特定情報31とが一致する場合には、ステップS24においてYesと判定し、制御部37は第1記憶部33に格納されているゲームプログラム30を情報処理装置2aに転送する(ステップS25)。したがって、インストールコマンドを送信した情報処理装置2と、第1記憶部33をプロテクト状態にした情報処理装置2とが一致する場合には、ゲームプログラム30が情報処理装置2に転送され、インストールが実行される。すなわち、記憶装置3において、インストールコマンドが有効とされる。なお、ステップS25を実行すると、記憶装置3aはインストール処理を終了する。
一方、特定情報20と特定情報31とが一致しない場合には、ステップS24においてNoと判定し、制御部37はステップS25の処理をスキップして、記憶装置3aはインストール処理を終了する。したがって、インストールコマンドを送信した情報処理装置2と、第1記憶部33をプロテクト状態にした情報処理装置2とが一致しない場合には、ゲームプログラム30が情報処理装置2に転送されることはなく、インストールは実行されない。
ステップS24の処理は、インストールを実行する直前に、第1記憶部33が確実にプロテクト状態に遷移しているか否かを確認する処理に相当する。本実施の形態では、インストールコマンドがプロテクトコマンドとしての機能を有しているため、ステップS25が実行される前に、確実にステップS23が実行されており、インストールが実行される前に第1記憶部33はプロテクト状態に遷移している。しかし、例えば、インストールコマンドとプロテクトコマンドとが別々に送受信されるように構成した場合、インストールコマンドを取得した場合に、インストールを実行する前に、記憶装置3側においてステップS24を実行することにより、第1記憶部33をプロテクト状態に遷移させることなく、インストールコマンドのみが実行されることを防止できる。
ステップS25によりゲームプログラム30が転送されると、転送されたゲームプログラム30がインターフェース部27によって受信され(ステップS26)、制御部22に転送される。そして、制御部22は、ゲームプログラム30をゲームプログラム4としてハードディスク24に格納させる(ステップS27)。
これにより、記憶装置3aから情報処理装置2aにゲームプログラム4がインストールされ、情報処理装置2aにおいて、実行可能な状態となる。
一方、ゲームプログラム4が実行可能となったとき、既に記憶装置3aの第1記憶部33はプロテクト状態となっている。例えば、この状態の記憶装置3aを情報処理装置2aから取り外し、情報処理装置2bに装着した場合を考える。
情報処理装置2bに記憶装置3aを装着したときに、情報処理装置2bにおいてモード設定処理(ステップS2)が実行される。このとき、情報処理装置2bからは特定情報20として「2b」を含む問い合わせコマンドが、装着された記憶装置3aに対して送信される。したがって、記憶装置3aの第2記憶部33に特定情報31として記憶されている「2a」と、問い合わせコマンドに含まれる特定情報20としての「2b」とが一致せず、記憶装置3aから情報処理装置2bに対して「使用不可」が判定結果として送信される。
このように、インストール処理を実行した後の記憶装置3aの第1記憶部33は、情報処理装置2a以外の情報処理装置2に対しては、アクセスが禁止された状態となっている。したがって、情報処理システム1では、インストール処理を実行した後の記憶装置3が転売され、不正使用されることを防止することができる。
ただし、記憶装置3側からの情報(判定結果)に応じて当該記憶装置3を使用不可と判定する手法では、情報処理装置2bが不正規な構成である場合には、第1記憶部33に対するアクセスを有効に禁止できない場合が考えられる。例えば、記憶装置3aから「使用不可」の判定結果が得られた場合でも、当該記憶装置3aを使用不可能なデバイスとみなさないように情報処理装置2bのプログラム21が書き換えられていた場合には、モード設定処理による禁止だけでは不十分である。本実施の形態における情報処理システム1はこのような問題にも対処可能であるが、詳細は後述する。
ステップS27を実行すると、情報処理システム1はインストール処理を終了して、図5に示す処理に戻る。
なお、詳細は省略したが、本実施の形態では、情報処理装置2aがノーマルモード(装着されている記憶装置3の第1記憶部33が非プロテクト状態)のときにのみ、ユーザはインストール処理を選択することが可能とされている。これにより、情報処理システム1は、装着されている記憶装置3の第1記憶部33がプロテクト状態のときには、インストール処理の実行を禁止する。ただし、インストールコマンドを受信した記憶装置3において、非プロテクト状態か否かを判定して(第3記憶部35にプロテクト情報32が格納されているか否かを判定して)、インストールコマンドを実行するか否かを判定し、インストール処理の実行を適切に禁止するように構成してもよい。あるいは、第1記憶部33がプロテクト状態であっても、インストールコマンドに含まれる特定情報20と、第2記憶部34に格納されている特定情報31とが一致した場合には、インストールコマンドを有効にするように構成してもよい。
図5に戻って、ユーザによって解除が指示されると、情報処理システム1は、ステップS5においてYesと判定し、解除処理を実行する(ステップS6)。
図8は、解除処理を示す図である。なお、解除処理とは、第1記憶部33のプロテクト状態を解除して、非プロテクト状態に遷移させる処理である。
ステップS5の解除処理が開始されると、情報処理装置2aの演算部28は、コマンド生成部29に解除コマンドを生成するように制御信号を伝達する。これにより、コマンド生成部29は、解除コマンドを生成し、インターフェース部27に転送する。
本実施の形態におけるコマンド生成部29は、解除コマンドを生成する場合には、ROM23を参照して、当該ROM23に格納されている特定情報20を取得し、取得した特定情報20を、生成する解除コマンドに含める。例えば、情報処理装置2aのコマンド生成部29が解除コマンドを生成する場合には、特定情報20として、情報処理装置2aを識別する固有の情報「2a」が当該解除コマンドに含められる。
コマンド生成部29からインターフェース部27に転送された解除コマンドは、インターフェース部27によって記憶装置3aに向けて送信される(ステップS31)。そして、ステップS31を実行すると、情報処理装置2aは待機状態となる。
ステップS31において送信された解除コマンドは、記憶装置3aのインターフェース部36によって受信され(ステップS32)、制御部37に転送される。
解除コマンドが転送されると、制御部37は、解除コマンドを送信した情報処理装置2aが、第1記憶部33をプロテクト状態にした情報処理装置2と同じであるか否か相手先を確認する(ステップS33)。具体的には、制御部37は、取得した解除コマンドに含まれる特定情報20と、第2記憶部34に格納されている特定情報31とを比較し、一致するか否かを確認する。ここに示す例では、特定情報20は「2a」であるため、特定情報31が「2a」の場合(プロテクト状態に遷移する際に得られた特定情報20が「2a」であった場合)に判定結果は「一致」となる。
なお、ステップS33では、第3記憶部35にプロテクト情報32が格納されているか否かに応じて、記憶装置3aの第1記憶部33がプロテクト状態であるか否かも判定される。第1記憶部33がプロテクト状態でない場合には、解除処理が不要とみなして、情報処理システム1(情報処理装置2aおよび記憶装置3a)は解除処理を終了する。
次に、制御部37は、ステップS33の判定結果をインターフェース部36に転送し、インターフェース部36は当該判定結果を情報処理装置2aに向けて送信する(ステップS34)。ステップS34を実行すると、判定結果が「一致」であった場合(Yes)、記憶装置3aは解除コマンドを実行する前に、一旦、待機状態となる。一方、判定結果が「不一致」であった場合(No)、記憶装置3aは解除コマンドを実行することなく、解除処理を終了する。
ステップS34において送信された判定結果は、情報処理装置2aのインターフェース部27によって受信され(ステップS35)、制御部22に転送される。そして、制御部22の演算部28は、転送された判定結果を確認する。そして、判定結果が、「一致」であった場合(Yes)、演算部28はハードディスク24に格納されているゲームプログラム4を消去する(ステップS36)。一方、判定結果が「不一致」であった場合(No)、ステップS36,S37をスキップすることにより、演算部28はゲームプログラム4の消去を行わずに、解除処理を終了する。
先述のように、情報処理システム1では、インストール処理が実行されると、インストール元となった記憶装置3a(第1記憶部33)をプロテクト状態にして、他の情報処理装置2が当該第1記憶部33にアクセスできないようにする。しかし、情報処理装置2aのハードディスク24にゲームプログラム4を残したままで、記憶装置3aのプロテクト状態を解除できるとすると、結局、記憶装置3aの転売が可能となり、不正使用が可能となる。
しかし、本実施の形態における情報処理システム1では、記憶装置3aの第1記憶部33が非プロテクト状態にされる前に(解除前に)、当該第1記憶部33からハードディスク24にインストールされていたゲームプログラム4を消去する。これにより、第1記憶部33が非プロテクト状態になり、当該第1記憶部33に格納されているゲームプログラム30が任意の情報処理装置2において実行可能となる前に、情報処理装置2aにインストールされていたゲームプログラム4を消去できる。したがって、不正使用を防止できる。
なお、解除コマンドを送信する前に、情報処理装置2aにおいてゲームプログラム4を削除するように構成してもよい。しかし、この場合、特定情報20と特定情報31とが一致しなかった場合には、記憶装置3aにおいてプロテクト状態が解除されないにもかかわらず、ゲームプログラム4が消去される。この場合、当該ゲームを実行することができなくなるため、解除コマンドが実行されるか否かを確認した上でゲームプログラム4を消去する方が好ましい。
また、詳細は省略するが、このとき、消去の対象となっているゲームプログラム4が、記憶装置3aの第1記憶部33に格納されているゲームプログラム30と同一のゲーム(アプリケーション)であるか否かについてもチェックする。言い換えれば、ゲームプログラム30と同一のアプリケーションがゲームプログラム4(一のアプリケーションとは限らない)の中から選択されて、消去対象となる。このとき、情報処理装置2aの制御部22は表示部26に消去対象となったゲームプログラム4について確認メッセージを表示させることが好ましい。
ステップS36が実行され、ゲームプログラム4の消去が完了すると、演算部28は消去が完了したことを通知するコマンドをコマンド生成部29に生成させる。コマンド生成部29は、生成した消去完了通知コマンドをインターフェース部27に転送し、インターフェース部27が記憶装置3aに向けて送信する(ステップS37)。ステップS37を実行すると、情報処理装置2aは解除処理を終了して図5に示す処理に戻る。
ステップS37が実行されることにより送信された消去完了通知コマンドはインターフェース部36によって受信され(ステップS38)、制御部37に転送される。そして、消去完了通知コマンドを取得した制御部37は、解除コマンドを実行して、第1記憶部33を非プロテクト状態に遷移させる(ステップS39)。具体的には、第2記憶部34から特定情報31を消去するとともに、第3記憶部35からプロテクト情報32を消去する。
ステップS39を実行すると、記憶装置3aは解除処理を終了して図5に示す処理に戻る。
なお、先述のように、本実施の形態における情報処理システム1では、記憶装置3が装着される際に、モード設定処理(ステップS2)が実行される。すなわち、情報処理装置2が記憶装置3を使用可能なデバイスとみなしている以上、例え、記憶装置3の第1記憶部33がプロテクト状態であったとしても、当該記憶装置3の第2記憶部34に格納されている特定情報31は、当該情報処理装置2の特定情報20と一致する。したがって、ステップS33のような相手先を確認する処理は不要とも考えられる。
しかし、既に指摘したように、モード設定処理におけるアクセス制御は、情報処理装置2(プログラム21)が改変された場合等に無効化される危険性があり、脆弱性を有するとも言える。そこで、本実施の形態における情報処理システム1は、情報処理装置2に依存したモード設定処理のみに頼ることなく、記憶装置3(第1記憶部33)がプロテクト状態である場合には、各コマンドごとに、記憶装置3側で相手先を確認する処理を実行する。これによって、セキュリティレベルを向上させることができる。以下の処理についても同様である。
図5に戻って、ユーザによってゲーム選択が指示されると、情報処理システム1は、ステップS7においてYesと判定し、ゲーム実行処理を実行する(ステップS8)。
図9は、ゲーム実行処理を示す図である。ゲーム実行処理が開始されると、情報処理システム1は、ユーザによって選択されたゲームのプログラムの格納場所を判定する(ステップS41)。
ここで、ユーザによってハードディスク24に格納されているゲームプログラム4が選択された場合は、記憶装置3との間でデータ通信が行われることはなく、ハードディスク24が適宜参照されつつゲームが実行されるので、説明を省略する。
情報処理装置2aに装着されている記憶装置3aの第1記憶部33に格納されているゲームプログラム30が選択されると、演算部28は、ゲームプログラム30の実行に必要なコマンドを生成するようにコマンド生成部29に要求する(ステップS42)。
コマンド要求を受けたコマンド生成部29は、モード設定処理(ステップS2)において設定されたモードを判定し(ステップS43)、ノーマルモードの場合は、記憶装置3aがプロテクト状態ではなく、任意の情報処理装置2に対して第1記憶部33のアクセスが許可されているので、生成するコマンドに特定情報20を含めない。一方、プロテクトモードの場合は、記憶装置3aがプロテクト状態であり、特定の情報処理装置2に対してのみ第1記憶部33のアクセスが許可されているので、生成するコマンドに特定情報20を含める。
このようにして生成されたコマンドは、インターフェース部27に転送され、インターフェース部27によって記憶装置3aに向けて送信される(ステップS44)。ステップS44を実行すると、情報処理装置2aは、送信したコマンドに対するレスポンス(コマンドの実行結果)が記憶装置3aからあるまで、一時的に待機状態となる。
ステップS44が実行されることにより送信されたコマンドは、インターフェース部36によって受信され(ステップS45)、制御部37に転送される。コマンドを取得した制御部37は、第3記憶部35にプロテクト情報32が格納されているか否かを確認することによって、第1記憶部33がプロテクト状態であるか否かを判定する(ステップS46)。
第1記憶部33がプロテクト状態でない場合(No)、第1記憶部33は任意の情報処理装置に対してアクセスが許可されており、相手先を確認する必要はないので、ステップS47をスキップして、取得されたコマンドを実行する(ステップS48)。これにより、プロテクト状態となっていない記憶装置3aの第1記憶部33に格納されているゲームプログラム30は任意の情報処理装置2において実行可能である。したがって、ユーザは情報処理装置2a,2b,2cのいずれにおいても、ゲームプログラム30を実行して、ゲームを楽しむことができる。すなわち、インストールを行わない限り(プロテクト状態にしない限り)、従来からの利用形態は保証されている。
一方、第1記憶部33がプロテクト状態である場合(Yes)、制御部37は相手先確認を行う(ステップS47)。具体的には、受信したコマンドに含まれている特定情報20と、第2記憶部34に格納されている特定情報31とが一致するか否かを判定することにより、受信したコマンドを送信した情報処理装置2(第1記憶部33へのアクセスを望む情報処理装置2)と、第1記憶部33をプロテクト状態にした情報処理装置2とが一致するか否かを判定する。
特定情報20と特定情報31とが一致する場合(Yes)、制御部37は受信したコマンドを実行し(ステップS48)、その実行結果をインターフェース部36に転送する。そして、インターフェース部36が当該実行結果を情報処理装置2aに向けて送信する(ステップS49)。すなわち、記憶装置3aが情報処理装置2aによってプロテクト状態とされたものであり、第2記憶部34に特定情報31として「2a」が格納されている場合に、情報処理装置2aからのコマンドが実行される。
このように、情報処理システム1の記憶装置3は、当該記憶装置3をプロテクト状態にした情報処理装置2に対しては、記憶装置3へのアクセスを許可する。これにより、例え、記憶装置3から情報処理装置2にインストールを行った場合であっても、当該記憶装置3の第1記憶部33に格納されているゲームプログラム30を当該情報処理装置2において実行することができる。すなわち、記憶装置3のユーザは、自身が所有する情報処理装置2にインストールを行った後であっても、当該情報処理装置2で実行する限りにおいて、当該記憶装置3からの実行が可能である。したがって、自身の情報処理装置2を用いる限り、記憶装置3のゲームプログラム30を当該情報処理装置2にインストールしたか否かにかかわらず、記憶装置3の着脱によってゲームプログラム30を切り替えるという従来の利用形態は保証されている。
また、ゲーム機等では、カートリッジが抜かれるタイミングを確実に予測することは困難であり、保護機能を一時的にでも解除すると、解除された状態のままカートリッジが抜かれてしまい、プロテクト状態に戻せないおそれがある。したがって、例え、正規のゲーム機によってアクセスされているときでも、保護機能を解除するのは好ましくないという事情がある。
しかし、本実施の形態における記憶装置3は、記憶装置3をプロテクト状態にした情報処理装置2からのコマンドを実行する場合でも、当該記憶装置3のプロテクト状態は解除されない。したがって、上記のような問題を防止できる。
一方、特定情報20と特定情報31とが一致しない場合(No)、制御部37は、ステップS48,S49をスキップし、受信したコマンドを実行することなく、ゲーム実行処理を終了して図5に示す処理に戻る。なお、このとき、コマンドの実行に失敗したことを示す情報を情報処理装置2aに向けて送信してもよい。
このように、制御部37は、記憶装置3の第1記憶部33がプロテクト状態にある場合、当該第1記憶部33をプロテクト状態にした情報処理装置2以外の情報処理装置2には、第1記憶部33へのアクセスを禁止する。したがって、インストールを実行し結果、記憶装置3の第1記憶部33に格納されているゲームプログラム30と同等のアプリケーションを、情報処理装置2のハードディスク24に格納されているゲームプログラム4を実行することによって実行可能としたままでは、当該記憶装置3を他の情報処理装置2に装着しても、ゲームプログラム30を実行することはできない。したがって、本実施の形態における情報処理システム1では、インストールしたまま(プロテクト状態のまま)の記憶装置3の転売を防止することができ、不正使用を防止できる。
ステップS49が実行されることにより送信された実行結果は、インターフェース部27によって受信され(ステップS50)、制御部22に転送される。そして、制御部22は取得した実行結果に応じて動作を実行することにより(ステップS51)、ユーザによって選択されたゲームが情報処理装置2aにおいて実行される。
ゲーム実行処理は、終了判定(ステップS52)においてYesと判定されるまで、ステップS42ないしS52の処理を繰り返すことにより実行される。一方、終了判定においてYesと判定されると、情報処理システム1はゲーム実行処理を終了して図5に示す処理に戻る。
以上のように、情報処理システム1は、第1記憶部33がプロテクト状態である場合において、第2記憶部34に記憶されている特定情報31と記憶装置3が装着されている情報処理装置2の特定情報20とが一致しなかった場合には記憶装置3が装着されている情報処理装置2に対して第1記憶部33へのアクセスを禁止する一方で、第2記憶部34に記憶されている特定情報31と記憶装置3が装着されている情報処理装置2の特定情報20とが一致した場合には第1記憶部33のプロテクト状態を解除することなく、記憶装置3が装着されている情報処理装置2に対して第1記憶部33へのアクセスを許可することにより、プロテクト状態に遷移した後において、プロテクト状態を維持したままで、プロテクト状態に遷移させた情報処理装置に対してのみ第1記憶部33へのアクセスを許可することができる。
また、制御部37は、インストールコマンドが取得された場合には、第1記憶部33をプロテクト状態に遷移させることにより、インストールコマンドを実行するときに、第1記憶部33を確実にプロテクト状態に遷移させることができる。また、情報処理装置2が、インストールコマンドとは別に、プロテクトコマンドを発行する必要がない。
また、制御部37は、インストールコマンドが取得された場合、第1記憶部33が既にプロテクト状態となっており、かつ、インストールコマンドに応じて取得される特定情報20と第2記憶部34に記憶されている特定情報31とが一致した場合にインストールコマンドを有効とすることにより、第1記憶部33をプロテクト状態に遷移させることなく、インストールコマンドのみが実行されることを防止できる。
また、制御部37は、解除コマンドが取得された場合において、解除コマンドに応じて取得される特定情報20と第2記憶部34に格納されている特定情報31とが一致する場合には、特定情報31の第2記憶部34からの消去とプロテクト情報32の第3記憶部35からの消去とを実行することにより第1記憶部を非プロテクト状態に遷移させる一方で、解除コマンドに応じて取得される特定情報20と第2記憶部34に格納されている特定情報31とが一致しない場合には解除コマンドを無効とすることにより、例え、解除コマンドを発行することが可能な正規の情報処理装置2であっても、プロテクト状態に遷移させた情報処理装置2でなければ、プロテクト状態を解除することができず、第1記憶部33にアクセスできる情報処理装置2を適切に限定することができる。
さらに、情報処理装置2は、装着されている記憶装置3の第1記憶部33を非プロテクト状態に遷移させる解除コマンドを当該記憶装置3に対して発行した場合において、解除コマンドが当該記憶装置3において実行されるときに、第1記憶部33からインストールされたゲームプログラム4を自装置のハードディスク24から消去することにより、ハードディスク24にゲームプログラム4を残した状態で、記憶装置3の第1記憶部33のプロテクト状態が解除されることを防止できる。
<2. 変形例>
以上、本発明の実施の形態について説明してきたが、本発明は上記実施の形態に限定されるものではなく様々な変形が可能である。
例えば、上記実施の形態では、第1記憶部33、第2記憶部34および第3記憶部35は、いずれも独立したメモリ装置(回路)であるとして説明したが、例えば、1つのメモリにおける異なる領域がそれぞれに割り当てられる構成であってもよい。
また、上記実施の形態に加えて、さらなるセキュリティ機能を追加してもよい。例えば、第1記憶部33を個別に識別するための識別情報を、第1記憶部33、第2記憶部34および第3記憶部35にそれぞれ記憶させておき、各コマンドの実行は、第1記憶部33に記憶されている識別情報と、第2記憶部34および第3記憶部35に記憶されている識別情報とが一致した場合にのみ実行するように構成してもよい。これによって、特定情報31を記憶している第2記憶部34およびプロテクト情報32を格納している第3記憶部35を、同等のメモリに取り替えられたとしても、第1記憶部33に記憶されているゲームプログラム30が不正に読み出されることを防止できる。
また、上記実施の形態における情報処理システム1では、ステップS33において相手先確認が実行され、解除コマンドを送信した情報処理装置2aが、第1記憶部33をプロテクト状態にした情報処理装置2と異なる場合には、ゲームプログラム4の消去および第1記憶部33のプロテクト状態の解除は実行されない。このように、第1記憶部33をプロテクト状態にした情報処理装置2にしか解除処理を行わせないように構成することは、ゲームプログラム4がゲームプログラム30のコピーであることを厳密に確認することに相当し、互いのシリアルナンバーの一致を確認することに相当する。しかし、実行可能なゲームプログラム30(ゲームプログラム4)の数をコントロールするだけでよければ、ゲームプログラム4とゲームプログラム30とが同一のアプリケーションであるか否かを確認するだけで、ゲームプログラム4の消去および第1記憶部33の解除を実行するように構成してもよい。すなわち、解除コマンドを実行させる情報処理装置2を、インストール(プロテクト)を行った情報処理装置2に限定しなくてもよい。
また、記憶装置3が装着された際のモード設定処理(ステップS2)を行わないように構成することも可能である。この場合は、情報処理装置2は、装着されている記憶装置3がプロテクト状態であるか否かを予め知得しておくことができないので、全てのコマンドに特定情報20を含めるように構成し、プロテクト状態でない場合には記憶装置3側で特定情報20を無視するように構成してもよい。あるいは、記憶装置3がコマンドを受信したときに、当該記憶装置3がプロテクト状態であれば、当該記憶装置3から情報処理装置2に対して特定情報20を要求するように構成してもよい。
また、上記実施の形態では、プロテクトコマンドを取得した場合に、プロテクトコマンドに応じて取得される特定情報20を特定情報31として第2記憶部34に記憶させるとともに、第3記憶部35にプロテクト情報32を記憶させると説明した。しかし、特定情報31の記憶とプロテクト情報32の記憶とは必ずしも同時に実行されるものでなくてもよい。例えば、第1プロテクトコマンドによって第2記憶部34に特定情報31が格納され、その後に取得される第2プロテクトコマンドコマンドによって第3記憶部35にプロテクト情報32が格納されるように構成してもよい。