JP2007041694A - Upgrade method of firmware - Google Patents

Upgrade method of firmware Download PDF

Info

Publication number
JP2007041694A
JP2007041694A JP2005222968A JP2005222968A JP2007041694A JP 2007041694 A JP2007041694 A JP 2007041694A JP 2005222968 A JP2005222968 A JP 2005222968A JP 2005222968 A JP2005222968 A JP 2005222968A JP 2007041694 A JP2007041694 A JP 2007041694A
Authority
JP
Japan
Prior art keywords
firmware
program
installation
hash value
upgrade
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.)
Withdrawn
Application number
JP2005222968A
Other languages
Japanese (ja)
Inventor
Nobuaki Fukazawa
伸朗 深澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2005222968A priority Critical patent/JP2007041694A/en
Publication of JP2007041694A publication Critical patent/JP2007041694A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To make it possible to carry out upgrade only to a permitted kind of firmware when a user performs upgrade of firmware. <P>SOLUTION: 1. The firmware for upgrade has a hash value list of the firmware before being permitted. 2. A device performs comparison of the hash value list with the hash value of the firmware currently under operation and if in agreement, upgrade is performed. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

CPUを持ち、ファームウェアをインストールすることによって動作するデバイスに関する。   It relates to a device that has a CPU and operates by installing firmware.

従来、ファームウェアによって動作するデバイスは、ユーザによってバージョンアップすることが可能なものがあった。その際、本来許可されていないユーザのデバイスに対して高機能なファームウェアをインストールされてしまうことを防ぐため、以下のような施策のうちの1つ、または複数を施すことがあった。   Conventionally, some devices that operate on firmware can be upgraded by a user. At that time, in order to prevent a highly functional firmware from being installed on a user device that is not originally permitted, one or more of the following measures may be taken.

個々のデバイスは唯一の番号を持ち、ファームウェア製造者は許可されたユーザが使用するデバイスの番号をファームウェアに付与する。インストール実行時に、インストールプログラムはデバイスの持つ番号とインストールするファームウェアが持つ番号を調べ、一致すればインストールが行われる。   Each device has a unique number and the firmware manufacturer gives the firmware the device number used by the authorized user. When the installation is executed, the installation program checks the number of the device and the number of the firmware to be installed, and if they match, the installation is performed.

デバイスは電源ON時に、デバイスの保持する番号と、実行するファームウェアが持つ番号が一致すれば、動作を開始する。   When the device is turned on, if the number held by the device matches the number of the firmware to be executed, the device starts its operation.

ユーザのデバイスで動作中のファームウェアは唯一の番号を持ち、ファームウェア製造者はユーザに提供する新しいファームウェアに対して、対象となるユーザが保持するデバイスのファームウェアと同値な番号を付与し、インストールプログラムはインストール時に前記番号を検査し、一致すればインストールを実行する。   The firmware running on the user's device has a unique number, and the firmware manufacturer gives the new firmware provided to the user a number equivalent to the firmware of the device held by the target user, and the installation program The number is checked at the time of installation, and if it matches, the installation is executed.

ユーザは現在動作しているファームウェアに対して与えられる唯一の番号を保持しており、ファームウェア製造者は新たに提供するファームウェアに対して対象とするユーザが持つ番号と同値な番号を付与しておき、インストールプログラムはインストール時にユーザに前記番号を要求し、一致すればインストールを開始する。   The user holds a unique number assigned to the currently operating firmware, and the firmware manufacturer assigns a number equivalent to the number of the target user to the newly provided firmware. The installation program requests the number from the user at the time of installation, and starts the installation if they match.

上記はすべてユーザごとに、もしくは個々のファームウェアごとに(同じ機能のファームウェアであっても個別に)バージョンアップを管理する方法である。ユーザが不正に新しい高機能なファームウェアを入手した場合の、インストールおよびファームウェアの実行を防ぐことができる。   The above is a method for managing version upgrades for each user or for each individual firmware (individually even firmware having the same function). Installation and execution of firmware can be prevented when a user illegally obtains new high-performance firmware.

ファームウェアは保持する機能によって種類に分けて管理されており、各種類ごとに唯一の番号を持ち、インストールプログラムは、新たに提供されたファームウェアが持つ番号と、現在動作中のファームウェアが持つ番号を比較し、一致した場合のみインストールを実行する。   Firmware is managed by type depending on the functions it holds. Each type has a unique number, and the installation program compares the number of the newly provided firmware with the number of the currently operating firmware. If it matches, install only.

ファームウェアは保持する機能、配布・公開された日時、バージョンなどによって種類に分けて管理されており、各種類ごとに唯一の番号を持ち、新たに提供されたファームウェアはインストール可能な前記番号を持ち、インストールプログラムは現在動作中のファームウェアの番号と、前記番号を比較し、一致した場合にインストールを実施する。   The firmware is managed by type depending on the function to be held, the date and time of distribution / release, version, etc., each type has a unique number, the newly provided firmware has the number that can be installed, The installation program compares the number of the currently operating firmware with the number, and if the numbers match, the installation program is installed.

上記(5)〜(6)は、ファームウェアの種類ごとに(たとえば、同じ機能のファームウェアは識別せずに)バージョンアップを管理する方法である。ユーザごとに管理しない製品において、許可されていない高機能なファームウェアのインストール、保守対象としないバージョンに対するバージョンアップを防ぐことが可能である。   The above (5) to (6) are methods for managing version upgrades for each type of firmware (for example, without identifying firmware having the same function). For products that are not managed for each user, it is possible to prevent installation of high-performance firmware that is not permitted and version upgrades that are not subject to maintenance.

又、従来例としては、例えば特許文献1と特許文献2をあげることが出来る。
特開2004−86771号公報 特開平09−244886号公報
Moreover, as a prior art example, patent document 1 and patent document 2 can be mention | raise | lifted, for example.
JP 2004-86771 A JP 09-244886 A

(1)〜(4)の方法でファームウェアのバージョンアップを管理しようとすると、次のような課題があった。   When trying to manage firmware upgrades by the methods (1) to (4), there are the following problems.

ファームウェア製造者は、ユーザのデバイスが保持する番号、ユーザのデバイスで動作中のファームウェアが保持する番号、およびそのバージョンなどを、「ユーザごと」に管理し、指定したユーザに対して唯一のファームウェアを作成する必要があった。しかしユーザごとに管理を必要としない製品もあり、そのような製品のファームウェアのバージョンアップにおいて、ユーザごとの管理はファームウェア製造者にとって負担が大きいため不適と言える。   The firmware manufacturer manages the number held by the user's device, the number held by the firmware running on the user's device, its version, etc., on a “per user” basis. There was a need to create. However, there are products that do not require management for each user, and it can be said that management for each user is unsuitable for updating the firmware of such products because the burden on the firmware manufacturer is large.

(5)〜(6)の方法でファームウェアのバージョンアップを管理しようとすると、次のような課題があった。   When trying to manage firmware upgrades by the methods (5) to (6), there are the following problems.

ファームウェアの番号が型番号、バージョン番号、シリアル番号などでは、悪意のあるユーザにとっては解析されやすく、別の種類に区分されている高機能なファームウェアを、それが持つ番号を改ざんし、別の低機能な種類のファームウェアに対してインストールされてしまう可能性がある。   If the firmware number is a model number, version number, serial number, etc., it is easy for a malicious user to analyze, and a high-performance firmware that is classified into another type is tampered with by changing its number. It may be installed for functional types of firmware.

また、上記の課題を解決するにあたって、以下の件も考慮しなければならない。   In order to solve the above problems, the following matters must be taken into consideration.

デバイス自身で判定させ、他に機材を必要としない。   Let the device judge itself, no other equipment is required.

従来のファームウェアのバージョンアップと同等の手順、手間とし、ユーザに不便をかけさせない。   The procedure and effort are the same as the conventional firmware version upgrade, and the user is not inconvenienced.

上記問題を解決するため、以下の手段を講じる。   In order to solve the above problems, the following measures are taken.

バージョンアップ用のファームウェアは、そのファームウェアにバージョンアップすることが許可されている以前のファームウェアのHASH値リストを持つ。   The firmware for upgrading has a HASH value list of previous firmware that is permitted to be upgraded to that firmware.

インストールプログラムは、ファームウェアをバージョンアップするときに、ファームウェアが保持するHASH値リストと現在動作中のファームウェアのHASH値との比較を行い、一致していればバージョンアップを実行する。   When upgrading the firmware, the installation program compares the HASH value list held by the firmware with the HASH value of the currently operating firmware, and if they match, upgrades the version.

HASH値の作成は(ファームウェア+秘密値)から作成し、秘密値を変更することによって、バージョンアップの対象とする以前のファームウェアのHash値リスト値を変更する。   The HASH value is created from (firmware + secret value), and by changing the secret value, the Hash value list value of the previous firmware to be upgraded is changed.

これらの手段を講じることにより、以下の作用を得ることができる。   By taking these measures, the following actions can be obtained.

バージョンアップが許可されていないファームウェアに対して、ユーザがバージョンアップを実行することを防ぐことが出来る。   It is possible to prevent the user from executing version upgrade for firmware that is not permitted to be upgraded.

インストールプログラムを実行するデバイス自身がバージョンアップの可否を判断し、バージョンアップの可否のために他の機材を必要としない。
判定する基準が単なる番号ではなく、現在動作しているファームウェアのHash値で行うことにより、以下のメリットが得られる。
The device itself that executes the installation program determines whether or not the upgrade is possible, and no other equipment is required for the upgrade.
By using the hash value of the currently operating firmware instead of a simple number as the criterion for determination, the following advantages can be obtained.

