説明

情報処理装置およびファームウェア更新方法

【課題】ファームウェアの任意のバージョンから最新のバージョンへの更新を効率的に行うことを可能とした情報処理装置を提供する。
【解決手段】現バーション判定モジュール101は、ファームウェア20のバージョンを調べる。基本バージョン・ダウングレードモジュール102は、そのバージョンから基本バージョンへとバージョンダウンするための更新ファイルをサーバ3から取得し、その取得した更新ファイルを周辺デバイス2に転送して、当該更新ファイルを用いたファームウェアの更新を周辺デバイス2に実行させる。最新バージョン・アップグレードモジュール103は、基本バージョンAから最新バージョンへとバージョンアップするための更新ファイルをサーバ3から取得し、その取得した更新ファイルを周辺デバイス2に転送して、当該更新ファイルを用いたファームウェアの更新を周辺デバイス2に実行させる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、例えばパーソナルコンピュータなどの情報処理装置に適用して好適なファームウェア更新技術に関する。
【背景技術】
【0002】
近年、ノートブックタイプやデスクトップタイプ等、様々なタイプのパーソナルコンピュータが広く普及している。この種のパーソナルコンピュータには、数多くのデバイスが内蔵され、また、必要に応じて接続される。ハードウェアであるデバイスの多くは、ソフトウェアであるファームウェアによって動作が制御され、機能改良等を行えるようにするために、当該ファームウェアをフラッシュメモリ等に格納する。
【0003】
また、最近では、通信環境が整備されてきたことに伴い、デバイス提供元が更新情報をインターネット上で公開し、必要であれば、ファームウェア更新用の更新ファイルをユーザにダウンロードさせるといったことも一般的になりつつある。このようなことから、ファームウェア等の更新を効率的に行うための提案が種々なされている(例えば特許文献1等参照)。
【特許文献1】特開2003−173260公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
ところで、最近では、例えば著作権保護のために暗号化されて放送されるデジタルテレビジョン放送番組データを受信・復号するデジタルチューナ等も、パーソナルコンピュータに内蔵または接続されるデバイスとして製造されている。これにより、バッテリ駆動可能なノートブックタイプのパーソナルコンピュータ等を携行すれば、外出先や移動中にもデジタルテレビジョン放送番組データを視聴することが可能になっている。
【0005】
このデジタルチューナのような重要データを取り扱うデバイスのファームウェアを更新するにあたっては、悪意あるユーザによる不正な解析を防ぐために、第1に、ファームウェア内に暗号化された情報を復号する機能を持たせ、当該ファームウェアに供給すべき情報を暗号化した上で頒布するといったことが行われる。また、第2に、さらなる情報漏洩を期するために、この暗号化のための暗号鍵、即ちファームウェアに保持させる暗号鍵をバージョンアップ毎に変更するといったことが併せて行われる場合もある。
【0006】
しかしながら、この場合、例えばバージョンA→バージョンB→バージョンCとバージョンアップした後、さらにバーションDへとバージョンアップする際、次のような問題が発生する。
【0007】
つまり、ユーザXはその都度バージョンアップして現在バージョンCであるが、ユーザYはバージョンAのままであるような場合、ユーザYも直接的にバーションDにバージョンアップできるようにするためには、バージョンA,B,Cのそれぞれからバージョンアップするための更新ファイルを各々用意しておかなくてはならなくなる。なぜなら、この更新ファイルはファームウェアが保持する暗号鍵で復号可能に暗号化された状態で用意されるものだからである。
【0008】
また、最新バージョンへの更新ファイルを既存バージョン数分その都度用意するのはコスト的にも管理上も問題があるとして、各バージョンへの更新ファイルを直前のバージョンからのものを1つずつ用意するようにすると、バージョンB→バージョンC→バージョンDと順を追って何度もバージョンアップ作業をユーザYに強いてしまう(この順を追ったバージョンアップが1回のバージョンアップ作業で自動的に行われる場合も、一般にバージョンアップがN回発生したときにはN倍の作業時間がかかってしまう)。
【0009】
この発明は、このような事情を考慮してなされたものであり、ファームウェアの任意のバージョンから最新のバージョンへの更新を効率的に行うことを可能とした情報処理装置およびファームウェア更新方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
前述した目的を達成するために、この発明の情報処理装置は、バージョンの更新時に保持する暗号鍵が変更されるファームウェアが組み込まれたデバイスを内蔵または外部接続する情報処理装置において、前記ファームウェアのバージョンを取得するバーション取得手段と、前記バーション取得手段により取得されたバージョンのファームウェアが保持する暗号鍵で復号可能に暗号化された、前記ファームウェアを所定のバージョンに更新するための更新ファイルを前記デバイスに転送して、前記デバイスのファームウェアのバージョンを前記所定のバージョンに更新させる第1のバージョン更新手段と、前記所定のバーションのファームウェアが保持する暗号鍵で復号可能に暗号化された、前記ファームウェアを最新のバージョンに更新するための更新ファイルを前記デバイスに転送して、前記デバイスのファームウェアのバージョンを最新のバージョンに更新させる第2のバージョン更新手段とを具備することを特徴とする。
【0011】
また、この発明のファームウェア更新方法は、バージョンの更新時に保持する暗号鍵が変更されるファームウェアが組み込まれたデバイスを内蔵または外部接続する情報処理装置のファームウェア更新方法であって、前記ファームウェアのバージョンを取得し、前記取得したバーションが最新または所定のバージョンでない場合、前記取得したバージョンのファームウェアが保持する暗号鍵で復号可能に暗号化された、前記ファームウェアを所定のバージョンに更新するための更新ファイルを前記デバイスに転送して、前記デバイスのファームウェアのバージョンを前記所定のバージョンに更新させ、前記取得したバーションが最新のバージョンでない場合、前記所定のバーションのファームウェアが保持する暗号鍵で復号可能に暗号化された、前記ファームウェアを最新のバージョンに更新するための更新ファイルを前記デバイスに転送して、前記デバイスのファームウェアのバージョンを最新のバージョンに更新させることを特徴とする。
【発明の効果】
【0012】
この発明によれば、ファームウェアの任意のバージョンから最新のバージョンへの更新を効率的に行うことを可能とした情報処理装置およびファームウェア更新方法を提供することができる。
【発明を実施するための最良の形態】
【0013】
以下、図面を参照して、この発明の一実施形態を説明する。
【0014】
本実施形態に係る情報処理装置は、例えばバッテリ駆動可能なノートブック型パーソナルコンピュータ(PC)等として実現されている。図1は、本PC1の一動作環境例を示す図であり、図1に示すように、本PC1は、例えばUSB(Universal Serial Bus)等の汎用バスAを介して周辺デバイス2を必要に応じて接続することができる。また、本PC1は、インターネットやLAN(Local Area Network)等の通信ネットワークBを介してサーバ3とも接続することができる。そして、本PC1は、周辺デバイス2に組み込まれたファームウェアをバージョンアップする際に、バージョンアップ用の更新ファイルをサーバ3から取得し、この取得した更新ファイルを周辺デバイス2に転送する。
【0015】
図2は、本PC1の一概略構成例を示す図である。図1に示すように、このコンピュータは、CPU11、主メモリ12、磁気ディスク駆動装置(HDD)13、ディスプレイコントローラ14、キーボードコントローラ15、I/Oコントローラ16およびネットワークコントローラ17を備えている。
【0016】
CPU11は、本PC1全体の動作制御を司るプロセッサである。CPU11は、HDD13から主メモリ12にロードされるオペレーティングシステムや、ユーティリティを含む各種アプリケーションプログラムを実行する。本PC1では、各種アプリケーションプログラムの1つとして、後述するファームウェア更新ユーティリティ100が存在している。主メモリ12は、本PC1の主記憶となる記憶媒体であり、CPU11が実行する各種プログラムおよび当該各種プログラムにより入出力される各種データを格納する。一方、HDD13は、本PC2の外部記憶となる記憶媒体であり、主メモリ12の補助装置として、各種プログラムおよび各種データを大量に格納する。
【0017】
ディスプレイコントローラ14は、本PC1が提供するユーザインタフェースのアウトプット側を司る装置であり、CPU11が作成した画像データをLCD等のディスプレイ装置に表示する。一方、キーボードコントローラ15は、本PC1が提供するユーザインタフェースのインプット側を司る装置であり、キーボードやマウスの操作内容をCPU11に伝達する。
【0018】
そして、I/Oコントローラ16は、汎用バスAを介した周辺デバイス2等とのデータ授受を制御し、ネットワークコントローラ17は、通信ネットワークBを介したサーバ3等とのデータ授受を制御する。
【0019】
次に、図3および図4を参照しながら、このような構成を持つ本PC1において実施される、周辺デバイス2に組み込まれたファームウェアのバージョンアップの基本原理を説明する。まず、本PC1におけるファームウェア更新手順の理解を助けるために、図3を参照して、これまでのファームウェア更新手順を説明する。
【0020】
いま、図3(A)に示すように、周辺デバイス2に組み込まれるファームウェアのバージョンが、初期バージョンである基本バージョンAを筆頭に、バージョンB→バージョンC→…→バージョンMとバージョンアップを重ね、さらに、最新バージョンであるバージョンNへとバージョンアップされる場合を想定する。また、各バージョンのファームウェアは、暗号鍵(例えば、基本バージョンAであれば暗号鍵A,バージョンBであれば暗号鍵B,等)を保持するものとする。暗号鍵は、他のいずれのバージョンとも異なるものであってもよいし、同じであってもよい。
【0021】
ファームウェアのバージョンアップの実施有無は、多くの場合、ユーザの判断に委ねられるので、最新バージョンNへのバージョンアップ時、あるユーザの周辺デバイス2に組み込まれたファームウェアはバージョンMであるが、あるユーザの周辺デバイス2に組み込まれたファームウェアはバージョンCである、といったことも考えられる。
【0022】
このような状況を考慮し、既存のいずれのバージョンからも最新バージョンNにバージョンアップ可能とするために、1つは、図3(B)に示すように、最新バージョンNにファームウェアをバージョンアップするための更新ファイルを既存のバージョン数分用意する。周辺デバイス2が例えば重要データを取り扱う場合には、その取り扱いを制御するファームウェアの処理手順を含む更新ファイルが不正に解析されることを防ぐため、ファームウェアに暗号化を復号する機能を持たせ、ファームウェア外、例えばPC1上では暗号化された状態でのみ存在するようにする。よって、既存のいずれのバージョンからも直接的に最新バージョンNにバージョンアップ可能とするためには、(各々の暗号鍵で暗号化された)既存のバージョン数分の更新ファイルを用意する必要がある。しかしながら、最新バージョンへの更新ファイルを既存バージョン数分その都度用意するのはコスト的にも管理上も問題がある。
【0023】
また、2つめは、図3(C)に示すように、各バージョンへの更新ファイルを直前のバージョンからのものを1つずつ用意する。この場合、最新バージョンへの更新ファイルをその都度1つずつ追加していくだけで済む。しかしながら、現在バージョンCであるユーザには、バージョンD→バージョンE→…→最新バージョンNと順を追って何度もバージョンアップ作業を強いてしまうことになる(この順を追ったバージョンアップを1回のバージョンアップ作業で自動的に行う場合も、一般にバージョンアップがN回発生したときにはN倍の作業時間がかかってしまう)。
【0024】
そこで、本PC1は、バージョンアップ毎の用意に費やされるコストを抑え、かつ、ユーザには最大2回のバージョンアップ作業を行う(または2回分の作業時間)だけで、既存のいずれのバージョンからも最新バージョンにバージョンアップできるようにする仕組みを提供する。
【0025】
より具体的には、図4(A)に示すように、図3で示した場合と同様のバージョンアップが重ねられたとすると、図4(B)に示すように、バージョンアップ毎に、(最新バーションの直前のバーションから)基本バージョンAにバージョンダウンさせるための更新ファイルを1つ追加すると共に、この基本バージョンAのファームウェアが保持する暗号鍵Aで暗号化された、最新バージョンへの更新ファイルを1つ再作成する。
【0026】
即ち、基本バージョンAであれば、最新バージョンへの更新ファイルを使って1回のバージョンアップ作業で最新バージョンNにバージョンアップでき、それ以外のバージョンであれば、基本バージョンAへの更新ファイルを使って一旦基本バージョンAにバージョンダウンした後、最新バージョンへの更新ファイルを使ってバージョンAから最新バージョンNにバージョンアップするという2回のバージョンアップ作業で済む。このファームウェア更新手順を実現するのが、ファームウェア更新ユーティリティ100である。図5は、ファームウェア更新ユーティリティ100の機能ブロックを示す図である。
【0027】
図5に示すように、ファームウェア更新ユーティリティ100は、現バージョン判定モジュール101、基本バージョン・ダウングレードモジュール102および最新バージョン・アップグレードモジュール103を有している。
【0028】
現バージョン判定モジュール101は、汎用バスを介して接続される周辺デバイス2に組み込まれたファームウェア20のバージョンを判定するモジュールである。基本バージョン・ダウングレードモジュール102は、任意のバージョンから基本バージョンAへとバージョンダウン(ダウングレード)するための更新ファイルをサーバ3から取得すると共に、その取得した更新ファイルを周辺デバイス2に転送し、当該更新ファイルを用いたファームウェアの更新を周辺デバイス2に実行させるモジュールである。そして、最新バージョン・アップグレードモジュール103は、基本バージョンAから最新バージョンへとバージョンアップ(アップグレード)するための更新ファイルをサーバ3から取得すると共に、その取得した更新ファイルを周辺デバイス2に転送し、当該更新ファイルを用いたファームウェアの更新を周辺デバイス2に実行させるモジュールである。
【0029】
なお、周辺デバイス2に組み込まれたファームウェア20の機能についても簡単に説明しておくと、ファームウェア20は、デバイス制御モジュール21、データ暗号/復号モジュール22およびセキュリティデータ保持部23を備えている。
【0030】
デバイス制御モジュール21は、周辺デバイス2の動作制御を司る基本モジュールであって、バージョンアップ時の更新対象となるモジュールである。データ暗号/復号モジュール22は、セキュリティデータ保持部23に保持された暗号鍵を使って、PC1から転送されて同じくセキュリティデータ保持部23に保持される更新ファイルの暗号化を解読する。セキュリティデータ保持部23は、外部からの不正な解析が行えないようにデータを保持するセキュアな記憶装置である。データ暗号/復号モジュール22による更新ファイルの復号が行われると、復号された新たなモジュールにデバイス制御モジュール21が書き換えられ、同時に、セキュリティデータ保持部23に保持される暗号鍵も変更されることになる。
【0031】
本PC1上にて、周辺デバイス2に組み込まれたファームウェア20に関するバージョンアップ指示の操作がなされると、まず、現バージョン判定モジュール101によるバージョン判定が行われる。もし、最新バージョンであれば、バージョンアップは不要であるので、当該指示操作に基づくバージョンアップ処理を終了する。
【0032】
また、基本バージョン以外であれば、基本バージョン・ダウングレードモジュール102による一時的な基本バージョンへのバージョンダウンが行われる。そして、現バージョン判定モジュール101により基本バージョンとして判定された場合または基本バージョン・ダウングレードモジュール102により基本バージョンへのバージョンダウンが行われた後、最新バージョン・アップグレードモジュール103による最新バージョンへのバージョンアップが行われる。
【0033】
これにより、既存のバージョン数分の更新ファイルが用意されていなくとも、任意のバージョン→基本バージョン→最新バージョンの最大2回で、いずれのバージョンからも最新バージョンへのバージョンアップが可能となる。
【0034】
図6は、本PC1によって実行されるファームウェア更新の動作手順を示すフローチャートである。
【0035】
周辺デバイス2に組み込まれたファームウェア20のバージョンアップ時、まず、当該ファームウェア20のバージョンを調べる(ステップA1)。もし、最新バージョンであったならば(ステップA2のYES)、バージョンアップ処理をその時点で終了する。
【0036】
一方、最新バージョンでなければ(ステップA2のNO)、続いて、基本バージョンかどうかを調べる(ステップA3)。そして、基本バージョンでなければ(ステップA3のNO)、一旦、基本バージョンへのバージョンダウンを実行する(ステップA4)。
【0037】
そして、基本バージョンから最新バージョンへのバージョンアップを実行し(ステップA5)、そのバージョンアップ処理を終了する。
【0038】
ところで、ここでは、任意のバージョンから最新バージョンへとバージョンアップさせるにあたって、(既存のバージョン中の1つである)初期バージョンである基本バージョンAに一旦バージョンダウンさせる例を説明したが、基本バージョンAに代えて、例えばファームウェア20を最新バージョンに更新するためだけの機能を持ち、周辺デバイス2を動作制御するための実体的な機能を持たない中間のバージョンに一時的に更新するようにしても良い。図7を参照して、この場合の基本原理を説明する。
【0039】
まず、更新ファイルを使った更新処理を実行する更新専用プログラムのみをファームウェア20に保有させる中間バージョンを定義する(図7(B)のバージョンZ)。このバージョンZに更新された場合、ファームウェア20は、暗号鍵Zを保持することになるものとする。
【0040】
そして、バージョンアップが発生すると、その度に、最新の直前のバージョンから当該バージョンZに更新するための更新ファイルを追加すると共に(図7(A))、バージョンZから最新バージョンに更新するための更新ファイルを再作成する(図7(C))。バージョンZから最新バージョンに更新するための更新ファイルとは、暗号鍵Zで暗号化された、最新バージョンに更新するための更新ファイルである。この場合のファームウェア更新の動作手順を図8に示す。
【0041】
周辺デバイス2に組み込まれたファームウェア20のバージョンアップ時、まず、当該ファームウェア20のバージョンを調べる(ステップB1)。もし、最新バージョンであったならば(ステップB2のYES)、バージョンアップ処理をその時点で終了する。
【0042】
一方、最新バージョンでなければ(ステップB2のNO)、中間バージョンへのバージョンアップを実行し(ステップB3)、続いて、当該中間バージョンから最新バージョンへのバージョンアップを実行する(ステップB4)。
【0043】
この手順によっても、任意のバージョン→中間バージョン→最新バージョンの2回で、いずれのバージョンからも最新バージョンへのバージョンアップが可能となる。
【0044】
以上のように、本PC1によれば、ファームウェアの任意のバージョンから最新のバージョンへの更新を効率的に行うことが可能となる。
【0045】
なお、以上の実施形態では、更新ファイルを通信ネットワークB経由でサーバ3から取得する例を説明したが、例えば種々の(暗号化された)更新ファイルを格納する記録メディアの頒布を受け、この記録メディアから目的の更新ファイルを読み出して周辺デバイス2に組み込まれたファームウェア20をバージョンアップするようにしても良い。
【0046】
つまり、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【0047】
【図1】この発明の実施形態に係る情報処理装置(パーソナルコンピュータ)の一動作環境例を示す図
【図2】同実施形態の情報処理装置の一概略構成例を示す図
【図3】従来のファームウェア更新手順を説明するための概念図
【図4】同実施形態の情報処理装置におけるファームウェア更新手順を説明するための概念図
【図5】同実施形態の情報処理装置上で動作するファームウェア更新ユーティリティの機能ブロックを示す図
【図6】同実施形態の情報処理装置によって実行されるファームウェア更新の動作手順を示すフローチャート
【図7】同実施形態の情報処理装置におけるファームウェア更新手順(変形例)を説明するための概念図
【図8】同実施形態の情報処理装置によって実行されるファームウェア更新の動作手順(変形例)を示すフローチャート
【符号の説明】
【0048】
1…情報処理装置(PC)、2…周辺デバイス、3…サーバ、11…CPU、12…主メモリ、13…磁気ディスク駆動装置(HDD)、14…ディスプレイコントローラ、15…キーボードコントローラ、16…I/Oコントローラ、17…ネットワークコントローラ、20…ファームウェア、21…デバイス制御モジュール、22…復号モジュール、23…セキュリティデータ保持部、100…ファームウェア更新ユーティリティ、101…現バージョン判定モジュール、102…基本バージョン・ダウングレードモジュール、103…最新バージョン・アップグレードモジュール。

