(57)【要約】【課題】実行されるソフトウェアの版数を確実に検証すること。【解決手段】ソフトウェア管理装置１４０は、ＰＣ１３０に接続されたセキュアモジュールである。保存部１４２は、ＰＣ１３０が備えるＣＰＵ１３１によって実行されるソフトウェアをセキュアな状態で保存する。ソフトウェア受信部１４１は、ソフトウェア提供元１１０から配信される、ソフトウェアの版数を特定する識別情報を受信する。配置部１４３は、保存部１４２によって保存されたソフトウェアを、ＣＰＵ１３１によって実行させるためにメモリ１３２に配置する。検証部１４５は、配置部１４３によって配置されたソフトウェアの版数が、ソフトウェア受信部１４１によって受信された識別情報によって特定される版数に含まれるか否かを検証する。終了部１４６は、検証部１４５による検証結果に基づいてＣＰＵ１３１によるソフトウェアの実行を強制的に終了させる。【選択図】図１
2010061182.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに接続されたセキュアモジュールが、
前記コンピュータが備えるプロセッサによって実行されるソフトウェアをセキュアな状態で保存する保存工程と、
前記ソフトウェアの提供元から配信される、前記ソフトウェアの版数を特定する識別情報を受信する受信工程と、
前記保存工程によって保存されたソフトウェアを、前記プロセッサによって実行させるために前記コンピュータが備える記憶手段に配置する配置工程と、
前記配置工程によって配置されたソフトウェアの版数が、前記受信工程によって受信された識別情報によって特定される版数に含まれるか否かを検証する検証工程と、
前記検証工程による検証結果に基づいて前記プロセッサによる前記ソフトウェアの実行を強制的に終了させる終了工程と、
を実行することを特徴とするソフトウェア管理方法。
【請求項２】
前記ソフトウェアを前記提供元から受信するソフトウェア受信工程を実行し、
前記保存工程では、前記ソフトウェア受信工程によって受信されたソフトウェアを暗号化して前記記憶手段に保存し、
前記配置工程では、前記保存工程によって暗号化して保存されたソフトウェアを取得し、取得したソフトウェアを復号して前記記憶手段に配置することを特徴とする請求項１に記載のソフトウェア管理方法。
【請求項３】
前記ソフトウェアを前記提供元から受信するソフトウェア受信工程を実行し、
前記保存工程では、前記ソフトウェア受信工程によって受信されたソフトウェアを前記セキュアモジュールの内蔵メモリに保存し、
前記配置工程では、前記内蔵メモリに保存されたソフトウェアを前記記憶手段に配置することを特徴とする請求項１に記載のソフトウェア管理方法。
【請求項４】
前記終了工程では、前記記憶手段に配置したソフトウェアを消去することを特徴とする請求項１〜３のいずれか一つに記載のソフトウェア管理方法。
【請求項５】
前記受信工程によって前記識別情報を最後に受信してからの所定期間の経過を検出する検出工程と、
前記検出工程によって所定期間の経過が検出された場合に前記プロセッサによる前記ソフトウェアの実行を強制的に終了させる第２終了工程と、
を実行することを特徴とする請求項１〜４のいずれか一つに記載のソフトウェア管理方法。
【請求項６】
コンピュータに接続されたセキュアなソフトウェア管理装置において、
前記コンピュータが備えるプロセッサによって実行されるソフトウェアをセキュアな状態で保存する保存手段と、
前記ソフトウェアの提供元から配信される、前記ソフトウェアの版数を特定する識別情報を受信する受信手段と、
前記保存手段によって保存されたソフトウェアを、前記プロセッサによって実行させるために前記コンピュータが備える記憶手段に配置する配置手段と、
前記配置手段によって配置されたソフトウェアの版数が、前記受信手段によって受信された識別情報によって特定される版数に含まれるか否かを検証する検証手段と、
前記検証手段による検証結果に基づいて前記プロセッサによる前記ソフトウェアの実行を強制的に終了させる終了手段と、
を備えることを特徴とするソフトウェア管理装置。
【請求項７】
第１コンピュータに接続されたセキュアな第２コンピュータを、
前記第１コンピュータが備えるプロセッサによって実行されるソフトウェアをセキュアな状態で保存する保存手段、
前記ソフトウェアの提供元から配信される、前記ソフトウェアの版数を特定する識別情報を受信する受信手段、
前記保存手段によって保存されたソフトウェアを、前記プロセッサによって実行させるために前記第１コンピュータが備える記憶手段に配置する配置手段、
前記配置手段によって配置されたソフトウェアの版数が、前記受信手段によって受信された識別情報によって特定される版数に含まれるか否かを検証する検証手段、
前記検証手段による検証結果に基づいて前記プロセッサによる前記ソフトウェアの実行を強制的に終了させる終了手段、
として機能させることを特徴とするソフトウェア管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ソフトウェアを管理するソフトウェア管理方法、ソフトウェア管理装置およびソフトウェア管理プログラムに関する。
【背景技術】
【０００２】
テレビ視聴機能を備えるパソコン（以下、「ＰＣ」という。）において、テレビを視聴するためのアプリケーションソフトウェアを更新（機能追加や不具合修正）する方式が用いられている。このような方式において、アーキテクチャが既知であるＰＣでテレビ放送などのディジタルコンテンツを扱う場合には、不正コピーなどによる権利侵害を防ぐため、ソフトウェアが安全に実行されていることを保証するとともに、コンテンツデータの盗聴が行われないようにする対策が必要になる。
【０００３】
一般に、ＰＣのソフトウェアを更新する手段としては、ソフトウェアの開発元が新しいソフトウェアをＷｅｂで公開し、個々のユーザがそれをダウンロードして適用する方法がある。また、ユーザの意志に依存させないこととユーザの手間を省くことを目的として、ソフトウェア自身が自動的にＷｅｂサイトに更新の有無を問い合わせ、更新版をダウンロードして適用する仕組みも用いられている（たとえば、下記特許文献１参照。）。
【０００４】
また、ＰＣがネットワークに接続されていない場合やネットワーク環境が低速であり更新ソフトウェアのダウンロードに向かない場合にも適用できるように、据え置き型機器（地デジ対応ハードディスクレコーダなど）の一部においては、放送波を媒介として内蔵ソフトウェアの更新を行う技術が用いられている（たとえば、下記特許文献２参照。）。
【０００５】
また、ＰＣで動作するテレビ視聴ソフトウェアを、そのＰＣに接続された拡張ボード上で動作するＬＳＩから監視する技術が用いられている（たとえば、下記特許文献３参照。）。この技術では、ソフトウェアは全てのＬＳＩで復号可能な形式で暗号化された状態でＨＤＤ（ハードディスクドライブ）に保存されており、これを実行した契機でその内容がＬＳＩに送信され、ＬＳＩはそれを復号した上でＰＣのメモリに実行可能なプログラムコードとして展開し、このプログラムコードがアプリケーションとして実行される。
【０００６】
また、ＰＣのメモリにプログラムコードをロードした時点を基準として、ロードしたプログラムコードの内容に改ざんが加えられていないかをＬＳＩから定期的にチェックする。これにより、動作中のソフトウェアが改ざんされたり、動作中のソフトウェアの機能を無効化されたりといった攻撃を回避または検知する。
【０００７】
また、デバイスに保持しているリボケーションリスト（不正コンテンツ排除のためのリスト）のバージョンとコンテンツのヘッダ内にあるバージョンとを比較し、保持しているバーションの方がより古い場合には、コンテンツの読み出しおよび再生処理を中止する技術が開示されている（たとえば、下記特許文献４参照。）。
【０００８】
【特許文献１】特開平７−２２５７２４号公報
【特許文献２】特開２００４−２３５８３号公報
【特許文献３】特開２００３−１９８５２７号公報
【特許文献４】特開２００２−１３５２４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来のソフトウェア更新技術では、ソフトウェアがソフトウェア提供元からの正規のものであることは保証できるが、更新されたソフトウェアが最新のものであることは保証できないという問題がある。たとえば、ユーザが意図的にソフトウェア更新動作を阻止したり、ソフトウェア更新後にユーザが意図的に旧版のソフトウェアに切り戻したりすると、ソフトウェア提供元が意図しない旧版のソフトウェアが動作してしまう。
【００１０】
このため、脆弱性が見つかりもはや使用が推奨されなかったり、最新版で追加されたコンテンツ保護のためのプロテクション機能がなかったりする旧版のソフトウェアであってもソフトウェア提供元の意に反して動作してしまう。このため、悪意のあるユーザは意図的に旧版のソフトウェアを動作させ続けてその脆弱性を攻撃することが可能である。
【００１１】
また、上記特許文献２に記載された技術では、コンテンツを再生するソフトウェアが安全であることを前提としてコンテンツのバージョンを検証するため、コンテンツを再生するソフトウェアが旧版のものであったり改ざんされたものであると、コンテンツやソフトウェアの提供元が意図しないコンテンツ再生が可能になるという問題がある。
【００１２】
このソフトウェア管理方法、ソフトウェア管理装置およびソフトウェア管理プログラムは、上述した従来技術による問題点を解消するため、実行されるソフトウェアの版数を確実に検証することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するため、開示技術は、コンピュータに接続されたセキュアモジュールにより、前記コンピュータが備えるプロセッサによって実行されるソフトウェアをセキュアな状態で保存し、前記ソフトウェアの提供元から配信される、前記ソフトウェアの版数を特定する識別情報を受信し、保存されたソフトウェアを、前記プロセッサによって実行させるために前記コンピュータが備える記憶手段に配置し、配置されたソフトウェアの版数が、受信された識別情報によって特定される版数に含まれるか否かを検証し、検証結果に基づいて前記プロセッサによる前記ソフトウェアの実行を強制的に終了させることを要件とする。
【００１４】
この技術によれば、プロセッサによって実際に実行されるプログラムコードに基づいてソフトウェアの版数を検証することができる。また、プロセッサとは別のセキュアモジュールによって検証を行うため、ユーザによる検証機能の改ざんは不可能である。
【発明の効果】
【００１５】
このソフトウェア管理方法、ソフトウェア管理装置およびソフトウェア管理プログラムによれば、実行されるソフトウェアの版数を確実に検証することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１６】
以下に添付図面を参照して、このソフトウェア管理方法、ソフトウェア管理装置およびソフトウェア管理プログラムの好適な実施の形態を詳細に説明する。このソフトウェア管理方法、ソフトウェア管理装置およびソフトウェア管理プログラムは、セキュアに保存したソフトウェアをコンピュータのメモリに配置してプロセッサに実行させるとともにメモリに配置したソフトウェアを監視することで、実行されるソフトウェアの版数を確実に検証することができるものである。
【００１７】
（ソフトウェア管理装置の概要）
図１は、ソフトウェア管理装置の概要を示すブロック図である。図１に示すように、通信システム１００は、ソフトウェア提供元１１０と、通信路１２０と、ＰＣ１３０と、ソフトウェア管理装置１４０と、を含んでいる。ソフトウェア提供元１１０は、ソフトウェア管理装置１４０によって管理されるソフトウェアの提供元の通信装置である。ソフトウェア提供元１１０は、たとえばソフトウェアの開発者の通信装置である。
【００１８】
ソフトウェア提供元１１０は、ＰＣ１３０のユーザへ提供するためのソフトウェアを通信路１２０へ送信する。また、ソフトウェア提供元１１０は、改良や不具合修正を行った最新のソフトウェアを、定期的または不定期的に通信路１２０へ送信する。このとき、ソフトウェア提供元１１０は、最新のソフトウェアの全体を送信してもよいし、最新のソフトウェアと旧版のソフトウェアとの差分のみを送信してもよい。
【００１９】
また、ソフトウェア提供元１１０は、ソフトウェアの版数を特定する識別情報を配信する。具体的には、ソフトウェア提供元１１０は、識別情報を通信経路へ送信する。識別情報は、ソフトウェア提供元１１０が提供するソフトウェアの各版数のうちの、ソフトウェア提供元１１０が実行を許可する版数または実行を禁止する版数を特定する情報である。
【００２０】
版数を特定する識別情報とは、版数そのものを示す数値や文字列などの版数情報であってもよいし、特定すべき版数のソフトウェアに特有の内容を示す情報であってもよいし、これらの組合せであってもよい。ソフトウェアに特有の内容を示す情報とは、ソフトウェアに特有のデータパターンやダイジェスト値などである。
【００２１】
版数を特定する識別情報は、一つの版数を特定する識別情報であってもよいし、複数の版数を示す範囲を特定する識別情報であってもよい。一つの版数を特定する識別情報は、たとえば、最新の版数（実行を許可する版数）や、重大な不具合を含む版数（実行を禁止する版数）を特定する識別情報である。複数の版数を示す範囲を特定する識別情報は、たとえば、重大な不具合が修正された版数以降の版数（実行を許可する版数）や、重大な不具合が修正される前の版数（実行を禁止する版数）を特定する識別情報である。
【００２２】
以下では、ソフトウェア提供元１１０は、ソフトウェア提供元１１０が実行を許可する版数を特定する識別情報を配信するものとして説明する。たとえば、ソフトウェア提供元１１０が、重大な不具合を修正した最新（版数Ｘ）のソフトウェアを提供したとする。この場合は、ソフトウェア提供元１１０は、ソフトウェア提供元１１０が実行を許可する版数を特定する識別情報として、版数Ｘを特定する識別情報を配信する。
【００２３】
通信路１２０は、光ファイバなどの有線の通信網や、放送波などの無線の放送網である。通信路１２０は、ソフトウェア提供元１１０から送信されたソフトウェアをソフトウェア管理装置１４０へ送信する。また、通信路１２０は、ソフトウェア提供元１１０から送信された識別情報をソフトウェア管理装置１４０へ送信する。
【００２４】
ＰＣ１３０は、ソフトウェア提供元１１０から通信路１２０を介して提供されたソフトウェアを実行するコンピュータ（第１コンピュータ）である。ＰＣ１３０は、ＣＰＵ１３１と、メモリ１３２と、を備えている。また、ＰＣ１３０は、ユーザからの指示を受け付ける図示しないユーザインターフェースを備えている。
【００２５】
ＣＰＵ１３１は、ソフトウェアを実行するプロセッサである。ＣＰＵ１３１は、ソフトウェア提供元１１０から提供されたソフトウェアを実行するときに、ソフトウェアをメモリ１３２に展開することを要求するトリガ信号をソフトウェア管理装置１４０へ出力する。そして、ＣＰＵ１３１は、ソフトウェア管理装置１４０によってソフトウェアがメモリ１３２に配置されると、メモリ１３２に配置されたソフトウェアを実行する。
【００２６】
ソフトウェア管理装置１４０は、ＰＣ１３０に接続されたセキュアモジュール（第２コンピュータ）である。ソフトウェア管理装置１４０は、ソフトウェア提供元１１０から提供され、ＰＣ１３０によって実行されるソフトウェアを管理する。セキュアモジュールとは、ユーザによるアクセス（改ざんおよび参照）が不可能なモジュールである。
【００２７】
セキュアモジュールは、たとえば、ＴＣＧ（Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐ）が提唱しているＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）ＬＳＩと呼ばれるセキュリティチップである。ＴＰＭ  ＬＳＩは、最低限、以下の（１）〜（４）の機能を有する。
【００２８】
（１）ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ），ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ），アプリケーションなどのソフトウェアの改ざんを発見するために使用されるソフトウェアのハッシュ値の保存機能。
（２）正当なＴＰＭ  ＬＳＩが使用されていることを保障するために使用されるＴＰＭ  ＬＳＩ内に格納する秘密鍵の生成および保持機能。
（３）暗号鍵を安全に保管するための保護された記憶機能。
（４）暗号処理を安全・正確に実行するための公開鍵暗号演算，乱数発生，ハッシュ演算機能。
【００２９】
すなわち、セキュアモジュールは、ソフトウェア管理装置１４０全体のセキュア度向上やソフトウェア管理装置１４０の端末番号の設定などに使用することができる。セキュアモジュールには、門外不出のユニークな秘密鍵と関連暗号復号機能（公開鍵、秘密鍵ペアの暗号復号機能など）、ソフトウェア管理装置１４０のＯＳ機能などのハッシュ値などが搭載されている。このユニークな秘密鍵をベースにソフトウェア管理装置１４０の端末番号などをセキュアに保障できる。この端末番号と秘密鍵を連動させてセキュアモジュールから番号が発生したことを証明できる。
【００３０】
または、セキュアモジュールは、ＴＲＭ（Ｔａｍｐｅｒ  Ｒｅｓｉｓｔａｎｔ  Ｍｏｄｕｌｅ）構造のＬＳＩである。ＴＲＭ構造は、半導体チップなどの内部解析や改ざんを物理的および論理的に防衛するための構造をいう。具体的には、セキュアモジュールにおいては、内部に強固で粘着力が高いコーティングが施され、その表面が剥がされると内部の回路が完全に破壊されたり、ダミーの配線が配されている。これにより、外部からの覗き見を防止するとともに、内部のデータが改ざんされることを防止することができる。
【００３１】
ＴＣＧについてはたとえば“Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐ：ＴＰＭ”、［ｏｎｌｉｎｅ］、Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐ、［２００８年２月２２日検索］、インターネット〈ＵＲＬ：ｈｔｔｐｓ：／／ｗｗｗ．ｔｒｕｓｔｅｄｃｏｍｐｕｔｉｎｇｇｒｏｕｐ．ｏｒｇ／ｇｒｏｕｐｓ／ｔｐｍ／〉を参照できる。
【００３２】
ソフトウェア管理装置１４０は、ソフトウェア受信部１４１と、保存部１４２と、配置部１４３と、識別情報受信部１４４と、検証部１４５と、終了部１４６と、を備えている。ソフトウェア受信部１４１は、ソフトウェア提供元１１０から通信路１２０を介して提供されたソフトウェア（全体または旧版との差分）を受信する。ソフトウェア受信部１４１は、受信したソフトウェアを保存部１４２へ出力する。
【００３３】
保存部１４２は、ＰＣ１３０のＣＰＵ１３１によって実行されるソフトウェアをセキュアな状態で保存する。具体的には、保存部１４２は、ソフトウェア受信部１４１から出力されたソフトウェアをセキュアな状態で保存する。保存部１４２によってセキュアに保存されるのは、ソフトウェアの全体でもよいし、ソフトウェアの一部でもよい。これにより、ユーザは、ソフトウェアを実行可能な状態で不正に取り出すことができなくなる。
【００３４】
配置部１４３は、ＰＣ１３０から出力されたトリガ信号を取得する。配置部１４３は、トリガ信号を取得すると、保存部１４２によって保存されたソフトウェアを読み出す。そして、配置部１４３は、読み出したソフトウェアを、ＰＣ１３０のＣＰＵ１３１によって実行させるためにＰＣ１３０のメモリ１３２に配置する。すなわち、配置部１４３は、ソフトウェアのプログラムコードを実行可能な状態でメモリ１３２に展開する。
【００３５】
識別情報受信部１４４は、ソフトウェア提供元１１０から通信路１２０を介して提供された識別情報を受信する。識別情報受信部１４４は、受信した識別情報を検証部１４５へ出力する。検証部１４５は、メモリ１３２を走査し、メモリ１３２に配置されたソフトウェアの版数が、識別情報受信部１４４から出力された識別情報によって特定される版数に含まれるか否かを検証する。検証部１４５は、検証結果を終了部１４６へ出力する。
【００３６】
たとえば、識別情報が版数情報である場合は、検証部１４５は、メモリ１３２に配置されたソフトウェアのプログラムコードの特定の位置に含まれている版数を取得し、取得した版数が、識別情報が示す版数に含まれるか否かを検証する。また、識別情報がデータパターンである場合は、検証部１４５は、メモリ１３２に配置されたソフトウェアに、識別情報が示すデータパターンが含まれているか否かを検証する。
【００３７】
また、識別情報がダイジェスト値である場合は、検証部１４５は、メモリ１３２に配置されたソフトウェアのダイジェスト値を算出し、算出したダイジェスト値が、識別情報が示すダイジェスト値と一致するか否かを検証する。検証部１４５は、ソフトウェアの版数が識別情報によって特定される版数に含まれていない場合、すなわちソフトウェアの版数が許可された版数ではない場合に、検証結果として禁止信号を終了部１４６へ出力する。
【００３８】
終了部１４６は、検証部１４５から出力された検証結果に基づいて、ＣＰＵ１３１によるソフトウェアの実行を強制的に終了させる。たとえば、終了部１４６は、検証部１４５から禁止信号が出力されると、ソフトウェアの実行を終了すべき旨の終了指示をＣＰＵ１３１へ出力することでＣＰＵ１３１によるソフトウェアの実行を強制的に終了させる。または、終了部１４６は、メモリ１３２に配置されたソフトウェアを消去することでＣＰＵ１３１によるソフトウェアの実行を強制的に終了させる。
【００３９】
（実施の形態）
（ソフトウェア管理装置の機能的構成）
図２は、実施の形態にかかるソフトウェア管理装置の機能的構成を示すブロック図である。図２において、図１に示した構成と同様の構成については同一の符号を付して説明を省略する。ここでは、ソフトウェア提供元１１０が、放送局２１１を介してソフトウェアおよび識別情報を配信する構成について説明する。ソフトウェア提供元１１０は、ソフトウェアおよび識別情報を放送局２１１へ送信する。放送局２１１は、ソフトウェア提供元１１０から送信されたソフトウェアおよび識別情報を放送波によって配信する。
【００４０】
ソフトウェア管理装置１４０はアンテナ２２１を備えている。ソフトウェア受信部１４１は、放送局２１１から配信されたソフトウェアをアンテナ２２１を介して受信する。識別情報受信部１４４は、放送局２１１から配信された識別情報をアンテナ２２１を介して受信する。ソフトウェアや識別情報は公開鍵暗号などを用いて暗号化されて配信され、ソフトウェア管理装置１４０は、配信されたソフトウェアや識別情報を復号して受信する。
【００４１】
ＰＣ１３０は、ＨＤＤ１３３を備えている。保存部１４２は暗号化機能を備えている。保存部１４２は、ソフトウェア受信部１４１から出力されたソフトウェアを、ソフトウェア管理装置１４０の内部にセキュアな状態で記憶されたキー（以下、「内部キー」という。）を用いて暗号化する。内部キーは、ソフトウェア管理装置１４０に固有のキーである。保存部１４２は、暗号化したソフトウェアをＰＣ１３０のＨＤＤ１３３に保存する。
【００４２】
配置部１４３は復号機能を備えている。配置部１４３は、トリガ信号を取得すると、保存部１４２によってＰＣ１３０のＨＤＤ１３３に保存されたソフトウェアを読み出し、読み出したソフトウェアを、内部キーを用いて復号する。配置部１４３は、復号したソフトウェアを、ＣＰＵ１３１によって実行させるためにメモリ１３２に配置する。
【００４３】
このように、保存部１４２は、内部キーを用いてソフトウェアを暗号化することで、ソフトウェアをＰＣ１３０のＨＤＤ１３３にセキュアな状態で保存することができる。すなわち、内部キーは、ソフトウェア管理装置１４０の内部にセキュアな状態で記憶されているため、ユーザは、ＨＤＤ１３３に保存されたソフトウェアを復号することができない。
【００４４】
また、上述したように内部キーはソフトウェア管理装置１４０に固有のキーである。したがって、悪意あるユーザがソフトウェア管理装置１４０とは別の復号装置を用いてＨＤＤ１３３に保存されたソフトウェアを復号しようとしても、復号のための内部キーを取得できないため復号できない。このため、ソフトウェアが不正に復号され、旧版のソフトウェアがＨＤＤ１３３などに待避して保持されることを回避することができる。
【００４５】
（ソフトウェアの受信動作）
図３は、ソフトウェア管理装置によるソフトウェアの受信動作の一例を示すフローチャートである。ソフトウェア管理装置１４０は、まず、ソフトウェア提供元１１０から提供されたソフトウェアをソフトウェア受信部１４１によって受信したか否かを判断し（ステップＳ３０１）、受信するまで待つ（ステップＳ３０１：Ｎｏのループ）。
【００４６】
ステップＳ３０１において、ソフトウェアを受信すると（ステップＳ３０１：Ｙｅｓ）、受信したソフトウェアの正当性を検証する（ステップＳ３０２）。ソフトウェアの正当性の検証とは、受信したソフトウェアの提供元がソフトウェア提供元１１０であるか否かの検証や、ソフトウェアが不正に改ざんされているか否かの検証などである。ソフトウェアの正当性が確認できない場合は、一連の動作を終了してエラーメッセージを出力する。
【００４７】
ステップＳ３０２によってソフトウェアの正当性が確認されると、つぎに、ステップＳ３０１によって受信されたソフトウェアを暗号化する（ステップＳ３０３）。つぎに、ステップＳ３０３によって暗号化されたソフトウェアをＰＣ１３０のＨＤＤ１３３に保存し（ステップＳ３０４）、一連の動作を終了する。
【００４８】
以上の各ステップを繰り返すことによって、ソフトウェア管理装置１４０は、ソフトウェア提供元１１０から順次提供されるソフトウェアを受信し、保存部１４２によって保存されているソフトウェアを最新版に更新する。以上の各ステップは、定期的に行ってもよいし、ユーザの指示により行ってもよい。
【００４９】
（ソフトウェアの配置動作）
図４は、ソフトウェア管理装置によるソフトウェアの配置動作の一例を示すフローチャートである。図３に示した受信動作の後、ソフトウェア管理装置１４０は、まず、ＰＣ１３０のＣＰＵ１３１からのトリガ信号を取得したか否かを判断し（ステップＳ４０１）、トリガ信号を取得するまで待つ（ステップＳ４０１：Ｎｏのループ）。
【００５０】
ステップＳ４０１において、トリガ信号を取得すると（ステップＳ４０１：Ｙｅｓ）、図３のステップＳ３０４によってＰＣ１３０のＨＤＤ１３３に保存されたソフトウェアを読み出す（ステップＳ４０２）。つぎに、ステップＳ４０２によって読み出されたソフトウェアを復号する（ステップＳ４０３）。
【００５１】
つぎに、ステップＳ４０３によって復号されたソフトウェアをＰＣ１３０のメモリ１３２に配置する（ステップＳ４０４）。つぎに、ステップＳ４０４によってメモリ１３２に配置されたソフトウェアの検証動作（図５〜図９参照）を開始し（ステップＳ４０５）、一連の動作を終了する。
【００５２】
（ソフトウェアの検証動作および終了動作）
図５は、ソフトウェア管理装置によるソフトウェアの検証動作および終了動作の一例を示すフローチャートである。図４に示した配置動作の後、ソフトウェア管理装置１４０は、まず、識別情報受信部１４４によってソフトウェア提供元１１０から最後に受信した識別情報（最新の識別情報）を取得する（ステップＳ５０１）。
【００５３】
つぎに、図４のステップＳ４０４によってメモリ１３２に配置されたソフトウェアの版数が、識別情報によって特定される版数に含まれるか否かを判断する（ステップＳ５０２）。ソフトウェアの版数が識別情報によって特定される版数に含まれる場合（ステップＳ５０２：Ｙｅｓ）は、一連の動作を終了する。
【００５４】
ステップＳ５０２において、ソフトウェアの版数が識別情報によって特定される版数に含まれない場合（ステップＳ５０２：Ｎｏ）は、終了指示をＣＰＵ１３１へ出力する（ステップＳ５０３）。これにより、ＣＰＵ１３１によるソフトウェアの実行が強制的に終了する。つぎに、最新のソフトウェアに更新すべき旨の更新要求メッセージをユーザへ出力し（ステップＳ５０４）、一連の動作を終了する。
【００５５】
以上の各ステップを、ソフトウェア管理装置１４０は、たとえば、図４に示した配置動作の後に一度行う。これにより、ユーザのソフトウェアの更新忘れや、ユーザによってソフトウェアが不正に改ざんされていた場合に、ソフトウェア提供元１１０が意図しない旧版のソフトウェアのＣＰＵ１３１による実行を強制的に終了させることができる。
【００５６】
または、以上の各ステップを、図４に示した配置動作の後、ＣＰＵ１３１によるソフトウェアの実行中に定期的に行ってもよい。これにより、配置動作の後に悪意のあるユーザによってソフトウェアが改ざんされたり、配置動作の後に実行中のソフトウェアの版数を禁止する旨の識別情報がソフトウェア提供元１１０から配信されたりした場合にも、ＣＰＵ１３１によるソフトウェアの実行を強制的に終了させることができる。
【００５７】
図６は、ソフトウェア管理装置によるソフトウェアの検証動作および終了動作の他の例を示すフローチャートである。図６に示すステップＳ６０１〜ステップＳ６０３は、図５に示したステップＳ５０１〜ステップＳ５０３と同様であるため説明を省略する。ステップＳ６０３によって終了指示をＣＰＵ１３１へ出力すると、つぎに、ＣＰＵ１３１によるソフトウェアの実行が終了したか否かを判断する（ステップＳ６０４）。
【００５８】
ステップＳ６０４においては、ステップＳ６０３によって終了指示を出力してからＣＰＵ１３１がソフトウェアの実行を終了するまでに通常ある程度の時間がかかる。このため、ＣＰＵ１３１がソフトウェアの実行を終了するために十分な時間が経過するまで待機してから、ＣＰＵ１３１によるソフトウェアの実行が終了したか否かを判断するとよい。
【００５９】
ステップＳ６０４において、ＣＰＵ１３１によるソフトウェアの実行が終了していない場合（ステップＳ６０４：Ｎｏ）は、図４のステップＳ４０４によってメモリ１３２に配置したソフトウェアを削除し（ステップＳ６０５）、ステップＳ６０６へ進む。ＣＰＵ１３１によるソフトウェアの実行が終了した場合（ステップＳ６０４：Ｙｅｓ）は、更新要求メッセージをユーザへ出力し（ステップＳ６０６）、一連の動作を終了する。
【００６０】
このように、ＣＰＵ１３１によるソフトウェアの実行を強制的に終了させるために、まず終了指示をＣＰＵ１３１へ出力し、それで終了しない場合にはメモリ１３２に配置したソフトウェアを削除する。これにより、悪意のあるユーザによってＰＣ１３０が不正に改造されてＣＰＵ１３１が終了指示を受け付けない状態となっていても、ＣＰＵ１３１によるソフトウェアの実行を強制的に終了させることができる。
【００６１】
また、ユーザによるＰＣ１３０の不正な改造がなければ、終了指示をＣＰＵ１３１へ出力した段階でＣＰＵ１３１によるソフトウェアの実行を強制的に終了させることができるため、ソフトウェアの実行を安全に終了させることができる。また、ＣＰＵ１３１によるソフトウェアの実行を強制的に終了させるために、終了指示の出力を行わずにメモリ１３２に配置したソフトウェアを削除してもよい。
【００６２】
（ソフトウェアの検証動作の具体例）
図７は、ソフトウェア管理装置によるソフトウェアの検証動作の一例を概念的に示す図である。識別情報受信部１４４によって受信される識別情報が、ソフトウェアの版数７２１（ＸＸＸＸ）を示す版数情報である場合は、検証部１４５は、メモリ１３２に配置されたソフトウェアのプログラムコード７１０の特定の位置に含まれる版数７１１（ＸＸＸＸ）を取得する。そして、検証部１４５は、取得した版数７１１（ＸＸＸＸ）が、識別情報が示す版数７２１（ＸＸＸＸ）に含まれるか否かを検証する。
【００６３】
図８は、ソフトウェア管理装置によるソフトウェアの検証動作の他の例を概念的に示す図である。識別情報受信部１４４によって受信される識別情報がデータパターン８２１である場合は、検証部１４５は、メモリ１３２に配置されたソフトウェアのプログラムコード７１０の各データパターン８１１に、識別情報が示すデータパターン８２１が含まれているか否かを検証する。検証部１４５は、データパターン８１１にデータパターン８２１が含まれていない場合は、禁止信号を終了部１４６へ出力する。
【００６４】
図９は、ソフトウェア管理装置によるソフトウェアの検証動作のさらに他の例を概念的に示す図である。識別情報受信部１４４によって受信される識別情報がダイジェスト値９２１である場合は、検証部１４５は、メモリ１３２に配置されたソフトウェアのプログラムコード７１０のダイジェスト値９１１を算出する。検証部１４５は、算出したダイジェスト値９１１が、識別情報が示すダイジェスト値９２１と一致するか否かを検証する。
【００６５】
ソフトウェア提供元１１０は、実行を許可する版数のソフトウェアのダイジェスト値を所定のアルゴリズムによって算出して識別情報として配信する。検証部１４５には、ソフトウェア提供元１１０で用いられる所定のアルゴリズムと同じアルゴリズムがあらかじめ設定されている。検証部１４５は、ソフトウェア提供元１１０と同じアルゴリズムを用いてダイジェスト値を算出する。検証部１４５は、ダイジェスト値９１１がダイジェスト値９２１と一致しない場合は、禁止信号を終了部１４６へ出力する。
【００６６】
図８，図９に示したように、特定すべき版数のソフトウェアに特有の内容を示す情報によって検証を行うことで、悪意のあるユーザによって、プログラムコード７１０に含まれる版数７１１（図７参照）はそのままにしつつソフトウェアの内容を改ざんされた場合にも、ＣＰＵ１３１によるソフトウェアの実行を強制的に終了させることができる。
【００６７】
また、図７〜図９に示した各検証動作を組み合わせて用いてもよい。具体的には、ソフトウェア提供元１１０は、配信する識別情報に、データパターンやダイジェスト値などのソフトウェアの内容を示す情報と版数情報とを組み合わせて格納する。検証部１４５は、識別情報に格納された各情報を用いて検証を行う。これにより、ＣＰＵ１３１によって実行されるソフトウェアの実質的な版数をより確実に検証することができる。
【００６８】
（検出動作および終了動作）
図１０は、ソフトウェア管理装置によるソフトウェアの検出動作および終了動作の一例を示すフローチャートである。図５および図６に示した検証動作および終了動作とともに、以下のような検出動作および終了動作（第２終了工程）を行ってもよい。ソフトウェア管理装置１４０は、図４に示した配置動作の後、ソフトウェア提供元１１０から最後に識別情報を受信してから所定期間経過したか否かを判断する（ステップＳ１００１）。
【００６９】
ステップＳ１００１において、識別情報を受信してから所定期間経過していない場合（ステップＳ１００１：Ｎｏ）は、一連の動作を終了する。識別情報を受信してから所定期間経過した場合（ステップＳ１００１：Ｙｅｓ）は、終了指示をＣＰＵ１３１へ出力する（ステップＳ１００２）。これにより、ＣＰＵ１３１によるソフトウェアの実行が強制的に終了する。つぎに、最新のソフトウェアに更新すべき旨の更新要求メッセージをユーザへ出力し（ステップＳ１００３）、一連の動作を終了する。
【００７０】
以上の各ステップを繰り返し行うことで、ソフトウェア提供元１１０から所定期間以上識別情報を受信していない場合に、ＣＰＵ１３１によるソフトウェアの実行を強制的に終了させることができる。これにより、放送波の電波状態が悪く識別情報を受信できなかったり、悪意のあるユーザによって識別情報の受信が阻止されたりした場合に、ＣＰＵ１３１によるソフトウェアの実行を強制的に終了させることができる。
【００７１】
（ソフトウェア管理装置の変形例）
図１１は、図２に示したソフトウェア管理装置の変形例を示すブロック図である。図１１において、図２に示した構成と同様の構成については同一の符号を付して説明を省略する。ここでは、ソフトウェア管理装置１４０は、保存部１４２（図１参照）として内蔵メモリ１１１１を備えている。ソフトウェア受信部１４１は、ソフトウェア提供元１１０から放送局２１１を介して受信したソフトウェアを内蔵メモリ１１１１へ出力する。
【００７２】
内蔵メモリ１１１１は、ソフトウェア管理装置１４０の内部に設けられたセキュアな記憶手段である。内蔵メモリ１１１１は、ソフトウェア受信部１４１から出力されたソフトウェアを記憶する。配置部１４３は、トリガ信号を取得すると、内蔵メモリ１１１１に記憶されたソフトウェアを読み出してメモリ１３２に配置する。
【００７３】
このように、ソフトウェア管理装置１４０は、保存部１４２（図１参照）としてセキュアな内蔵メモリ１１１１を備え、内蔵メモリ１１１１にソフトウェアを記憶することで、ソフトウェアをセキュアな状態で保存することができる。この場合は、ソフトウェアはセキュアな内蔵メモリ１１１１に保存されるため、ソフトウェアを暗号化しなくてもよい。
【００７４】
（ソフトウェア管理装置のハードウェア構成）
図１２は、ソフトウェア管理装置のハードウェア構成例を示すブロック図である。図１２において、図２に示した構成と同様の構成については同一の符号を付して説明を省略する。図２および図１１に示したＰＣ１３０は、ＣＰＵ１３１と、メモリ１３２と、ＨＤＤ１３３と、外部Ｉ／Ｆ１２１１と、バス１２１２と、によって実現することができる。
【００７５】
ＣＰＵ１３１、メモリ１３２、ＨＤＤ１３３および外部Ｉ／Ｆ１２１１は、バス１２１２を介して互いに接続されている。ＣＰＵ１３１は、ＰＣ１３０の全体の制御を司る。メモリ１３２は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。メモリ１３２はＣＰＵ１３１のワークエリアとして使用される。
【００７６】
ＨＤＤ１３３には各種プログラムが格納されている。ＨＤＤ１３３に格納された各種プログラムはＣＰＵ１３１からの命令に応じてメモリ１３２にロードされる。ただし、ソフトウェア提供元１１０から提供されたソフトウェアは、暗号化した状態でＨＤＤ１３３に格納されることによりメモリ１３２に直接ロードできないようになっている。外部Ｉ／Ｆ１２１１は、ＬＳＩ１２２０の外部Ｉ／Ｆ１２２４と接続するインターフェースである。
【００７７】
図２および図１１に示したソフトウェア管理装置１４０は、ＬＳＩ１２２０によって実現することができる。ＬＳＩ１２２０は、ＣＰＵ１２２１と、通信Ｉ／Ｆ１２２２と、メモリ１２２３と、外部Ｉ／Ｆ１２２４と、バス１２２５と、を備えている。ＣＰＵ１２２１、通信Ｉ／Ｆ１２２２、メモリ１２２３および外部Ｉ／Ｆ１２２４は、バス１２２５を介して互いに接続されている。
【００７８】
ＣＰＵ１２２１は、ＬＳＩ１２２０の全体の制御を司る。通信Ｉ／Ｆ１２２２は、無線などによって外部との通信を行うインターフェースである。メモリ１２２３は、ＲＡＭである。メモリ１２２３はＣＰＵ１２２１のワークエリアとして使用される。また、メモリ１２２３には各種プログラムが格納されている。メモリ１２２３に格納された各種プログラムは、ＣＰＵ１２２１からの命令に応じてロードされる。
【００７９】
外部Ｉ／Ｆ１２２４は、ＰＣ１３０の外部Ｉ／Ｆ１２１１と接続するインターフェースである。図２および図１１に示した保存部１４２、配置部１４３、検証部１４５および終了部１４６は、たとえばＣＰＵ１２２１によって実現することができる。図２および図１１に示したソフトウェア受信部１４１および識別情報受信部１４４は、たとえば通信Ｉ／Ｆ１２２２によって実現することができる。
【００８０】
図１１に示した内蔵メモリ１１１１は、たとえばメモリ１２２３によって実現することができる。外部Ｉ／Ｆ１２１１と外部Ｉ／Ｆ１２２４は、バス１２３０によって接続されている。バス１２３０は、たとえばＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）  Ｅｘｐｒｅｓｓである。
【００８１】
図２において説明したＣＰＵ１３１から配置部１４３へのトリガ信号の出力、保存部１４２によるＨＤＤ１３３へのソフトウェアの保存、配置部１４３によるＨＤＤ１３３からのソフトウェアの読み出し、配置部１４３によるメモリ１３２へのソフトウェアの配置、検証部１４５によるメモリ１３２の監視、終了部１４６によるＣＰＵ１３１への終了指示の出力、および終了部１４６によるメモリ１３２のソフトウェアの削除は、外部Ｉ／Ｆ１２１１と外部Ｉ／Ｆ１２２４を介した通信を用いて行われる。
【００８２】
このように、ソフトウェア管理装置１４０によれば、セキュアに保存したソフトウェアをＰＣ１３０のメモリ１３２に配置してＣＰＵ１３１に実行させるとともにメモリ１３２に配置したソフトウェアを監視することで、ＣＰＵ１３１によって実際に実行されるプログラムコードに基づいてソフトウェアの版数を検証することができる。これにより、ＣＰＵ１３１によって実行されるソフトウェアの版数を確実に検証することができる。
【００８３】
これにより、ＣＰＵ１３１によって実行されるソフトウェアの版数がソフトウェア提供元１１０の意図しない版数である場合に、ＣＰＵ１３１によるソフトウェアの実行を強制的に終了させることができる。このため、たとえば、ＣＰＵ１３１によって実行されるソフトウェアが最新のものであることを保証することが可能になる。
【００８４】
したがって、ソフトウェア提供元１１０が意図しない旧版のソフトウェアが動作することを回避することができる。たとえば、脆弱性が見つかりもはや使用が推奨されなかったり、最新版で追加されたコンテンツ保護のためのプロテクション機能がなかったりする旧版のソフトウェアの動作を回避し、悪意のあるユーザによる攻撃を防ぐことができる。
【００８５】
また、ソフトウェア管理装置１４０は、ソフトウェアを実行するＣＰＵ１３１とは独立して動作するセキュアモジュールであるため、ＰＣ１３０のユーザによるソフトウェア管理装置１４０やソフトウェアの改ざんは不可能である。このため、たとえば、コンテンツを再生するソフトウェアにおいて、ユーザの改ざんによる、コンテンツやソフトウェアの提供元が意図しないコンテンツ再生を防ぐことができる。
【００８６】
本実施の形態で説明したソフトウェア管理方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な媒体であってもよい。ただし、このプログラムは、ユーザによる改ざんを回避するためにセキュアな状態で記録されることが望ましい。たとえば、このプログラムは、図１２に示したＬＳＩ１２２０のメモリ１２２３に記録されることで、ユーザによる改ざんを回避することができる。
【００８７】
また、本実施の形態で説明したソフトウェア管理装置１４０は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、「ＡＳＩＣ」という。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。上述した実施の形態に関し、さらに以下の付記を開示する。
【００８８】
（付記１）コンピュータに接続されたセキュアモジュールが、
前記コンピュータが備えるプロセッサによって実行されるソフトウェアをセキュアな状態で保存する保存工程と、
前記ソフトウェアの提供元から配信される、前記ソフトウェアの版数を特定する識別情報を受信する受信工程と、
前記保存工程によって保存されたソフトウェアを、前記プロセッサによって実行させるために前記コンピュータが備える記憶手段に配置する配置工程と、
前記配置工程によって配置されたソフトウェアの版数が、前記受信工程によって受信された識別情報によって特定される版数に含まれるか否かを検証する検証工程と、
前記検証工程による検証結果に基づいて前記プロセッサによる前記ソフトウェアの実行を強制的に終了させる終了工程と、
を実行することを特徴とするソフトウェア管理方法。
【００８９】
（付記２）前記ソフトウェアを前記提供元から受信するソフトウェア受信工程を実行し、
前記保存工程では、前記ソフトウェア受信工程によって受信されたソフトウェアを暗号化して前記記憶手段に保存し、
前記配置工程では、前記保存工程によって暗号化して保存されたソフトウェアを取得し、取得したソフトウェアを復号して前記記憶手段に配置することを特徴とする付記１に記載のソフトウェア管理方法。
【００９０】
（付記３）前記ソフトウェアを前記提供元から受信するソフトウェア受信工程を実行し、
前記保存工程では、前記ソフトウェア受信工程によって受信されたソフトウェアを前記セキュアモジュールの内蔵メモリに保存し、
前記配置工程では、前記内蔵メモリに保存されたソフトウェアを前記記憶手段に配置することを特徴とする付記１に記載のソフトウェア管理方法。
【００９１】
（付記４）前記検証工程では、前記プロセッサによる前記ソフトウェアの実行中に定期的に検証することを特徴とする付記１〜３のいずれか一つに記載のソフトウェア管理方法。
【００９２】
（付記５）前記終了工程では、前記記憶手段に配置したソフトウェアを消去することを特徴とする付記１〜４のいずれか一つに記載のソフトウェア管理方法。
【００９３】
（付記６）前記終了工程では、前記プロセッサへ前記ソフトウェアの実行を終了すべき旨の終了指示を出力し、前記終了指示の出力によって前記ソフトウェアの実行が終了しなかった場合に、前記記憶手段に配置したソフトウェアを消去することを特徴とする付記１〜４のいずれか一つに記載のソフトウェア管理方法。
【００９４】
（付記７）前記受信工程によって前記識別情報を最後に受信してからの所定期間の経過を検出する検出工程と、
前記検出工程によって所定期間の経過が検出された場合に前記プロセッサによる前記ソフトウェアの実行を強制的に終了させる第２終了工程と、
を実行することを特徴とする付記１〜６のいずれか一つに記載のソフトウェア管理方法。
【００９５】
（付記８）コンピュータに接続されたセキュアなソフトウェア管理装置において、
前記コンピュータが備えるプロセッサによって実行されるソフトウェアをセキュアな状態で保存する保存手段と、
前記ソフトウェアの提供元から配信される、前記ソフトウェアの版数を特定する識別情報を受信する受信手段と、
前記保存手段によって保存されたソフトウェアを、前記プロセッサによって実行させるために前記コンピュータが備える記憶手段に配置する配置手段と、
前記配置手段によって配置されたソフトウェアの版数が、前記受信手段によって受信された識別情報によって特定される版数に含まれるか否かを検証する検証手段と、
前記検証手段による検証結果に基づいて前記プロセッサによる前記ソフトウェアの実行を強制的に終了させる終了手段と、
を備えることを特徴とするソフトウェア管理装置。
【００９６】
（付記９）第１コンピュータに接続されたセキュアな第２コンピュータを、
前記第１コンピュータが備えるプロセッサによって実行されるソフトウェアをセキュアな状態で保存する保存手段、
前記ソフトウェアの提供元から配信される、前記ソフトウェアの版数を特定する識別情報を受信する受信手段、
前記保存手段によって保存されたソフトウェアを、前記プロセッサによって実行させるために前記第１コンピュータが備える記憶手段に配置する配置手段、
前記配置手段によって配置されたソフトウェアの版数が、前記受信手段によって受信された識別情報によって特定される版数に含まれるか否かを検証する検証手段、
前記検証手段による検証結果に基づいて前記プロセッサによる前記ソフトウェアの実行を強制的に終了させる終了手段、
として機能させることを特徴とするソフトウェア管理プログラム。
【図面の簡単な説明】
【００９７】
【図１】ソフトウェア管理装置の概要を示すブロック図である。
【図２】実施の形態にかかるソフトウェア管理装置の機能的構成を示すブロック図である。
【図３】ソフトウェア管理装置によるソフトウェアの受信動作の一例を示すフローチャートである。
【図４】ソフトウェア管理装置によるソフトウェアの配置動作の一例を示すフローチャートである。
【図５】ソフトウェア管理装置によるソフトウェアの検証動作および終了動作の一例を示すフローチャートである。
【図６】ソフトウェア管理装置によるソフトウェアの検証動作および終了動作の他の例を示すフローチャートである。
【図７】ソフトウェア管理装置によるソフトウェアの検証動作の一例を概念的に示す図である。
【図８】ソフトウェア管理装置によるソフトウェアの検証動作の他の例を概念的に示す図である。
【図９】ソフトウェア管理装置によるソフトウェアの検証動作のさらに他の例を概念的に示す図である。
【図１０】ソフトウェア管理装置によるソフトウェアの検出動作および終了動作の一例を示すフローチャートである。
【図１１】図２に示したソフトウェア管理装置の変形例を示すブロック図である。
【図１２】ソフトウェア管理装置のハードウェア構成例を示すブロック図である。
【符号の説明】
【００９８】
１００  通信システム
１１０  ソフトウェア提供元
１２０  通信路
１３０  ＰＣ
１３１，１２２１  ＣＰＵ
１３２，１２２３  メモリ
１３３  ＨＤＤ
１４０  ソフトウェア管理装置
１４１  ソフトウェア受信部
１４２  保存部
１４３  配置部
１４４  識別情報受信部
１４５  検証部
１４６  終了部
２１１  放送局
２２１  アンテナ
７１０  プログラムコード
７１１，７２１  版数
８１１，８２１  データパターン
９１１，９２１  ダイジェスト値
１１１１  内蔵メモリ
１２１１，１２２４  外部Ｉ／Ｆ
１２１２，１２２５  バス
１２２０  ＬＳＩ
１２２２  通信Ｉ／Ｆ
【図１】
2010061182.tif 000003
【図２】
2010061182.tif 000004
【図３】
2010061182.tif 000005
【図４】
2010061182.tif 000006
【図５】
2010061182.tif 000007
【図６】
2010061182.tif 000008
【図７】
2010061182.tif 000009
【図８】
2010061182.tif 000010
【図９】
2010061182.tif 000011
【図１０】
2010061182.tif 000012
【図１１】
2010061182.tif 000013
【図１２】
2010061182.tif 000014