型番情報、バージョン情報等分かりやすい情報ではなく、ファームウェアに秘密値を加えたHash値で判定するため、バージョンアップ可能なファームウェアの情報を、Hash値リストから特定することは困難であるといえる。そのため、悪意のあるユーザによりHash値リストを書き換えられて勝手にバージョンアップされる可能性を低くすることができる。特に、秘密値を1つのファームウェア内に複数持つ、秘密値の変更をリリースするファームウェアごとに変更する、などを行えば、ハッキングされる可能性を非常に低くすることが可能である。   Since it is determined not by easy-to-understand information such as model number information and version information but by a hash value obtained by adding a secret value to the firmware, it can be said that it is difficult to specify firmware information that can be upgraded from the hash value list. Therefore, it is possible to reduce the possibility that the Hash value list is rewritten by a malicious user and the version is arbitrarily upgraded. In particular, if there is a plurality of secret values in one firmware, or changes are made for each firmware that releases secret value changes, the possibility of hacking can be made very low.

ファームウェアが自分の番号情報を持っておく必要がない。(HASH値はファームウェアから生成できるため)   The firmware does not need to have its own number information. (Because HASH values can be generated from firmware)

本発明の効果として、以下の事項が挙げられる。   The following matters are mentioned as effects of the present invention.

バージョンアップが許可されていないファームウェアに対して、ユーザがバージョンアップを実行することを防ぐことが出来る。   It is possible to prevent the user from executing version upgrade for firmware that is not permitted to be upgraded.

インストールプログラムを実行するデバイス自身がバージョンアップの可否を判断し、バージョンアップの可否のために他の機材を必要としない。   The device itself that executes the installation program determines whether or not the version can be upgraded, and no other equipment is required for the upgrade.

判定する基準が単なる番号ではなく、現在動作しているファームウェアのHash値で行うことにより、以下のメリットが得られる。   By using the Hash value of the currently operating firmware instead of a simple number as the criterion for determination, the following advantages can be obtained.

型番情報、バージョン情報等分かりやすい情報ではなく、ファームウェアに秘密値を加えたHash値で判定するため、バージョンアップ可能なファームウェアの情報を、Hash値リストから特定することは困難であるといえる。そのため、悪意のあるユーザによりHash値リストを書き換えられて勝手にバージョンアップされる可能性を低くすることができる。特に、秘密値を1つのファームウェア内に複数持つ、秘密値の変更をリリースするファームウェアごとに変更する、などを行えば、ハッキングされる可能性を非常に低くすることが可能である。   Since it is determined not by easy-to-understand information such as model number information and version information but by a hash value obtained by adding a secret value to the firmware, it can be said that it is difficult to specify firmware information that can be upgraded from the hash value list. Therefore, it is possible to reduce the possibility that the Hash value list is rewritten by a malicious user and the version is arbitrarily upgraded. In particular, if there is a plurality of secret values in one firmware, or changes are made for each firmware that releases secret value changes, the possibility of hacking can be made very low.

HASH値はファームウェアから生成できるため、ファームウェアが自分の番号情報を持っておく必要がない。   Since the HASH value can be generated from the firmware, it is not necessary for the firmware to have its own number information.

本発明は以下に詳述するように、デバイスのファームウェアをバージョンアップする方法に関するものである。   The present invention relates to a method for upgrading the firmware of a device, as will be described in detail below.

図1は、本実施例のネットワークシステムが動作可能な構成を示す図である。
図1において、110は単機能プリンタ(以下SFP(SingleFunctionPrinter)と呼ぶ)、120は複合機(以下MFP(Multi Function Printer)と呼ぶ)であり、それぞれLAN100に接続されている。
FIG. 1 is a diagram illustrating a configuration in which the network system of this embodiment can operate.
In FIG. 1, reference numeral 110 denotes a single function printer (hereinafter referred to as SFP (Single Function Printer)), and reference numeral 120 denotes a multifunction peripheral (hereinafter referred to as MFP (Multi Function Printer)), which is connected to the LAN 100.

SFP110、MFP120はPC130からネットワークを介して印刷ジョブを受信し印刷処理を行う。また、SFP110、MFP120はPC130からの指示により、新規ファームウェアのインストール要求を受信し、可能であれば新規ファームウェアプログラムを受信し、インストールを実行する。140はファイアウォールであり、LAN100を外部のインタネット150に接続する。またLAN100はファイアウォール140、インタネット150を介して更に別のネットワーク160に接続される。   The SFP 110 and MFP 120 receive a print job from the PC 130 via the network and perform print processing. In addition, the SFP 110 and the MFP 120 receive a new firmware installation request according to an instruction from the PC 130, and if possible, receive a new firmware program and execute installation. A firewall 140 connects the LAN 100 to the external Internet 150. The LAN 100 is connected to a further network 160 via a firewall 140 and the Internet 150.

