JP6226709B2 - 画像形成装置及びその制御方法、並びにプログラム - Google Patents

画像形成装置及びその制御方法、並びにプログラム Download PDF

Info

Publication number
JP6226709B2
JP6226709B2 JP2013236927A JP2013236927A JP6226709B2 JP 6226709 B2 JP6226709 B2 JP 6226709B2 JP 2013236927 A JP2013236927 A JP 2013236927A JP 2013236927 A JP2013236927 A JP 2013236927A JP 6226709 B2 JP6226709 B2 JP 6226709B2
Authority
JP
Japan
Prior art keywords
firmware
verification
update
unit
updating
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.)
Expired - Fee Related
Application number
JP2013236927A
Other languages
English (en)
Other versions
JP2015097022A (ja
Inventor
安川 朱里
朱里 安川
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 JP2013236927A priority Critical patent/JP6226709B2/ja
Priority to US15/024,554 priority patent/US9807268B2/en
Priority to PCT/JP2014/080283 priority patent/WO2015072559A1/en
Publication of JP2015097022A publication Critical patent/JP2015097022A/ja
Priority to US15/717,997 priority patent/US10225426B2/en
Application granted granted Critical
Publication of JP6226709B2 publication Critical patent/JP6226709B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00962Input arrangements for operating instructions or parameters, e.g. updating internal software
    • H04N1/00973Input arrangements for operating instructions or parameters, e.g. updating internal software from a remote device, e.g. receiving via the internet instructions input to a computer terminal
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J29/00Details of, or accessories for, typewriters or selective printing mechanisms not otherwise provided for
    • B41J29/38Drives, motors, controls or automatic cut-off devices for the entire printing mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/123Software or firmware update, e.g. device firmware management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1288Remote printer device, e.g. being remote from client or server in client-server-printer device configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00962Input arrangements for operating instructions or parameters, e.g. updating internal software
    • H04N1/00965Input arrangements for operating instructions or parameters, e.g. updating internal software using a plug-in memory module, e.g. memory card, memory stick

Description

本発明は、画像形成装置及びその制御方法、並びにプログラムに関し、特に、画像形成装置におけるファームアップデート機能の検証技術に関する。
従来、複合機のような組み込み機器において、ファームウェアを更新する際に一度システムをシャットダウンさせ、ファームウェア更新のために別の起動モードで起動し、同システムのファームウェア更新を行うものがある。このような複合機のファームウェア更新の仕組みとして、例えば特許文献1が提案されている。特許文献1では、複合機としての動作を行うメインプログラムと、メインプログラムの更新を行うためのサブプログラムを有する複合機が開示されている。この複合機におけるファームウェアの更新時には、メインプログラムを動作させて更新データをサーバ装置等から取得し、システムをリブートしたのち、サブプログラムを動作させてメインプログラムを更新する。更新が完了すると、再度システムをリブートさせて、更新されたメインプログラムを動作させるものである。
このように、ファームウェア更新時には、誤って改ざんされた更新データを使ってメインプログラムを更新してしまうことで、組み込み機器に不正なファームウェアが混入してしまうおそれがある。不正なファームウェアによる更新を防止するため、更新するファームウェアを署名等で検証し、正当性を確認してから更新する手法が用いられている。
しかしながら、このファームウェアの検証機能が、故障や改ざんにより正しく機能しなければ不正なファームウェアの混入を防止することができない。そのため、ファームウェア検証機能の正当性を確認する手法として、例えば特許文献2が提案されている。特許文献2によると、画像形成装置内に複数ある更新モジュールが相互に改ざんの有無を検証し合い、結果を管理装置に送信する。その結果を元に管理装置が正当ではないと判断した更新モジュールを無効化する。これにより、不正な更新モジュールが動作することを防止することができる。
特開2012−018523号公報 特開2010−152877号公報
しかしながら、特許文献2に記載された技術では、特許文献1のようにメインプログラムとサブプログラムとが分離されていると起動しているプログラムが異なるため、更新モジュールの相互検証は困難である。また、特許文献2では、更新モジュールの検証を画像形成装置内で実施し、その結果を管理装置に送信しているため、全ての更新モジュールが不正となった場合や、その通信内容が改ざんされた場合は、更新モジュールが正当でないことを発見することができない。
本発明は、上記問題を鑑み成されたものであり、複数のモードで起動する機器でのファームウェア更新機能に対する信頼性を向上する方法を提供することを目的とする。
上記目的を達成するために、本発明の画像形成装置は、通常時に使用する第1のファームウェアと前記第1のファームウェアのアップデート時に使用する第2のファームウェアを異なる記憶領域に記憶する記憶手段を有する画像形成装置において、前記第2のファームウェアを実行することで前記第1のファームウェアをアップデートする第1のアップデート手段と、前記第1のファームウェアをアップデートする前に、前記第1のアップデート手段が正しく動作するかを検証する第1の検証手段と、前記第1の検証手段による検証が成功した場合は、前記第1のアップデート手段による前記第1のファームウェアのアップデートを実施させる第1の制御手段と、前記第1のファームウェアを実行することで前記第2のファームウェアをアップデートする第2のアップデート手段と、前記第2のファームウェアをアップデートする前に、前記第2のアップデート手段が正しく動作するかを検証する第2の検証手段と、前記第2の検証手段による検証が成功した場合は、前記第2のアップデート手段による前記第2のファームウェアのアップデートを実施させる第2の制御手段とを備えることを特徴とする。
本発明によれば、複数のモードで起動する機器に対するファームウェア更新機能に対する信頼性を向上することができる。
本発明の第1の実施形態に係る画像形成装置の概略構成を示すブロック図である。 制御部のCPUにより実行されるプログラムの概略構成を示す図である。 (a)stdファームアップデート処理プログラムが実行されたときに実現されるアップデート機能の一例を示すブロック図、(b)safeファームアップデート処理プログラムが実行されたときに実現されるアップデート機能の一例を示すブロック図である。 (a)〜(e)アップデート処理時に操作部に表示される画面の一例を示す図である。 ファームアップデート部によるアップデート用ファームウェアの署名検証処理の流れを示すフローチャートである。 第1の実施形態における署名検証処理の正当性を検証する処理の流れを示すフローチャートである。 第1の実施形態における署名検証処理の正当性を検証する処理の流れを示すフローチャートである。 図6AのステップS604におけるstdファームアップデート処理検証部による処理の詳細を示すフローチャートである。 本発明の第2の実施形態における署名認証処理の正当性を検証する処理の流れを示すフローチャートである。 本発明の第2の実施形態における署名認証処理の正当性を検証する処理の流れを示すフローチャートである。 本発明の第3の実施形態におけるファームウェアのアップデート処理の検証処理の流れを示すフローチャートである。 本発明の第4の実施形態におけるファームウェアのアップデート処理の検証処理の流れを示すフローチャートである。 図10のステップS1002におけるファームウェアのアップデート処理の検証処理の流れを示すフローチャートである。
以下、本発明の実施の形態を図面を参照して詳細に説明する。
[第1の実施形態]
図1は、本発明の第1の実施形態に係る画像形成装置の概略構成を示すブロック図である。
図1において、制御部200は、画像形成装置100全体の動作を制御するための構成として以下に示すものを含む。
CPU210は、FlashROM211に記憶されたプログラム(ファームウェア)をRAM212に読み出して読取制御や印刷制御、ファームウェアのアップデート制御などの各種制御処理を実行する。FlashROM211には、ファームウェアのアップデート用のファイル格納領域、ワークエリア、ユーザデータ領域としても用いられるメモリである。なお、USBメモリにアップデート用のファームウェアを格納し、ダウンロードしてFlashROM211のファイル格納領域に置くケースもある。
RAM212は、CPU210の主メモリ、ワークエリア等の一時記憶領域として用いられるメモリである。ハードディスクドライブ(HDD)213は、画像データやユーザデータ等を記憶するメモリである。また、HDD213は、ネットワークI/F218を介してPC226から受信した印刷データをも記憶する。なお、HDD213がSSD(Solid State Drive)であってもよい。また、制御部200が複数のCPUを有する構成であってもよい。
操作部I/F214は、操作部219と制御部200とを接続するインターフェース(I/F)である。操作部219には、不図示のタッチパネル機能を有する液晶表示部やキーボードなどが備えられている。
プリンタI/F215は、プリンタエンジン220と制御部200とを接続するI/Fである。プリンタエンジン220は、プリンタI/F215を介してHDD213から転送された画像データに基づいて、用紙等の記録媒体にプリントを行う。
スキャナI/F216は、スキャナエンジン221と制御部200とを接続するI/Fである。スキャナエンジン221は、原稿上の画像を読み取って画像データを生成し、スキャナI/F216を介してHDD213に転送する。
USB−HostI/F217は、制御部200と、USB−FAXエンジン223及び/又は外部USBデバイス224とを接続するI/Fである。USB−FAXエンジン223は、スキャナエンジン221により読み取った画像データを、FAX回線115を介してFAX送信する機能を持つ。外部USBデバイス224は、例えばUSBメモリやUSBキーボードなどが挙げられる。
ネットワークI/F218は、LAN110に接続するためのネットワークインターフェースである。ネットワークI/F218は、LAN110上の外部装置(例えば、外部サーバ225やPC226)に画像データや情報を送信したり、逆にアップデート用ファームウェアや各種情報を受信したりする。なお、外部サーバ225は、インターネット上に存在してもよい。
次に、制御部200のCPU210により実行されるプログラムの構成について図2を用いて説明する。
図2は、制御部200のCPU210により実行されるプログラムの概略構成を示す図である。なお、図2に示すプログラムは、FlashROM211に記憶され、制御部200のCPU210により実行されることにより各種機能モジュールとして動作する。
FlashROM211は、2つのパーティションに分かれており、例えばstdパーティション300とsafeパーティション310に分かれている。
stdパーティション300は、2つの起動モードに利用される。1つは通常起動モード301であり、コピージョブやプリントジョブなどを実行するモードである。もう1つはsafeアップデートモード302であり、safeパーティション310をアップデートするモードである。
一方、safeパーティション310は、stdパーティション300をアップデートするための起動モードであるアップデートモード311で利用される。
stdパーティション300は、stdプログラム領域306と、stdデータ領域303に分かれている。stdプログラム領域306には、通常起動モード時(通常時)に動作するstdファーム304と、safeアップデートモード時に動作するstdファーム305が格納されている。
safeアップデートモード時に動作するstdファーム305は、safeファームアップデート処理プログラム309を含む。ここで、図示していないが、stdファーム304,305は、safeファームアップデート処理プログラム309以外にも複数のプログラムモジュールを含む。
本実施形態では、便宜上、stdファーム304とstdファーム305を分けて図示しているが、実際は同じファームウェアである。起動モードの違いにより、stdファーム304,305に含まれる複数のプログラムの中で、どのプログラムが起動するかが異なる。簡単な例として、通常起動モード301とsafeアップデートモード302とで起動するOS(オペレーティングシステム)は同じだが、通常起動モード301では、例えばコピーアプリケーションプログラムなどが起動する。一方、safeアップデートモード302では、アップデートプログラムだけが起動する。
safeファームアップデート処理プログラム309は、safeパーティション310内のsafeファーム314をアップデートする処理を含むプログラムである。
stdデータ領域303は、stdファーム304が動作するときに使用するワーク領域やユーザデータ等の置き場所として使用される。また、stdデータ領域303には、ファーム退避場所321が確保されている。ファーム退避場所321は、ファームウェアのアップデート時に一時的にアップデート前のファームウェアを退避しておくために利用される。これにより、アップデート中に何らかのエラーが発生した場合は、アップデート前のファームウェアに書き戻すことが可能となる。
safeパーティション310は、safeプログラム領域316とsafeデータ領域313に分かれている。safeプログラム領域316には、アップデートモード311時に動作するためのsafeファーム314が格納されている。更に、stdファーム305は、stdファームアップデート処理プログラム319を含む。stdファームアップデート処理プログラム319は、stdパーティション300内のstdファーム304,305をアップデートする処理を含む。safeデータ領域313には、アップデートファーム配置場所320が確保されている。
アップデートファーム配置場所320には、図1における外部USBデバイス224(例えばUSBメモリ)や、外部サーバ225、PC226などからダウンロードされたアップデート用ファームウェアが置かれる。
次に、stdファームアップデート処理プログラム319、safeファームアップデート処理プログラム309がそれぞれ実行されたときに実現されるアップデート機能について説明する。
図3(a)は、stdファームアップデート処理プログラム319が実行されたときに実現されるアップデート機能の一例を示すブロック図である。図4(a)〜図4(e)は、アップデート処理時に操作部219に表示される画面の一例を示す図である。
アップデート処理を実行する場合、まずベースのファームウェアのバージョンを確認する必要があるため、図4(a)に示すようにバージョン情報が表示される。図示では、stdファーム304,305のバージョンが3.00と表示されている。本実施形態では、バージョン3.00を4.00にアップデートするケースを考える。ここで、アップデート後には、操作部219の表示が図4(b)のようになることを期待する。
まず、アップデートモード311において、stdファームアップデート処理プログラム319が実行されることにより、stdファーム304,305がアップデートされる処理について説明する。
図3(a)において、stdファームアップデート処理プログラム319は、アップデートファームチェック部331、stdファーム退避処理部332、stdファームアップデート処理検証部336、stdファームアップデート部333という機能を備える。
アップデートファームチェック部331は、アップデートファーム配置場所320にダウンロードされたアップデート用ファームウェアのデータに破損がないかどうかの確認を実施する。例えば、チェックサムの確認やアップデート用ファームウェアの存在確認などを行う。これにより、アップデート用ファームウェアのダウンロード時のデータ欠損等を発見することができる。このとき、操作部219には図4(c)のような表示がなされる。
stdファーム退避処理部332は、stdファーム304,305をstdパーティション300のファーム退避場所321に退避させる。このとき、stdパーティション300は、起動したアップデートモード311から見える場所にある状態である(ファイルシステムとしてマウントした状態である)。
ファーム退避場所321には、stdパーティション300のstdデータ領域303が使用されている。このstdデータ領域303は、通常起動モード301でコピーやプリントなどの処理を行うために利用される。その際、stdデータ領域303は、RAM212と同様にワーク領域等に使われるが、アップデートモード311起動時には使用しない領域で、FlashROM211の領域を効率的に使うため、別領域を確保するようなことはせず、使いまわしが実施される。
stdファーム退避処理部332による動作が終わると、stdファームアップデート処理検証部336は、stdファームアップデート部333が正しく動作するかを検証する。
stdファームアップデート処理検証部336による検証結果からstdファームアップデート部333が正しく動作することが判明する。すると、stdファームアップデート部333は、stdパーティション300のstdファーム304,305のアップデートを実施する。
stdファームアップデート部333は、まずアップデートファーム配置場所320に置かれたアップデート用ファームウェアが正当のファームウェアであるか否かの署名検証を実施する。署名検証の結果から正当性が確認された場合には、当該アップデート用ファームウェアによりアップデートを実行する。このとき、操作部219は、図4(d)のような進捗表示を行い、最終的に成功すると、図4(e)のような表示となる。
以上により、アップデートモード311におけるstdファーム304,305のアップデート処理は完了する。
次に、safeアップデートモード302において、safeファームアップデート処理プログラム309が実行されることにより、safeファーム314がアップデートされる処理について説明する。
図3(b)は、safeファームアップデート処理プログラム309が実行されたときに実現されるアップデート機能の一例を示すブロック図である。
図3(b)において、safeファームアップデート処理プログラム309は、safeファーム退避処理部334、safeファームアップデート処理検証部337、及びsafeファームアップデート部335という機能を備える。
safeファーム退避処理部334は、上述したstdファーム退避処理部332と同様に、safeファーム314をファーム退避場所321に退避させる。
safeファーム退避処理部334による動作が終わると、safeファームアップデート処理検証部337は、safeファームアップデート部335が正しく動作するかを検証する。
safeファームアップデート処理検証部337による検証結果からsafeファームアップデート部335が正しく動作することが判明すると、safeファームアップデート部335は、safeファーム314のアップデートを実施する。safeファームアップデート部335は、アップデート用ファームウェアが正当のファームウェアであるか否かの署名検証を実施し、正当性が確認された場合には、当該アップデート用ファームウェアによりアップデートを実行する。アップデートが成功した場合は、図4(b)に示す画面が操作部219に表示され、stdファーム304,305がバージョン4.00になっていることを確認することができる。
次に、上述した図3(a)に示すstdファームアップデート部333及び図3(b)に示すsafeファームアップデート部335によるアップデート用ファームウェアの署名検証処理について図5を用いて詳細に説明する。
図5は、ファームアップデート部によるアップデート用ファームウェアの署名検証処理の流れを示すフローチャートである。なお、本処理は、制御部200のFlashROM211に記憶されたstdファームアップデート処理プログラム319もしくはsafeファームアップデート処理プログラム309がCPU210により実行されることによって実現される。また、処理の主体は、stdファームアップデート部333及びsafeファームアップデート部335によるアップデート処理が共通であるため、ここではファームアップデート処理部として説明する。
ファームアップデート処理部では、ダウンロードしたアップデート用ファームウェアのデータが正当な発行元から発行され、途中経路で不正な手段で書き換えられていないことを保証するため、初めにアップデートファーム検証を実施する。
まず、ステップS501では、ファームアップデート処理部は、アップデートファーム配置場所320からアップデート用ファームウェアのデータを読み込む。ここで、アップデート用ファームウェアに付与されているデジタル署名を抽出する。
次に、ステップS502では、ファームアップデート処理部は、予め画像形成装置100が保持する公開鍵を用いて、ステップS501で抽出したデジタル署名の検証を行う。デジタル署名は、例えばRSA公開鍵暗号方式を使った方式が一般的である。公開鍵方式によるデジタル署名では、署名対象(この場合、ファームウェア)から一方向関数によるダイジェストを生成し、発行元は前記ダイジェストを自身の秘密鍵で暗号化を行い、画像形成装置100は発行元の公開鍵を使って署名検証を実施する。秘密鍵は正規な発行元だけが保持しており、正しい公開鍵を使った署名検証が成功すれば署名対象が正規なものであることが証明できる。ここでデジタル署名に使用する公開鍵は発行元が保持する公開鍵ペアを利用するものであり、予め発行元から画像形成装置100に渡されるものである。受け渡し方法に関してはネットワークを使った場合には公開鍵インフラ(PKI)を利用した第3者証明、あるいはメモリカードによる物理的配布などが考えられるが、既知の手法を使えばよいため詳細な説明は省略する。
ステップS503で署名検証が成功したと判断した場合、ファームアップデート処理部は、ファームウェアのアップデートを実行し(ステップS504)、ステップS505へ進む。一方、ステップS503で署名検証が失敗したと判断した場合、ステップS507に進む。
ステップS505では、ファームアップデート処理部は、ファームウェアのアップデートが成功したか否かを判定し、成功したと判定した場合にはステップS506へ進み、ファームウェアのアップデートは成功したとして本処理を終了する。一方、ステップS505でファームウェアのアップデートが正常に終了しなかったと判断した場合は、ステップS507へ進み、ファームウェアのアップデートは失敗したとして本処理を終了する。なお、上記ステップS502におけるアップデート用ファームウェアの署名検証処理は、デジタル署名を利用したものに限ったものではなく、ファームウェアの正当性が確認できるその他の方法(例えば、ハッシュ値比較のみ)でもよい。
図5のステップS502における署名検証処理が改ざんや故障により正しく動作しない場合、誤ってステップS503でアップデート用ファームウェアの検証が成功したと判断され、不正なファームウェアが画像形成装置100にインストールされる恐れがある。そこで、不正なファームウェアによるアップデートが誤って実施されないように、アップデート前に署名検証処理(ステップS502)の正当性を確認する方法について説明する。なお、stdファームアップデート処理プログラム319とsafeファームアップデート処理プログラム309に含まれる署名検証処理(ステップS502)は共通の処理であり、両者とも同じプログラムを有しているものとする。
図6A及び図6Bは、第1の実施形態における署名検証処理の正当性を検証する処理の流れを示すフローチャートである。本処理は、制御部200のFlashROM211に記憶され、CPU210により実行される。
まず、ステップS601では、CPU210は、safeパーティション310のsafeファーム314をRAM212に読み込み、アップデートモード311で起動する。
次に、ステップS602では、CPU210は、アップデートファーム配置場所320にダウンロードしたアップデート用ファームウェアのデータに対して、アップデートファームチェック部331によるチェックを実施する。アップデートファームチェック部331が実施するチェックの内容は上述のとおりである。
次に、ステップS603に進み、CPU210は、stdファーム退避処理部332によりstdファーム304,305を、ファーム退避場所321に退避させる。
次に、ステップS604では、CPU210は、stdファームアップデート処理検証部336により、stdファームアップデート部333が正しく動作するか否かの検証を実施する。ここで、ステップS604におけるstdファームアップデート処理検証部336による動作処理について図7を用いて詳細に説明する。
図7は、図6AのステップS604におけるstdファームアップデート処理検証部336による処理の詳細を示すフローチャートである。
図7において、ステップS701では、CPU210は、stdファームアップデート部333により、実施する署名検証(ステップS502)での暗号処理が正しく動作するかを確認するために、既知の入力を用いて暗号処理を実施する。本実施形態では、図5で説明したように、署名検証としてRSAの暗号処理を利用するため、RSAによる暗号・復号処理を実行する。
次に、ステップS702では、CPU210は、ステップS701での処理結果と既知解とを比較する。暗号処理のロジックが正しければ、特定の入力からは特定の値が出力されるため、処理結果が既知解と等しければ暗号処理のロジックは正常であると判断できる。ここで、既知解はstdファームアップデート処理プログラム319に含まれているものとするが、safeデータ領域313に入力値と共に事前に配置しておく方法でもよい。
ステップS703で値が一致すると判断した場合、ステップS704へ進み、CPU210は、stdファームアップデート処理検証部336により、stdファームアップデート部333内の署名検証処理にかかるプログラムデータを読み込む。
次に、ステップS705では、CPU210は、ステップS704で読みこんだプログラムデータからハッシュ値を算出する。
次に、ステップS706では、CPU210は、予めstdデータ領域303に保持されているハッシュ値とステップS705で算出したハッシュ値との比較を行う。このハッシュ値の比較により、stdファームアップデート部333の署名検証処理プログラムデータの完全性が確認できる。なお、本実施形態では、ハッシュ値の比較による完全性の検証を実施したが、デジタル署名を利用した方法でもよい。
ステップS707でハッシュ値が一致すると判断した場合は、CPU210は、stdファームアップデート部333の署名検証処理(図5のステップS502)が成功したと判断し(ステップS708)、検証成功としてリターンする。一方、ステップS707でハッシュ値が一致しないと判断した場合は、CPU210は、stdファームアップデート部333内の署名検証処理が失敗であると判断し(ステップS709)、検証失敗としてリターンする。
以上がstdファームアップデート処理検証部336による検証処理である。なお、safeファームアップデート処理検証部337も同様の方法で検証を実施する。
図6Aに戻り、ステップS605でstdファームアップデート処理検証部336による検証成功と判断した場合は、ファームウェアのアップデート処理を継続するため、ステップS606に進む。一方、ステップS605で検証失敗と判断した場合は、ステップS608に進む。検証に失敗したファームアップデート部を用いてアップデートを実施すると不正なファームウェアが画像形成装置100にインストールされる可能性がある。そのため、ステップS608では、CPU210は、stdファームアップデート処理プログラム319の更新を行う。すなわち、ステップS608では、CPU210は、stdパーティション300にあるsafeファームアップデート処理プログラム309のsafeファームアップデート部335に含まれる署名検証処理のプログラムデータを取得する。そして、stdファームアップデート処理プログラム319のstdファームアップデート部333のプログラムデータを、取得したプログラムデータに置き換える。
次に、ステップS609では、CPU210は、stdファームアップデート処理検証部336により、更新されたstdファームアップデート部333に対して再び検証処理を実施する。この処理の内容はステップS604と同様である(図7参照)。
ステップS610でstdファームアップデート処理検証部336による検証成功と判断した場合は、ファームウェアのアップデート処理を継続するため、ステップS606に進む。一方、ステップS610で検証失敗と判断した場合は、ステップS611に進み、ファームウェアのアップデート処理を中止する。そして、ステップS612では、CPU210は、ステップS603で退避させておいたstdファーム304,305を書き戻す。そして、ステップS613に進む。
ステップS606では、CPU210は、stdファームアップデート部333により、stdファーム304,305のアップデート処理を行う。ステップS606におけるアップデート処理は図5で説明した通りである。
次に、ステップS607では、CPU210は、stdファームアップデート部333によるstdファーム304,305のアップデートが成功したかの判断を行う。成功したと判断した場合は、ステップS613に進む。一方、ステップS607でアップデートに失敗したと判断した場合は、ステップS611に進み、stdファーム304,305のアップデートを中止する。
図6Bにおいて、ステップS613では、CPU210は、画像形成装置100を再起動させる。次に、ステップS614では、CPU210は、safeファーム314のアップデートを実施するため、stdパーティション300のstdファーム305をRAM212に読み込み、safeアップデートモード302で起動する。
ステップS615では、CPU210は、safeファーム退避処理部334により、safeファーム314をファーム退避場所321に退避させる。
次に、ステップS616では、CPU210は、safeファームアップデート処理検証部337により、safeファームアップデート部335が正しく動作するか否かの検証を実施する。検証の方法はステップS604と同様であるため説明を省略するが、ここではsafeファームアップデート部335内の署名検証処理(ステップS502)に対して検証を実施する。
ステップS617では、CPU210は、safeファームアップデート処理検証部337による検証が成功したかの判断を行う。ステップS617で検証成功と判断した場合は、ステップS618に進む一方、検証失敗と判断した場合は、ステップS622に進む。
ステップS622では、ステップS608とは逆に、CPU210は、safeパーティション310にあるstdファームアップデート処理プログラム319のstdファームアップデート部333に含まれる署名検証処理のプログラムデータを取得する。そして、safeファームアップデート部335のプログラムデータを取得したデータに置き換える。
次に、ステップS623では、CPU210は、safeファームアップデート処理検証部337により、更新されたsafeファームアップデート部335に対して再び検証処理を実施する(図7参照)。
ステップS624でsafeファームアップデート処理検証部337による検証成功と判断した場合は、ファームウェアのアップデート処理を継続するため、ステップS618に進む。一方、ステップS624で検証失敗と判断した場合は、ステップS625に進み、ファームウェアのアップデートを中止する。
ステップS618では、CPU210は、safeファームアップデート部335により、safeファーム314のアップデート処理を行う。ステップS618におけるアップデート処理は、ステップS606と同様に、図5で説明した通りである。
次に、ステップS619では、CPU210は、safeファームアップデート部335によるsafeファーム314のアップデートが成功したかの判断を行う。成功と判断した場合は、ステップS620に進む。
ステップS620では、CPU210は、画像形成装置100の再起動を実施し、ステップS621に進み、stdパーティション300のstdファーム304をRAM212に読み込み、通常起動モード301で起動して、本処理を終了する。
一方、ステップS619で失敗したと判断した場合はステップS625に進み、CPU210は、safeファーム314のアップデートを中止する。そして、ステップS626では、CPU210は、ステップS615で退避させておいたsafeファーム314を書き戻し、ステップS620以降のステップを実施して、本処理を終了する。
上記実施形態によれば、stdファーム304,305またはsafeファーム314のファームウェアのアップデートを実施する前に、それぞれをアップデートするファームアップデート部のプログラムを検証する。これにより、不正なファームウェアが画像形成装置に混入(インストール等)することを防止し、複数のモードで起動する機器に対するファームウェア更新機能に対する信頼性を向上することが可能となる。
[第2の実施形態]
次に、本発明の第2の実施形態として、ファームアップデート部の検証処理が失敗した場合に、もう一方のパーティションのアップデート処理を先に実施して、ファームアップデート部を更新する方法について図8A及び図8Bを用いて説明する。
本発明の第2の実施の形態に係る画像形成装置100は、その構成(図1)が上記第1の実施の形態と同じであり、第1の実施の形態と同様の部分については、同一の符号を用いてその説明を省略する。以下に、上記第1の実施の形態と異なる点のみを説明する。
図8A及び図8Bは、本発明の第2の実施形態における署名認証処理の正当性を検証する処理の流れを示すフローチャートである。本処理は、制御部200のFlashROM211に記憶され、CPU210により実行される。なお、図6A及び図6Bと同様のステップについては同一の符号を付して、それらの説明を省略する。
図8Aにおいて、ステップS605でstdファームアップデート処理検証部336による検証失敗と判断した場合は、ステップS681に進む。
ステップS681では、CPU210は、stdファームアップデート処理検証部336により、検証失敗フラグがONか否かを判断する。検証失敗フラグがONでないと判断した場合、ステップS682に進み、CPU210は、stdファームアップデート処理検証部336により、検証失敗フラグをONにして、ステップS612へ進む。検証失敗フラグは、FlashROM211等の不揮発メモリに記録される。本実施の形態では、stdデータ領域303に特定のファイルを生成することで検証失敗フラグが立っているか否かを判断するが、方法はそれに限らない。
一方、ステップS681において、検証失敗フラグがONであると判断した場合は、既に一度検証が失敗しているとしてアップデート処理を実施せず、図8BのステップS621へ進む。
図8Bにおいて、ステップS620で画像形成装置100が再起動した後、ステップS683に進み、CPU210は、検証失敗フラグがONか否かの判断を行う。検証失敗フラグがONであると判断した場合は、図8AのステップS601にもどり、CPU210は、safeパーティション310のsafeファーム314をRAM212に読み込み、再度アップデートモード311で起動する。そして、stdファームのアップデート処理を再度実施する。つまり、ステップS605でstdファームアップデート部333の検証が失敗したと判断しても、ステップS614〜ステップS620の処理でsafeファーム314がアップデートされる。そのため、アップデートされたsafeファーム314に含まれるstdファームアップデート部333を用いることで、stdファーム304,305のアップデートが可能となる。
上記実施形態によれば、stdパーティション300及びsafeパーティション310のいずれか一方のファームアップデート部が不正な状態となった場合でも、もう一方のファームアップデート部を用いてアップデートを実施する。これにより、複数のモードで起動する機器に対するファームウェア更新機能を正常に保つことが可能となる。
[第3の実施形態]
次に、本発明の第3の実施形態として、画像形成装置100の管理者が任意のタイミングでファームウェアのアップデート処理の正当性を検証する方法について図9を用いて説明する。
本発明の第3の実施の形態に係る画像形成装置100は、その構成(図1)が上記第1の実施の形態と同じであり、第1の実施の形態と同様の部分については、同一の符号を用いてその説明を省略する。以下に、上記第1の実施の形態と異なる点のみを説明する。
図9は、本発明の第3の実施形態におけるファームウェアのアップデート処理の検証処理の流れを示すフローチャートである。なお、本処理は、制御部200のFlashROM211に記憶され、CPU210により実行される。
図9において、ステップS901では、CPU210は、stdパーティション300のstdファーム304をRAM212に読み込み、通常起動モード301で起動する。
次に、ステップS902では、CPU210は検証指示を受付ける。検証指示は、操作部219に表示された不図示のメニュー画面から管理者が「アップデート処理の検証」を選択した結果として受信される。なお、操作部219から指示を受け付けた場合について説明するが、外部の装置等からネットワークI/F218を介して指示を受信する場合でも構わない。
次に、ステップS903では、CPU210は、stdパーティション300のsafeファームアップデート処理検証部337による検証を実施する。検証方法は図7を用いて説明したとおりである。検証の結果、ステップS904において検証失敗と判断した場合は、ステップS911に進む。一方、ステップS904で検証成功と判断した場合、safeパーティション310にあるstdファームアップデート部333の検証を実施するため、ステップS905に進む。
ステップS905では、CPU210は、利用していないsafeパーティション310をマウントし、stdファームアップデート処理プログラム319をRAM212に読み込む。
次に、ステップS906では、CPU210は、stdファームアップデート処理検証部336による検証を実施する。検証方法は図7を用いて説明した通りである。検証の結果、ステップS907において検証失敗と判断した場合は、ステップS911に進む。一方、ステップS907で検証成功と判断した場合、ステップS908に進み、CPU210は、ステップS903の検証結果とステップS906の検証結果とを比較する。
次に、CPU210は、ステップS909で検証結果が一致しないと判断した場合は、ステップS911に進む。一方、ステップS909で検証結果が一致すると判断した場合はステップS910へ進み、CPU210は、検証結果として、ファームアップデート部が正当である旨を操作部219に表示する。
ステップS911では、CPU210は、検証結果として、ファームアップデート部が正当でない旨を操作部219に表示する。なお、ステップS902での検証指示をネットワークI/F218を介して外部の装置から受信した場合には、CPU210は、その返答をネットワークI/F218を介して外部の装置に通知する。
上記実施形態によれば、ファームウェアの更新機能が正しく動作するかを管理者が任意のタイミングで確認することが可能となる。
[第4の実施形態]
上記第1から上記第3の実施形態では、ファームアップデート部の検証処理を図7に示す通り、画像形成装置100内で実施していた。この方法では、ファームアップデート処理検証部自体が全て置き換えられた場合に、正しく検証結果を出力することができない。そこで、本発明の第4の実施形態として、PC226や外部サーバ225からファームウェアをダウンロードする際に通知される値を用いてファームアップデート部の検証処理を実施する方法について図10を用いて説明する。
本発明の第4の実施の形態に係る画像形成装置100は、その構成(図1)が上記第1の実施の形態と同じであり、第1の実施の形態と同様の部分については、同一の符号を用いてその説明を省略する。以下に、上記第1の実施の形態と異なる点のみを説明する。
図10は、外部サーバ225からLAN110、ネットワークI/F218を介して、アップデート用のファームウェアをダウンロードする際の処理の流れを示すフローチャートである。本処理は、画像形成装置100が外部サーバ225と通信を行い、ファームウェアをダウンロードした後、safeパーティション310にあるアップデートファーム配置場所320にファームウェアを格納するまでの処理である。また、本処理は、制御部200のFlashROM211に記憶され、CPU210により実行される。
まず、ステップS1001では、CPU210は、ネットワークI/F218を介して外部サーバ225と通信を行い、ファームアップデート部の検証用のデータを受信する。
次に、ステップS1002では、CPU210は、受信した検証用データを用いて、safeファームアップデート処理検証部337により、safeファームアップデート部335が正しく動作するか否かの検証を実施する。ここで、ステップS1002で実施される検証処理の詳細について図11を用いて説明する。
図11は、図10のステップS1002におけるファームウェアのアップデート処理の検証処理の流れを示すフローチャートである。
図11において、ステップS1101では、CPU210は、safeファームアップデート処理検証部337により、safeファームアップデート部335内の署名検証処理にかかるプログラムデータを読み込む。
次に、ステップS1102では、CPU210は、safeファームアップデート処理検証部337により、読み込んだプログラムデータのハッシュ値を算出する。
次に、ステップS1103では、CPU210は、外部サーバ225から受信した検証用データとステップS1102で算出したハッシュ値を使って、署名検証で利用する暗号処理を実施し、ステップS1104に進み、その出力値を取得してリターンする。
図10に戻り、ステップS1003では、ステップS1002と同様に、CPU210は、stdファームアップデート処理検証部336により、stdファームアップデート部333が正しく動作するか否かの検証を実施する。
次に、ステップS1004では、CPU210は、外部サーバ225にステップS1002及びステップS1003で実施した検証処理の結果を送信する。
外部サーバ225では、画像形成装置100から受信した検証処理の結果に基づいて、検証処理の結果が正しいか否かの確認を実施し、その結果を画像形成装置100に通知する。
CPU210は、外部サーバ225から返信された検証処理の結果が正しい(成功)と判断した場合(ステップS1005でYES)、外部サーバ225からアップデート用ファームウェアをダウンロードし、アップデートファーム配置場所320に格納する。そして、CPU210は、ダウンロードしたアップデート用ファームウェアを用いてアップデート処理を実施する(ステップS1007)。
一方、CPU210は、外部サーバ225から検証エラーを通知されたときは(ステップS1008)、検証処理の結果が正しくないと判断して、ファームウェアのダウンロード処理を中止(ステップS1009)して本処理を終了する。
なお、本実施形態では、プログラムデータのハッシュ値と検証用データを用いて検証する方法について説明したが、署名検証処理の正当性を確認できるその他の方法でもよい。また、正当性の確認はアップデートファームダウンロード時に限らず、任意のタイミングで実施してもよい。
上記実施形態によれば、外部サーバ225から受信した検証用データを用いてファームアップデート部の検証を実施することで、検証結果のなりすましを防止でき、より信頼性の高い検証を実施することが可能となる。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
211 FlashROM
220 プリンタエンジン
221 スキャナエンジン
223 USB−FAXエンジン
300 stdパーティション
301 通常起動モード
302 safeアップデートモード
310 safeパーティション
311 アップデートモード
336 stdファームアップデート処理検証部
337 safeファームアップデート処理検証部

Claims (17)

  1. 通常時に使用する第1のファームウェアと前記第1のファームウェアのアップデート時に使用する第2のファームウェアを異なる記憶領域に記憶する記憶手段を有する画像形成装置において、
    前記第2のファームウェアを実行することで前記第1のファームウェアをアップデートする第1のアップデート手段と、
    前記第1のファームウェアをアップデートする前に、前記第1のアップデート手段が正しく動作するかを検証する第1の検証手段と、
    前記第1の検証手段による検証が成功した場合は、前記第1のアップデート手段による前記第1のファームウェアのアップデートを実施させる第1の制御手段と、
    前記第1のファームウェアを実行することで前記第2のファームウェアをアップデートする第2のアップデート手段と、
    前記第2のファームウェアをアップデートする前に、前記第2のアップデート手段が正しく動作するかを検証する第2の検証手段と、
    前記第2の検証手段による検証が成功した場合は、前記第2のアップデート手段による前記第2のファームウェアのアップデートを実施させる第2の制御手段とを備えることを特徴とする画像形成装置。
  2. 前記第1の検証手段による検証が失敗した場合に、前記第2のアップデート手段のプログラムデータを取得する取得手段と、
    前記第1のアップデート手段のプログラムデータを、前記取得手段により取得したプログラムデータに置き換える置き換え手段とをさらに備えることを特徴とする請求項1に記載の画像形成装置。
  3. 通常時に使用する第1のファームウェアと前記第1のファームウェアのアップデート時に使用する第2のファームウェアを異なる記憶領域に記憶する記憶手段を有する画像形成装置において、
    前記第2のファームウェアを実行することで前記第1のファームウェアをアップデートする第1のアップデート手段と、
    前記第1のファームウェアをアップデートする前に、前記第1のアップデート手段が正しく動作するかを検証する第1の検証手段と、
    前記第1の検証手段による検証が成功した場合は、前記第1のアップデート手段による前記第1のファームウェアのアップデートを実施させる第1の制御手段と、
    前記第1のファームウェアを実行することで前記第2のファームウェアをアップデートする第2のアップデート手段と、
    前記第2のファームウェアをアップデートする前に、前記第2のアップデート手段が正しく動作するかを検証する第2の検証手段と、
    前記第2の検証手段による検証が成功した場合は、前記第2のアップデート手段による前記第2のファームウェアのアップデートを実施させる第2の制御手段とを備えることを特徴とする画像形成装置。
  4. 前記第2の検証手段による検証が失敗した場合に、前記第1のアップデート手段のプログラムデータを取得する取得手段と、
    前記第2のアップデート手段のプログラムデータを、前記取得手段により取得したプログラムデータに置き換える置き換え手段とをさらに備えることを特徴とする請求項3に記載の画像形成装置。
  5. 通常時に使用する第1のファームウェアと前記第1のファームウェアのアップデート時に使用する第2のファームウェアを異なる記憶領域に記憶する記憶手段を有する画像形成装置において、
    前記第2のファームウェアを実行することで前記第1のファームウェアをアップデートする第1のアップデート手段と、
    前記第1のファームウェアをアップデートする前に、前記第1のアップデート手段が正しく動作するかを検証する第1の検証手段と、
    前記第1の検証手段による検証が失敗した場合はフラグを記録して、前記第1のアップデート手段による前記第1のファームウェアのアップデートを中止する第1の制御手段と、
    前記第1のファームウェアを実行することで前記第2のファームウェアをアップデートする第2のアップデート手段と、
    前記第2のファームウェアをアップデートする前に、前記第2のアップデート手段が正しく動作するかを検証する第2の検証手段と、
    前記第2の検証手段による検証が成功した場合は、前記第2のアップデート手段による前記第2のファームウェアのアップデートを実施させる第2の制御手段と、
    前記第2のアップデート手段による前記第2のファームウェアのアップデート後に前記フラグが記録されているか否かを判定する判定手段とを備え、
    前記第1の制御手段は、前記判定手段により前記フラグが記録されていると判定された場合は、前記第1のアップデート手段による第1のファームウェアのアップデートを再度実施させることを特徴とする画像形成装置。
  6. 通常時に使用する第1のファームウェアと前記第1のファームウェアのアップデート時に使用する第2のファームウェアを異なる記憶領域に記憶する記憶手段を有する画像形成装置において、
    前記第2のファームウェアを実行することで前記第1のファームウェアをアップデートする第1のアップデート手段と、
    前記第1のアップデート手段が正しく動作するかを検証する第1の検証手段と、
    前記第1のファームウェアを実行することで前記第2のファームウェアをアップデートする第2のアップデート手段と、
    前記第2のアップデート手段が正しく動作するかを検証する第2の検証手段と、
    前記第1の検証手段及び前記第2の検証手段が正しく動作するか否かの検証指示を受け付ける受付手段と、
    前記受付手段により指示を受け付けると、前記第1の検証手段による検証結果と前記第2の検証手段による検証結果を比較する比較手段と、
    前記比較手段による結果に応じて検証が成功または失敗した旨を通知する通知手段とを備えることを特徴とする画像形成装置。
  7. 前記比較手段による結果から前記第1の検証手段による検証結果と前記第2の検証手段による検証結果が一致する場合には、前記通知手段は、検証が成功した旨を通知することを特徴とする請求項6に記載の画像形成装置。
  8. 通常時に使用する第1のファームウェアと前記第1のファームウェアのアップデート時に使用する第2のファームウェアを異なる記憶領域に記憶する記憶手段を有する画像形成装置において、
    前記第2のファームウェアを実行することで前記第1のファームウェアをアップデートする第1のアップデート手段と、
    前記第1のアップデート手段が正しく動作するかを検証する第1の検証手段と、
    前記第1のファームウェアを実行することで前記第2のファームウェアをアップデートする第2のアップデート手段と、
    前記第2のアップデート手段が正しく動作するかを検証する第2の検証手段と、
    外部装置から前記第1の検証手段及び前記第2の検証手段の検証用データを受信する受信手段とを備え、
    前記第1の検証手段により、前記受信した検証用データを用いて前記第1のアップデート手段が正しく動作するかを検証させ、前記第2の検証手段により、前記受信した検証用データを用いて前記第2のアップデート手段が正しく動作するかを検証させる第1の制御手段と、
    前記第1の制御手段による検証結果を外部装置に送信して、前記第1の検証手段及び前記第2の検証手段が正しく動作するかを問い合わせる通知手段と、
    前記外部装置から通知された内容に応じて、前記第1のアップデート手段及び前記第2のアップデート手段によるアップデートを実施または中止させる第2の制御手段とを備えることを特徴とする画像形成装置。
  9. 前記第2の制御手段は、前記外部装置から通知された内容から前記第1の検証手段及び前記第2の検証手段が正しく動作していると判断した場合は、前記第1のアップデート手段及び前記第2のアップデート手段によるアップデートを実施させることを特徴とする請求項8に記載の画像形成装置。
  10. 前記第1の検証手段は、前記第1のファームウェアが改ざんされているか否かに基づいて、第1のアップデート手段が正しく動作するか否かを判断することを特徴とする請求項8又は9に記載の画像形成装置。
  11. 前記第2の検証手段は、前記第2のファームウェアが改ざんされているか否かに基づいて、第2のアップデート手段が正しく動作するか否かを判断することを特徴とする請求項8乃至10のいずれか1項に記載の画像形成装置。
  12. 通常時に使用する第1のファームウェアと前記第1のファームウェアのアップデート時に使用する第2のファームウェアを異なる記憶領域に記憶する記憶手段を有する画像形成装置の制御方法において、
    前記第2のファームウェアを実行することで前記第1のファームウェアをアップデートする前に、前記第1のファームウェアをアップデートする第1のアップデート手段が正しく動作するかを検証する第1の検証工程と、前記第1の検証工程による検証が成功した場合は、前記第1のアップデート手段による前記第1のファームウェアのアップデートを実施させる第1の制御工程と、
    前記第1のファームウェアを実行することで前記第2のファームウェアをアップデートする前に、前記第2のファームウェアをアップデートする第2のアップデート手段が正しく動作するかを検証する第2の検証工程と、前記第2の検証工程による検証が成功した場合は、前記第2のアップデート手段による前記第2のファームウェアのアップデートを実施させる第2の制御工程とを備えることを特徴とする制御方法。
  13. 通常時に使用する第1のファームウェアと前記第1のファームウェアのアップデート時に使用する第2のファームウェアを異なる記憶領域に記憶する記憶手段を有する画像形成装置の制御方法において、
    前記第2のファームウェアを実行することで前記第1のファームウェアをアップデートする前に、前記第1のファームウェアをアップデートする第1のアップデート手段が正しく動作するかを検証する第1の検証工程と、前記第1の検証工程による検証が成功した場合は、前記第1のアップデート手段による前記第1のファームウェアのアップデートを実施させる第1の制御工程と、
    前記第1のファームウェアを実行することで前記第2のファームウェアをアップデートする前に、前記第2のファームウェアをアップデートする第2のアップデート手段が正しく動作するかを検証する第2の検証工程と、前記第2の検証工程による検証が成功した場合は、前記第2のアップデート手段による前記第2のファームウェアのアップデートを実施させる第2の制御工程とを備えることを特徴とする制御方法。
  14. 通常時に使用する第1のファームウェアと前記第1のファームウェアのアップデート時に使用する第2のファームウェアを異なる記憶領域に記憶する記憶手段を有する画像形成装置の制御方法において、
    前記第2のファームウェアを実行することで前記第1のファームウェアをアップデートする前に、前記第1のファームウェアをアップデートする第1のアップデート手段が正しく動作するかを検証する第1の検証工程と、前記第1の検証工程による検証が失敗した場合はフラグを記録して、前記第1のアップデート手段による前記第1のファームウェアのアップデートを中止する第1の制御工程と、
    前記第1のファームウェアを実行することで前記第2のファームウェアをアップデートする前に、前記第2のファームウェアをアップデートする第2のアップデート手段が正しく動作するかを検証する第2の検証工程と、前記第2の検証工程による検証が成功した場合は、前記第2のアップデート手段による前記第2のファームウェアのアップデートを実施させる第2の制御工程と、
    前記第2のアップデート手段による前記第2のファームウェアのアップデート後に前記フラグが記録されているか否かを判定する判定工程と、
    前記判定工程により前記フラグが記録されていると判定された場合は、前記第1のアップデート手段による第1のファームウェアのアップデートを再度実施させる第3の制御工程とを備えることを特徴とする制御方法。
  15. 通常時に使用する第1のファームウェアと前記第1のファームウェアのアップデート時に使用する第2のファームウェアを異なる記憶領域に記憶する記憶手段を有する画像形成装置において、
    前記第1のファームウェアを前記第2のファームウェアを実行することによってアップデートする第1のアップデート手段が正しく動作するかを検証する第1の検証工程と、
    前記第2のファームウェアを前記第1のファームウェアを実行することによってアップデートする第2のアップデート手段が正しく動作するかを検証する第2の検証工程と、
    前記第1の検証工程及び前記第2の検証工程が正しく動作するか否かの検証指示を受け付ける受付工程と、
    前記受付工程にて指示を受け付けると、前記第1の検証工程による検証結果と前記第2の検証工程による検証結果を比較する比較工程と、
    前記比較工程による結果に応じて検証が成功または失敗した旨を通知する通知工程とを備えることを特徴とする制御方法。
  16. 通常時に使用する第1のファームウェアと前記第1のファームウェアのアップデート時に使用する第2のファームウェアを異なる記憶領域に記憶する記憶手段を有する画像形成装置の制御方法において、
    前記第1のファームウェアを前記第2のファームウェアを実行することによってアップデートする第1のアップデート手段が正しく動作するかを検証する第1の検証工程と、
    前記第2のファームウェアを前記第1のファームウェアを実行することによってアップデートする第2のアップデート手段が正しく動作するかを検証する第2の検証工程と、
    外部装置から前記第1の検証工程及び前記第2の検証工程で利用する検証用データを受信する受信工程と、
    前記第1の検証工程にて、前記受信した検証用データを用いて前記第1のアップデート手段が正しく動作するかを検証させ、前記第2の検証工程にて、前記受信した検証用データを用いて前記第2のアップデート手段が正しく動作するかを検証させる第1の制御工程と、
    前記第1の制御工程による検証結果を外部装置に送信して、前記第1の検証工程及び前記第2の検証工程が正しく動作するかを問い合わせる通知工程と、
    前記外部装置から通知された内容に応じて、前記第1のアップデート手段及び前記第2のアップデート手段によるアップデートを実施または中止させる第2の制御工程とを備えることを特徴とする制御方法。
  17. 請求項12乃至16のいずれか1項に記載の制御方法を画像形成装置に実行させるためのコンピュータに読み取り可能なプログラム。
JP2013236927A 2013-11-15 2013-11-15 画像形成装置及びその制御方法、並びにプログラム Expired - Fee Related JP6226709B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2013236927A JP6226709B2 (ja) 2013-11-15 2013-11-15 画像形成装置及びその制御方法、並びにプログラム
US15/024,554 US9807268B2 (en) 2013-11-15 2014-11-11 Image forming apparatus having firmware update function, method of controlling the same, program for executing the method, and storage medium
PCT/JP2014/080283 WO2015072559A1 (en) 2013-11-15 2014-11-11 Image forming apparatus having firmware update function, method of controlling the same, program for executing the method, and storage medium
US15/717,997 US10225426B2 (en) 2013-11-15 2017-09-28 Image forming apparatus having firmware update function, method of controlling the same, program for executing the method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013236927A JP6226709B2 (ja) 2013-11-15 2013-11-15 画像形成装置及びその制御方法、並びにプログラム

Publications (2)

Publication Number Publication Date
JP2015097022A JP2015097022A (ja) 2015-05-21
JP6226709B2 true JP6226709B2 (ja) 2017-11-08

Family

ID=53057493

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013236927A Expired - Fee Related JP6226709B2 (ja) 2013-11-15 2013-11-15 画像形成装置及びその制御方法、並びにプログラム

Country Status (3)

Country Link
US (2) US9807268B2 (ja)
JP (1) JP6226709B2 (ja)
WO (1) WO2015072559A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106406925A (zh) * 2015-08-03 2017-02-15 阿里巴巴集团控股有限公司 用于支持在线升级的设备和方法
JP6651895B2 (ja) * 2016-02-23 2020-02-19 株式会社リコー 機器、制御方法及びプログラム
JP6784291B2 (ja) * 2016-04-15 2020-11-11 日本電気株式会社 ソフトウェア更新制御装置、ソフトウェア更新制御システム、ソフトウェア更新制御方法、及び、ソフトウェア更新制御プログラム
JP2017199246A (ja) * 2016-04-28 2017-11-02 京セラドキュメントソリューションズ株式会社 電子機器
JP2018007215A (ja) 2016-07-08 2018-01-11 キヤノン株式会社 情報処理装置とその制御方法、及びプログラム
JP2018056840A (ja) * 2016-09-29 2018-04-05 セイコーエプソン株式会社 印刷装置、印刷装置の制御方法、及びネットワークシステム
JP2019067167A (ja) * 2017-10-02 2019-04-25 三菱電機株式会社 プラント機器監視制御装置のファイル更新システム
JP6942601B2 (ja) * 2017-10-18 2021-09-29 キヤノン株式会社 情報処理装置、その制御方法、及びプログラム
AU2018356262C1 (en) * 2017-10-27 2022-03-03 Inventio Ag Safety system for a building-related passenger transportation system
JP6959153B2 (ja) * 2018-01-19 2021-11-02 株式会社Pfu 情報処理装置、情報処理方法、及びプログラム
JP7171339B2 (ja) * 2018-09-26 2022-11-15 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及び、プログラム
KR20210023184A (ko) * 2019-08-22 2021-03-04 에스케이하이닉스 주식회사 런타임 오버레이를 통해 펌웨어를 관리하는 장치 및 방법
US11379024B2 (en) 2019-09-26 2022-07-05 Micron Technology, Inc. Systems and methods capable of bypassing non-volatile memory when storing firmware in execution memory
CN111614859B (zh) * 2020-05-18 2023-01-31 珠海奔图电子有限公司 图像形成装置及其安全控制方法、存储介质
CN111638897B (zh) * 2020-06-02 2023-09-26 驭新智行科技(宁波)有限公司 系统更新方法、装置、终端设备及存储介质
JP7362583B2 (ja) * 2020-09-23 2023-10-17 株式会社東芝 情報処理装置
EP4089555B1 (en) 2021-05-13 2024-03-06 AO Kaspersky Lab Systems and methods for verifying the integrity of a software installation image

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003058436A (ja) * 2001-08-17 2003-02-28 Minolta Co Ltd 画像処理装置、プログラム及び管理ユニット
US20030058471A1 (en) * 2001-09-21 2003-03-27 Hiromi Okubo Method and apparatus for image processing capable of automatically adding/upgrading image processing functions, and a computer readable data medium containing computer instructions for performing the method
JP4189570B2 (ja) * 2001-12-28 2008-12-03 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置、ファームウェアの送信方法、及び画像処理装置の管理システム
JP4704245B2 (ja) * 2005-03-31 2011-06-15 株式会社リコー 画像形成装置、情報処理方法、プログラム、及び記録媒体
JP4876188B2 (ja) * 2005-03-31 2012-02-15 株式会社リコー 画像形成装置、情報処理方法、プログラム、及び記録媒体
US20080043272A1 (en) * 2006-08-18 2008-02-21 Intermec Ip Corp. Method, system and article for exposing printer functionality via a logical file system
JP5127490B2 (ja) * 2008-02-07 2013-01-23 キヤノン株式会社 画像形成装置、画像形成装置の遠隔更新検証方法及びプログラム
JP5405986B2 (ja) * 2008-11-26 2014-02-05 パナソニック株式会社 ソフトウェア更新システム、管理装置、記録媒体及び集積回路
JP2011093292A (ja) * 2009-10-01 2011-05-12 Toshiba Tec Corp プリンタ、プログラムおよびデータ更新方法
JP5679714B2 (ja) 2010-07-07 2015-03-04 キヤノン株式会社 画像形成装置

Also Published As

Publication number Publication date
US20180020112A1 (en) 2018-01-18
US10225426B2 (en) 2019-03-05
US20160234396A1 (en) 2016-08-11
US9807268B2 (en) 2017-10-31
JP2015097022A (ja) 2015-05-21
WO2015072559A1 (en) 2015-05-21

Similar Documents

Publication Publication Date Title
JP6226709B2 (ja) 画像形成装置及びその制御方法、並びにプログラム
CN109684849B (zh) 信息处理装置、其控制方法和存储介质
JP6399763B2 (ja) 情報処理装置、情報処理方法
JP6720581B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP2008234217A (ja) 情報処理装置、情報保護方法及び画像処理装置
JP2008171041A (ja) 画像形成装置、画像形成装置の起動方法、制御装置及び拡張ユニットの起動方法
JP7374780B2 (ja) 情報処理装置および情報処理装置の制御方法
JP7182966B2 (ja) 情報処理装置、情報処理装置の起動方法、及びプログラム
JP6429455B2 (ja) 画像形成装置及びその制御方法、並びにプログラム
JP7171339B2 (ja) 情報処理装置、情報処理装置の制御方法、及び、プログラム
JP6706278B2 (ja) 情報処理装置、及び情報処理方法
JP2020154601A (ja) 情報処理装置とその制御方法、及びプログラム
JP7009852B2 (ja) 電子装置
JP2012058803A (ja) シンクライアントシステム、およびオペレーティングシステム更新方法
JP2020053002A (ja) 情報処理装置とその制御方法、及びプログラム
JP2008102678A (ja) 電子機器
JP6421405B2 (ja) 情報処理システム、情報処理装置、セキュリティ確保方法及びプログラム
US11971991B2 (en) Information processing apparatus, control method for controlling the same and storage medium
JP7215116B2 (ja) 情報処理装置、情報処理方法及びプログラム
US20230126541A1 (en) Information processing apparatus, control method for controlling the same and storage medium
JP2023172570A (ja) 情報処理装置及び情報処理装置の制御方法
JP2022182837A (ja) 情報処理装置、及びその制御方法
JP2022147763A (ja) 情報処理装置及びプログラムの検証方法とプログラム
JP2023124089A (ja) 情報処理装置
JP2023072170A (ja) 情報処理装置および情報処理装置の制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170509

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170710

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170912

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171010

R151 Written notification of patent or utility model registration

Ref document number: 6226709

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees