JP2010061182A - ソフトウェア管理方法、ソフトウェア管理装置およびソフトウェア管理プログラム - Google Patents
ソフトウェア管理方法、ソフトウェア管理装置およびソフトウェア管理プログラム Download PDFInfo
- Publication number
- JP2010061182A JP2010061182A JP2008223049A JP2008223049A JP2010061182A JP 2010061182 A JP2010061182 A JP 2010061182A JP 2008223049 A JP2008223049 A JP 2008223049A JP 2008223049 A JP2008223049 A JP 2008223049A JP 2010061182 A JP2010061182 A JP 2010061182A
- Authority
- JP
- Japan
- Prior art keywords
- software
- version number
- identification information
- verification
- receiving
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】実行されるソフトウェアの版数を確実に検証すること。
【解決手段】ソフトウェア管理装置140は、PC130に接続されたセキュアモジュールである。保存部142は、PC130が備えるCPU131によって実行されるソフトウェアをセキュアな状態で保存する。ソフトウェア受信部141は、ソフトウェア提供元110から配信される、ソフトウェアの版数を特定する識別情報を受信する。配置部143は、保存部142によって保存されたソフトウェアを、CPU131によって実行させるためにメモリ132に配置する。検証部145は、配置部143によって配置されたソフトウェアの版数が、ソフトウェア受信部141によって受信された識別情報によって特定される版数に含まれるか否かを検証する。終了部146は、検証部145による検証結果に基づいてCPU131によるソフトウェアの実行を強制的に終了させる。
【選択図】図1
【解決手段】ソフトウェア管理装置140は、PC130に接続されたセキュアモジュールである。保存部142は、PC130が備えるCPU131によって実行されるソフトウェアをセキュアな状態で保存する。ソフトウェア受信部141は、ソフトウェア提供元110から配信される、ソフトウェアの版数を特定する識別情報を受信する。配置部143は、保存部142によって保存されたソフトウェアを、CPU131によって実行させるためにメモリ132に配置する。検証部145は、配置部143によって配置されたソフトウェアの版数が、ソフトウェア受信部141によって受信された識別情報によって特定される版数に含まれるか否かを検証する。終了部146は、検証部145による検証結果に基づいてCPU131によるソフトウェアの実行を強制的に終了させる。
【選択図】図1
Description
この発明は、ソフトウェアを管理するソフトウェア管理方法、ソフトウェア管理装置およびソフトウェア管理プログラムに関する。
テレビ視聴機能を備えるパソコン(以下、「PC」という。)において、テレビを視聴するためのアプリケーションソフトウェアを更新(機能追加や不具合修正)する方式が用いられている。このような方式において、アーキテクチャが既知であるPCでテレビ放送などのディジタルコンテンツを扱う場合には、不正コピーなどによる権利侵害を防ぐため、ソフトウェアが安全に実行されていることを保証するとともに、コンテンツデータの盗聴が行われないようにする対策が必要になる。
一般に、PCのソフトウェアを更新する手段としては、ソフトウェアの開発元が新しいソフトウェアをWebで公開し、個々のユーザがそれをダウンロードして適用する方法がある。また、ユーザの意志に依存させないこととユーザの手間を省くことを目的として、ソフトウェア自身が自動的にWebサイトに更新の有無を問い合わせ、更新版をダウンロードして適用する仕組みも用いられている(たとえば、下記特許文献1参照。)。
また、PCがネットワークに接続されていない場合やネットワーク環境が低速であり更新ソフトウェアのダウンロードに向かない場合にも適用できるように、据え置き型機器(地デジ対応ハードディスクレコーダなど)の一部においては、放送波を媒介として内蔵ソフトウェアの更新を行う技術が用いられている(たとえば、下記特許文献2参照。)。
また、PCで動作するテレビ視聴ソフトウェアを、そのPCに接続された拡張ボード上で動作するLSIから監視する技術が用いられている(たとえば、下記特許文献3参照。)。この技術では、ソフトウェアは全てのLSIで復号可能な形式で暗号化された状態でHDD(ハードディスクドライブ)に保存されており、これを実行した契機でその内容がLSIに送信され、LSIはそれを復号した上でPCのメモリに実行可能なプログラムコードとして展開し、このプログラムコードがアプリケーションとして実行される。
また、PCのメモリにプログラムコードをロードした時点を基準として、ロードしたプログラムコードの内容に改ざんが加えられていないかをLSIから定期的にチェックする。これにより、動作中のソフトウェアが改ざんされたり、動作中のソフトウェアの機能を無効化されたりといった攻撃を回避または検知する。
また、デバイスに保持しているリボケーションリスト(不正コンテンツ排除のためのリスト)のバージョンとコンテンツのヘッダ内にあるバージョンとを比較し、保持しているバーションの方がより古い場合には、コンテンツの読み出しおよび再生処理を中止する技術が開示されている(たとえば、下記特許文献4参照。)。
しかしながら、従来のソフトウェア更新技術では、ソフトウェアがソフトウェア提供元からの正規のものであることは保証できるが、更新されたソフトウェアが最新のものであることは保証できないという問題がある。たとえば、ユーザが意図的にソフトウェア更新動作を阻止したり、ソフトウェア更新後にユーザが意図的に旧版のソフトウェアに切り戻したりすると、ソフトウェア提供元が意図しない旧版のソフトウェアが動作してしまう。
このため、脆弱性が見つかりもはや使用が推奨されなかったり、最新版で追加されたコンテンツ保護のためのプロテクション機能がなかったりする旧版のソフトウェアであってもソフトウェア提供元の意に反して動作してしまう。このため、悪意のあるユーザは意図的に旧版のソフトウェアを動作させ続けてその脆弱性を攻撃することが可能である。
また、上記特許文献2に記載された技術では、コンテンツを再生するソフトウェアが安全であることを前提としてコンテンツのバージョンを検証するため、コンテンツを再生するソフトウェアが旧版のものであったり改ざんされたものであると、コンテンツやソフトウェアの提供元が意図しないコンテンツ再生が可能になるという問題がある。
このソフトウェア管理方法、ソフトウェア管理装置およびソフトウェア管理プログラムは、上述した従来技術による問題点を解消するため、実行されるソフトウェアの版数を確実に検証することを目的とする。
上述した課題を解決し、目的を達成するため、開示技術は、コンピュータに接続されたセキュアモジュールにより、前記コンピュータが備えるプロセッサによって実行されるソフトウェアをセキュアな状態で保存し、前記ソフトウェアの提供元から配信される、前記ソフトウェアの版数を特定する識別情報を受信し、保存されたソフトウェアを、前記プロセッサによって実行させるために前記コンピュータが備える記憶手段に配置し、配置されたソフトウェアの版数が、受信された識別情報によって特定される版数に含まれるか否かを検証し、検証結果に基づいて前記プロセッサによる前記ソフトウェアの実行を強制的に終了させることを要件とする。
この技術によれば、プロセッサによって実際に実行されるプログラムコードに基づいてソフトウェアの版数を検証することができる。また、プロセッサとは別のセキュアモジュールによって検証を行うため、ユーザによる検証機能の改ざんは不可能である。
このソフトウェア管理方法、ソフトウェア管理装置およびソフトウェア管理プログラムによれば、実行されるソフトウェアの版数を確実に検証することができるという効果を奏する。
以下に添付図面を参照して、このソフトウェア管理方法、ソフトウェア管理装置およびソフトウェア管理プログラムの好適な実施の形態を詳細に説明する。このソフトウェア管理方法、ソフトウェア管理装置およびソフトウェア管理プログラムは、セキュアに保存したソフトウェアをコンピュータのメモリに配置してプロセッサに実行させるとともにメモリに配置したソフトウェアを監視することで、実行されるソフトウェアの版数を確実に検証することができるものである。
(ソフトウェア管理装置の概要)
図1は、ソフトウェア管理装置の概要を示すブロック図である。図1に示すように、通信システム100は、ソフトウェア提供元110と、通信路120と、PC130と、ソフトウェア管理装置140と、を含んでいる。ソフトウェア提供元110は、ソフトウェア管理装置140によって管理されるソフトウェアの提供元の通信装置である。ソフトウェア提供元110は、たとえばソフトウェアの開発者の通信装置である。
図1は、ソフトウェア管理装置の概要を示すブロック図である。図1に示すように、通信システム100は、ソフトウェア提供元110と、通信路120と、PC130と、ソフトウェア管理装置140と、を含んでいる。ソフトウェア提供元110は、ソフトウェア管理装置140によって管理されるソフトウェアの提供元の通信装置である。ソフトウェア提供元110は、たとえばソフトウェアの開発者の通信装置である。
ソフトウェア提供元110は、PC130のユーザへ提供するためのソフトウェアを通信路120へ送信する。また、ソフトウェア提供元110は、改良や不具合修正を行った最新のソフトウェアを、定期的または不定期的に通信路120へ送信する。このとき、ソフトウェア提供元110は、最新のソフトウェアの全体を送信してもよいし、最新のソフトウェアと旧版のソフトウェアとの差分のみを送信してもよい。
また、ソフトウェア提供元110は、ソフトウェアの版数を特定する識別情報を配信する。具体的には、ソフトウェア提供元110は、識別情報を通信経路へ送信する。識別情報は、ソフトウェア提供元110が提供するソフトウェアの各版数のうちの、ソフトウェア提供元110が実行を許可する版数または実行を禁止する版数を特定する情報である。
版数を特定する識別情報とは、版数そのものを示す数値や文字列などの版数情報であってもよいし、特定すべき版数のソフトウェアに特有の内容を示す情報であってもよいし、これらの組合せであってもよい。ソフトウェアに特有の内容を示す情報とは、ソフトウェアに特有のデータパターンやダイジェスト値などである。
版数を特定する識別情報は、一つの版数を特定する識別情報であってもよいし、複数の版数を示す範囲を特定する識別情報であってもよい。一つの版数を特定する識別情報は、たとえば、最新の版数(実行を許可する版数)や、重大な不具合を含む版数(実行を禁止する版数)を特定する識別情報である。複数の版数を示す範囲を特定する識別情報は、たとえば、重大な不具合が修正された版数以降の版数(実行を許可する版数)や、重大な不具合が修正される前の版数(実行を禁止する版数)を特定する識別情報である。
以下では、ソフトウェア提供元110は、ソフトウェア提供元110が実行を許可する版数を特定する識別情報を配信するものとして説明する。たとえば、ソフトウェア提供元110が、重大な不具合を修正した最新(版数X)のソフトウェアを提供したとする。この場合は、ソフトウェア提供元110は、ソフトウェア提供元110が実行を許可する版数を特定する識別情報として、版数Xを特定する識別情報を配信する。
通信路120は、光ファイバなどの有線の通信網や、放送波などの無線の放送網である。通信路120は、ソフトウェア提供元110から送信されたソフトウェアをソフトウェア管理装置140へ送信する。また、通信路120は、ソフトウェア提供元110から送信された識別情報をソフトウェア管理装置140へ送信する。
PC130は、ソフトウェア提供元110から通信路120を介して提供されたソフトウェアを実行するコンピュータ(第1コンピュータ)である。PC130は、CPU131と、メモリ132と、を備えている。また、PC130は、ユーザからの指示を受け付ける図示しないユーザインターフェースを備えている。
CPU131は、ソフトウェアを実行するプロセッサである。CPU131は、ソフトウェア提供元110から提供されたソフトウェアを実行するときに、ソフトウェアをメモリ132に展開することを要求するトリガ信号をソフトウェア管理装置140へ出力する。そして、CPU131は、ソフトウェア管理装置140によってソフトウェアがメモリ132に配置されると、メモリ132に配置されたソフトウェアを実行する。
ソフトウェア管理装置140は、PC130に接続されたセキュアモジュール(第2コンピュータ)である。ソフトウェア管理装置140は、ソフトウェア提供元110から提供され、PC130によって実行されるソフトウェアを管理する。セキュアモジュールとは、ユーザによるアクセス(改ざんおよび参照)が不可能なモジュールである。
セキュアモジュールは、たとえば、TCG(Trusted Computing Group)が提唱しているTPM(Trusted Platform Module)LSIと呼ばれるセキュリティチップである。TPM LSIは、最低限、以下の(1)〜(4)の機能を有する。
(1)BIOS(Basic Input/Output System),OS(Operating System),アプリケーションなどのソフトウェアの改ざんを発見するために使用されるソフトウェアのハッシュ値の保存機能。
(2)正当なTPM LSIが使用されていることを保障するために使用されるTPM LSI内に格納する秘密鍵の生成および保持機能。
(3)暗号鍵を安全に保管するための保護された記憶機能。
(4)暗号処理を安全・正確に実行するための公開鍵暗号演算,乱数発生,ハッシュ演算機能。
(2)正当なTPM LSIが使用されていることを保障するために使用されるTPM LSI内に格納する秘密鍵の生成および保持機能。
(3)暗号鍵を安全に保管するための保護された記憶機能。
(4)暗号処理を安全・正確に実行するための公開鍵暗号演算,乱数発生,ハッシュ演算機能。
すなわち、セキュアモジュールは、ソフトウェア管理装置140全体のセキュア度向上やソフトウェア管理装置140の端末番号の設定などに使用することができる。セキュアモジュールには、門外不出のユニークな秘密鍵と関連暗号復号機能(公開鍵、秘密鍵ペアの暗号復号機能など)、ソフトウェア管理装置140のOS機能などのハッシュ値などが搭載されている。このユニークな秘密鍵をベースにソフトウェア管理装置140の端末番号などをセキュアに保障できる。この端末番号と秘密鍵を連動させてセキュアモジュールから番号が発生したことを証明できる。
または、セキュアモジュールは、TRM(Tamper Resistant Module)構造のLSIである。TRM構造は、半導体チップなどの内部解析や改ざんを物理的および論理的に防衛するための構造をいう。具体的には、セキュアモジュールにおいては、内部に強固で粘着力が高いコーティングが施され、その表面が剥がされると内部の回路が完全に破壊されたり、ダミーの配線が配されている。これにより、外部からの覗き見を防止するとともに、内部のデータが改ざんされることを防止することができる。
TCGについてはたとえば“Trusted Computing Group:TPM”、[online]、Trusted Computing Group、[2008年2月22日検索]、インターネット〈URL:https://www.trustedcomputinggroup.org/groups/tpm/〉を参照できる。
ソフトウェア管理装置140は、ソフトウェア受信部141と、保存部142と、配置部143と、識別情報受信部144と、検証部145と、終了部146と、を備えている。ソフトウェア受信部141は、ソフトウェア提供元110から通信路120を介して提供されたソフトウェア(全体または旧版との差分)を受信する。ソフトウェア受信部141は、受信したソフトウェアを保存部142へ出力する。
保存部142は、PC130のCPU131によって実行されるソフトウェアをセキュアな状態で保存する。具体的には、保存部142は、ソフトウェア受信部141から出力されたソフトウェアをセキュアな状態で保存する。保存部142によってセキュアに保存されるのは、ソフトウェアの全体でもよいし、ソフトウェアの一部でもよい。これにより、ユーザは、ソフトウェアを実行可能な状態で不正に取り出すことができなくなる。
配置部143は、PC130から出力されたトリガ信号を取得する。配置部143は、トリガ信号を取得すると、保存部142によって保存されたソフトウェアを読み出す。そして、配置部143は、読み出したソフトウェアを、PC130のCPU131によって実行させるためにPC130のメモリ132に配置する。すなわち、配置部143は、ソフトウェアのプログラムコードを実行可能な状態でメモリ132に展開する。
識別情報受信部144は、ソフトウェア提供元110から通信路120を介して提供された識別情報を受信する。識別情報受信部144は、受信した識別情報を検証部145へ出力する。検証部145は、メモリ132を走査し、メモリ132に配置されたソフトウェアの版数が、識別情報受信部144から出力された識別情報によって特定される版数に含まれるか否かを検証する。検証部145は、検証結果を終了部146へ出力する。
たとえば、識別情報が版数情報である場合は、検証部145は、メモリ132に配置されたソフトウェアのプログラムコードの特定の位置に含まれている版数を取得し、取得した版数が、識別情報が示す版数に含まれるか否かを検証する。また、識別情報がデータパターンである場合は、検証部145は、メモリ132に配置されたソフトウェアに、識別情報が示すデータパターンが含まれているか否かを検証する。
また、識別情報がダイジェスト値である場合は、検証部145は、メモリ132に配置されたソフトウェアのダイジェスト値を算出し、算出したダイジェスト値が、識別情報が示すダイジェスト値と一致するか否かを検証する。検証部145は、ソフトウェアの版数が識別情報によって特定される版数に含まれていない場合、すなわちソフトウェアの版数が許可された版数ではない場合に、検証結果として禁止信号を終了部146へ出力する。
終了部146は、検証部145から出力された検証結果に基づいて、CPU131によるソフトウェアの実行を強制的に終了させる。たとえば、終了部146は、検証部145から禁止信号が出力されると、ソフトウェアの実行を終了すべき旨の終了指示をCPU131へ出力することでCPU131によるソフトウェアの実行を強制的に終了させる。または、終了部146は、メモリ132に配置されたソフトウェアを消去することでCPU131によるソフトウェアの実行を強制的に終了させる。
(実施の形態)
(ソフトウェア管理装置の機能的構成)
図2は、実施の形態にかかるソフトウェア管理装置の機能的構成を示すブロック図である。図2において、図1に示した構成と同様の構成については同一の符号を付して説明を省略する。ここでは、ソフトウェア提供元110が、放送局211を介してソフトウェアおよび識別情報を配信する構成について説明する。ソフトウェア提供元110は、ソフトウェアおよび識別情報を放送局211へ送信する。放送局211は、ソフトウェア提供元110から送信されたソフトウェアおよび識別情報を放送波によって配信する。
(ソフトウェア管理装置の機能的構成)
図2は、実施の形態にかかるソフトウェア管理装置の機能的構成を示すブロック図である。図2において、図1に示した構成と同様の構成については同一の符号を付して説明を省略する。ここでは、ソフトウェア提供元110が、放送局211を介してソフトウェアおよび識別情報を配信する構成について説明する。ソフトウェア提供元110は、ソフトウェアおよび識別情報を放送局211へ送信する。放送局211は、ソフトウェア提供元110から送信されたソフトウェアおよび識別情報を放送波によって配信する。
ソフトウェア管理装置140はアンテナ221を備えている。ソフトウェア受信部141は、放送局211から配信されたソフトウェアをアンテナ221を介して受信する。識別情報受信部144は、放送局211から配信された識別情報をアンテナ221を介して受信する。ソフトウェアや識別情報は公開鍵暗号などを用いて暗号化されて配信され、ソフトウェア管理装置140は、配信されたソフトウェアや識別情報を復号して受信する。
PC130は、HDD133を備えている。保存部142は暗号化機能を備えている。保存部142は、ソフトウェア受信部141から出力されたソフトウェアを、ソフトウェア管理装置140の内部にセキュアな状態で記憶されたキー(以下、「内部キー」という。)を用いて暗号化する。内部キーは、ソフトウェア管理装置140に固有のキーである。保存部142は、暗号化したソフトウェアをPC130のHDD133に保存する。
配置部143は復号機能を備えている。配置部143は、トリガ信号を取得すると、保存部142によってPC130のHDD133に保存されたソフトウェアを読み出し、読み出したソフトウェアを、内部キーを用いて復号する。配置部143は、復号したソフトウェアを、CPU131によって実行させるためにメモリ132に配置する。
このように、保存部142は、内部キーを用いてソフトウェアを暗号化することで、ソフトウェアをPC130のHDD133にセキュアな状態で保存することができる。すなわち、内部キーは、ソフトウェア管理装置140の内部にセキュアな状態で記憶されているため、ユーザは、HDD133に保存されたソフトウェアを復号することができない。
また、上述したように内部キーはソフトウェア管理装置140に固有のキーである。したがって、悪意あるユーザがソフトウェア管理装置140とは別の復号装置を用いてHDD133に保存されたソフトウェアを復号しようとしても、復号のための内部キーを取得できないため復号できない。このため、ソフトウェアが不正に復号され、旧版のソフトウェアがHDD133などに待避して保持されることを回避することができる。
(ソフトウェアの受信動作)
図3は、ソフトウェア管理装置によるソフトウェアの受信動作の一例を示すフローチャートである。ソフトウェア管理装置140は、まず、ソフトウェア提供元110から提供されたソフトウェアをソフトウェア受信部141によって受信したか否かを判断し(ステップS301)、受信するまで待つ(ステップS301:Noのループ)。
図3は、ソフトウェア管理装置によるソフトウェアの受信動作の一例を示すフローチャートである。ソフトウェア管理装置140は、まず、ソフトウェア提供元110から提供されたソフトウェアをソフトウェア受信部141によって受信したか否かを判断し(ステップS301)、受信するまで待つ(ステップS301:Noのループ)。
ステップS301において、ソフトウェアを受信すると(ステップS301:Yes)、受信したソフトウェアの正当性を検証する(ステップS302)。ソフトウェアの正当性の検証とは、受信したソフトウェアの提供元がソフトウェア提供元110であるか否かの検証や、ソフトウェアが不正に改ざんされているか否かの検証などである。ソフトウェアの正当性が確認できない場合は、一連の動作を終了してエラーメッセージを出力する。
ステップS302によってソフトウェアの正当性が確認されると、つぎに、ステップS301によって受信されたソフトウェアを暗号化する(ステップS303)。つぎに、ステップS303によって暗号化されたソフトウェアをPC130のHDD133に保存し(ステップS304)、一連の動作を終了する。
以上の各ステップを繰り返すことによって、ソフトウェア管理装置140は、ソフトウェア提供元110から順次提供されるソフトウェアを受信し、保存部142によって保存されているソフトウェアを最新版に更新する。以上の各ステップは、定期的に行ってもよいし、ユーザの指示により行ってもよい。
(ソフトウェアの配置動作)
図4は、ソフトウェア管理装置によるソフトウェアの配置動作の一例を示すフローチャートである。図3に示した受信動作の後、ソフトウェア管理装置140は、まず、PC130のCPU131からのトリガ信号を取得したか否かを判断し(ステップS401)、トリガ信号を取得するまで待つ(ステップS401:Noのループ)。
図4は、ソフトウェア管理装置によるソフトウェアの配置動作の一例を示すフローチャートである。図3に示した受信動作の後、ソフトウェア管理装置140は、まず、PC130のCPU131からのトリガ信号を取得したか否かを判断し(ステップS401)、トリガ信号を取得するまで待つ(ステップS401:Noのループ)。
ステップS401において、トリガ信号を取得すると(ステップS401:Yes)、図3のステップS304によってPC130のHDD133に保存されたソフトウェアを読み出す(ステップS402)。つぎに、ステップS402によって読み出されたソフトウェアを復号する(ステップS403)。
つぎに、ステップS403によって復号されたソフトウェアをPC130のメモリ132に配置する(ステップS404)。つぎに、ステップS404によってメモリ132に配置されたソフトウェアの検証動作(図5〜図9参照)を開始し(ステップS405)、一連の動作を終了する。
(ソフトウェアの検証動作および終了動作)
図5は、ソフトウェア管理装置によるソフトウェアの検証動作および終了動作の一例を示すフローチャートである。図4に示した配置動作の後、ソフトウェア管理装置140は、まず、識別情報受信部144によってソフトウェア提供元110から最後に受信した識別情報(最新の識別情報)を取得する(ステップS501)。
図5は、ソフトウェア管理装置によるソフトウェアの検証動作および終了動作の一例を示すフローチャートである。図4に示した配置動作の後、ソフトウェア管理装置140は、まず、識別情報受信部144によってソフトウェア提供元110から最後に受信した識別情報(最新の識別情報)を取得する(ステップS501)。
つぎに、図4のステップS404によってメモリ132に配置されたソフトウェアの版数が、識別情報によって特定される版数に含まれるか否かを判断する(ステップS502)。ソフトウェアの版数が識別情報によって特定される版数に含まれる場合(ステップS502:Yes)は、一連の動作を終了する。
ステップS502において、ソフトウェアの版数が識別情報によって特定される版数に含まれない場合(ステップS502:No)は、終了指示をCPU131へ出力する(ステップS503)。これにより、CPU131によるソフトウェアの実行が強制的に終了する。つぎに、最新のソフトウェアに更新すべき旨の更新要求メッセージをユーザへ出力し(ステップS504)、一連の動作を終了する。
以上の各ステップを、ソフトウェア管理装置140は、たとえば、図4に示した配置動作の後に一度行う。これにより、ユーザのソフトウェアの更新忘れや、ユーザによってソフトウェアが不正に改ざんされていた場合に、ソフトウェア提供元110が意図しない旧版のソフトウェアのCPU131による実行を強制的に終了させることができる。
または、以上の各ステップを、図4に示した配置動作の後、CPU131によるソフトウェアの実行中に定期的に行ってもよい。これにより、配置動作の後に悪意のあるユーザによってソフトウェアが改ざんされたり、配置動作の後に実行中のソフトウェアの版数を禁止する旨の識別情報がソフトウェア提供元110から配信されたりした場合にも、CPU131によるソフトウェアの実行を強制的に終了させることができる。
図6は、ソフトウェア管理装置によるソフトウェアの検証動作および終了動作の他の例を示すフローチャートである。図6に示すステップS601〜ステップS603は、図5に示したステップS501〜ステップS503と同様であるため説明を省略する。ステップS603によって終了指示をCPU131へ出力すると、つぎに、CPU131によるソフトウェアの実行が終了したか否かを判断する(ステップS604)。
ステップS604においては、ステップS603によって終了指示を出力してからCPU131がソフトウェアの実行を終了するまでに通常ある程度の時間がかかる。このため、CPU131がソフトウェアの実行を終了するために十分な時間が経過するまで待機してから、CPU131によるソフトウェアの実行が終了したか否かを判断するとよい。
ステップS604において、CPU131によるソフトウェアの実行が終了していない場合(ステップS604:No)は、図4のステップS404によってメモリ132に配置したソフトウェアを削除し(ステップS605)、ステップS606へ進む。CPU131によるソフトウェアの実行が終了した場合(ステップS604:Yes)は、更新要求メッセージをユーザへ出力し(ステップS606)、一連の動作を終了する。
このように、CPU131によるソフトウェアの実行を強制的に終了させるために、まず終了指示をCPU131へ出力し、それで終了しない場合にはメモリ132に配置したソフトウェアを削除する。これにより、悪意のあるユーザによってPC130が不正に改造されてCPU131が終了指示を受け付けない状態となっていても、CPU131によるソフトウェアの実行を強制的に終了させることができる。
また、ユーザによるPC130の不正な改造がなければ、終了指示をCPU131へ出力した段階でCPU131によるソフトウェアの実行を強制的に終了させることができるため、ソフトウェアの実行を安全に終了させることができる。また、CPU131によるソフトウェアの実行を強制的に終了させるために、終了指示の出力を行わずにメモリ132に配置したソフトウェアを削除してもよい。
(ソフトウェアの検証動作の具体例)
図7は、ソフトウェア管理装置によるソフトウェアの検証動作の一例を概念的に示す図である。識別情報受信部144によって受信される識別情報が、ソフトウェアの版数721(XXXX)を示す版数情報である場合は、検証部145は、メモリ132に配置されたソフトウェアのプログラムコード710の特定の位置に含まれる版数711(XXXX)を取得する。そして、検証部145は、取得した版数711(XXXX)が、識別情報が示す版数721(XXXX)に含まれるか否かを検証する。
図7は、ソフトウェア管理装置によるソフトウェアの検証動作の一例を概念的に示す図である。識別情報受信部144によって受信される識別情報が、ソフトウェアの版数721(XXXX)を示す版数情報である場合は、検証部145は、メモリ132に配置されたソフトウェアのプログラムコード710の特定の位置に含まれる版数711(XXXX)を取得する。そして、検証部145は、取得した版数711(XXXX)が、識別情報が示す版数721(XXXX)に含まれるか否かを検証する。
図8は、ソフトウェア管理装置によるソフトウェアの検証動作の他の例を概念的に示す図である。識別情報受信部144によって受信される識別情報がデータパターン821である場合は、検証部145は、メモリ132に配置されたソフトウェアのプログラムコード710の各データパターン811に、識別情報が示すデータパターン821が含まれているか否かを検証する。検証部145は、データパターン811にデータパターン821が含まれていない場合は、禁止信号を終了部146へ出力する。
図9は、ソフトウェア管理装置によるソフトウェアの検証動作のさらに他の例を概念的に示す図である。識別情報受信部144によって受信される識別情報がダイジェスト値921である場合は、検証部145は、メモリ132に配置されたソフトウェアのプログラムコード710のダイジェスト値911を算出する。検証部145は、算出したダイジェスト値911が、識別情報が示すダイジェスト値921と一致するか否かを検証する。
ソフトウェア提供元110は、実行を許可する版数のソフトウェアのダイジェスト値を所定のアルゴリズムによって算出して識別情報として配信する。検証部145には、ソフトウェア提供元110で用いられる所定のアルゴリズムと同じアルゴリズムがあらかじめ設定されている。検証部145は、ソフトウェア提供元110と同じアルゴリズムを用いてダイジェスト値を算出する。検証部145は、ダイジェスト値911がダイジェスト値921と一致しない場合は、禁止信号を終了部146へ出力する。
図8,図9に示したように、特定すべき版数のソフトウェアに特有の内容を示す情報によって検証を行うことで、悪意のあるユーザによって、プログラムコード710に含まれる版数711(図7参照)はそのままにしつつソフトウェアの内容を改ざんされた場合にも、CPU131によるソフトウェアの実行を強制的に終了させることができる。
また、図7〜図9に示した各検証動作を組み合わせて用いてもよい。具体的には、ソフトウェア提供元110は、配信する識別情報に、データパターンやダイジェスト値などのソフトウェアの内容を示す情報と版数情報とを組み合わせて格納する。検証部145は、識別情報に格納された各情報を用いて検証を行う。これにより、CPU131によって実行されるソフトウェアの実質的な版数をより確実に検証することができる。
(検出動作および終了動作)
図10は、ソフトウェア管理装置によるソフトウェアの検出動作および終了動作の一例を示すフローチャートである。図5および図6に示した検証動作および終了動作とともに、以下のような検出動作および終了動作(第2終了工程)を行ってもよい。ソフトウェア管理装置140は、図4に示した配置動作の後、ソフトウェア提供元110から最後に識別情報を受信してから所定期間経過したか否かを判断する(ステップS1001)。
図10は、ソフトウェア管理装置によるソフトウェアの検出動作および終了動作の一例を示すフローチャートである。図5および図6に示した検証動作および終了動作とともに、以下のような検出動作および終了動作(第2終了工程)を行ってもよい。ソフトウェア管理装置140は、図4に示した配置動作の後、ソフトウェア提供元110から最後に識別情報を受信してから所定期間経過したか否かを判断する(ステップS1001)。
ステップS1001において、識別情報を受信してから所定期間経過していない場合(ステップS1001:No)は、一連の動作を終了する。識別情報を受信してから所定期間経過した場合(ステップS1001:Yes)は、終了指示をCPU131へ出力する(ステップS1002)。これにより、CPU131によるソフトウェアの実行が強制的に終了する。つぎに、最新のソフトウェアに更新すべき旨の更新要求メッセージをユーザへ出力し(ステップS1003)、一連の動作を終了する。
以上の各ステップを繰り返し行うことで、ソフトウェア提供元110から所定期間以上識別情報を受信していない場合に、CPU131によるソフトウェアの実行を強制的に終了させることができる。これにより、放送波の電波状態が悪く識別情報を受信できなかったり、悪意のあるユーザによって識別情報の受信が阻止されたりした場合に、CPU131によるソフトウェアの実行を強制的に終了させることができる。
(ソフトウェア管理装置の変形例)
図11は、図2に示したソフトウェア管理装置の変形例を示すブロック図である。図11において、図2に示した構成と同様の構成については同一の符号を付して説明を省略する。ここでは、ソフトウェア管理装置140は、保存部142(図1参照)として内蔵メモリ1111を備えている。ソフトウェア受信部141は、ソフトウェア提供元110から放送局211を介して受信したソフトウェアを内蔵メモリ1111へ出力する。
図11は、図2に示したソフトウェア管理装置の変形例を示すブロック図である。図11において、図2に示した構成と同様の構成については同一の符号を付して説明を省略する。ここでは、ソフトウェア管理装置140は、保存部142(図1参照)として内蔵メモリ1111を備えている。ソフトウェア受信部141は、ソフトウェア提供元110から放送局211を介して受信したソフトウェアを内蔵メモリ1111へ出力する。
内蔵メモリ1111は、ソフトウェア管理装置140の内部に設けられたセキュアな記憶手段である。内蔵メモリ1111は、ソフトウェア受信部141から出力されたソフトウェアを記憶する。配置部143は、トリガ信号を取得すると、内蔵メモリ1111に記憶されたソフトウェアを読み出してメモリ132に配置する。
このように、ソフトウェア管理装置140は、保存部142(図1参照)としてセキュアな内蔵メモリ1111を備え、内蔵メモリ1111にソフトウェアを記憶することで、ソフトウェアをセキュアな状態で保存することができる。この場合は、ソフトウェアはセキュアな内蔵メモリ1111に保存されるため、ソフトウェアを暗号化しなくてもよい。
(ソフトウェア管理装置のハードウェア構成)
図12は、ソフトウェア管理装置のハードウェア構成例を示すブロック図である。図12において、図2に示した構成と同様の構成については同一の符号を付して説明を省略する。図2および図11に示したPC130は、CPU131と、メモリ132と、HDD133と、外部I/F1211と、バス1212と、によって実現することができる。
図12は、ソフトウェア管理装置のハードウェア構成例を示すブロック図である。図12において、図2に示した構成と同様の構成については同一の符号を付して説明を省略する。図2および図11に示したPC130は、CPU131と、メモリ132と、HDD133と、外部I/F1211と、バス1212と、によって実現することができる。
CPU131、メモリ132、HDD133および外部I/F1211は、バス1212を介して互いに接続されている。CPU131は、PC130の全体の制御を司る。メモリ132は、RAM(Random Access Memory)である。メモリ132はCPU131のワークエリアとして使用される。
HDD133には各種プログラムが格納されている。HDD133に格納された各種プログラムはCPU131からの命令に応じてメモリ132にロードされる。ただし、ソフトウェア提供元110から提供されたソフトウェアは、暗号化した状態でHDD133に格納されることによりメモリ132に直接ロードできないようになっている。外部I/F1211は、LSI1220の外部I/F1224と接続するインターフェースである。
図2および図11に示したソフトウェア管理装置140は、LSI1220によって実現することができる。LSI1220は、CPU1221と、通信I/F1222と、メモリ1223と、外部I/F1224と、バス1225と、を備えている。CPU1221、通信I/F1222、メモリ1223および外部I/F1224は、バス1225を介して互いに接続されている。
CPU1221は、LSI1220の全体の制御を司る。通信I/F1222は、無線などによって外部との通信を行うインターフェースである。メモリ1223は、RAMである。メモリ1223はCPU1221のワークエリアとして使用される。また、メモリ1223には各種プログラムが格納されている。メモリ1223に格納された各種プログラムは、CPU1221からの命令に応じてロードされる。
外部I/F1224は、PC130の外部I/F1211と接続するインターフェースである。図2および図11に示した保存部142、配置部143、検証部145および終了部146は、たとえばCPU1221によって実現することができる。図2および図11に示したソフトウェア受信部141および識別情報受信部144は、たとえば通信I/F1222によって実現することができる。
図11に示した内蔵メモリ1111は、たとえばメモリ1223によって実現することができる。外部I/F1211と外部I/F1224は、バス1230によって接続されている。バス1230は、たとえばPCI(Peripheral Component Interconnect) Expressである。
図2において説明したCPU131から配置部143へのトリガ信号の出力、保存部142によるHDD133へのソフトウェアの保存、配置部143によるHDD133からのソフトウェアの読み出し、配置部143によるメモリ132へのソフトウェアの配置、検証部145によるメモリ132の監視、終了部146によるCPU131への終了指示の出力、および終了部146によるメモリ132のソフトウェアの削除は、外部I/F1211と外部I/F1224を介した通信を用いて行われる。
このように、ソフトウェア管理装置140によれば、セキュアに保存したソフトウェアをPC130のメモリ132に配置してCPU131に実行させるとともにメモリ132に配置したソフトウェアを監視することで、CPU131によって実際に実行されるプログラムコードに基づいてソフトウェアの版数を検証することができる。これにより、CPU131によって実行されるソフトウェアの版数を確実に検証することができる。
これにより、CPU131によって実行されるソフトウェアの版数がソフトウェア提供元110の意図しない版数である場合に、CPU131によるソフトウェアの実行を強制的に終了させることができる。このため、たとえば、CPU131によって実行されるソフトウェアが最新のものであることを保証することが可能になる。
したがって、ソフトウェア提供元110が意図しない旧版のソフトウェアが動作することを回避することができる。たとえば、脆弱性が見つかりもはや使用が推奨されなかったり、最新版で追加されたコンテンツ保護のためのプロテクション機能がなかったりする旧版のソフトウェアの動作を回避し、悪意のあるユーザによる攻撃を防ぐことができる。
また、ソフトウェア管理装置140は、ソフトウェアを実行するCPU131とは独立して動作するセキュアモジュールであるため、PC130のユーザによるソフトウェア管理装置140やソフトウェアの改ざんは不可能である。このため、たとえば、コンテンツを再生するソフトウェアにおいて、ユーザの改ざんによる、コンテンツやソフトウェアの提供元が意図しないコンテンツ再生を防ぐことができる。
本実施の形態で説明したソフトウェア管理方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な媒体であってもよい。ただし、このプログラムは、ユーザによる改ざんを回避するためにセキュアな状態で記録されることが望ましい。たとえば、このプログラムは、図12に示したLSI1220のメモリ1223に記録されることで、ユーザによる改ざんを回避することができる。
また、本実施の形態で説明したソフトウェア管理装置140は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、「ASIC」という。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータに接続されたセキュアモジュールが、
前記コンピュータが備えるプロセッサによって実行されるソフトウェアをセキュアな状態で保存する保存工程と、
前記ソフトウェアの提供元から配信される、前記ソフトウェアの版数を特定する識別情報を受信する受信工程と、
前記保存工程によって保存されたソフトウェアを、前記プロセッサによって実行させるために前記コンピュータが備える記憶手段に配置する配置工程と、
前記配置工程によって配置されたソフトウェアの版数が、前記受信工程によって受信された識別情報によって特定される版数に含まれるか否かを検証する検証工程と、
前記検証工程による検証結果に基づいて前記プロセッサによる前記ソフトウェアの実行を強制的に終了させる終了工程と、
を実行することを特徴とするソフトウェア管理方法。
前記コンピュータが備えるプロセッサによって実行されるソフトウェアをセキュアな状態で保存する保存工程と、
前記ソフトウェアの提供元から配信される、前記ソフトウェアの版数を特定する識別情報を受信する受信工程と、
前記保存工程によって保存されたソフトウェアを、前記プロセッサによって実行させるために前記コンピュータが備える記憶手段に配置する配置工程と、
前記配置工程によって配置されたソフトウェアの版数が、前記受信工程によって受信された識別情報によって特定される版数に含まれるか否かを検証する検証工程と、
前記検証工程による検証結果に基づいて前記プロセッサによる前記ソフトウェアの実行を強制的に終了させる終了工程と、
を実行することを特徴とするソフトウェア管理方法。
(付記2)前記ソフトウェアを前記提供元から受信するソフトウェア受信工程を実行し、
前記保存工程では、前記ソフトウェア受信工程によって受信されたソフトウェアを暗号化して前記記憶手段に保存し、
前記配置工程では、前記保存工程によって暗号化して保存されたソフトウェアを取得し、取得したソフトウェアを復号して前記記憶手段に配置することを特徴とする付記1に記載のソフトウェア管理方法。
前記保存工程では、前記ソフトウェア受信工程によって受信されたソフトウェアを暗号化して前記記憶手段に保存し、
前記配置工程では、前記保存工程によって暗号化して保存されたソフトウェアを取得し、取得したソフトウェアを復号して前記記憶手段に配置することを特徴とする付記1に記載のソフトウェア管理方法。
(付記3)前記ソフトウェアを前記提供元から受信するソフトウェア受信工程を実行し、
前記保存工程では、前記ソフトウェア受信工程によって受信されたソフトウェアを前記セキュアモジュールの内蔵メモリに保存し、
前記配置工程では、前記内蔵メモリに保存されたソフトウェアを前記記憶手段に配置することを特徴とする付記1に記載のソフトウェア管理方法。
前記保存工程では、前記ソフトウェア受信工程によって受信されたソフトウェアを前記セキュアモジュールの内蔵メモリに保存し、
前記配置工程では、前記内蔵メモリに保存されたソフトウェアを前記記憶手段に配置することを特徴とする付記1に記載のソフトウェア管理方法。
(付記4)前記検証工程では、前記プロセッサによる前記ソフトウェアの実行中に定期的に検証することを特徴とする付記1〜3のいずれか一つに記載のソフトウェア管理方法。
(付記5)前記終了工程では、前記記憶手段に配置したソフトウェアを消去することを特徴とする付記1〜4のいずれか一つに記載のソフトウェア管理方法。
(付記6)前記終了工程では、前記プロセッサへ前記ソフトウェアの実行を終了すべき旨の終了指示を出力し、前記終了指示の出力によって前記ソフトウェアの実行が終了しなかった場合に、前記記憶手段に配置したソフトウェアを消去することを特徴とする付記1〜4のいずれか一つに記載のソフトウェア管理方法。
(付記7)前記受信工程によって前記識別情報を最後に受信してからの所定期間の経過を検出する検出工程と、
前記検出工程によって所定期間の経過が検出された場合に前記プロセッサによる前記ソフトウェアの実行を強制的に終了させる第2終了工程と、
を実行することを特徴とする付記1〜6のいずれか一つに記載のソフトウェア管理方法。
前記検出工程によって所定期間の経過が検出された場合に前記プロセッサによる前記ソフトウェアの実行を強制的に終了させる第2終了工程と、
を実行することを特徴とする付記1〜6のいずれか一つに記載のソフトウェア管理方法。
(付記8)コンピュータに接続されたセキュアなソフトウェア管理装置において、
前記コンピュータが備えるプロセッサによって実行されるソフトウェアをセキュアな状態で保存する保存手段と、
前記ソフトウェアの提供元から配信される、前記ソフトウェアの版数を特定する識別情報を受信する受信手段と、
前記保存手段によって保存されたソフトウェアを、前記プロセッサによって実行させるために前記コンピュータが備える記憶手段に配置する配置手段と、
前記配置手段によって配置されたソフトウェアの版数が、前記受信手段によって受信された識別情報によって特定される版数に含まれるか否かを検証する検証手段と、
前記検証手段による検証結果に基づいて前記プロセッサによる前記ソフトウェアの実行を強制的に終了させる終了手段と、
を備えることを特徴とするソフトウェア管理装置。
前記コンピュータが備えるプロセッサによって実行されるソフトウェアをセキュアな状態で保存する保存手段と、
前記ソフトウェアの提供元から配信される、前記ソフトウェアの版数を特定する識別情報を受信する受信手段と、
前記保存手段によって保存されたソフトウェアを、前記プロセッサによって実行させるために前記コンピュータが備える記憶手段に配置する配置手段と、
前記配置手段によって配置されたソフトウェアの版数が、前記受信手段によって受信された識別情報によって特定される版数に含まれるか否かを検証する検証手段と、
前記検証手段による検証結果に基づいて前記プロセッサによる前記ソフトウェアの実行を強制的に終了させる終了手段と、
を備えることを特徴とするソフトウェア管理装置。
(付記9)第1コンピュータに接続されたセキュアな第2コンピュータを、
前記第1コンピュータが備えるプロセッサによって実行されるソフトウェアをセキュアな状態で保存する保存手段、
前記ソフトウェアの提供元から配信される、前記ソフトウェアの版数を特定する識別情報を受信する受信手段、
前記保存手段によって保存されたソフトウェアを、前記プロセッサによって実行させるために前記第1コンピュータが備える記憶手段に配置する配置手段、
前記配置手段によって配置されたソフトウェアの版数が、前記受信手段によって受信された識別情報によって特定される版数に含まれるか否かを検証する検証手段、
前記検証手段による検証結果に基づいて前記プロセッサによる前記ソフトウェアの実行を強制的に終了させる終了手段、
として機能させることを特徴とするソフトウェア管理プログラム。
前記第1コンピュータが備えるプロセッサによって実行されるソフトウェアをセキュアな状態で保存する保存手段、
前記ソフトウェアの提供元から配信される、前記ソフトウェアの版数を特定する識別情報を受信する受信手段、
前記保存手段によって保存されたソフトウェアを、前記プロセッサによって実行させるために前記第1コンピュータが備える記憶手段に配置する配置手段、
前記配置手段によって配置されたソフトウェアの版数が、前記受信手段によって受信された識別情報によって特定される版数に含まれるか否かを検証する検証手段、
前記検証手段による検証結果に基づいて前記プロセッサによる前記ソフトウェアの実行を強制的に終了させる終了手段、
として機能させることを特徴とするソフトウェア管理プログラム。
100 通信システム
110 ソフトウェア提供元
120 通信路
130 PC
131,1221 CPU
132,1223 メモリ
133 HDD
140 ソフトウェア管理装置
141 ソフトウェア受信部
142 保存部
143 配置部
144 識別情報受信部
145 検証部
146 終了部
211 放送局
221 アンテナ
710 プログラムコード
711,721 版数
811,821 データパターン
911,921 ダイジェスト値
1111 内蔵メモリ
1211,1224 外部I/F
1212,1225 バス
1220 LSI
1222 通信I/F
110 ソフトウェア提供元
120 通信路
130 PC
131,1221 CPU
132,1223 メモリ
133 HDD
140 ソフトウェア管理装置
141 ソフトウェア受信部
142 保存部
143 配置部
144 識別情報受信部
145 検証部
146 終了部
211 放送局
221 アンテナ
710 プログラムコード
711,721 版数
811,821 データパターン
911,921 ダイジェスト値
1111 内蔵メモリ
1211,1224 外部I/F
1212,1225 バス
1220 LSI
1222 通信I/F
Claims (7)
- コンピュータに接続されたセキュアモジュールが、
前記コンピュータが備えるプロセッサによって実行されるソフトウェアをセキュアな状態で保存する保存工程と、
前記ソフトウェアの提供元から配信される、前記ソフトウェアの版数を特定する識別情報を受信する受信工程と、
前記保存工程によって保存されたソフトウェアを、前記プロセッサによって実行させるために前記コンピュータが備える記憶手段に配置する配置工程と、
前記配置工程によって配置されたソフトウェアの版数が、前記受信工程によって受信された識別情報によって特定される版数に含まれるか否かを検証する検証工程と、
前記検証工程による検証結果に基づいて前記プロセッサによる前記ソフトウェアの実行を強制的に終了させる終了工程と、
を実行することを特徴とするソフトウェア管理方法。 - 前記ソフトウェアを前記提供元から受信するソフトウェア受信工程を実行し、
前記保存工程では、前記ソフトウェア受信工程によって受信されたソフトウェアを暗号化して前記記憶手段に保存し、
前記配置工程では、前記保存工程によって暗号化して保存されたソフトウェアを取得し、取得したソフトウェアを復号して前記記憶手段に配置することを特徴とする請求項1に記載のソフトウェア管理方法。 - 前記ソフトウェアを前記提供元から受信するソフトウェア受信工程を実行し、
前記保存工程では、前記ソフトウェア受信工程によって受信されたソフトウェアを前記セキュアモジュールの内蔵メモリに保存し、
前記配置工程では、前記内蔵メモリに保存されたソフトウェアを前記記憶手段に配置することを特徴とする請求項1に記載のソフトウェア管理方法。 - 前記終了工程では、前記記憶手段に配置したソフトウェアを消去することを特徴とする請求項1〜3のいずれか一つに記載のソフトウェア管理方法。
- 前記受信工程によって前記識別情報を最後に受信してからの所定期間の経過を検出する検出工程と、
前記検出工程によって所定期間の経過が検出された場合に前記プロセッサによる前記ソフトウェアの実行を強制的に終了させる第2終了工程と、
を実行することを特徴とする請求項1〜4のいずれか一つに記載のソフトウェア管理方法。 - コンピュータに接続されたセキュアなソフトウェア管理装置において、
前記コンピュータが備えるプロセッサによって実行されるソフトウェアをセキュアな状態で保存する保存手段と、
前記ソフトウェアの提供元から配信される、前記ソフトウェアの版数を特定する識別情報を受信する受信手段と、
前記保存手段によって保存されたソフトウェアを、前記プロセッサによって実行させるために前記コンピュータが備える記憶手段に配置する配置手段と、
前記配置手段によって配置されたソフトウェアの版数が、前記受信手段によって受信された識別情報によって特定される版数に含まれるか否かを検証する検証手段と、
前記検証手段による検証結果に基づいて前記プロセッサによる前記ソフトウェアの実行を強制的に終了させる終了手段と、
を備えることを特徴とするソフトウェア管理装置。 - 第1コンピュータに接続されたセキュアな第2コンピュータを、
前記第1コンピュータが備えるプロセッサによって実行されるソフトウェアをセキュアな状態で保存する保存手段、
前記ソフトウェアの提供元から配信される、前記ソフトウェアの版数を特定する識別情報を受信する受信手段、
前記保存手段によって保存されたソフトウェアを、前記プロセッサによって実行させるために前記第1コンピュータが備える記憶手段に配置する配置手段、
前記配置手段によって配置されたソフトウェアの版数が、前記受信手段によって受信された識別情報によって特定される版数に含まれるか否かを検証する検証手段、
前記検証手段による検証結果に基づいて前記プロセッサによる前記ソフトウェアの実行を強制的に終了させる終了手段、
として機能させることを特徴とするソフトウェア管理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008223049A JP2010061182A (ja) | 2008-09-01 | 2008-09-01 | ソフトウェア管理方法、ソフトウェア管理装置およびソフトウェア管理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008223049A JP2010061182A (ja) | 2008-09-01 | 2008-09-01 | ソフトウェア管理方法、ソフトウェア管理装置およびソフトウェア管理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010061182A true JP2010061182A (ja) | 2010-03-18 |
Family
ID=42187943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008223049A Pending JP2010061182A (ja) | 2008-09-01 | 2008-09-01 | ソフトウェア管理方法、ソフトウェア管理装置およびソフトウェア管理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010061182A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012153787A1 (ja) * | 2011-05-12 | 2012-11-15 | シャープ株式会社 | 情報端末、情報端末の制御方法、制御プログラムおよび記録媒体 |
-
2008
- 2008-09-01 JP JP2008223049A patent/JP2010061182A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012153787A1 (ja) * | 2011-05-12 | 2012-11-15 | シャープ株式会社 | 情報端末、情報端末の制御方法、制御プログラムおよび記録媒体 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9594909B2 (en) | Software updating apparatus, software updating system, invalidation method, and invalidation program | |
US8464347B2 (en) | Software updating apparatus, software updating system, alteration verification method and alteration verification program | |
US8555089B2 (en) | Program execution apparatus, control method, control program, and integrated circuit | |
JP4906854B2 (ja) | 情報処理装置、情報記録装置、情報処理システム、プログラムアップデート方法、プログラムおよび集積回路 | |
JP5116325B2 (ja) | 情報処理装置、ソフトウェア更新方法及び画像処理装置 | |
JP4891902B2 (ja) | 電子機器、更新サーバ装置、鍵更新装置 | |
US8364965B2 (en) | Optimized integrity verification procedures | |
US8479000B2 (en) | Information processing device, authentication system, authentication device, information processing method, information processing program, recording medium, and integrated circuit | |
TWI567579B (zh) | 用於對硬體裝置提供金鑰的方法和設備 | |
US20090259855A1 (en) | Code Image Personalization For A Computing Device | |
US8745735B2 (en) | Monitoring system, program-executing device, monitoring program, recording medium and integrated circuit | |
US8516574B2 (en) | Software update system, management apparatus, recording medium, and integrated circuit | |
JP5097130B2 (ja) | 情報端末、セキュリティデバイス、データ保護方法及びデータ保護プログラム | |
US20110246783A1 (en) | Information processing device, management device, illegal module detection system, illegal module detection method, recording medium on which illegal module detection program is recorded, management method, recording medium and integrated circuit on which management method is recorded | |
US20080178257A1 (en) | Method for integrity metrics management | |
JP6146476B2 (ja) | 情報処理装置及び情報処理方法 | |
KR20090064698A (ko) | 신뢰 플랫폼 모듈을 이용한 drm 방법 및 시스템 | |
JPH1131105A (ja) | データカプセル生成装置および方法 | |
JP2008033512A (ja) | セキュリティチップ及びプラットフォーム | |
US8667278B2 (en) | Information processing apparatus and data transmission method of information processing apparatus | |
US8479014B1 (en) | Symmetric key based secure microprocessor and its applications | |
JP2009080772A (ja) | ソフトウェア起動システム、ソフトウェア起動方法、及びソフトウェア起動プログラム | |
JP2009284231A (ja) | 鍵生成装置、鍵生成方法及び鍵生成プログラム、並びに、電子機器 | |
JP2013254506A (ja) | 情報処理装置、真正性確認方法、及び記録媒体 | |
JP2010061182A (ja) | ソフトウェア管理方法、ソフトウェア管理装置およびソフトウェア管理プログラム |