【特許請求の範囲】
【請求項1】
バージョンの更新時に保持する暗号鍵が変更されるファームウェアが組み込まれたデバイスを内蔵または外部接続する情報処理装置において、
前記ファームウェアのバージョンを取得するバーション取得手段と、
前記バーション取得手段により取得されたバージョンのファームウェアが保持する暗号鍵で復号可能に暗号化された、前記ファームウェアを所定のバージョンに更新するための更新ファイルを前記デバイスに転送して、前記デバイスのファームウェアのバージョンを前記所定のバージョンに更新させる第1のバージョン更新手段と、
前記所定のバーションのファームウェアが保持する暗号鍵で復号可能に暗号化された、前記ファームウェアを最新のバージョンに更新するための更新ファイルを前記デバイスに転送して、前記デバイスのファームウェアのバージョンを最新のバージョンに更新させる第2のバージョン更新手段と
を具備することを特徴とする情報処理装置。
【請求項2】
通信手段と、
前記通信手段を介して他の情報処理装置から前記更新ファイルを取得するダウンロード手段と、
をさらに具備することを特徴とする請求項1記載の情報処理装置。
【請求項3】
前記所定のバージョンは、初期バージョンであることを特徴とする請求項1記載の情報処理装置。
【請求項4】
前記所定のバーションは、前記ファームウェアを最新のバージョンに更新するための更新ファイルに施された暗号化を復号可能な暗号鍵を保持する状態に前記ファームウェアを一時的に移行させるために設けられるものであることを特徴とする請求項1記載の情報処理装置。
【請求項5】
前記バージョン取得手段により取得されたバージョンが最新または前記所定のバージョンか否かを判定する判定手段をさらに具備し、
前記第1のバージョン更新手段は、前記判定手段により最新または前記所定のバージョンでないと判定された場合に、前記ファームウェアの前記所定のバージョンへの更新を前記デバイスに実行させ、
前記第2のバージョン更新手段は、前記判定手段により最新のバージョンでないと判定された場合に、前記ファームウェアの前記所定のバージョンからの最新のバージョンへの更新を前記デバイスに実行させる
ことを特徴とする請求項1記載の情報処理装置。
【請求項6】
バージョンの更新時に保持する暗号鍵が変更されるファームウェアが組み込まれたデバイスを内蔵または外部接続する情報処理装置のファームウェア更新方法であって、
前記ファームウェアのバージョンを取得し、
前記取得したバーションが最新または所定のバージョンでない場合、前記取得したバージョンのファームウェアが保持する暗号鍵で復号可能に暗号化された、前記ファームウェアを所定のバージョンに更新するための更新ファイルを前記デバイスに転送して、前記デバイスのファームウェアのバージョンを前記所定のバージョンに更新させ、
前記取得したバーションが最新のバージョンでない場合、前記所定のバーションのファームウェアが保持する暗号鍵で復号可能に暗号化された、前記ファームウェアを最新のバージョンに更新するための更新ファイルを前記デバイスに転送して、前記デバイスのファームウェアのバージョンを最新のバージョンに更新させる
ことを特徴とするファームウェア更新方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate