説明

プログラム管理装置、プログラム管理方法及びプログラム管理プログラム

【課題】プログラムをバージョンアップした後、以前のバージョンのプログラムに戻しても以前のバージョンのプログラムが持つバグや不具合が戻ることがなく、また悪意のある第三者が継続して悪用することも防止することができるプログラム管理装置及びプログラム管理方法を提供する。
【解決手段】プログラム管理装置1の移動機環境側は、プログラム開発環境側で作成された移動機プログラムをメモリ部32に格納し、またプログラム開発環境側で作成された暗号化認証情報を復号して平文認証情報を得る。そして、移動機の起動時等の所定タイミングでメモリ部32に格納した移動機プログラムのバージョンを判定し、更に当該移動機プログラムのハッシュ値を計算し、これと復号した平文認証情報に含まれる最新の移動機プログラムのハッシュ値とを比較し、一致する場合は移動機プログラムに機能制限をかけず、一致しない場合は移動機プログラムに機能制限をかける。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、携帯電話、PHS(Personal Handy-phone System)、PDA(Personal Digital Assistant)などのマイコン(マイクロコンピュータ)を搭載してプログラムに従って動作する電子機器に用いて好適なプログラム管理装置及びプログラム管理方法に関する。
【背景技術】
【0002】
従来、マイコンを搭載し、プログラムで動作する電子機器では、プログラムの致命的な欠陥やセキュリティホールが見つかった場合、プログラムのバージョンアップが行われる。
【0003】
プログラムのバージョンアップ時に何等かの理由でエラーが発生したり、バージョンアップしたプログラムにバグがあったりすると電子機器が使用不能になる虞がある。このため、バージョンアップ前の元のプログラムに戻すことを可能にした提案がある(例えば、特許文献1、特許文献2参照)。
【0004】
特許文献1では、携帯電話のソフトウェアをバージョンアップしてプログラムを書き換える前に以前のバージョンのプログラムをフラッシュメモリに保存しておき、バージョンアップしたプログラムをインストール中にエラーが発生すると、以前のバージョンのプログラムに戻せるようにしている。特許文献2では、プログラムのダウンロードにおいて最新のプログラムだけでなく過去のプログラムも含めて保存し、プログラムのバージョンを遡及させる指示があると、過去のバージョンのプログラムを有効化させるようにしている。
【0005】
【特許文献1】特開2005−215841号公報
【特許文献2】特開2000−293365号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、バージョンアップしたプログラムにバグがあって以前のバージョンのプログラムに戻した場合、以前のバージョンが持つバグや不具合も戻ってしまうという問題がある。また、プログラムをバージョンアップしても悪意のある第三者によって以前のバージョンのプログラムに戻されてしまうと、継続して悪用されるという問題もある。
【0007】
本発明は、かかる事情に鑑みてなされたものであり、プログラムをバージョンアップした後、以前のバージョンのプログラムに戻しても以前のバージョンのプログラムが持つバグや不具合が戻ることがなく、また悪意のある第三者が継続して悪用することも防止することができるプログラム管理装置及びプログラム管理方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明のプログラム管理装置は、有効化されている現行プログラムと前記現行プログラムの他のバージョンのプログラムを記憶するプログラム記憶手段と、前記現行プログラムと前記他のバージョンのプログラムに関するバージョン情報を記憶するバージョン情報記憶手段と、前記現行プログラムについてバージョンを変更させる旨の指示を受けると、前記現行プログラムを無効化し、前記他のバージョンのプログラムを有効化させるバージョン変更手段と、前記有効化したプログラムに関するバージョン情報に所定機能の制限命令が含まれている場合、前記所定機能を制限する機能制限手段と、を備える。
【0009】
上記構成によれば、例えば、マイコンを搭載した電子機器を動作させるプログラムのバージョンを変更する場合、現在有効化されている現行プログラムを無効化し、指定された他のバージョンのプログラムを有効化し、更に有効化したバージョンに関するバージョン情報に所定機能を制限する制限命令が含まれていれば、当該バージョンのプログラムの所定機能の利用を制限するので、プログラムをバージョンアップした後、以前のバージョンのプログラムに戻しても以前のバージョンのプログラムが持つバグや不具合が戻ることがなく、また悪意のある第三者が継続して悪用することも防止することが可能となる。
【0010】
また、本発明のプログラム管理装置は、前記バージョン情報を取得する通信手段を有する。
【0011】
上記構成によれば、プログラムを作成する外部機器やプログラムを記憶した記憶用機器と通信することができ、該機器からプログラムのバージョン情報を取得することができる。
【0012】
また、本発明のプログラム管理装置は、前記機能制限手段は前記機能制限に関する情報を表示する表示手段を有する。
【0013】
上記構成によれば、ユーザが使用しようとしているプログラムに機能制限がかかっていることを該ユーザに通知することができる。
【0014】
また、本発明のプログラム管理装置は、暗号化されている前記バージョン情報を復号する復号手段を有する。
【0015】
上記構成によれば、バージョン情報を暗号化することで、バージョン情報の改ざんを防止することができる。
【0016】
また、本発明のプログラム管理装置の前記バージョン情報は、プログラムの全ての機能を制限する前記制限命令を含み、前記機能制限手段は前記プログラムを停止する。
【0017】
上記構成によれば、プログラムをバージョンアップした後、以前のバージョンのプログラムに戻しても以前のバージョンのプログラムが持つバグや不具合が戻ることがなく、また悪意のある第三者が継続して悪用することも防止することが可能となる。
【0018】
また、本発明のプログラム管理装置は、前記プログラム管理装置は更に、前記現行のプログラムに対応するバージョン情報を前記通信手段より取得し、前記通信手段より取得した前記バージョン情報に前記所定機能の制限命令が含まれているか否かを判定するバージョン情報判定手段を備え、前記バージョン情報判定手段が前記制限命令が含まれていると判定した場合、前記機能制限手段は前記現行プログラムの前記所定機能を制限する。
【0019】
上記構成によれば、現行のプログラムに対応するバージョン情報の判定を行うので、バージョン変更時に不正なロールバックを発見することができ、悪意のある第三者による継続運用を防止できる。
【0020】
また、本発明のプログラム管理装置は、前記バージョン情報判定手段は、バージョンを変更したとき、または、プログラムを初めて起動するとき、または、プログラムを毎回起動するときのうち少なくともいずれか一つのときに前記判定を行う。
【0021】
上記構成によれば、バージョンを変更したとき、プログラムを初めて起動するとき及びプログラムを毎回起動するときのうちいずれかに現行のプログラムに対応するバージョン情報の判定を行うので、プログラムを初めて起動するときに不正なロールバックを発見することができ、悪意のある第三者による継続運用を防止できる。
【0022】
本発明のプログラム管理方法は、有効化されている現行プログラムと前記現行プログラムの他のバージョンのプログラムを記憶するプログラム記憶ステップと、前記現行プログラムと前記他のバージョンのプログラムに関するバージョン情報を記憶するバージョン情報記憶ステップと、前記現行プログラムについてバージョンを変更させる旨の指示を受けると、前記現行プログラムを無効化し、前記他のバージョンのプログラムを有効化させるバージョン変更ステップと、前記有効化したプログラムに関するバージョン情報に所定機能の制限命令が含まれている場合、前記所定機能を制限する機能制限ステップと、を備える。
【0023】
上記方法によれば、例えば、マイコンを搭載した電子機器を動作させるプログラムのバージョンを変更する場合、有効化されている現行プログラムを無効化し、指定された他のバージョンを有効化し、更に有効化したバージョンに関するバージョン情報に所定機能を制限する制限命令が含まれていれば、当該バージョンのプログラムの所定機能の利用を制限するので、プログラムをバージョンアップした後、以前のバージョンのプログラムに戻しても以前のバージョンのプログラムが持つバグや不具合が戻ることがなく、また悪意のある第三者が継続して悪用することも防止することが可能となる。
【0024】
本発明のプログラム管理プログラムは、有効化されている現行プログラムと前記現行プログラムの他のバージョンのプログラムを記憶するプログラム記憶ステップと、前記現行プログラムと前記他のバージョンのプログラムに関するバージョン情報を記憶するバージョン情報記憶ステップと、前記現行プログラムについてバージョンを変更させる旨の指示を受けると、前記現行プログラムを無効化し、前記他のバージョンのプログラムを有効化させるバージョン変更ステップと、前記有効化したプログラムに関するバージョン情報に所定機能の制限命令が含まれている場合、前記所定機能を制限する機能制限ステップと、を備える。
【0025】
上記プログラムによれば、例えば、マイコンを搭載した電子機器を動作させるプログラムのバージョンを変更する場合、有効化されているバージョンのプログラムを無効化し、指定された他のバージョンを有効化し、更に有効化したバージョンに関するバージョン情報に所定機能を制限する制限命令が含まれていれば、当該バージョンのプログラムの所定機能の利用を制限するので、プログラムをバージョンアップした後、以前のバージョンのプログラムに戻しても以前のバージョンのプログラムが持つバグや不具合が戻ることがなく、また悪意のある第三者が継続して悪用することも防止することが可能となる。
【発明の効果】
【0026】
本発明によれば、プログラムをバージョンアップした後、以前のバージョンのプログラムに戻しても以前のバージョンのプログラムが持つバグや不具合が戻ることがなく、また悪意のある第三者が継続して悪用することも防止することができる。
【発明を実施するための最良の形態】
【0027】
以下、本発明を実施するための好適な実施の形態について、図面を参照して詳細に説明する。
【0028】
図1は、本発明の一実施の形態に係るプログラム管理装置の概略構成を示すブロック図である。同図において、本実施の形態のプログラム管理装置1は、プログラム開発環境側と移動機環境側の2つの部分から構成される。
【0029】
(プログラム管理装置1のプログラム開発環境側)
プログラム管理装置1のプログラム開発環境側は、操作部21と、プログラム作成部22と、メモリ部23と、表示制御部24と、表示部25と、ハッシュ値計算部26と、暗号化処理部27と、通信部28と、制御部29とを備える。操作部21は、プログラムの作成や各種処理を実行させるための操作を行う。プログラム作成部22は、移動機3を動作させるためのプログラム(以下、移動機プログラムと呼ぶ)を作成する。メモリ部23は、プログラム作成装置2を動作させるための制御プログラムを記憶するとともに、プログラム作成部22で作成された移動機プログラムを記憶する。
【0030】
表示制御部24は、操作部21による入力情報や移動機プログラムを表示部25に表示するための制御を行う。表示部25は、LCD(Liquid Crystal Display)やEL(Electro Luminescence)などのディスプレイを有する。ハッシュ値計算部26は、移動機プログラムのハッシュ値を計算する。暗号化処理部27は、ハッシュ値計算部26が計算した移動機プログラムの“ハッシュ値”と、前記移動機プログラムの“バージョン番号”と、各バージョン毎に動作を制限する“機能制限情報”とを暗号化し、暗号化認証情報を得る。
【0031】
暗号化認証情報に含まれる“機能制限情報”は、動作を制限したいバージョンの移動機プログラムに対して、動作を制限したい機能を指定する情報である。例えば、バージョン番号“2”(Ver2)の移動機プログラムのある機能を制限する場合、その機能とバージョン番号“2”の機能制限情報を作成することになる。暗号化認証情報は、主に最新のバージョンの移動機プログラムが作成される際に作成される。例えば、最新のバージョンを“3”(Ver3)とすると、そのバージョンと、それ以前のバージョン(“2”、“1”)に対して作成される。通常、最新のバージョンの移動機プログラムにはバグや不具合がないものとするので、最新の移動機プログラムに対しては動作を制限したい機能の指定を行わない。機能制限情報については移動機3側の説明において再度説明する。
【0032】
通信部28は、移動機環境側の通信部31と通信を行い、メモリ部23に記憶されている移動機プログラムと暗号化処理部27からの暗号化認証情報を移動機環境側へ送信する。制御部29は、プログラム管理装置1のプログラム開発環境側の各部の制御を行う。制御部29は、操作部21から移動機プログラムを作成する指示があると、プログラム作成部22を動作させて移動機プログラムの作成を行う。移動機プログラムが完成した後は、それをメモリ部23に格納する。移動機プログラムをメモリ部23に格納した後、移動機プログラムを移動機環境側へ送信する指示があると、メモリ部23から移動機プログラムを読み出し、通信部28を介して移動機環境側へ送信する。また、メモリ部23に格納された移動機プログラムをハッシュ値計算部26に送り、ハッシュ値を計算させる。ハッシュ値計算部26でハッシュ値が計算された後、暗号化処理部27で暗号化処理させる。そして、暗号化処理して得られた暗号化認証情報を、通信部28を介して移動機環境側へ送信する。
【0033】
このようにプログラム管理装置1のプログラム開発環境側では、最新のバージョンの移動機プログラムを作成するとともに、作成した移動機プログラムからハッシュ値を計算し、得られたハッシュ値と、移動機プログラムのバージョン番号と、各バージョン毎に動作を制限する機能制限情報とを暗号化して暗号化認証情報を作成し、この暗号化認証情報と最新のバージョンの移動機プログラムをプログラム管理装置1の移動機環境側へ送信する。移動機環境側に機能制限情報を送ることで、例えば最新バージョンの移動機プログラムから以前のバージョンの移動機プログラムにロールバックするような場合、以前のバージョンの移動機プログラムの所望の機能を制限することができる。すなわち、以前のバージョンの移動機プログラムにバグや不具合があっても、それを実行する機能を制限することができ、また悪意のある第三者が継続して悪用することも防止することができる。なお、機能制限情報は、必ずしも最新バージョンの移動機プログラムと同時に送信する必要はなく、移動機プログラムとは別に送信することは勿論可能である。
【0034】
(プログラム管理装置1の移動機環境側)
図1において、プログラム管理装置1の移動機環境側は、通信部31と、メモリ部32と、バージョン判定部33と、復号部34と、比較部35と、メモリ制御部36と、フラッシュメモリ37と、表示制御部38と、ディスプレイ39と、制御部40とを備える。
【0035】
通信部31は、プログラム管理装置1のプログラム開発環境側の通信部28と通信を行い、通信部28から送られてくる移動機プログラムと暗号化認証情報を受信する。メモリ部32は、プログラム管理装置1のプログラム開発環境側から送られてくる移動機プログラムと暗号化認証情報等を記憶する。このメモリ部32には、新旧のバージョンを問わずプログラム管理装置1のプログラム開発環境側から送られてくる移動機プログラムが格納される。
【0036】
バージョン判定部33は、メモリ部32に格納された移動機プログラムの最新バージョンを判定し、その結果をメモリ部32に書き込む。また、バージョン判定部33は、メモリ部32に格納された移動機プログラムのハッシュ値を計算し、その結果をメモリ部32に書き込む。バージョン判定部33におけるバージョン判定は、(1)移動機プログラムのバージョンを変更したとき、(2)移動機プログラムを初めて起動するとき、(3)移動機プログラムを毎回起動するときのいずれかで行われ、いずれか1つが制御部38によって指定される。復号部34は、メモリ部32に格納された暗号化認証情報を復号し、平文認証情報を得る。比較部35は、メモリ部32に格納された移動機プログラムのハッシュ値と平文認証情報に含まれるハッシュ値とを比較し、その結果を制御部38に入力する。
【0037】
メモリ制御部36は、フラッシュメモリ37に機能制限情報の履歴を記録する。図2に機能制限情報の履歴の一例を示す。図2では、バージョン番号1(Ver1)からバージョン番号3(Ver3)までの3つの機能制限情報が記録されている。機能制限情報は、“バージョン番号”、“ハッシュ値”、“使用許可フラグ”及び“機能A〜D”で構成される。バージョン番号は、移動機プログラムのバージョン番号であり、ハッシュ値は該移動機プログラムのハッシュ値である。また、使用許可フラグは、当該バージョン(例えばVer3)の全機能の動作を制限する情報である。不正なロールバックを防止したい場合は、この使用許可フラグを“1”に設定する。機能A〜Dは、動作を制限したい機能であり、“○”は制限、“×”は非制限である。図2に示す例では、機能Cのみ制限している。なお、移動機プログラムが有する機能は、必ずしもA〜Dの4つの機能に限定されるものではなく、任意である。
【0038】
表示制御部38は、移動機の動作状況を表示部39に表示するための制御を行う。特に、機能制限に係る情報を表示する。表示部39は、LCDやELなどのディスプレイを有する。制御部40は、プログラム管理装置1の移動機環境側の各部の制御を行うものである。制御部40は、プログラム管理装置1のプログラム開発環境側から送られてくる移動機プログラムをメモリ部32に格納する。また、プログラム管理装置1のプログラム開発環境側から送られてくる暗号化認証情報をメモリ部32に格納する。また、メモリ部32に格納した暗号化認証情報を復号部34に入力して復号させる。また、バージョン判定部33に対し、メモリ部32に格納した移動機プログラムのバージョンを判定させる。移動機プログラムのバージョンを判定させるタイミングは、上述したように、(1)移動機プログラムのバージョンを変更したとき、(2)移動機プログラムを初めて起動するとき、(3)移動機プログラムを毎回起動するときである。
【0039】
また、制御部40は、比較部35にハッシュ値を比較する処理を指示する。すなわち、バージョン判定部33が判定した移動機プログラムのハッシュ値と復号部34の復号処理により得られた平文認証情報に含まれるハッシュ値を比較させる。そして、ハッシュ値の比較結果から、バージョン判定部33が判定した移動機プログラムのバージョン番号と復号部34の復号処理により得られた平文認証情報に含まれる移動機プログラムのバージョン番号とが一致する場合はバージョン判定部33がバージョン判定した移動機プログラムに機能制限をかけず、一致しない場合は当該移動機プログラムに機能制限をかける。
【0040】
すなわち、移動機環境側のメモリ部32に格納されている移動機プログラムのバージョンが、プログラム管理装置1のプログラム開発環境側で作成した最新の移動機プログラムのバージョンと一致する場合は、移動機環境側のメモリ部32に格納されている移動機プログラムが最新のバージョンのものであるので機能の制限をかける必要は無いが、一致しない場合は移動機環境側のメモリ部32に格納されている移動機プログラムが最新のバージョンのものではないと想定できることから、当該移動機プログラムに対してフラッシュメモリ37に記録された該当バージョンの機能制限情報に基づく機能の制限を行う。例えば、移動機プログラムの最新バージョン番号を“3”(Ver3)とし、移動機環境側のメモリ部32に格納されている移動機プログラムのバージョン番号が“2”(Ver2)であったとすると、フラッシュメモリ37の機能制限情報の履歴からバージョン番号“2”に該当する機能制限情報で指定される機能を制限する。
【0041】
このようにプログラム管理装置1の移動機環境側では、プログラム管理装置1のプログラム開発環境側で作成された移動機プログラムをメモリ部32に格納し、またプログラム管理装置1のプログラム開発環境側で作成された暗号化認証情報を復号して平文認証情報を得る。そして、移動機の起動時等の所定タイミングでメモリ部32に格納した移動機プログラムのバージョンを判定し、更に当該移動機プログラムのハッシュ値を計算し、計算したハッシュ値と復号した平文認証情報に含まれる最新の移動機プログラムのハッシュ値とを比較し、一致する場合はメモリ部32に格納された移動機プログラムに機能制限をかけず、一致しない場合はメモリ部32に格納された移動機プログラムに機能制限をかける。
【0042】
図3にプログラム管理装置1の動作の概要を模式的に示す。この図において、プログラム管理装置1のプログラム開発環境側では、移動機プログラムの作成指示に従って移動機プログラムの作成を行い、また作成した移動機プログラムのハッシュ値を計算する。更に、以前の全てのバージョンの移動機プログラムに対して動作を制限したい機能の情報を作成し、計算して得られたハッシュ値とともに暗号化し、暗号化認証情報を得る。この暗号化認証情報を最新のバージョンの移動機プログラムとともに移動機3側に送る。
【0043】
プログラム管理装置1の移動機環境側では、プログラム開発環境側から送られてきた最新のバージョンの移動機プログラムをメモリ部32に格納する。また、プログラム開発環境側から送られてきた暗号化認証情報を復号し平文暗証情報を得る。そして、得られた平文暗証情報からフラッシュメモリ37に機能制限情報の履歴を記録する。この状態で、移動機が起動される毎にメモリ部32に格納されている移動機プログラムのバージョンを判定するとともにハッシュ値を計算する。そして、計算したハッシュ値と平文暗証情報に含まれる最新の移動機プログラムのハッシュ値とを比較し、一致する場合はメモリ部32に格納されている移動機プログラムが最新のバージョンのものであるとして機能制限せず、一致しない場合はメモリ部32に格納されている移動機プログラムが最新のバージョンのものではないとしてフラッシュメモリ37に記録された該当バージョンの機能制限情報に基づく機能制限を行う。
【0044】
図4は、移動機環境側における移動機プログラムの改ざんを判定する処理を示すフローチャートである。この図において、まずプログラム管理装置1のプログラム開発環境側からプログラム管理装置1の移動機環境側に暗号化認証情報を送信する(ステップST10)。次いで、プログラム管理装置1の移動機環境側において、フラッシュメモリ37にハッシュ値と機能制限情報を保存する(ステップST11)。次いで、メモリ部32に格納されている移動機プログラムのハッシュ値を算出する(ステップST12)。次いで、フラッシュメモリ37内で一致するハッシュ値を検索し(ステップST13)、一致するハッシュ値があれば、それに対応するバージョン番号を搭載プログラムバージョン情報としてメモリ部32内に保存して本処理を終える(ステップST14)。これに対して、一致するハッシュ値が無ければ、改ざんが行われたとして、改ざん検出時の異常時処理を行い(ステップST15)、本処理を終える。
【0045】
図5は、図4に示す処理の移動機環境側の処理を模式的に示した図である。この図において、暗号化認証情報を復号して平文の認証情報を得る(〔1〕)。そして、復号して得られた平文の認証情報をフラッシュメモリ37に蓄積する(〔2〕)。次に、移動機プログラムのバージョンを判定するとともにハッシュ値を計算する(〔3〕)。そして、フラッシュメモリ37内で、前記〔3〕で計算したハッシュ値と一致するハッシュ値を検索する(〔4〕)。一致するハッシュ値があれば、移動機プログラムを搭載プログラムとして、メモリ部32に格納する(〔5〕)。
【0046】
次に、アプリケーションプログラム実行時の制限事項の判定処理について説明する。上記では、移動機が動作するための移動機プログラムをバージョンアップする際の判定処理を説明したが、ここではアプリケーションプログラムを実行させた際の判定処理を説明する。アプリケーションプログラムとして例えば音楽再生用のものを例に挙げる。
【0047】
図6及び図7は、音楽再生用のアプリケーションプログラム5を実行させた際の判定処理を模式的に示した図である。この場合、図6は機能制限されてない場合を示しており、図7は機能制限されている場合を示している。
【0048】
音楽再生用のアプリケーションプログラム5から処理要求すなわち暗号化された音楽データの復号化の要求があると(〔1〕)、制御部40は、搭載プログラム(移動機プログラム)のバージョンを取得する(〔2〕)。そして、暗号化された音楽データの復号に対する機能制限を問い合わせる(〔3〕)。すなわち、取得したバージョンの移動機プログラムに対して暗号化された音楽データの復号に対する機能制限があるかどうか問い合わせる。この問い合わせは、図1のメモリ制御部36に対して行う。暗号化された音楽データの復号に対する機能制限が無ければ、復号部34に対して暗号化された音楽データの復号を要求する(〔4〕)。復号部34は、暗号化された音楽データを復号し、処理結果を制御部38に送る(〔5〕)。制御部40は、復号部34から復号された音楽データを取得すると、それをアプリケーションプログラム5に送る(〔6〕)。
【0049】
一方、取得したバージョンの移動機プログラムに対して暗号化された音楽データの復号に対する機能制限がある場合、すなわち図7に示すように、搭載プログラムのバージョンが“2”(Ver2)で、制限情報=A,Bが設定されている場合、復号部34に対する処理要求を行わず、アプリケーションプログラム5に対して復号不能を通知する。アプリケーションプログラム5は、この復号不能通知に従い表示部39に図8の(a)に示す表示(“この機能は動作が制限されています”)と「OK」ボタンを表示する制御を行う。ユーザがこの「OK」ボタンを押すと、表示部39に図8の(b)に示すように、“バージョンアップを行いますか?”と「YES」、「NO」の各ボタンを表示する制御を行う。なお、アプリケーションプログラム5の実行は、制御部38が行うので、バージョンアップする場合は、制御部40がプログラム管理装置1のプログラム開発環境側の制御部29と連携して行う。
【0050】
図9は、制御部40の図6及び図7における動作を示すフローチャートである。この図において、制御部40は、まずアプリケーションプログラム5の処理要求待ちを行う(ステップST20)。この状態でアプリケーションプログラム5から処理要求があると、現在のプログラムのバージョンを取得する(ステップST21)。すなわち、搭載プログラムバージョン情報を取得する。次いで、フラッシュメモリ37より制限情報の取得を行い(ステップST22)、その後、搭載プログラムのバージョンに対して制御情報の有無を判定し(ステップST23)、制限情報が無ければ暗号化された音楽データの復号を実行する(ステップST24)。すなわち、復号部34に復号化処理を行わせる。暗号化された音楽データの復号が終了すると、その結果をアプリケーションプログラム5に送る(ステップST25)。その後、ステップST20に戻る。一方、ステップST23の判定で制限情報がある場合は、アプリケーションプログラム5に制限情報を送る(ステップST26)。例えば図6又は図7において、バージョン番号“2”(Ver2)の移動機プログラムにはA、Bの制限情報がある。アプリケーションプログラム5に制限情報を送った後、ステップST20に戻る。
【0051】
図10は、アプリケーションプログラム5の図6及び図7における動作を示すフローチャートである。この図において、制御部40に処理要求を行う(ステップST30)。その後、制御部40の処理が完了するまで待機し(ステップST31)、その間、制御部40の処理結果の判定を行う(ステップST32)。制御部40の処理結果が正常終了である場合は、通常の処理すなわち音楽再生を行う(ステップST33)。これに対して、制御部40の処理結果が異状終了である場合は、制限情報の表示(例えば図8の表示)を行う(ステップST34)。
【0052】
このように本実施の形態のプログラム管理装置1によれば、プログラム開発環境側では、最新のバージョンの移動機プログラムを作成するとともに、作成した移動機プログラムからハッシュ値を計算し、計算したハッシュ値と、移動機プログラムのバージョン番号と、各バージョン毎に動作を制限する機能制限情報とを暗号化して暗号化認証情報を作成し、この暗号化認証情報と最新のバージョンの移動機プログラムをプログラム管理装置1の移動機環境側へ送信する。移動機環境側では、プログラム管理装置1のプログラム開発環境側で作成された移動機プログラムをメモリ部32に格納し、またプログラム管理装置1のプログラム開発環境側で作成された暗号化認証情報を復号して平文認証情報を得る。そして、移動機の起動時等の所定タイミングでメモリ部32に格納した移動機プログラムのバージョンを判定し、更に当該移動機プログラムのハッシュ値を計算し、計算したハッシュ値と復号した平文認証情報に含まれる最新の移動機プログラムのハッシュ値とを比較し、一致する場合はメモリ部32に格納された移動機プログラムに機能制限をかけず、一致しない場合はメモリ部32に格納された移動機プログラムに機能制限をかける。
【0053】
各バージョン毎に動作を制限したい機能の情報である機能制限情報を作成することで、例えば最新バージョンの移動機プログラムから以前のバージョンの移動機プログラムにロールバックするような場合に、以前のバージョンの移動機プログラムの所望の機能を制限することができる。すなわち、以前のバージョンの移動機プログラムにバグや不具合があっても、それを実行する機能を制限することができ、また悪意のある第三者が継続して悪用することも防止することができる。
【産業上の利用可能性】
【0054】
本発明は、プログラムをバージョンアップした後、以前のバージョンのプログラムに戻しても以前のバージョンのプログラムが持つバグや不具合が戻ることがなく、また悪意のある第三者が継続して悪用することも防止することができるといった効果を有し、携帯電話、PHS、PDAなどのマイコンを搭載してプログラムに従って動作する電子機器全てに適用が可能である。
【図面の簡単な説明】
【0055】
【図1】本発明の一実施の形態に係るプログラム管理装置の概略構成を示すブロック図
【図2】図1のプログラム管理装置で用いられる機能制限情報を説明するための図
【図3】図1のプログラム管理装置の動作の概要を模式的に示す図
【図4】図1のプログラム管理装置の移動機環境側における移動機プログラムの改ざんを判定する処理を示すフローチャート
【図5】図4に示す処理の移動機環境側の処理を模式的に示した図
【図6】機能制限されてない場合で、音楽再生用のアプリケーションプログラムを実行させた際の判定処理を模式的に示した図
【図7】機能制限されている場合で、音楽再生用のアプリケーションプログラムを実行させた際の判定処理を模式的に示した図
【図8】機能制限されている場合で、音楽再生用のアプリケーションプログラムを実行させた際の判定処理におけるユーザ通知表示例を示す図
【図9】移動機環境側の制御部の図6及び図7における動作を示すフローチャート
【図10】アプリケーションプログラムの図6及び図7における動作を示すフローチャート
【符号の説明】
【0056】
1 プログラム管理装置
2 プログラム作成装置
3 移動機
5 アプリケーションプログラム
21 操作部
22 プログラム作成部
23、32 メモリ部
24、38 表示制御部
25、39 表示部
26 ハッシュ値計算部
27 暗号化処理部
28、31 通信部
29、40 制御部
33 バージョン判定部
34 復号部
35 比較部
36 メモリ制御部
37 フラッシュメモリ