図2は、一般的なパーソナルコンピュータの内部構成を示した図であり、図1におけるPC130の内部構成はこのようになっている。PC200は、ROM202もしくはハードディスク(HD)211に記憶された、あるいはフレキシブルディスクドライブ(FD)212より供給される各種ソフトウェアを実行するCPU201を備え、システムバス204に接続される各機器を総括的に制御する。203はRAMで、CPU201の主メモリ、ワークエリア等として機能する。205はキーボードコントローラ(KBC)で、キーボード(KB)209や不図示のポインティングデバイス等からの指示入力を制御する。206はCRTコントローラ(CRTC)で、CRTディスプレイ(CRT)210の表示を制御する。207はディスクコントローラ(DKC)で、ブートプログラム、本発明を実現するプログラム、種々のアプリケーション、編集ファイル、ユーザファイル等を記憶するハードディスク(HD)211およびフレキシブルディスクコントローラ(FD)212とのアクセスを制御する。208はネットワークインタフェースカード(NIC)で、LAN220を介して、ネットワークプリンタ、他のネットワーク機器あるいは他のPCと双方向にデータをやりとりする。   FIG. 2 is a diagram showing an internal configuration of a general personal computer, and the internal configuration of the PC 130 in FIG. 1 is as described above. The PC 200 includes a CPU 201 that executes various kinds of software stored in the ROM 202 or the hard disk (HD) 211 or supplied from the flexible disk drive (FD) 212, and comprehensively controls each device connected to the system bus 204. To do. A RAM 203 functions as a main memory, work area, and the like for the CPU 201. A keyboard controller (KBC) 205 controls instruction input from a keyboard (KB) 209 or a pointing device (not shown). Reference numeral 206 denotes a CRT controller (CRTC) that controls display on a CRT display (CRT) 210. A disk controller (DKC) 207 controls access to the hard disk (HD) 211 and the flexible disk controller (FD) 212 for storing a boot program, a program for realizing the present invention, various applications, editing files, user files, and the like. To do. A network interface card (NIC) 208 bi-directionally exchanges data with a network printer, another network device, or another PC via the LAN 220.

なお、本実施例においては、LAN220は図1におけるLAN100と同じものである。   In this embodiment, the LAN 220 is the same as the LAN 100 in FIG.

図3において、300は、本発明プログラムが稼動するMFPまたはSFPの内部構成の一例であり、図1における110、120と同等である。デバイス300は、ROM302もしくはハードディスク(HD)310に記憶された、あるいはフレキシブルディスクドライブ(FD)311より供給される各種プログラムを実行するCPU301を備え、システムバス304に接続される各機器を総括的に制御する。303はRAMで、CPU301の主メモリ、ワークエリア等として機能する。305はユーザインタフェースコントローラ(UIC)で、ユーザインタフェース(UI)309への表示、309からの指示入力を制御する。ファンクションコントローラ(FUNCC)306は各デバイス特有の機能であるファンクション(FUNC)310を実現/制御する。モノクロプリンタであればモノクロプリントエンジンコントローラとモノクロプリントエンジン、カラープリンタであればカラープリントエンジンコントローラとカラープリントエンジン、MFPであればデバイス300は各機能のファンクションコントローラ(FUNCC)306とファンクション(FUNC)310をそれぞれ持つ。307はディスクコントローラ(DKC)で、ブートプログラム、本発明の動作を行うプログラム、種々のアプリケーション、データファイルを記憶するハードディスク(HD)311およびフレキシブルディスクコントローラ(FD)312とのアクセスを制御する。308はネットワークインタフェースカード(NIC)で、LAN320を介して、ネットワークプリンタ、他のネットワーク機器あるいは他のPCと双方向にデータをやりとりする。なお、本実施例においては、LAN320は図1におけるLAN100、LAN190と同じものである。   3, 300 is an example of the internal configuration of the MFP or SFP in which the program of the present invention is run, and is equivalent to 110 and 120 in FIG. The device 300 includes a CPU 301 that executes various programs stored in a ROM 302 or a hard disk (HD) 310 or supplied from a flexible disk drive (FD) 311, and generally controls each device connected to the system bus 304. Control. A RAM 303 functions as a main memory, work area, and the like for the CPU 301. A user interface controller (UIC) 305 controls display on the user interface (UI) 309 and instruction input from the 309. A function controller (FUNCC) 306 realizes / controls a function (FUNC) 310 that is a function unique to each device. In the case of a monochrome printer, a monochrome print engine controller and a monochrome print engine, in the case of a color printer, a color print engine controller and a color print engine, and in the case of an MFP, the device 300 includes a function controller (FUNCC) 306 and a function (FUNC) 310 for each function. Have each. Reference numeral 307 denotes a disk controller (DKC) which controls access to a hard disk (HD) 311 and a flexible disk controller (FD) 312 for storing a boot program, a program for performing the operation of the present invention, various applications, and data files. A network interface card (NIC) 308 bi-directionally exchanges data with a network printer, another network device, or another PC via the LAN 320. In this embodiment, the LAN 320 is the same as the LAN 100 and the LAN 190 in FIG.

