(57)【要約】【課題】  ネットワークを通じた更新プログラムの取得時やその更新プログラムの導入時におけるネットワーク経由の攻撃リスクを低減する。【解決手段】  機器プログラム１６３には、ネットワークを通じた通信処理を含む機器制御処理部１３０の処理手順が記述されている。この機器プログラム１６３を更新する場合には、起動制御部１１０は、機器プログラム１６３の起動前に、ダウンロードプログラム１６２を起動する。このダウンロードプログラム１６２によるプログラム取得部１２０は、ネットワークを通じて特定のサーバにアクセスして更新プログラム１７１を受信し、ＥＥＰＲＯＭ１７に格納する。その後、機器プログラム１６３が起動されて、プログラム更新処理部１３２が、機器プログラム１６３またはＥＥＰＲＯＭ１７に記憶された更新プログラム１７１の処理手順に従って、この更新プログラム１７１を導入する。【選択図】  図２
2006119992.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを通じた通信処理を含む所定の処理手順が記述された処理プログラムを更新するためのプログラム更新方法において、
起動制御手段が、前記処理プログラムの起動前に、当該処理プログラムを更新するための更新プログラムを取得する更新プログラム取得手段を、所定の条件に従って起動させる起動ステップと、
前記更新プログラム取得手段が、前記ネットワークを通じて特定のサーバにアクセスして前記更新プログラムを受信し、受信した前記更新プログラムを不揮発性記憶媒体に格納する取得ステップと、
プログラム更新手段が、前記処理プログラムまたは前記不揮発性記憶媒体に記憶された前記更新プログラムの処理手順に従って、当該更新プログラムを導入する導入ステップと、
を含むことを特徴とするプログラム更新方法。
【請求項２】
前記取得ステップでは、受信した前記更新プログラムを前記不揮発性記憶媒体に記憶した後、リセット手段が、前記処理プログラムを実行するシステムをリセットすることを特徴とする請求項１記載のプログラム更新方法。
【請求項３】
前記取得ステップでは、特定の通信プロトコルを用いて前記特定のサーバにアクセスすることを特徴とする請求項１記載のプログラム更新方法。
【請求項４】
前記導入ステップの開始前に、改ざん確認手段が、前記不揮発性記憶媒体に記憶された前記更新プログラムの改ざんの有無を確認する改ざん確認ステップをさらに有し、
前記導入ステップは、前記改ざん確認ステップにより改ざんされていないと判断された場合にのみ実行されることを特徴とする請求項１記載のプログラム更新方法。
【請求項５】
前記改ざん確認ステップでは、前記取得ステップにおいて受信した前記更新プログラムから生成した第１のハッシュ値と、前記更新プログラムとは別個に受信した前記更新プログラムの第２のハッシュ値とを比較することにより、前記更新プログラムが改ざん確認を行うことを特徴とする請求項４記載のプログラム更新方法。
【請求項６】
前記取得ステップでは、前記更新プログラム取得手段が、前記更新プログラムとともに前記第２のハッシュ値を前記サーバから受信することを特徴とする請求項５記載のプログラム更新方法。
【請求項７】
前記導入ステップの実行開始から終了までの間、前記プログラム更新手段は、前記ネットワークを通じた通信機能を停止させておくことを特徴とする請求項１記載のプログラム更新方法。
【請求項８】
前記導入ステップの実行開始時において、前記プログラム更新手段は、前記不揮発性記憶媒体に未導入の前記更新プログラムが記憶されていた場合には前記導入ステップの実行を開始し、記憶されていなかった場合には前記導入ステップの実行をキャンセルして前記通信機能を起動させることを特徴とする請求項７記載のプログラム更新方法。
【請求項９】
前記導入ステップでは、更新許可手段がユーザからの入力操作に応じて更新が許可されたと判断すると、前記プログラム更新手段が前記処理プログラムの更新を開始することを特徴とする請求項１記載のプログラム更新方法。
【請求項１０】
前記更新許可手段は、前記プログラム更新手段からの更新許可を要求する要求信号を受信すると、ユーザからの入力操作に応じて更新を許可する許可信号を前記プログラム更新手段に送信するハードウェアを備えたことを特徴とする請求項９記載のプログラム更新方法。
【請求項１１】
前記起動ステップでは、前記起動制御手段は、前記更新プログラムを一定時間以上起動していない場合に、前記更新プログラム取得手段を起動させることを特徴とする請求項１記載のプログラム更新方法。
【請求項１２】
ネットワークを通じた通信機能を備えた情報処理装置において、
前記ネットワークを通じて特定のサーバにアクセスして、前記ネットワークを通じた通信処理を含む所定の処理手順が記述された処理プログラムを更新するための更新プログラムを受信し、受信した前記更新プログラムを不揮発性記憶媒体に格納する更新プログラム取得手段と、
前記処理プログラムまたは前記不揮発性記憶媒体に記憶された前記更新プログラムの処理手順に従って、当該更新プログラムを導入するプログラム更新手段と、
前記処理プログラムの起動前に、前記更新プログラム取得手段を所定の条件に従って起動させる起動制御手段と、
を有することを特徴とする情報処理装置。
【請求項１３】
前記更新プログラム取得手段により、受信された前記更新プログラムが前記不揮発性記憶媒体に記憶された後、前記処理プログラムを実行するシステムをリセットするリセット手段をさらに有することを特徴とする請求項１２記載の情報処理装置。
【請求項１４】
前記プログラム更新手段により前記更新プログラムの導入が開始される前に、前記不揮発性記憶媒体に記憶された前記更新プログラムの改ざんの有無を確認する改ざん確認手段をさらに有し、
前記プログラム更新手段は、前記改ざん確認手段により改ざんされていないと判断された場合にのみ、前記更新プログラムの導入処理を実行する、
ことを特徴とする請求項１２記載の情報処理装置。
【請求項１５】
前記プログラム更新手段は、前記更新プログラムの導入開始から終了までの間、前記ネットワークを通じた通信機能を停止させることを特徴とする請求項１２記載の情報処理装置。
【請求項１６】
前記処理プログラムの更新許可を示す許可信号をユーザからの入力操作に応じて出力するハードウェアからなる更新許可手段をさらに有し、
前記プログラム更新手段は、前記更新許可手段から前記許可信号が出力された場合にのみ、前記更新プログラムの導入処理を開始することを特徴とする請求項１２記載の情報処理装置。
【請求項１７】
ネットワークを通じた通信処理を含む所定の処理手順が記述された処理プログラムの更新処理をコンピュータに実行させるためのプログラムにおいて、
起動制御手段が、前記処理プログラムの起動前に、当該処理プログラムを更新するための更新プログラムを取得する更新プログラム取得手段を、所定の条件に従って起動させる起動ステップと、
前記更新プログラム取得手段が、前記ネットワークを通じて特定のサーバにアクセスして前記更新プログラムを受信し、受信した前記更新プログラムを不揮発性記憶媒体に格納する取得ステップと、
プログラム更新手段が、前記処理プログラムまたは前記不揮発性記憶媒体に記憶された前記更新プログラムの処理手順に従って、当該更新プログラムを導入する導入ステップと、
を含む処理を前記コンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムを更新するためのプログラム更新方法、情報処理装置およびプログラムに関し、特に、ネットワークを通じた更新プログラムの取得時やその更新プログラムの導入時における安全性を向上させたプログラム更新方法、情報処理装置およびプログラムに関する。
【背景技術】
【０００２】
近年、インターネットやパーソナルコンピュータ（ＰＣ）に代表されるＩＴ（Information Technology）関連技術の進歩はめざましく、そのために多くの機器が高機能化、小型化、低価格化されている。特に最近では、ＰＣに限らず、ＡＶ（Audio Visual）機器や家電機器などの中で、ネットワーク機能を備える機器も増加しており、そのような機器が今後さらに増加するものと考えられている。
【０００３】
しかし、このような情報技術分野の進歩により機器の性能やユーザの利便性が向上した反面、高度化した機能を実現するためのプログラムはますます複雑になっており、それにともなってプログラムに不具合が生じてしまうことも多くなっている。そのため、プログラムを更新して不具合を解消するための更新プログラムが配布されているが、特にネットワーク機能を備えた機器の場合には、不具合をより手軽な作業で解消するために、ネットワークを通じて配布された更新プログラムを受信して、プログラムを更新するようにした機器もあった（たとえば、特許文献１参照。）。
【０００４】
図９は、従来のネットワークを用いたプログラムの更新手順を表したフローチャートである。
たとえば、ネットワーク機能を有する機器の電源を投入するなどして機器プログラムを起動すると、以下のようなステップにしたがって処理が実行される。
【０００５】
〔ステップＳ１０１〕機器プログラムの起動にともなって、すべてのネットワーク機能が開始される。
〔ステップＳ１０２〕更新プログラムのダウンロードを開始する。
【０００６】
〔ステップＳ１０３〕更新プログラムのダウンロードが終了した後、そのダウンロードしたプログラムをインストールする。場合によっては、インストール後にシステムを再起動することで、更新された機能が有効になる。
【０００７】
以上のような手順により、ネットワーク機能を有する機器に対して更新プログラムがダウンロードされ、さらにインストールされて、機器プログラムが更新される。
なお、ネットワークを利用した機器のプログラムの更新方法には、機器に２つのＯＳ（Operating System）を搭載させ、それらのＯＳを切り替えることで、機器全体の処理を止めることなくプログラムを更新できるように工夫されたものもあった（たとえば、特許文献２参照。）。
【特許文献１】特開２０００−１８１７１９号公報（段落番号〔００２２〕〜〔００２４〕，図１）
【特許文献２】特開２００３−１１４８０６号公報（段落番号〔００１７〕〜〔００３７〕，図１）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、さまざまな機器にネットワーク機能が設けられるのにともない、そのネットワーク機能の脆弱性を悪用して、プログラムのクラッキングや不正プログラムが記録されるといった問題が多くなりつつある。特に、高機能化によりプログラムが複雑になると、このような脆弱性を完全に解消することはますます困難になる。
【０００９】
たとえば、上記図９のフローチャートで示したプログラムの更新手順において、機器プログラム起動後にすべてのネットワーク機能が開始されてから（ステップＳ１０１）、更新プログラムが正常にインストールされてその機能が有効になるまで（ステップＳ１０３）の期間は、ネットワーク機能の脆弱性が解消されていない状態であるため、その脆弱性を利用した攻撃や不正侵入を防止することができない。このため、更新プログラムの正常なダウンロードやインストールができない場合があり、またインストールできたとしても、上記期間に記録された別の不正なプログラムがその後に実行されてしまう場合があることが問題であった。
【００１０】
本発明はこのような点に鑑みてなされたものであり、ネットワークを通じた更新プログラムの取得時やその更新プログラムの導入時におけるネットワーク経由の攻撃リスクを低減することが可能なプログラム更新方法を提供することを目的とする。
【００１１】
また、本発明の他の目的は、ネットワークを通じた更新プログラムの取得時やその更新プログラムの導入時におけるネットワーク経由の攻撃リスクが低減された情報処理装置を提供することである。
【００１２】
さらに、本発明の他の目的は、ネットワークを通じた更新プログラムの取得時やその更新プログラムの導入時におけるネットワーク経由の攻撃リスクを低減することが可能なプログラムを提供することである。
【課題を解決するための手段】
【００１３】
本発明では上記問題を解決するために、ネットワークを通じた通信処理を含む所定の処理手順が記述された処理プログラムを更新するためのプログラム更新方法において、起動制御手段が、前記処理プログラムの起動前に、当該処理プログラムを更新するための更新プログラムを取得する更新プログラム取得手段を、所定の条件にしたがって起動させる起動ステップと、前記更新プログラム取得手段が、前記ネットワークを通じて特定のサーバにアクセスして前記更新プログラムを受信し、受信した前記更新プログラムを不揮発性記憶媒体に格納する取得ステップと、プログラム更新手段が、前記処理プログラムまたは前記不揮発性記憶媒体に記憶された前記更新プログラムの処理手順に従って、当該更新プログラムを導入する導入ステップとを含むことを特徴とするプログラム更新方法が提供される。
【００１４】
ここで、更新プログラムの取得ステップでは、特定のサーバとの通信と、そのサーバから受信した更新プログラムの記憶媒体への格納という、更新プログラムの取得のための最小限の手順のみ実行されるので、この手順の実行時には、処理プログラムの実行時と比較してネットワーク機能の脆弱性が発生しにくい。このため、取得ステップにおいて、処理プログラムを起動させることなく更新プログラムを取得することにより、取得時におけるネットワークを通じた攻撃リスクが低減される。
【００１５】
また、本発明では、ネットワークを通じた通信機能を備えた情報処理装置において、前記ネットワークを通じて特定のサーバにアクセスして、前記ネットワークを通じた通信処理を含む所定の処理手順が記述された処理プログラムを更新するための更新プログラムを受信し、受信した前記更新プログラムを不揮発性記憶媒体に格納する更新プログラム取得手段と、前記処理プログラムまたは前記不揮発性記憶媒体に記憶された前記更新プログラムの処理手順に従って、当該更新プログラムを導入するプログラム更新手段と、前記処理プログラムの起動前に、前記更新プログラム取得手段を所定の条件に従って起動させる起動制御手段とを有することを特徴とする情報処理装置が提供される。
【００１６】
ここで、更新プログラム取得手段は、特定のサーバとの通信と、そのサーバから受信した更新プログラムの記憶媒体への格納という、更新プログラムの取得のための最小限の手順のみ実行するので、処理プログラムの実行機能と比較してネットワーク機能の脆弱性が発生しにくい。このため、起動制御手段によって、処理プログラムを起動させることなく更新プログラム取得手段が更新プログラムを取得するように制御されることにより、更新プログラムの取得時におけるネットワークを通じた攻撃リスクが低減される。
【発明の効果】
【００１７】
本発明のプログラム更新方法によれば、更新プログラムの取得ステップにおいて、取得のための最小限の手順のみ実行されるので、この手順の実行時には、処理プログラムの実行時と比較してネットワーク機能の脆弱性が発生しにくい。したがって、処理プログラムのネットワーク機能に脆弱性がある場合であっても、その処理プログラムを起動させることなく更新プログラムを取得することにより、取得時におけるネットワークを通じた攻撃リスクが低減され、より確実に処理プログラムを更新して脆弱性を解消できるようになる。
【００１８】
また、本発明の情報処理装置によれば、更新プログラムの取得のための最小限の手順のみ実行することでネットワーク機能の脆弱性が発生しにくくされた更新プログラム取得手段が設けられ、処理プログラムを起動させることなく、その更新プログラム取得手段によって更新プログラムが取得される。したがって、処理プログラムのネットワーク機能に脆弱性がある場合であっても、更新プログラムの取得時におけるネットワークを通じた攻撃リスクが低減され、より確実に処理プログラムを更新して脆弱性を解消できるようになる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
図１は、実施の形態に係るプログラム更新システムのシステム構成を示す図である。
図１に示すように、プログラム更新システムは、情報処理機器１と、この情報処理機器１で実行されるプログラムの更新（修正）プログラムを提供するサーバ２とが、ネットワーク３を通じて接続された構成を有している。なお、情報処理機器１は、ネットワーク３上に複数接続されていてもよい。また、ネットワーク３上には、実際には他の複数のコンピュータなどが接続されている。
【００２０】
情報処理機器１は、図１に示すハードウェアを備えたコンピュータ、携帯電話機、ＰＤＡ（Personal Digital Assistance）、デジタルカメラなどの機器であり、ネットワーク３に接続して他のコンピュータなどと通信する機能を備えている。また、情報処理機器１がサーバ２にアクセスして更新プログラムを要求すると、サーバ２は、要求された更新プログラムを情報処理機器１に対して送信する。このとき、後述するように、更新プログラムの送信中での改ざんを防止するための照合情報が、更新プログラムとともに送信されてもよい。
【００２１】
次に、各装置のハードウェア構成について説明する。
情報処理機器１は、ＣＰＵ（Central Processing Unit）１１、ＲＡＭ（Random Access Memory）１２、通信インタフェース（Ｉ／Ｆ）１３、表示部１４、入力部１５、２つのＥＥＰＲＯＭ（Electronically Erasable and Programmable Read Only Memory）１６および１７、および更新許可部１８を備えており、これらはＣＰＵバス１９を介して相互に接続されている。
【００２２】
ＣＰＵ１１は、情報処理機器１の全体の制御をつかさどる。ＲＡＭ１２は、ＣＰＵ１１に実行させるプログラムの少なくとも一部や、このプログラムによる処理に必要な各種データを一時的に記憶する。
【００２３】
通信Ｉ／Ｆ１３は、ネットワーク３に接続されて、このネットワーク３を通じてサーバ２を含む他のコンピュータなどとの間でデータの送受信を行う。表示部１４は、グラフィックＩ／Ｆや、ＬＣＤ（Liquid Crystal Display）などのモニタからなり、ＣＰＵ１１からの命令に従ってモニタの画面上に画像を表示する。入力部１５は、入力キーなどを備えてユーザからの入力操作を受け付け、その入力操作に応じた信号をＣＰＵ１１に送信する。
【００２４】
ＥＥＰＲＯＭ１６は、この情報処理機器１の各種機能を実現するためのプログラムやデータを記憶する。なお、そのプログラムとしては、起動プログラムやＯＳ、アプリケーションプログラム、ファームウェアなどが含まれる。ＥＥＰＲＯＭ１７は、更新プログラムなどのサーバ２からの受信データを記憶する。なお、これらのＥＥＰＲＯＭ１６および１７の代わりに、たとえばＨＤＤ（Hard Disk Drive）などの他の不揮発性記憶媒体が設けられてもよい。ただし、サーバ２からの受信データは、その他のプログラムやデータとは物理的あるいは論理的に異なる記憶領域に記憶されることが望ましい。
【００２５】
更新許可部１８は、ユーザからの入力操作を受け付ける独自の、あるいは入力部１５と共用される入力手段を備え、その入力操作に応じて、ＥＥＰＲＯＭ１６内のプログラムの更新に対する許可／不許可を示す信号をＣＰＵ１１に対して出力するハードウェアである。
【００２６】
一方、サーバ２は、ＣＰＵ２１、ＲＡＭ２２、ＨＤＤ２３、および通信Ｉ／Ｆ２４を備えており、これらはＣＰＵバス２５を介して相互に接続されている。
ＣＰＵ２１は、サーバ２の全体の制御をつかさどる。ＲＡＭ２２は、ＣＰＵ２１に実行されるプログラムの少なくとも一部や、このプログラムによる処理に必要な各種データを一時的に記憶する。
【００２７】
ＨＤＤ２３は、情報処理機器１の更新プログラムが記憶されている。通信Ｉ／Ｆ２４は、ネットワーク３に接続されて、このネットワーク３を通じて情報処理機器１を含む他のコンピュータなどとの間でデータの送受信を行う。
【００２８】
本実施の形態では特に、情報処理機器１で実行されるプログラムを更新するための更新プログラムの提供処理手順が記述されたプログラムが、ＨＤＤ２３に記憶される。すなわち、ＣＰＵ２１によりこのプログラムがＲＡＭ２２にロードされて実行されることで、更新プログラムが情報処理機器１に対して提供される。
【００２９】
なお、ネットワーク３は、たとえばインターネットなどのＩＰ（Internet Protocol）ネットワークである。この場合、たとえば、情報処理機器１の通信Ｉ／Ｆ１３はＬＡＮに接続し、モデムなどの接続装置やインターネットプロバイダなどを介してインターネットに接続する。また、通信Ｉ／Ｆ１３は、ネットワーク３に対して有線あるいは無線のどちらにより接続されてもよい。
【００３０】
図２は、情報処理機器の処理機能を示すブロック図である。
図２に示すように、情報処理機器１は、この機器の起動時の動作を制御する起動制御部１１０と、更新プログラムを取得する処理を行うプログラム取得部１２０と、情報処理機器１の通常の処理を行う機器制御処理部１３０とを具備する。
【００３１】
起動制御部１１０の処理機能は、ＥＥＰＲＯＭ１６に記憶された起動プログラム１６１あるいはその一部が、ＣＰＵ１１に実行されることで実現される。起動プログラム１６１は、情報処理機器１の起動時に最初に実行されるものである。起動制御部１１０は、所定の条件に従って、ＥＥＰＲＯＭ１６内のダウンロードプログラム１６２または機器プログラム１６３のどちらかを起動させる。たとえば、ダウンロードプログラム１６２を前回起動してから一定の時間が経過していた場合に、あるいはシステム起動時におけるユーザの入力操作に応じて、ダウンロードプログラム１６２を起動させる。
【００３２】
プログラム取得部１２０の処理機能は、ＥＥＰＲＯＭ１６に記憶されたダウンロードプログラム１６２がＣＰＵ１１に実行されることで実現される。このプログラム取得部１２０は、通信処理部１２１およびプログラム格納処理部１２２を備えている。
【００３３】
通信処理部１２１は、通信Ｉ／Ｆ１３を通じてサーバ２にアクセスし、更新プログラム１７１を受信する処理を実行する。通信処理部１２１は、たとえば、限られた少数の通信プロトコルのみサポートし、また、アクセス先のアドレスとしてサーバ２を示すただ１つのアドレスが指定されている。さらに、受信したパケットをフィルタリングする機能を具備していてもよい。
【００３４】
なお、本実施の形態では、サーバ２からは更新プログラム１７１とともに照合情報１７２も送信される。照合情報１７２はたとえば、更新プログラム１７１に基づくハッシュ値を暗号化した情報や、この情報を復号するための公開鍵などを含む。
【００３５】
プログラム格納処理部１２２は、通信処理部１２１によって受信された更新プログラム１７１および照合情報１７２を、ＥＥＰＲＯＭ１７に格納する。なお、プログラム格納処理部１２２は、データの格納が完了すると、システムのリセットを要求する。
【００３６】
このプログラム取得部１２０は、サーバ２にアクセスして更新プログラム１７１および照合情報１７２を受信し、ＥＥＰＲＯＭ１７に格納するための最低限の機能のみ備えるようにしたことで、ネットワーク３を通じた不正侵入に対する脆弱性の発生を防止している。プログラム取得部１２０は、このような処理を実行するために必要な最小限のＢＩＯＳ（Basic Input/Output System）プログラムを使用する。また、ダウンロードプログラム１６２は、ＯＳ上で実行されてもよいし、あるいはＯＳの介在なしに実行されるようにしてもよい。
【００３７】
機器制御処理部１３０の処理機能は、ＥＥＰＲＯＭ１６に記憶された機器プログラム１６３がＣＰＵ１１に実行されることで実現される。機器プログラム１６３はたとえば、ＯＳや、この情報処理機器１の通常の処理機能を実現するためにＯＳ上で動作する各種アプリケーションプログラムなどからなる。機器制御処理部１３０は、通信処理部１３１と、プログラム更新処理部１３２とを備えている。
【００３８】
通信処理部１３１は、通信Ｉ／Ｆ１３を通じてネットワーク３上の他のコンピュータとの間でデータの送受信を行う。この通信処理部１３１は、機器制御処理部１３０で必要な通信機能をすべて満たすように、多数の通信プロトコルをサポートし、あらかじめ決められた多数の機器、あるいは任意の機器を通信対象とすることが可能となっている。
【００３９】
プログラム更新処理部１３２は、ＥＥＰＲＯＭ１７に未導入の更新プログラム１７１が記憶されている場合に、この更新プログラム１７１を導入する処理を行う。このプログラム更新処理部１３２は、更新プログラム１７１の導入時の安全性を高めるために、以下のような機能を有している。
【００４０】
プログラム更新処理部１３２は、ＥＥＰＲＯＭ１７内の照合情報１７２を利用して、更新プログラム１７１が改ざんされているか否かを判断する照合処理部１３２ａを具備している。プログラム更新処理部１３２は、照合処理部１３２ａにより更新プログラム１７１が改ざんされたと判断された場合には、更新プログラム１７１を導入しない。
【００４１】
また、更新プログラム１７１が改ざんされていないと判断された場合には、更新プログラム１７１の導入の許可をユーザに求める画面を表示部１４に表示させる。そして、更新許可部１８を通じて導入許可を示すユーザの操作入力を受けると、更新プログラム１７１を導入して機器プログラム１６３を更新する。これらの機能により、不正なプログラムが実行されることを防止している。
【００４２】
さらに、プログラム更新処理部１３２は、通信処理部１３１の機能のＯＮ／ＯＦＦを制御することが可能となっている。プログラム更新処理部１３２は、未導入の更新プログラム１７１がＥＥＰＲＯＭ１７に記憶されていた場合には、この更新プログラム１７１の導入が完了するまで通信処理部１３１の機能を停止させることで、ネットワーク３からの不正なアクセスを防止している。
【００４３】
図３は、各通信処理部がサポートする通信プロトコルを示す図である。また、図４は、各通信処理部の通信対象のネットワークアドレスを示す図である。
図３および図４に示すように、ダウンロードプログラム１６２は、通信処理をする際に使用する通信プロトコルが記録された通信プロトコルテーブル１２１ａと、通信対象とする機器のネットワークアドレスが記録されたネットワークアドレステーブル１２１ｂとを備えている。また、機器プログラム１６３は、通信処理をする際に使用する通信プロトコルが記録された通信プロトコルテーブル１３１ａと、ネットワークアドレスが記録されたネットワークアドレステーブル１３１ｂとを備えている。
【００４４】
プログラム取得部１２０の通信処理部１２１が通信処理をする際には、ダウンロードプログラム１６２の備える通信プロトコルテーブル１２１ａに記録されている通信プロトコルのみを用い、ダウンロードプログラム１６２の備えるネットワークアドレステーブル１２１ｂに記録されている接続対象のみ（ここでは例としてサーバ２のみ）と通信することができる。また、機器制御処理部１３０の通信処理部１３１が通信処理をする際には、機器プログラム１６３の備える通信プロトコルテーブル１３１ａに記録されている通信プロトコルを用いることができ、ネットワークアドレステーブル１３１ｂにあらかじめ記録されている複数の接続対象と通信することができる。さらに、ユーザ操作に応じて入力されたネットワークアドレスに対応する任意の接続対象と通信できるようにしてもよい。
【００４５】
以上のように、機器制御処理部１３０の通信処理部１３１は、機器制御処理部１３０で必要な通信機能をすべて満たすように、多数の通信プロトコルをサポートし、またあらかじめ決められた多数の機器、あるいは任意の機器を通信対象とすることが可能となっている。一方、プログラム取得部１２０の通信処理部１２１は、更新プログラム１７１や照合情報１７２を受信するためにサーバ２だけと通信できればいいので、ダウンロードプログラム１６２が備える通信プロトコルテーブル１２１ａおよびネットワークアドレステーブル１２１ｂには、このような処理を行うために必要な最小限の通信プロトコルやネットワークアドレスしか記録されていない。
【００４６】
このように、更新プログラム１７１を取得するのに必要最小限の通信プロトコルで通信を行うことにより、通信時の攻撃リスクを低減することができ、通信先を制限することで、危険なサーバなどとの接続を防ぐことができる。また、使用可能な通信プロトコルや接続先を必要最小限に制限したことで、処理手順を示すダウンロードプログラム１６２を簡単な構造にすることができるので、通信機能の脆弱性が発生しにくくなる。
【００４７】
なお、通信処理部１２１はさらに、受信パケットをフィルタリングする機能を備えてもよい。これにより、意図しない接続先との接続をより確実に防止でき、通信の安全性がさらに向上する。
【００４８】
図５は、情報処理機器におけるプログラム更新処理の流れを示すフローチャートである。以下、図５に示す処理をステップ番号に沿って説明する。
〔ステップＳ１１〕情報処理機器１を起動すると、ＥＥＰＲＯＭ１６に記憶されている起動プログラム１６１が実行され、ＥＥＰＲＯＭ１６に記憶されているダウンロードプログラム１６２を起動するか、あるいは機器プログラム１６３を起動するかを判断する起動制御部１１０の処理が実行される。起動制御部１１０はたとえば、情報処理機器１が前回の起動から所定の時間が経過したかどうかを判断し、経過していればステップＳ１２の処理を実行し、経過していないのであればステップＳ１６の処理を実行する。
【００４９】
なお、起動制御部１１０が判断基準とする条件は、時間でなく起動回数などでもよい。あるいは、起動プログラム１６１の起動時に、ダウンロードプログラム１６２を実行するか否かをユーザに問うための画面を表示部１４に表示し、ユーザの操作入力に応じて条件判断を行うようにしてもよい。
【００５０】
〔ステップＳ１２〕起動制御部１１０は、ＥＥＰＲＯＭ１６に記憶されているダウンロードプログラム１６２を起動させる。これにより、プログラム取得部１２０の通信処理部１２１によるネットワーク機能が開始される。その際、ダウンロードプログラム１６２の通信プロトコルテーブル１２１ａおよびネットワークアドレステーブル１２１ｂにそれぞれ記録されている通信プロトコルとネットワークアドレスを参照する。
【００５１】
〔ステップＳ１３〕通信処理部１２１は、通信Ｉ／Ｆ１３、ネットワーク３を通じてサーバ２にアクセスして、サーバ２から更新プログラム１７１をダウンロードする。このときたとえば、通信処理部１２１は、未導入の更新プログラム１７１がサーバ２にあるかどうかをサーバ２に問い合わせ、もし未導入の更新プログラム１７１がサーバ２にある場合には、その更新プログラム１７１をダウンロードするようにしてもよい。この場合、未導入の更新プログラム１７１がないのであれば、ダウンロードを行わずにステップＳ１５に進む。
【００５２】
なお、本実施の形態では、更新プログラム１７１とともに、更新プログラム１７１のハッシュ値などを含む照合情報１７２をダウンロードする。この照合情報１７２は、後述の更新プログラムの改ざん確認の際に用いられる。
【００５３】
〔ステップＳ１４〕プログラム格納処理部１２２は、ステップＳ１３でダウンロードした更新プログラム１７１と照合情報１７２をＥＥＰＲＯＭ１７に格納する。なお、格納処理を行っている際に外部からの攻撃を防ぐために、ステップＳ１３のダウンロードが終了すると同時に、通信処理部１２１のネットワーク機能を停止させてしまうことが望ましい。
【００５４】
〔ステップＳ１５〕プログラム取得部１２０は、ＣＰＵ１１に対してシステムのリセットを要求し、これにより情報処理機器１が再起動して、ステップＳ１１の処理が再び実行される。
【００５５】
ここで、ステップＳ１２〜Ｓ１５の処理が実行されて、更新プログラム１７１および照合情報１７２がＥＥＰＲＯＭ１７に格納された直後では、再起動後のステップＳ１１の条件分岐によりステップＳ１６以降の処理に移行することになる。
【００５６】
〔ステップＳ１６〕起動制御部１１０の制御により機器プログラム１６３が起動される。このとき、機器制御処理部１３０の少なくともプログラム更新処理部１３２の処理機能が起動されるが、その際、通信処理部１３１のネットワーク機能は停止した状態とされる。
【００５７】
〔ステップＳ１７〕プログラム更新処理部１３２は、ＥＥＰＲＯＭ１７内に未導入の更新プログラム１７１が記憶されているか否かを確認する。更新プログラム１７１が記憶されている場合にはステップＳ１８に進み、記憶されていない場合はステップＳ２３に進む。
【００５８】
〔ステップＳ１８〕ＥＥＰＲＯＭ１７に記憶された更新プログラム１７１が取得処理の過程で改ざんされていないかどうかを、照合処理部１３２ａなどの後述する処理によって確認する。このステップでは、照合処理部１３２ａにより改ざんされていないと判断された場合のみ、次のステップＳ１９に進められる。また、改ざんが確認された場合には更新処理を終了し、たとえば、ネットワーク機能は開始させずに機器制御処理部１３０を実行させて、少なくとも脆弱性が解消されない状態でネットワーク３には接続しないようにする。あるいは、情報処理機器１の動作をすべて停止させるようにしてもよい。
【００５９】
〔ステップＳ１９〕プログラム更新処理部１３２は、更新プログラム１７１を機器プログラム１６３へインストールすることを許可するかをユーザに対して操作要求する。その際、プログラム更新処理部１３２は、ユーザが認知できるように表示部１４に操作要求画面を表示して、更新許可部１８に対する入力操作を待つ。
【００６０】
〔ステップＳ２０〕ユーザは、操作要求画面を視認し、更新プログラム１７１のインストールを許可する場合には、更新許可部１８の備える入力キーを用いてインストールを許可するための操作入力を行う。プログラム更新処理部１３２は、更新許可部１８を通じて許可を示す操作入力に応じた許可信号を受信すると、ステップＳ２１の処理を実行する。また、更新プログラム１７１の更新がユーザ操作により許可されなかった場合、プログラム更新プロセスは停止し、たとえばネットワーク機能が無効状態のままで機器制御処理部１３０が動作するようにされる。
【００６１】
〔ステップＳ２１〕更新許可部１８からの許可信号を受信すると、プログラム更新処理部１３２は、ＥＥＰＲＯＭ１７に格納されている更新プログラム１７１を、機器プログラム１６３に記述された処理手順、または更新プログラム１７１に記述された処理手順に従って、機器プログラム１６３にインストールする。
【００６２】
〔ステップＳ２２〕更新プログラム１７１のインストールが終了すると、プログラム更新処理部１３２は更新許可部１８に対して書き込み禁止信号を送り、更新を禁止する状態にする。なお、このとき、ＥＥＰＲＯＭ１７内の更新プログラム１７１および照合情報１７２を消去してもよい。
【００６３】
〔ステップＳ２３〕プログラム更新処理部１３２は、通信処理部１３１のネットワーク機能を有効にする。これにより、ネットワーク機能の脆弱性が解消された状態で、ネットワーク機能を含めた機器プログラム１６３による機器制御処理部１３０の全機能が使用可能になる。また、インストールした更新プログラム１７１を有効化するために、システムを自動的にリセットした後、ネットワーク機能を有効にしてもよい。
【００６４】
以上の処理において、更新プログラム１７１を取得する処理（ステップＳ１２〜Ｓ１５）では、サーバ２から更新プログラム１７１を受信してＥＥＰＲＯＭ１７に格納し、システムのリセットを要求する処理だけが行われる。また、上述したように、通信処理部１２１はサーバ２との通信のための必要最小限の処理機能を備えている。このため、これらの処理手順を示すダウンロードプログラム１６２は、機器プログラム１６３と比較して非常に簡単な構造を有しているので、ネットワーク機能の脆弱性が発生しにくい。
【００６５】
したがって、機器プログラム１６３を起動せずに、ダウンロードプログラム１６２のみを起動して更新プログラム１７１を取得するようにしたことで、取得処理時におけるネットワーク３経由の攻撃リスクが低減される。これにより、更新プログラム１７１をより確実に受信し、記録することが可能となり、この際に不正なプログラムが情報処理機器１内に記録される可能性も低減される。
【００６６】
なお、受信した更新プログラム１７１および照合情報１７２を、機器プログラム１６３の格納領域とは物理的に切り離された領域（ＥＥＰＲＯＭ１７）に格納することにより、受信処理時にネットワーク３経由の攻撃を受けた場合にも、機器プログラム１６３などに影響を与える可能性を低減することができる。
【００６７】
さらに、受信データをＥＥＰＲＯＭ１７に格納した後にシステムを再起動する（ステップＳ１５）ことによって、仮に更新プログラム１７１を取得する処理の間（ステップＳ１１〜Ｓ１４）にウイルスプログラムなどが情報処理機器１に記録された場合でも、その実行を停止させることができ、揮発性記憶媒体であるＲＡＭ１２に記録された不正なプログラムを消去することができる。したがって、機器プログラム１６３への攻撃や機器プログラム１６３の支配下にある記憶媒体および記憶領域に記憶されているデータの改ざんや流出、破壊行為などが防止される。
【００６８】
また、受信した更新プログラム１７１をインストールする処理では、インストールの前に、ＥＥＰＲＯＭ１７内の更新プログラム１７１の改ざんの有無を確認し（ステップＳ１８）、改ざんがない場合でも、さらにインストール許可のためのユーザによる入力操作があるまではインストールを行わない（ステップＳ１９，Ｓ２０）ことにより、不正なインストール処理の実行が防止され、安全性がさらに高められている。
【００６９】
さらに、インストールが完了するまで通信処理部１３１のネットワーク機能が停止されるので、ネットワーク機能の脆弱性が解消されない状態でのネットワーク３との接続が不能となる。このため、インストール中に脆弱性を利用した攻撃を受けることが防止され、またたとえば、ネットワーク３を通じて不正に動作するプログラムが記録されていた場合には、このプログラムの実行を防止することができる。
【００７０】
図６は、更新プログラムの改ざん防止のための照合処理例（図５のステップＳ１７に対応）を説明するための図である。
送信側であるサーバ２は、更新プログラム１７１を送信する際に、この更新プログラム１７１から作成したハッシュ値１７１ａを秘密鍵１７２ａで暗号化した暗号化データ１７２ｂと、秘密鍵１７２ａに対応する公開鍵１７２ｃとをともに送信する。受信側である情報処理機器１は、更新プログラム１７１とともに暗号化データ１７２ｂおよび公開鍵１７２ｃを照合情報１７２として受信する。そして、照合処理部１３２ａの処理により、受信した更新プログラム１７１から作成したハッシュ値１７１ｂと、受信した暗号化データ１７２ｂを公開鍵１７２ｃで復号したハッシュ値１７２ｄとが同一であるかを確認する。これらが同一であれば、サーバ２から送信されてからの過程で更新プログラム１７１が改ざんされていないことが確認される。
【００７１】
なお、たとえばさらに、情報処理機器１にＣＡ（Certificate Authority）からの公開鍵をあらかじめ記録しておき、ハッシュ値１７１ａの暗号化データ１７２ｂを復号するための公開鍵１７２ｃを、ＣＡによる電子署名を付加してサーバ２から送信するようにしてもよい。これにより、受信した公開鍵１７２ｃが接続先のサーバ２からのものであることの信頼性が増す。
【００７２】
図７は、更新許可部の構成例を示す図である。
更新許可部１８は、スイッチ部１８１と、チャタリング除去・同期化回路１８２と、２つのＡＮＤ回路１８３ａおよび１８３ｂと、ＪＫフリップフロップ回路１８４とを備えている。
【００７３】
スイッチ部１８１は、インストールの許可を与えるためのユーザの操作入力を受け付けるハードウェアであり、更新許可部１８に固有に、あるいは入力部１５と共用されて設けられる。スイッチ部１８１において入力操作が行われると、その出力信号は、チャタリング除去・同期化回路１８２においてチャタリング成分が除去され、さらにクロックＣＬＫによって同期化された後、書き込み許可信号としてＡＮＤ回路１８３ａの一方の入力端子に入力される。
【００７４】
また、プログラム更新処理部１３２（すなわちＣＰＵ１１）のソフトウェア制御出力ポートからは書き込み禁止信号が出力され、この信号はＪＫフリップフロップ回路１８４のＫ端子に入力されるとともに、その反転信号がＡＮＤ回路１８３ａの他方の入力端子に入力される。
【００７５】
ＡＮＤ回路１８３ｂの一方の端子には、更新プログラム１７１のインストール時にＲＡＭ１２への書き込みを許可するためのライトイネーブル信号が入力され、他方の入力端子には、ＪＫフリップフロップ回路１８４のＱ端子からの出力信号が入力される。したがって、ＪＫフリップフロップ回路１８４のＱ出力がＨレベルのとき、更新プログラム１７１のインストールが可能な状態になる。
【００７６】
プログラム更新処理部１３２がユーザに対してインストール許可の操作要求をする前においては、プログラム更新処理部１３２からの書き込み禁止信号は更新禁止を表すＨレベルになっているので、この信号を反転したＨレベルの信号がＡＮＤ回路１８３ａの入力端子に入力されて、ＪＫフリップフロップ回路１８４のＪ端子は常にＬレベルとなる。したがって、この状態ではスイッチ部１８１の動作にかかわらず、ＪＫフリップフロップ回路１８４のＱ出力がＬレベルとなって、更新プログラム１７１のインストールは許可されない。
【００７７】
プログラム更新処理部１３２がインストール許可の操作要求をする際には、プログラム更新処理部１３２からの書き込み禁止信号が無効を表すＬレベルとなって、ＡＮＤ回路１８３ａの一方の入力端子の入力がＨレベルとなる。この場合にまだユーザがインストールを許可していないときは、書き込み許可信号は無効を表すＬレベルのままであり、この信号がＡＮＤ回路１８３ａに入力されるので、ＡＮＤ回路１８３ａの出力はＬレベルのままとなり、依然としてインストールは実行されない。
【００７８】
この状態から、ユーザが更新プログラム１７１のインストールを許可するためにスイッチ部１８１を操作すると、書き込み許可信号は許可を表すＨレベルとなってＡＮＤ回路１８３ａに入力される。すると、ＡＮＤ回路１８３ａの出力がＨレベルとなってＪＫフリップフロップ回路１８４のＪ端子に入力され、ＪＫフリップフロップ回路１８４のＱ出力がＨレベルとなって、更新プログラム１７１のインストールが許可され、開始される。また、このときＪＫフリップフロップ回路１８４は、プログラム更新処理部１３２のソフトウェア制御によって書き込み禁止信号がＨレベルに変化するまで、Ｑ出力をＨレベルのまま保持する。
【００７９】
以上のように、プログラム更新処理部１３２のソフトウェア制御により、更新プログラム１７１のインストールは禁止されるが、インストールを許可する場合には、プログラム更新処理部１３２が書き込み禁止信号を用いて許可を与えても、更新許可部１８のハードウェアを用いてユーザが操作入力を行わない限り、インストールを実行することはできない。したがって、不正なインストール動作やプログラムの改ざん動作が実行される危険性が低くなる。
【００８０】
図８は、更新許可部においてユーザの入力操作を受け付けるスイッチ部の構成例を示す図である。ここでは、デジタルカメラなどに一般的に設けられている十字方向の操作キーを、更新許可部１８の操作キーと共用した場合の例を示している。
【００８１】
図８のスイッチ部１８１は、上下左右の方向をそれぞれ示す矢印キー１８５ａ〜１８５ｄと、ＡＮＤ回路１８６からなる。矢印キー１８５ａ〜１８５ｄのいずれもが押されていない場合では、ＡＮＤ回路１８６の入力はすべてＨレベルとなり、出力はＬレベルとなる。つまり、書き込み許可信号は無効を表していることになる。また、ユーザがインストールを許可する場合、矢印キー１８５ａ〜１８５ｄのいずれか１つを押すことによりＡＮＤ回路１８６の少なくとも１つの入力がＬレベルになり、ＡＮＤ回路１８６の出力がＨレベルとなって、書き込み許可信号はインストールを許可した状態となる。このように、既存の入力キーを用いて、ハードウェア制御によりインストールを許可するようにすることも可能である。
【００８２】
なお、上記の情報処理機器１としては、たとえば、パーソナルコンピュータ、ＰＤＡ、携帯電話機、デジタルカメラ、デジタルビデオレコーダなど、そのすべてあるいは一部の機能が上記図１のハードウェア構成により実現されるあらゆる機器を適用することが可能である。ただし、ＰＤＡやデジタルカメラなどの携帯型機器や、デジタルビデオレコーダなどの据え置き型の家庭用電化製品など、通常の動作時にはネットワーク３に常時接続することのない機器に対して、本発明を適用することが特に好適である。そのような機器では、更新プログラム１７１のリリースを常時把握することが難しく、脆弱性を抱えたままネットワーク３に接続してしまい、外部機器からの悪意の攻撃を受ける状況が起こりやすいからである。
【００８３】
また、上記の情報処理機器１の処理機能は、コンピュータによって実現することができる。その場合、情報処理機器１が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。
【００８４】
プログラムを流通させる場合には、たとえば、そのプログラムが記録された光ディスクなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００８５】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【図面の簡単な説明】
【００８６】
【図１】実施の形態に係るプログラム更新システムのシステム構成を示す図である。
【図２】情報処理機器の処理機能を示すブロック図である。
【図３】各通信処理部がサポートする通信プロトコルを示す図である。
【図４】各通信処理部の通信対象のネットワークアドレスを示す図である。
【図５】情報処理機器におけるプログラム更新処理の流れを示すフローチャートである。
【図６】更新プログラムの改ざん防止のための照合処理例を説明するための図である。
【図７】更新許可部の構成例を示す図である。
【図８】更新許可部においてユーザの入力操作を受け付けるスイッチ部の構成例を示す図である。
【図９】従来のネットワークを用いたプログラムの更新手順を表したフローチャートである。
【符号の説明】
【００８７】
１……情報処理機器、２……サーバ、３……ネットワーク、１１，２１……ＣＰＵ、１２……ＲＡＭ、１３，２４……通信Ｉ／Ｆ、１４……表示部、１５……入力部、１６，１７……ＥＥＰＲＯＭ、１８……更新許可部、１９，２５……ＣＰＵバス、２２……ＲＡＭ、２３……ＨＤＤ、１１０……起動制御部、１２０……プログラム取得部、１２１，１３１……通信処理部、１２２……プログラム格納処理部、１３０……機器制御処理部、１３２……プログラム更新処理部、１３２ａ……照合処理部、１６１……起動プログラム、１６２……ダウンロードプログラム、１６３……機器プログラム、１７１……更新プログラム、１７２……照合情報
【図１】
2006119992.tif 000003
【図２】
2006119992.tif 000004
【図３】
2006119992.tif 000005
【図４】
2006119992.tif 000006
【図５】
2006119992.tif 000007
【図６】
2006119992.tif 000008
【図７】
2006119992.tif 000009
【図８】
2006119992.tif 000010
【図９】
2006119992.tif 000011