【特許請求の範囲】
【請求項1】
有効化されている現行プログラムと前記現行プログラムの他のバージョンのプログラムを記憶するプログラム記憶手段と、
前記現行プログラムと前記他のバージョンのプログラムに関するバージョン情報を記憶するバージョン情報記憶手段と、
前記現行プログラムについてバージョンを変更させる旨の指示を受けると、前記現行プログラムを無効化し、前記他のバージョンのプログラムを有効化させるバージョン変更手段と、
前記有効化したプログラムに関するバージョン情報に所定機能の制限命令が含まれている場合、前記所定機能を制限する機能制限手段と、
を備えるプログラム管理装置。
【請求項2】
前記バージョン情報を取得する通信手段を有する請求項1に記載のプログラム管理装置。
【請求項3】
前記機能制限手段は、前記所定の機能の制限に関する情報を表示する表示手段を有する請求項1又は請求項2に記載のプログラム管理装置。
【請求項4】
暗号化されている前記バージョン情報を復号する復号手段を有する請求項1乃至請求項3のいずれかに記載のプログラム管理装置。
【請求項5】
前記バージョン情報は、プログラムの全ての機能を制限する前記制限命令を含み、前記機能制限手段は前記プログラムを停止する請求項1乃至請求項4のいずれかに記載のプログラム管理装置。
【請求項6】
前記プログラム管理装置は更に、前記現行のプログラムに対応するバージョン情報を前記通信手段より取得し、前記通信手段より取得した前記バージョン情報に前記所定機能の制限命令が含まれているか否かを判定するバージョン情報判定手段を備え、
前記バージョン情報判定手段が前記制限命令が含まれていると判定した場合、前記機能制限手段は前記現行プログラムの前記所定機能を制限する請求項2乃至請求項5のいずれかに記載のプログラム管理装置。
【請求項7】
前記バージョン情報判定手段は、バージョンを変更したとき、または、プログラムを初めて起動するとき、または、プログラムを毎回起動するときのうち少なくともいずれか一つのときに前記判定を行う請求項6に記載のプログラム管理装置。
【請求項8】
有効化されている現行プログラムと前記現行プログラムの他のバージョンのプログラムを記憶するプログラム記憶ステップと、
前記現行プログラムと前記他のバージョンのプログラムに関するバージョン情報を記憶するバージョン情報記憶ステップと、
前記現行プログラムについてバージョンを変更させる旨の指示を受けると、前記現行プログラムを無効化し、前記他のバージョンのプログラムを有効化させるバージョン変更ステップと、
前記有効化したプログラムに関するバージョン情報に所定機能の制限命令が含まれている場合、前記所定機能を制限する機能制限ステップと、
を備えるプログラム管理方法。
【請求項9】
有効化されている現行プログラムと前記現行プログラムの他のバージョンのプログラムを記憶するプログラム記憶ステップと、
前記現行プログラムと前記他のバージョンのプログラムに関するバージョン情報を記憶するバージョン情報記憶ステップと、
前記現行プログラムについてバージョンを変更させる旨の指示を受けると、前記現行プログラムを無効化し、前記他のバージョンのプログラムを有効化させるバージョン変更ステップと、
前記有効化したプログラムに関するバージョン情報に所定機能の制限命令が含まれている場合、前記所定機能を制限する機能制限ステップと、
を備えるプログラム管理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2009−199497(P2009−199497A)
【公開日】平成21年9月3日(2009.9.3)
【国際特許分類】
【出願番号】特願2008−42542(P2008−42542)
【出願日】平成20年2月25日(2008.2.25)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】