図4は、本発明の印刷システムにおけるMFPとSFPのインストール動作の説明図である。410はメディアであり、バージョンアップ用のファームウェアプログラム411とバージョンアップ対象となるファームウェアのハッシュ値のリスト412を格納している。420、421はMFPまたはSFPを表すデバイスであり、図1における110、120と同等である。デバイス420で動作中のファームウェアプログラムHash2で表され、ハッシュ値リスト412に表示されている。したがって、このメディア410に格納されているバージョンアップ用ファームウェアプログラムはデバイス420に対してインストール可能であることが分かる。ところがデバイス421のハッシュ値はHash8であり、ハッシュ値リスト412には存在しない。よって、デバイス421はメディア410に格納されているファームウェアプログラムのインストールは許可されない。   FIG. 4 is an explanatory diagram of the installation operation of the MFP and SFP in the printing system of the present invention. Reference numeral 410 denotes a medium which stores a firmware program 411 for upgrading and a hash value list 412 of firmware to be upgraded. Reference numerals 420 and 421 denote devices representing MFPs or SFPs, which are equivalent to 110 and 120 in FIG. It is represented by a firmware program Hash2 operating on the device 420 and displayed in the hash value list 412. Therefore, it can be seen that the upgrade firmware program stored in the medium 410 can be installed in the device 420. However, the hash value of the device 421 is Hash8 and does not exist in the hash value list 412. Therefore, the device 421 is not permitted to install the firmware program stored in the medium 410.

図5は本発明の動作における、インストール動作のシーケンス図である。PC510において、インストール操作が開始されると、デバイス520へインストールプログラムが転送される。その際、ハッシュ値リストも同時に転送される。デバイス520はインストールプログラムの処理を開始させ、まず、現在デバイスで動作しているファームウェアのハッシュ値を算出し(521)、受信したハッシュ値リストに、算出したハッシュ値があるか否かを調べ(521、522)、存在すれば新規ファームウェアのインストール処理を開始する(523)。その後、PC510からファームウェアプログラムのデータを受信し(513~515)、インストールを実行する(524)。   FIG. 5 is a sequence diagram of the installation operation in the operation of the present invention. When the installation operation is started in the PC 510, the installation program is transferred to the device 520. At this time, the hash value list is also transferred at the same time. The device 520 starts the processing of the installation program, first calculates the hash value of the firmware currently operating on the device (521), and checks whether or not the calculated hash value is in the received hash value list ( 521, 522), if it exists, the new firmware installation process is started (523). Thereafter, the firmware program data is received from the PC 510 (513 to 515), and the installation is executed (524).

図6は本発明におけるハッシュ値の算出を表す式である。本発明におけるハッシュ値とは、ファームウェアのデータにインストールプログラムが秘密に保持する秘密値をあわせてハッシュ関数H( )に入力し、その出力のことを指す。   FIG. 6 is an expression representing calculation of a hash value in the present invention. The hash value in the present invention refers to the output of the firmware data that is input to the hash function H () together with the secret value held secretly by the installation program.

図7はデバイスで動作するファームウェアプログラムのフローチャートである。まず、電源が投入されるとデバイスの初期化処理を行い(処理710)、初期化が終了すると外部からの要求待ちとなる(処理711)。新規ファームウェアインストール要求を受信すると、インストールプログラムの受信を行う(処理720)。その他の要求を受信すると、その他の処理を行い(処理730)、再び外部からの要求待ち(処理711)となる。処理720を終了後、デバイスのブートプログラムを、インストールプログラムが起動するように設定し(処理721)、リブートを行い(処理722)、処理を終了する(処理799)。   FIG. 7 is a flowchart of a firmware program operating on the device. First, when the power is turned on, a device initialization process is performed (process 710). When the initialization is completed, an external request is waited (process 711). When a new firmware installation request is received, an installation program is received (process 720). When another request is received, other processing is performed (processing 730), and the request from the outside is again waited (processing 711). After the processing 720 is completed, the boot program of the device is set so that the installation program is activated (processing 721), reboot is performed (processing 722), and the processing is ended (processing 799).

