JP7129296B2 - 画像処理装置、画像処理装置の制御方法 - Google Patents

画像処理装置、画像処理装置の制御方法 Download PDF

Info

Publication number
JP7129296B2
JP7129296B2 JP2018180330A JP2018180330A JP7129296B2 JP 7129296 B2 JP7129296 B2 JP 7129296B2 JP 2018180330 A JP2018180330 A JP 2018180330A JP 2018180330 A JP2018180330 A JP 2018180330A JP 7129296 B2 JP7129296 B2 JP 7129296B2
Authority
JP
Japan
Prior art keywords
application program
cpu
image processing
update
determined
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.)
Active
Application number
JP2018180330A
Other languages
English (en)
Other versions
JP2020049744A (ja
JP2020049744A5 (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 JP2018180330A priority Critical patent/JP7129296B2/ja
Priority to US16/577,521 priority patent/US11106797B2/en
Publication of JP2020049744A publication Critical patent/JP2020049744A/ja
Publication of JP2020049744A5 publication Critical patent/JP2020049744A5/ja
Application granted granted Critical
Publication of JP7129296B2 publication Critical patent/JP7129296B2/ja
Active 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/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00938Software related arrangements, e.g. loading applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • 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
    • 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/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/333Mode signalling or mode changing; Handshaking therefor
    • H04N1/33369Storage of mode or retrieval of prestored mode

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Facsimiles In General (AREA)

Description

本発明は、画像処理装置、画像処理装置の制御方法に関する。
近年、画像形成装置を含むファームウェアを内蔵した装置では攻撃者からファームウェア改ざんの攻撃を受けるリスクが高まっている。このため近年の画像形成装置では起動時にファームウェアの正当性を検証し、ファームウェアが正当でないと判断された場合には画像形成装置を動作させないようにする機能を備えたものが出てきている。こうした画像形成装置では修理等によりファームウェアが正常な状態に復旧するまで画像形成装置を使用することはできなくなる。
しかし、画像形成装置のユーザにとって、原因がファームウェア改ざんか否かに関わらず画像形成装置が使用できないダウンタイムが発生することは損失である。装置のダウンタイムを短くしユーザの不利益を少なくするためには、正常でなくなったファームウェアを修復して回復させる機能を画像形成装置に備えることが望ましい。
従来、ファームウェア修復技術としてはファームウェアアップデート途中で発生した異状により、ファームウェアが正常に更新できていない状態から復旧させる技術があった。
特許文献1は装置に通常用ファームウェアとアップデート用ファームとの2つのファームウェアを備えておく技術である。この技術では、まずアップデート用ファームウェアを起動して通常用ファームウェアを更新し、次に通常用ファームウェアを起動してアップデート用ファームウェアを更新するという手順でファームウェアアップデートを実行する。これによりファームウェアアップデート動作中に異常が発生しても、異常発生時に更新対象でなかった方のファームウェアは正常であるため、正常な方のファームウェアを実行して復旧動作が実行できるようにしている。
特開2016-53839号公報
ファームウェアの改ざんは、ファームウェアアップデート動作中に行われるとは限らないため、ファームウェアアップデート時の異常発生から復旧させる技術はファームウェア改ざんに対して必ずしも有用でない。
ファームウェア改ざんによるダウンタイムを最少とするには、装置起動時に改ざんが検知された場合に自動的にファームウェアを修復し、ユーザの特別な操作なしに画像形成装置を使用可能な状態へ復旧するのが望ましい。
このとき、ファームウェア復旧のためには改ざんされていない正常な状態のファームウェアが必要となる。短時間で復旧するためには復旧用の正常な状態のファームウェアを予め装置内に保管しておく必要がある。
しかし、近年の高機能な画像形成装置ではファームウェアのサイズが大きくなっており、正常な状態のファームウェアを保管しておくためには大容量の不揮発記憶媒体が必要となり、製品のコストを増大させてしまう。
従来技術を用いた画像形成装置でも、コスト制約のため通常用ファームウェアとアップデート用ファームウェアとは機能の異なる別々のファームウェアとするのが一般的である。通常用ファームウェアには画像形成装置の全ての機能を提供するプログラムとファームウェアのアップデート及び修復に関するプログラムとを含む。しかしアップデート用ファームウェアにはファームウェアのアップデート及び修復に関する最小限の機能のみを含む構成とし、ファームウェアサイズを節減する。このようにしてファームウェアを格納する記憶媒体のコストを抑えるのが一般的である。
一方で、画像形成装置ファームウェアにはハードウェアの制御等を行う特別なプログラムであるOSが含まれている。OSは画像形成装置にどんな動作でもさせることができる特別なプログラムであり、OSが改ざんされてしまうと画像形成装置は攻撃者によって乗っ取られてしまう。このような特性のあるプログラムであるため、画像形成装置のファームウェアの中に含まれるOSについては攻撃者からのファームウェア改ざんの攻撃対象となりやすい。
このようなファームウェアの中でも特に攻撃対象となりやすい部分については、装置のダウンタイム短縮の観点からファームウェア修復手段の必要性が大きいといえる。
本発明の画像処理装置は、第1のオペレーティングシステム(OS)と、前記第1のOSが実行された後に実行される第1アプリケーションプログラムと、前記第1のOSと少なくとも一部が同一のプログラムにより構成された第2のオペレーティングシステム(OS)と、前記第2のOSが実行された後に実行される第2アプリケーションプログラムとを記憶する記憶手段と、アップデート指示により起動する第2の起動モードにおいて、前記第2のOSを実行し、前記第2アプリケーションプログラムを実行し、前記アップデート指示を受け付けることなく起動する第1の起動モードにおいて、前記第1のOSを検証し、前記検証において正当であると判定された第1のOSを実行し、その後に前記第1アプリケーションプログラムを実行する実行手段と、を備え、前記第1の起動モードにおける前記検証により前記第1のOSが正当でないと判定されると、前記第2のOSの少なくとも一部を用いて、前記正当でないと判定された前記第1のOSを修復する修復手段とを有することを特徴とする。
本発明によれば、コストを抑えて、ファームウェアの修復機能を提供することができる。
画像形成装置のハードウェア構成の一例を示す図である。 画像形成装置のファームウェアの構成を示した図である。 実施形態1の情報処理の一例を示すフローチャートである。 画面表示の例を示す図である。 修復に係る情報処理の一例を示すフローチャートである。 ファームウェア更新に係る情報処理の一例を示すフローチャートである。 アップデートイメージの一例を示す図である。 実施形態2の情報処理の一例を示すフローチャートである。
以下、本発明の実施形態について図面に基づいて説明する。
<実施形態1>
図1は、画像形成装置1のハードウェア構成の一例を示す図である。画像形成装置1は、画像を処理する画像処理装置の一例である。
画像形成装置1は以下のハードウェアを含む。
スキャナ装置2は、原稿から光学的に画像を読み取りデジタル画像に変換する。プリンタ装置4は、デジタル画像を紙デバイスに出力する。操作部5は、画像形成装置1の操作を行なうためのものである。ハードディスク装置6は、デジタル画像及び様々な一時データを記憶する。コントローラ3は、これらのハードウェアと接続され、各モジュールに指示を出すことにより画像形成装置上でジョブを実行することができる。
画像形成装置1はLAN7経由で外部のコンピュータからデジタル画像の入出力、ジョブの発行及び機器の指示等も行なうことができる。
操作部5は、ユーザが画像形成装置に画像複写等の動作を指示したり、画像形成装置の各種情報をユーザに提示したりするための、操作ボタン及び液晶画面等の表示パネルを備える。
コントローラ3は、いわゆる汎用的なCPUシステムである。CPU101は、ボード全体を制御する。メモリ103は、CPU101がメインメモリとして使用する。SRAM104は、不揮発メモリである。ブートROM105は、書き換え不可能なリードオンリーメモリであり、BIOSと呼ばれる初期プログラムが格納されている。これらが内部バス102を介して接続されている。
内部バス102には、これに加えてストレージ装置を制御するディスクインターフェース(I/F)106が接続されている。CPU101は、ディスクI/F106を通してSSD107及びハードディスク装置6を制御できる。SSD107には画像形成装置1を動作させるためにCPU101が実行するファームウェアが格納されている。また、コントローラ3はファームウェアの正当性を検証する機能を持つセキュリティチップ108を含む。
また、コントローラ3には、操作部インターフェース(I/F)109を介して操作部5が接続され、ネットワークインターフェース110を介してLAN7が接続される。また、コントローラ3には、スキャナインターフェース(I/F)111を介してスキャナ装置2が接続され、プリンタインターフェース(I/F)112を介してプリンタ装置4が接続される。
図2は、SSD107に格納されている画像形成装置1のファームウェアの構成を示した図である。
SSD107にはブートローダー201、通常用ファームウェア210、アップデート用ファームウェア220の3種類の実行可能プログラムが格納されている。通常用ファームウェア210及びアップデート用ファームウェア220は、複数のファームウェアの一例である。以下の実施形態では、2つのファームウェアを例に説明を行うが、2つ以上のファームウェアがSSD107に格納されていてもよい。
ブートローダー201は画像形成装置1の起動時にBIOSと呼ばれる初期プログラムによって最初にロードされてCPU101によって実行されるプログラムである。
画像形成装置1は、通常動作時に実行するファームウェアとは別に、ファームウェアアップデートの際に実行するもう一つのファームウェアを備えている。通常用ファームウェア210は通常動作時にCPU101によって実行されるファームウェアである。アップデート用ファームウェア220はファームウェアアップデートの際にCPU101によって実行されるファームウェアである。
通常用ファームウェア210にはOS211と通常用アプリケーションプログラム212とが含まれる。OS211はコントローラ3を構成するハードウェアの動作制御等を行うオペレーティングシステムである。通常用アプリケーションプログラム212は通常動作時に画像形成装置1を制御してコピー及びプリント等の様々なジョブの実行を実現するための実行可能プログラムである。また、通常用アプリケーションプログラム212はファームウェアアップデートの際にアップデート用ファームウェア220を更新する機能も含んでいる。OS211は、通常用ファームウェア210に含まれる共通部の一例である。
アップデート用ファームウェア220にはOS221とアップデート用アプリケーションプログラム222とが含まれる。OS221はオペレーティングシステムであり、SSD107内の異なる領域に格納されているが、OS211と同一の実行可能プログラムである。アップデート用アプリケーションプログラム222はファームウェアアップデートの際に通常用ファームウェア210を更新する機能を持つ実行可能プログラムである。アップデート用アプリケーションプログラム222は通常用アプリケーションプログラム212よりサイズが小さく、これによりSSD107の記憶容量を節減できるようになっている。OS221は、アップデート用ファームウェア220に含まれる共通部の一例である。
また、これらの実行可能プログラムには正当性を検証するための電子署名が付加されている。セキュリティチップ108は電子証明を用いて実行可能プログラムの正当性を検証することができる。電子署名202はブートローダー201を検証するための電子署名である。電子署名213はOS211を検証するための電子署名である。電子署名214は通常用アプリケーションプログラム212を検証するための電子署名である。電子署名223はOS221を検証するための電子署名である。電子署名224はアップデート用アプリケーションプログラム222を検証するための電子署名である。
図3は、実施形態1の画像形成装置1の起動と、それに関連するファームウェアアップデートとに関する情報処理の一例を示すフローチャートである。ユーザが画像形成装置1の電源をオンした際に、CPU101がこのフローチャートの処理を開始する。
まず、S301において、CPU101は、ブートROM105に格納された初期プログラムであるBIOSの実行を開始する。以降のS302~S305の処理はCPU101がBIOSを実行することで実現される。
S302において、BIOSを実行することによってCPU101は、SSD107に格納されたブートローダー201をメモリ103にロードし、正当性を検証する。これは電子署名202をセキュリティチップ108で検証することで実現される。
S303において、CPU101は、ブートローダー201の検証結果に基づいて検証に成功したか否かを判定する。CPU101は、検証が成功し正当であった場合はS305へ、正当でなかった場合はS304へ進む。
S304において、つまりブートローダー201の検証結果が正当でなかった場合、CPU101は、操作部5の表示パネルにエラーコードを表示して画像形成装置1の起動を中断する。図4(a)はブートローダー201の検証に成功しなかった場合の画面表示の一例を示す図である。
一方、S305において、つまりブートローダー201の検証結果が正当であった場合、CPU101は、メモリ103にロードされたブートローダー201の実行を開始する。以降のS306~S310の処理、又はS306~S320の処理はCPU101がブートローダー201を実行することで実現される。
S306において、CPU101は、ファームウェアアップデートモードでの起動が指示されているかどうかを判定する。画像形成装置1では、ユーザが操作部5の操作スイッチを操作することによりファームウェアアップデートモードでの起動を指示することができる。ファームウェアアップデートモードでの起動が指示されている場合には、CPU101は、S307へ進む。指示されていない場合には、CPU101は、S317へ進む。S307に進んだ場合、起動対象のファームウェアは、アップデート用ファームウェア220となる。また、S317に進んだ場合、起動対象のファームウェアは、通常用ファームウェア210となる。
S307において、つまりファームウェアアップデートモードでの起動が指示されていた場合、CPU101は、SSD107からメモリ103にOS221をロードし、正当性を検証する。これは電子署名223をセキュリティチップ108で検証することで実現される。
S308において、CPU101は、検証結果に基づいて検証に成功したか否かを判定する。検証が成功し、OS221が正当であった場合には、CPU101は、S310へ進む。正当でなかった場合には、CPU101は、S309へ進む。
S309において、つまりOS221が正当でなかった場合、CPU101は、OS221の修復を実行する。そして修復が完了すると、CPU101は、S310へ進む。
OS221修復の詳細については、図5(b)のフローチャートを用いて説明する。
S411において、CPU101は、OS211の正当性を検証する。これは電子署名213をセキュリティチップ108で検証することで実現される。画像形成装置1では、OS221の修復にOS211を利用するため、事前にOS211の正当性を検証しておく必要がある。
S412において、CPU101は、OS211の検証結果に基づいて検証に成功したか否かを判定する。検証が成功し、OS211が正当だった場合は、CPU101は、S414へ進む。そうでなかった場合は、CPU101は、S413へ進む。
S413において、つまりOS211が正当でなかった場合、CPU101は、アップデート用ファームウェア220が正当でないことを示すエラーコードを操作部5の表示パネルに表示し、起動を中断する。これはOS211が正当でない場合はOS221を修復することができないためである。図4(c)はアップデート用ファームウェア220が正当でないことを示す画面表示の一例を示す図である。
一方、OS211が正当だった場合、S414において、CPU101は、OS211の内容をSSD107内のOS221に上書きする。これによりOS221が修復される。
以上でCPU101はOS221修復のフローチャートの処理を終えて元の処理に戻る。
以降再び図3のフローチャートを用いてCPU101の動作を説明する。
S310において、CPU101は、OS221の実行を開始し、S311へ進む。以降のS311~S314の処理はCPU101がOS221を実行することによって実現される。
S311において、CPU101は、アップデート用アプリケーションプログラム222をメモリ103にロードし、正当性を検証する。これは電子署名224をセキュリティチップ108で検証することで実現される。
S312において、CPU101は、検証結果に基づいて検証に成功したか否かを判定する。検証が成功し、アップデート用アプリケーションプログラム222が正当であった場合には、CPU101は、S314へ進む。正当でなかった場合には、CPU101は、S313へ進む。
S313において、つまりアップデート用アプリケーションプログラム222が正当でなかった場合、CPU101は、アップデート用ファームウェア220が正当でないことを示すエラーコードを操作部5の表示パネルに表示し、起動を中断する。図4(c)は、アップデート用ファームウェア220が正当でないことを示す画面表示の一例を示す図である。
一方、アップデート用アプリケーションプログラム222が正当であった場合には、S314において、CPU101は、アップデート用アプリケーションプログラム222の実行を開始する。以降のS315~S316の処理はCPU101がアップデート用アプリケーションプログラム222を実行することによって実現される。
S315において、CPU101は、通常用ファームウェア210の更新を実行する。
通常用ファームウェア更新の詳細については図6(a)のフローチャートを用いて説明する。
S501において、CPU101は、ネットワークインターフェース110を介してLAN7から画像形成装置1の新しいファームウェアを含んだアップデートイメージを受信する。CPU101は取得したアップデートイメージを一時的なデータ保管場所であるハードディスク装置6に格納する。
図7はアップデートイメージの構成を示した図である。アップデートイメージにはCPU101で実行可能なプログラムであるOS601、通常用アプリケーションプログラム602、アップデート用アプリケーションプログラム603が含まれる。また、これらの実行可能プログラムには正当性を検証するための電子署名が付加されている。OS601には電子署名604、通常用アプリケーションプログラム602には電子署名605、アップデート用アプリケーションプログラム603には電子署名606が付加されている。これらの電子署名をセキュリティチップ108で検証することにより正当性を検証可能である。
S502において、CPU101は、取得したアップデートイメージの正当性を検証する。これは電子署名604、電子署名605、電子署名606をセキュリティチップ108で検証することによって実現される。全ての電子署名が正当であると確認された場合のみ検証成功となる。
S503において、CPU101は、アップデートイメージの正当性検証の結果に基づいて検証に成功したか否かを判定する。検証成功し、正当と判定した場合は、CPU101は、S505へ進む。そうでない場合は、CPU101は、S504へ進む。
S504において、つまりアップデートイメージが正当でないと判定した場合、CPU101は、ファームウェアアップデートが実行できないことを示すエラーコードを操作部5の表示パネルに表示する。図4(d)は、ファームウェアアップデートが実行できないことを示す画面表示の一例を示す図である。エラーコードを表示した後、CPU101は、通常用ファームウェア更新のフローチャートの処理を終了する。
一方、アップデートイメージが正当であると判定した場合、S505において、CPU101は、アップデートイメージに含まれるOS601を用いてSSD107上のOS211を更新する。
S506において、CPU101は、通常用アプリケーションプログラム602を用いてSSD107上の通常用アプリケーションプログラム212を更新する。
S507において、CPU101は、アップデート用ファームウェア220の更新を行う必要があることを示すアップデート実行フラグをSRAM104にセットし、通常用ファームウェア更新のフローチャートの処理を終了する。
以降再び図3のフローチャートを用いてCPU101の動作を説明する。
S316において、CPU101は、画像形成装置1を再起動させる。これによりCPU101は、S301へ戻り、図3のフローチャートを再び最初から実行することになる。
これ以降はS306においてファームウェアアップデートモードでの起動が指示されていなかった場合の処理について説明する。
S317において、CPU101は、SSD107からメモリ103にOS211をロードし、正当性を検証する。これは電子署名213をセキュリティチップ108で検証することで実現される。
S318において、CPU101は、検証結果に基づいて検証に成功したか否かを判定する。検証が成功し、OS211が正当であった場合には、CPU101は、S320へ進む。正当でなかった場合には、CPU101は、S319へ進む。
S319において、つまりOS211が正当でなかった場合、CPU101は、OS211の修復を実行する。そして修復が完了すると、CPU101は、S320へ進む。
OS211修復の詳細については、図5(a)のフローチャートを用いて説明する。
S401において、CPU101は、OS221の正当性を検証する。これは電子署名223をセキュリティチップ108で検証することで実現される。画像形成装置1では、OS211の修復にOS221を利用するため、事前にOS221の正当性を検証しておく必要がある。
S402において、CPU101は、OS221の検証結果に基づいて検証に成功したか否かを判定する。検証が成功し、OS221が正当だった場合は、CPU101は、S404へ進む。そうでなかった場合は、CPU101は、S403へ進む。
S403において、つまりOS221が正当でなかった場合、CPU101は、通常用ファームウェア210が正当でないことを示すエラーコードを操作部5の表示パネルに表示し、起動を中断する。これはOS221が正当でない場合はOS211を修復することができないためである。図4(b)は通常用ファームウェア210が正当でないことを示す画面表示の一例を示す図でもある。
一方、OS221が正当だった場合、S404において、CPU101は、OS221の内容をSSD107内のOS211に上書きする。これによりOS211が修復される。
以上でCPU101はOS211修復のフローチャートの処理を終えて元の処理に戻る。
以降再び図3のフローチャートを用いてCPU101の動作を説明する。
S320において、CPU101は、OS211の実行を開始し、S321へ進む。以降のS321~S324の処理はCPU101がOS211を実行することによって実現される。
S321において、CPU101は、通常用アプリケーションプログラム212をメモリ103にロードし、正当性を検証する。これは電子署名214をセキュリティチップ108で検証することで実現される。
S322において、CPU101は、検証結果に基づいて検証に成功したか否かを判定する。検証が成功し、通常用アプリケーションプログラム212が正当であった場合には、CPU101は、S324へ進む。正当でなかった場合には、CPU101は、S323へ進む。
S323において、つまり通常用アプリケーションプログラム212が正当でなかった場合、CPU101は、通常用ファームウェア210が正当でないことを示すエラーコードを操作部5の表示パネルに表示し、起動を中断する。図4(b)は通常用ファームウェア210が正当でないことを示す画面表示の一例を示す図である。
一方、通常用アプリケーションプログラム212が正当であった場合には、S324において、CPU101は、通常用アプリケーションプログラム212の実行を開始する。以降のS325~S328の処理はCPU101が通常用アプリケーションプログラム212を実行することによって実現される。
S325において、CPU101は、アップデート用ファームウェア220の更新を行う必要があることを示すアップデート実行フラグがSRAM104にセットされているかどうかを判定する。アップデート実行フラグがセットされているならば、CPU101は、S326へ進む。セットされていないならば、CPU101は、S328へ進む。
S326において、つまりアップデート実行フラグがセットされていた場合、CPU101は、アップデート用ファームウェア220の更新を実行し、S327へ進む。
アップデート用ファームウェア更新の詳細については図6(b)のフローチャートを用いて説明する。
S511において、CPU101は、ハードディスク装置6に格納されているアップデートイメージに含まれるOS601を用いてSSD107上のOS221を更新する。
S512において、CPU101は、アップデート用アプリケーションプログラム603を用いてSSD107上のアップデート用アプリケーションプログラム222を更新する。
S513において、CPU101は、SRAM104のアップデート実行フラグをクリアし、アップデート用ファームウェア更新のフローチャートの処理を終了する。
以降は再び図3のフローチャートを用いてCPU101の動作を説明する。
S327において、CPU101は、画像形成装置1を再起動させる。これによりCPU101は、S301へ戻り、図3のフローチャートを再び最初から実行することになる。
一方、S328において、CPU101は、画像形成装置1でのジョブ受付を開始し、これにより画像形成装置1の起動が完了する。
以上のように、本実施形態で説明した画像形成装置1によれば、画像形成装置1の起動時にファームウェア内の重要部分の正当性を検証し、改ざんが検知された場合、自動的に修復することで画像形成装置1のダウンタイムを短縮できる。
また、ファームウェアアップデート機能のために保持しているOS221等の別ファームウェアの一部を、ファームウェア修復用の正常な状態のファームウェアとして兼用する。これによりSSD107等の不揮発記憶媒体の容量増加を抑え、ファームウェア修復機能を実現するコストを低減できる。
<実施形態2>
実施形態1では、CPU101がブートローダー201を実行することによりOS211又はOS221を検証し、更に修復も行うこととしていた。しかし、修復については必ずしもブートローダー201で実行しなくとも、ブートローダー201より後に実行されるプログラムであれば実現可能である。
一例として本実施形態では通常用アプリケーションプログラム212、アップデート用アプリケーションプログラム222を実行することにより修復する構成について説明する。
図8は、実施形態2の画像形成装置1の起動と、それに関連するファームウェアアップデートとに関する情報処理の一例を示すフローチャートである。ユーザが画像形成装置1の電源をオンした際に、CPU101がこのフローチャートの処理を開始する。
尚、本実施形態の画像形成装置1の情報処理は一部を除いて実施形態1と同一である。以降の説明では実施形態1と異なる点についてのみ述べ、同一である点については説明を省略する。
まず、図8のS801~S808の処理については図3のS301~S308の処理と同一であるため詳細の説明は省略する。
S808においてOS221の検証に成功した場合は、CPU101は、S809へ進む。S809において、CPU101は、OS221の実行を開始する。そして、CPU101は、S815へ進む。以降のS815~S818の処理はCPU101がOS221を実行することによって実現される。
一方、S808においてOS221の検証が成功しなかった場合は、CPU101は、S810へ進む。
S810において、CPU101は、OS211をメモリ103にロードし、正当性を検証する。これは電子署名213をセキュリティチップ108で検証することで実現される。
S811において、CPU101は、検証結果に基づいて判定を行う。検証が成功し、OS211が正当であった場合には、CPU101は、S813へ進む。正当でなかった場合には、CPU101は、S309へ進む。
S812において、つまりOS211が正当でなかった場合、CPU101は、アップデート用ファームウェア220が正当でないことを示すエラーコードを操作部5の表示パネルに表示し、起動を中断する。図4(c)はアップデート用ファームウェア220が正当でないことを示す画面表示の一例を示す図である。
S813において、つまりOS211が正当だった場合、CPU101は、修復処理の実行が必要であることを示す修復実行フラグをSRAM104にセットする。
S814において、CPU101は、OS211の実行を開始する。この場合、これ以降のS815~S818の処理はCPU101がOS211を実行することによって実現されることになる。但し、先述のようにOS211とOS221とはSSD107内の別の領域に記録された同じプログラムであり、実行する処理は同一である。
S815~S818の処理は図3のS311~S314の処理と同一であるので詳細の説明は省略する。
以降のS819~S823の処理はCPU101がアップデート用アプリケーションプログラム222を実行することによって実現される。
S819において、CPU101は、SRAM104に修復実行フラグがセットされているかどうかを判定する。セットされている場合、CPU101は、S820へ進む。セットされていない場合、CPU101は、S822へ進む。
S820において、つまりSRAM104に修復実行フラグがセットされていた場合、CPU101は、OS221修復の処理を実行する。
S821において、CPU101は、SRAM104の修復実行フラグをクリアする。
S822~S823の処理は図3のS315~S316の処理と同一であるので詳細の説明は省略する。
続いて、起動時にファームウェアアップデートモードでの起動が指示されていなかった場合の処理について説明する。
S824~S825の処理は図3におけるS317~S318の処理と同一である。
S825においてOS211の検証に成功した場合は、CPU101は、S826へ進む。S826において、CPU101は、OS211の実行を開始する。そして、CPU101は、S832へ進む。以降のS832~S835の処理はCPU101がOS221を実行することによって実現される。
一方、S825においてOS211の検証が成功しなかった場合は、CPU101は、S827へ進む。
S827において、CPU101は、OS221をメモリ103にロードし、正当性を検証する。これは電子署名223をセキュリティチップ108で検証することで実現される。
S828において、CPU101は、検証結果に基づいて判定を行う。検証が成功し、OS221が正当であった場合には、CPU101は、S830へ進む。正当でなかった場合には、CPU101は、S329へ進む。
S829において、つまりOS221が正当でなかった場合、CPU101は、通常用ファームウェア210が正当でないことを示すエラーコードを操作部5の表示パネルに表示し、起動を中断する。図4(b)は通常用ファームウェア210が正当でないことを示す画面表示の一例を示す図である。
S830において、つまりOS221が正当だった場合、CPU101は、修復処理の実行が必要であることを示す修復実行フラグをSRAM104にセットする。
S831において、CPU101は、OS221の実行を開始する。この場合、これ以降のS832~S835の処理はCPU101がOS221を実行することによって実現されることになる。
S832~S835の処理は図3のS321~S324の処理と同一であるので詳細の説明は省略する。
移行のS836~S841の処理はCPU101が通常用アプリケーションプログラム212を実行することによって実現される。
S836において、CPU101は、SRAM104に修復実行フラグがセットされているかどうかを判定する。セットされている場合、CPU101は、S837へ進む。セットされていない場合は、CPU101は、S839へ進む。
S837において、つまりSRAM104に修復実行フラグがセットされていた場合、CPU101は、OS211修復の処理を実行する。
S838において、CPU101は、SRAM104の修復実行フラグをクリアする。
S839~S842の処理は図3のS325~S328の処理と同一であるので詳細の説明は省略する。
以上のように、本実施形態で説明した画像形成装置1によれば、OS211又はOS221の修復については必ずしもブートローダー201で実行しなくともよい。本実施形態のように通常用アプリケーションプログラム212及びアップデート用アプリケーションプログラム222で実行する構成としてもよい。ブートローダー201より後に実行されるプログラムであれば、修復を実行することが可能であり、実施形態1と同等の効果を得ることができる。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上、本発明の実施形態の一例について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
1 画像形成装置
101 CPU

Claims (13)

  1. 画像処理装置であって、
    第1のオペレーティングシステム(OS)と、前記第1のOSが実行された後に実行される第1アプリケーションプログラムと、前記第1のOSと少なくとも一部が同一のプログラムにより構成された第2のオペレーティングシステム(OS)と、前記第2のOSが実行された後に実行される第2アプリケーションプログラムとを記憶する記憶手段と、
    アップデート指示により起動する第2の起動モードにおいて、前記第2のOSを実行し、前記第2アプリケーションプログラムを実行し、前記アップデート指示を受け付けることなく起動する第1の起動モードにおいて、前記第1のOSを検証し、前記検証において正当であると判定された第1のOSを実行し、その後に前記第1アプリケーションプログラムを実行する実行手段と、
    を備え、
    前記第1の起動モードにおける前記検証により前記第1のOSが正当でないと判定されると、前記第2のOSの少なくとも一部を用いて、前記正当でないと判定された前記第1のOSを修復する修復手段とを有することを特徴とする画像処理装置。
  2. 前記修復手段は、前記第2のOSの少なくとも一部を用いて、前記正当でないと判断された前記第1のOSの少なくとも一部に上書きすることで、前記正当でないと判定された前記第1のOSを修復する
    ことを特徴とする請求項1に記載の画像処理装置。
  3. 前記修復手段は、前記検証において前記第1のOSが正当でないと判定されると、前記第2のOSを検証し、前記第2のOSの検証により正当であると判定された第2のOSを使って、前記正当でないと判定された前記第1のOSを修復する
    ことを特徴とする請求項1または2に記載の画像処理装置。
  4. 前記実行手段は、前記第2の起動モードにおいて前記第2のOSの検証をし、前記検証により正当であると判定された第2のOSの実行を行い、その後に前記第2アプリケーションプログラムを実行する
    ことを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
  5. 前記修復手段は、前記第2のOSの前記検証において前記第2のOSが正当でないと判定されると前記第1のOSの少なくとも一部を用いて、前記正当でないと判定された前記第2のOSを修復する
    ことを特徴とする請求項4に記載の画像処理装置。
  6. 前記修復手段は、前記第1のOSの少なくとも一部を用いて、前記正当でないと判断された前記第2のOSの少なくとも一部に上書きすることで、前記正当でないと判定された前記第2のOSを修復する
    ことを特徴とする請求項4または5に記載の画像処理装置。
  7. 前記修復手段は、前記第2のOSの前記検証において前記第2のOSが正当でないと判定されると、前記第1のOSを検証し、前記第1のOSの検証により正当であると判定された第1のOSを使って、前記正当でないと判定された前記第2のOSを修復する
    ことを特徴とする請求項4乃至6のいずれか1項に記載の画像処理装置。
  8. 前記第1の起動モードで起動した前記画像処理装置は、少なくともコピーまたはプリントのジョブを実行し、
    前記第2の起動モードで起動した前記画像処理装置は、コピーおよびプリントのジョブを実行しない
    ことを特徴とする請求項1乃至7のいずれか1項に記載の画像処理装置。
  9. 前記第2アプリケーションプログラムに従って、前記第1のOSおよび前記第1アプリケーションプログラムを更新し、前記第1アプリケーションプログラムに従って、前記第2のOSおよび前記第2アプリケーションプログラムを更新する更新手段
    を備える
    ことを特徴とする請求項1乃至8のいずれか1項に記載の画像処理装置。
  10. 前記更新手段は、前記第1アプリケーションプログラムに従って、前記第2のOSおよび前記第2アプリケーションプログラムを更新する前に、前記第2のOSおよび前記第2アプリケーションプログラムを検証せず、前記第2アプリケーションプログラムに従って、前記第1のOSおよび前記第1アプリケーションプログラムを更新する前に、前記第1のOSおよび前記第1アプリケーションプログラムを検証する
    ことを特徴とする請求項9に記載の画像処理装置。
  11. 前記画像処理装置は、ユーザからの操作を受け付ける操作部を有し、
    前記アップデート指示は、前記操作部を介して受け付けた指示である
    ことを特徴とする請求項1乃至10のいずれか1項に記載の画像処理装置。
  12. 前記第1のOSを更新するために用いる更新データを取得する取得手段と、
    前記アップデート指示により起動する第2のモードにおいて前記第2のOSが起動し、前記取得した前記更新データを用いて前記第1のOSを更新する
    ことを特徴とする請求項1乃至11のいずれか1項に記載の画像処理装置。
  13. 第1のオペレーティングシステム(OS)と、前記第1のOSが実行された後に実行される第1アプリケーションプログラムと、前記第1のOSと少なくとも一部が同一のプログラムにより構成された第2のオペレーティングシステム(OS)と、前記第2のOSが実行された後に実行される第2アプリケーションプログラムとを記憶する画像処理装置であって、
    アップデート指示により起動する第2の起動モードにおいて、前記第2のOSを実行し、前記第2アプリケーションプログラムを実行し、前記アップデート指示を受け付けることなく起動する第1の起動モードにおいて、前記第1のOSを検証し、前記検証により正当であると判定された第1のOSを実行し、その後に前記第1アプリケーションプログラムを実行する実行工程と、
    前記第1の起動モードにおける前記第1のOSの前記検証により前記第1のOSが正当でないと判定されると、前記第2のOSの少なくとも一部を用いて、前記正当でないと判定された前記第1のOSを修復する修復工程と
    を有することを特徴とする画像処理装置の制御方法。
JP2018180330A 2018-09-26 2018-09-26 画像処理装置、画像処理装置の制御方法 Active JP7129296B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018180330A JP7129296B2 (ja) 2018-09-26 2018-09-26 画像処理装置、画像処理装置の制御方法
US16/577,521 US11106797B2 (en) 2018-09-26 2019-09-20 Data processing apparatus, image processing apparatus and method for verifying and restoring operating system in activation mode

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018180330A JP7129296B2 (ja) 2018-09-26 2018-09-26 画像処理装置、画像処理装置の制御方法

Publications (3)

Publication Number Publication Date
JP2020049744A JP2020049744A (ja) 2020-04-02
JP2020049744A5 JP2020049744A5 (ja) 2021-11-04
JP7129296B2 true JP7129296B2 (ja) 2022-09-01

Family

ID=69884914

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018180330A Active JP7129296B2 (ja) 2018-09-26 2018-09-26 画像処理装置、画像処理装置の制御方法

Country Status (2)

Country Link
US (1) US11106797B2 (ja)
JP (1) JP7129296B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040255106A1 (en) 2003-06-10 2004-12-16 Rothman Michael A. Recovery of operating system configuration data by firmware of computer system
WO2009113376A1 (ja) 2008-03-10 2009-09-17 日本電気株式会社 Os起動可否判定装置、os起動可否判定システム、os起動可否判定方法およびos起動可否判定プログラム
JP2012043161A (ja) 2010-08-18 2012-03-01 Konica Minolta Business Technologies Inc プリンタドライバ更新プログラムおよびプリンタドライバ更新方法
JP2014089652A (ja) 2012-10-31 2014-05-15 Toshiba Corp 情報処理装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09190354A (ja) * 1996-01-08 1997-07-22 Nec Corp ダウンラインロード方式
JP3330569B2 (ja) * 1999-09-28 2002-09-30 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータの制御方法、コンピュータ及び記録媒体
JP2001290665A (ja) * 2000-04-11 2001-10-19 Nec Software Hokuriku Ltd プロセッサシステム
JP4447215B2 (ja) * 2002-12-16 2010-04-07 Necエレクトロニクス株式会社 電子部品
KR100673681B1 (ko) * 2004-03-25 2007-01-24 엘지전자 주식회사 개인용 컴퓨터에서의 인스턴트 온 기능 실행방법
EP1700520A1 (en) * 2005-03-09 2006-09-13 Nederlandse Organisatie voor toegepast-natuurwetenschappelijk Onderzoek TNO Multifold oxygen measurement device
JP2009093439A (ja) * 2007-10-09 2009-04-30 Canon Inc 情報処理装置とその制御方法
US8171280B2 (en) * 2009-06-22 2012-05-01 Matthew Laue Method of running multiple operating systems on an X86-based computer system having a dedicated memory region configured as a do not use region
US8804172B2 (en) * 2010-08-18 2014-08-12 Konica Minolta Business Technologies, Inc. Non-transitory computer readable recording medium stored with printer driver updating program and printer driver updating method
KR101949813B1 (ko) * 2012-09-17 2019-02-19 에이치피프린팅코리아 유한회사 화상형성장치, 호스트 장치 및 이들의 잡 수행 방법
JP6067449B2 (ja) * 2013-03-26 2017-01-25 株式会社東芝 情報処理装置、情報処理プログラム
JP6482211B2 (ja) 2014-09-03 2019-03-13 キヤノン株式会社 情報処理装置、その制御方法、及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040255106A1 (en) 2003-06-10 2004-12-16 Rothman Michael A. Recovery of operating system configuration data by firmware of computer system
WO2009113376A1 (ja) 2008-03-10 2009-09-17 日本電気株式会社 Os起動可否判定装置、os起動可否判定システム、os起動可否判定方法およびos起動可否判定プログラム
JP2012043161A (ja) 2010-08-18 2012-03-01 Konica Minolta Business Technologies Inc プリンタドライバ更新プログラムおよびプリンタドライバ更新方法
JP2014089652A (ja) 2012-10-31 2014-05-15 Toshiba Corp 情報処理装置

Also Published As

Publication number Publication date
JP2020049744A (ja) 2020-04-02
US11106797B2 (en) 2021-08-31
US20200097660A1 (en) 2020-03-26

Similar Documents

Publication Publication Date Title
US9449262B2 (en) Image processing apparatus and method for controlling image processing apparatus
JP4148283B2 (ja) 画像形成装置
JP7100502B2 (ja) 情報処理装置とその制御方法、及びプログラム
JP7009270B2 (ja) 情報処理装置及びプログラムの検証方法
JP7152920B2 (ja) 情報処理装置とその制御方法、及びプログラム
US8949816B2 (en) Firmware updating method, image forming apparatus, and storage medium
JP7129296B2 (ja) 画像処理装置、画像処理装置の制御方法
JP2022135443A (ja) 情報処理装置、情報処理方法及びプログラム
JP2020082441A (ja) 画像形成装置、その制御方法、及びプログラム
JP7374780B2 (ja) 情報処理装置および情報処理装置の制御方法
KR102467636B1 (ko) 정보 처리장치, 정보 처리장치의 제어방법, 및 기억매체
JP2022071954A (ja) 情報処理装置、情報処理方法およびプログラム
JP6072160B2 (ja) 印刷装置、印刷装置の制御方法、及び、プログラム
JP7210238B2 (ja) 情報処理装置、情報処理装置の制御方法、及び、プログラム
JP6706278B2 (ja) 情報処理装置、及び情報処理方法
JP2021140601A (ja) 情報処理装置、その制御方法、及びプログラム
JP2022157063A (ja) 情報処理装置、情報処理方法およびプログラム
JP7011697B1 (ja) 情報処理装置および情報処理方法
JP7292328B2 (ja) 情報処理装置及びその制御方法
US20230101600A1 (en) Information processing apparatus and control method for information processing apparatus
JP7282616B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP2023154635A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP2022080687A (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
JP2021128469A (ja) 情報処理装置と、情報処理装置における起動方法
JP2023105421A (ja) 情報処理装置および情報処理装置の制御方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210922

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210922

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220707

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: 20220719

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220822

R151 Written notification of patent or utility model registration

Ref document number: 7129296

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151