図8は図7の処理720で受信するインストールプログラムのフローチャートである。まず、現在動作中のファームウェアのハッシュ値を、図6のとおりに作成する(処理810)。インストールプログラムが保持するハッシュ値リストから、前記算出したハッシュ値を検索し(処理811)、ハッシュ値リストに前記算出したハッシュ値が含まれていれば、処理821へ進む。無ければ処理830へ進む。処理820では新規ファームウェアのダウンロードを図5のPC510から行い、ファームウェアの検査を行いダウンロードが成功したか否かを判定する(処理821)。ダウンロードが成功した場合は処理840へ進み、失敗と判定されれば処理830へ進む。処理840では、ダウンロードした新規ファームウェアが、次回リブート後に動作開始するように設定し(処理840)、デバイスをリブートする(処理841)。処理830ではファームウェアの更新が失敗したことをパネル表示またはPC510へ通知する。その後、処理831にて今まで稼動していたファームウェアが動作するように設定し、処理841へ進む。   FIG. 8 is a flowchart of the installation program received in the process 720 of FIG. First, a hash value of the currently operating firmware is created as shown in FIG. 6 (process 810). The calculated hash value is searched from the hash value list held by the installation program (process 811). If the calculated hash value is included in the hash value list, the process proceeds to process 821. If not, the process proceeds to process 830. In process 820, the new firmware is downloaded from the PC 510 in FIG. 5, and the firmware is inspected to determine whether the download was successful (process 821). If the download is successful, the process proceeds to process 840. If it is determined that the download has failed, the process proceeds to process 830. In process 840, the downloaded new firmware is set to start operation after the next reboot (process 840), and the device is rebooted (process 841). In process 830, the panel display or the PC 510 is notified that the firmware update has failed. Thereafter, in the process 831, the firmware that has been operated so far is set to operate, and the process proceeds to the process 841.

図9は、デバイスのインストール動作時に関係するプログラムのメモリマップである。CPUが電源投入後、最初に参照するアドレスがAddress A(アドレス910)であり、Address Aを先頭にブートプログラムが格納されている。Address B(アドレス920)、Address C(アドレス930)にはファームウェアプログラムが格納されているエリアの先頭アドレスであり、Address Dを先頭にしたエリアにはインストールプログラムが格納される。   FIG. 9 is a memory map of programs related to the device installation operation. After the CPU is turned on, the first address to be referenced is Address A (address 910), and the boot program is stored with Address A as the head. Address B (address 920) and Address C (address 930) are the top addresses of the area where the firmware program is stored, and the installation program is stored in the area starting with Address D.

ブートプログラムはどのプログラムを実行するかが設定されており、仮にここで現在稼動中のファームウェアプログラムがファームウェア0格納エリア(エリア921)に格納されているとすると、ブートプログラムはアドレス920から処理を実行するように設定されている。図7において、処理711のようにインストール要求を受信した場合、まずインストールプログラム格納エリア(エリア941)にインストールプログラムを格納し(処理720)、処理721で次回起動時はアドレス940からの処理を実行するように設定される。その後リブートされ、図8のインストールプログラムのフローに従って処理を実行し、処理820で新規ファームウェアプログラムのダウンロードを行う際には、ファームウェア1格納エリア(エリア931)へ格納する。新規ファームウェアのダウンロードが終了すると、ブートプログラムがアドレス930から処理を実行するように設定され(処理840)、デバイスをリブート(処理841)後、アドレス830から処理が開始され、新規ファームウェアの実行が開始される。   The boot program is set as to which program is to be executed. If the currently active firmware program is stored in the firmware 0 storage area (area 921), the boot program executes processing from the address 920. It is set to be. In FIG. 7, when an installation request is received as in process 711, the install program is first stored in the install program storage area (area 941) (process 720), and the process from address 940 is executed at the next start in process 721. Set to do. Thereafter, the system is rebooted, and the process is executed according to the flow of the installation program shown in FIG. 8. When a new firmware program is downloaded in process 820, it is stored in the firmware 1 storage area (area 931). When the download of the new firmware is completed, the boot program is set to execute the process from the address 930 (process 840). After the device is rebooted (process 841), the process is started from the address 830 and the execution of the new firmware is started. Is done.

図10は、記憶媒体の一例であるCD−ROMのメモリマップを示す図である。9999はディレクトリ情報を記憶してある領域で、以降のインストールプログラムを記憶してある領域9998およびデバイス用のインストールプログラムを記憶してある領域9997、デバイス用の新規ファームウェアプログラムを記憶してある領域9996の位置を示している。9998は、PC上でデバイスへ領域9996のインストールを実行するプログラムを記憶している領域である。9997は、デバイス上で動作するインストールを実行するプログラムを記憶してある領域である。9996は、デバイスのファームウェアプログラムを記憶してある領域である。9996に記憶されているプログラムが、例えばPC200を使用して印刷デバイス300にインストールされる際には、まずインストールプログラムを記憶してある領域9998に記憶されているインストールプログラムがPC200にロードされ、CPU201によって実行される。次に、CPU201によって実行されるインストールプログラムが、デバイス用インストールプログラムを記憶してある領域9997を印刷デバイス300に転送し、CPU301によって実行される。次にCPU301によって実行されるデバイス用インストールプログラムが、PC200へデバイス用ファームウェアの要求を行い、PC200はインストールプログラムによってデバイス用ファームウェアを印刷デバイス300へ送信し、印刷デバイス300はデバイス用インストールプログラムによってデバイス用ファームウェアをハードディスク311に格納する。   FIG. 10 is a diagram showing a memory map of a CD-ROM which is an example of a storage medium. 9999 is an area in which directory information is stored, an area 9998 in which subsequent installation programs are stored, an area 9997 in which installation programs for devices are stored, and an area 9996 in which new firmware programs for devices are stored. Indicates the position. An area 9998 stores a program for executing the installation of the area 9996 on the device on the PC. Reference numeral 9997 denotes an area in which a program for executing installation that operates on the device is stored. Reference numeral 9996 denotes an area in which a device firmware program is stored. When the program stored in 9996 is installed in the printing device 300 using, for example, the PC 200, the installation program stored in the area 9998 storing the installation program is first loaded into the PC 200, and the CPU 201 Executed by. Next, the installation program executed by the CPU 201 transfers the area 9997 storing the device installation program to the printing device 300 and is executed by the CPU 301. Next, the device installation program executed by the CPU 301 requests the device firmware to the PC 200, the PC 200 transmits the device firmware to the printing device 300 by the installation program, and the printing device 300 uses the device installation program for the device. Firmware is stored in the hard disk 311.

なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェース機器、リーダなど)から構成されるシステムあるいは統合装置に適用しても、ひとつの機器からなる装置に適用してもよい。   Note that the present invention may be applied to a system or an integrated device including a plurality of devices (for example, a host computer, an interface device, a reader, etc.) or an apparatus including a single device.

また、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、本発明の目的が達成されることは言うまでもない。   In addition, a storage medium in which a program code of software that realizes the functions of the above-described embodiments is supplied to a system or apparatus, and the computer (or CPU or MPU) of the system or apparatus stores the program code in the storage medium. It goes without saying that the object of the present invention can also be achieved by reading and executing.

この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。   In this case, the program code itself read from the storage medium realizes the novel function of the present invention, and the storage medium storing the program code constitutes the present invention.

プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM,CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。   As a storage medium for supplying the program code, for example, a flexible disk, a hard disk, an optical disk, a magneto-optical disk, a CD-ROM, a CD-R, a magnetic tape, a nonvolatile memory card, a ROM, or the like can be used.

また、コンピュータが読み出したプログラムコードを実行することによって、前述した実施形態の機能が実現される他、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOSなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。   In addition, the functions of the above-described embodiments are realized by executing the program code read by the computer, and the OS running on the computer is part of the actual processing based on the instruction of the program code. Alternatively, the functions of the above-described embodiment can be realized by performing all of them and performing the processing.

さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。   Further, after the program code read from the storage medium is written to a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer, the function expansion is performed based on the instruction of the program code. The CPU or the like provided in the board or the function expansion unit performs part or all of the actual processing, and the functions of the above-described embodiments can be realized by the processing.

なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体から、そのプログラムをパソコン通信など通信ラインを介して要求者にそのプログラムを配信する場合にも適用できることは言うまでもない。   The present invention can also be applied to a case where the program is distributed to a requester via a communication line such as personal computer communication from a storage medium in which a program code of software realizing the functions of the above-described embodiments is recorded. Needless to say.

本実施例の印刷システムの構成を示す図。1 is a diagram illustrating a configuration of a printing system according to an embodiment. 一般的なパーソナルコンピュータの内部構成を示した図。The figure which showed the internal structure of the general personal computer. 一般的な画像形成装置の内部構成を示した図。1 is a diagram illustrating an internal configuration of a general image forming apparatus. PCと画像形成装置のモデル図。Model diagram of PC and image forming apparatus. PCと画像形成装置との間のシーケンス図の一例。An example of a sequence diagram between a PC and an image forming apparatus. ハッシュ値の算出式。Hash value calculation formula. 画像形成装置のフローチャートの一例。1 is an example of a flowchart of an image forming apparatus. 画像形成装置のフローチャートの一例。1 is an example of a flowchart of an image forming apparatus. 画像形成装置のメモリマップの一例。An example of the memory map of an image forming apparatus. 本発明のプログラムの記憶媒体におけるメモリマップの一例。An example of the memory map in the storage medium of the program of this invention.

Claims (4)

バージョンアップの対象となるファームウェアと公開しない秘密な値とを合わせてHash関数に入力し、その出力値をバージョンアップ対象のファームウェアの識別子として使用するファームウェアバージョンアップ方法。   A firmware upgrade method in which the firmware to be upgraded and a secret value that is not disclosed are input to the Hash function and the output value is used as an identifier for the firmware to be upgraded. 前記Hash値の1つ以上をリストで持つことを特徴とする請求項1に記載のファームウェアバージョンアップ方法。   The firmware version upgrade method according to claim 1, wherein the list has one or more of the Hash values in a list. バージョンアップ操作時に、現在のファームウェアを識別する前記Hash値が、前記バージョンアップ用ファームウェアが持つ前記Hash値のリストの中に一致するものがあれば、現在のファームウェアはバージョンアップ対象であることと判定し、バージョンアップを実行する請求項1或いは2に記載のファームウェアバージョンアップ方法。   If the Hash value that identifies the current firmware matches the Hash value list of the upgrade firmware during the upgrade operation, it is determined that the current firmware is the target of the upgrade. The firmware version-up method according to claim 1 or 2, wherein the version-up is executed. 請求項1乃至3のいずれかに記載のファームウェアバージョンアップ方法を実行するデバイス。   A device for executing the firmware version upgrade method according to claim 1.
JP2005222968A 2005-08-01 2005-08-01 Upgrade method of firmware Withdrawn JP2007041694A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005222968A JP2007041694A (en) 2005-08-01 2005-08-01 Upgrade method of firmware

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005222968A JP2007041694A (en) 2005-08-01 2005-08-01 Upgrade method of firmware

Publications (1)

Publication Number Publication Date
JP2007041694A true JP2007041694A (en) 2007-02-15

Family

ID=37799636

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005222968A Withdrawn JP2007041694A (en) 2005-08-01 2005-08-01 Upgrade method of firmware

Country Status (1)

Country Link
JP (1) JP2007041694A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008217326A (en) * 2007-03-02 2008-09-18 Nec System Technologies Ltd Hard disk built-in apparatus and method, and disk array system
JP4906854B2 (en) * 2006-07-03 2012-03-28 パナソニック株式会社 Information processing apparatus, information recording apparatus, information processing system, program update method, program, and integrated circuit
US8887288B2 (en) 2008-02-18 2014-11-11 Ricoh Company, Ltd. Method of detecting software falsification, apparatus configured to detect software falsification, and computer-readable storage medium
WO2021029232A1 (en) * 2019-08-15 2021-02-18 フェリカネットワークス株式会社 Information processing device, information processing method, program, and information processing system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4906854B2 (en) * 2006-07-03 2012-03-28 パナソニック株式会社 Information processing apparatus, information recording apparatus, information processing system, program update method, program, and integrated circuit
JP2008217326A (en) * 2007-03-02 2008-09-18 Nec System Technologies Ltd Hard disk built-in apparatus and method, and disk array system
US8887288B2 (en) 2008-02-18 2014-11-11 Ricoh Company, Ltd. Method of detecting software falsification, apparatus configured to detect software falsification, and computer-readable storage medium
WO2021029232A1 (en) * 2019-08-15 2021-02-18 フェリカネットワークス株式会社 Information processing device, information processing method, program, and information processing system

Similar Documents

Publication Publication Date Title
CN103559052B (en) The apparatus and method for that firmware updates
US9280374B2 (en) Virtual machine asynchronous patch management
US8875125B2 (en) Operation system installation methods and media
TWI430174B (en) Approaches for installing software using bios
US7791745B2 (en) Information processing apparatus on which printer driver can be installed, information processing apparatus, control method, program, and storage medium
JP4608265B2 (en) System and method for manufacturing and executing an insertable portable operating system module
JP5333579B2 (en) Management server, boot server, network boot system, and network boot method
US20060265630A1 (en) Method, system and computer program for distributing software patches
US8112808B2 (en) Server apparatus and installation information making method
US7512833B1 (en) Universal imaging utility program
CN1441352A (en) Information processor, control method and storage medium for said information processor
TWI515658B (en) Method and system for creating a virtual appliance
JP2006107185A (en) Computer system with terminal allowing off-line work
US7409575B2 (en) Recovery of computer systems
JP2011150499A (en) Thin client system, thin client terminal, and thin client program
JP2007041694A (en) Upgrade method of firmware
US20170199733A1 (en) Method for terminal to update operating system, terminal and system
JP2009070248A (en) Image processor and image processing method
CN106155713B (en) Startup information management method and device
JP6429455B2 (en) Image forming apparatus, control method therefor, and program
CN114296873B (en) Virtual machine image protection method, related device, chip and electronic equipment
JP2007011944A (en) Image processor and firmware upgrading method
JP2009009494A (en) Information processor, information processing method and control program
JP2019153050A (en) Activation control device, activation control system, activation control method and activation control program
JP7171339B2 (en) Information processing device, control method for information processing device, and program

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20081007