JP2020013244A - 情報処理装置、情報処理装置の制御方法、及び、プログラム - Google Patents

情報処理装置、情報処理装置の制御方法、及び、プログラム Download PDF

Info

Publication number
JP2020013244A
JP2020013244A JP2018134006A JP2018134006A JP2020013244A JP 2020013244 A JP2020013244 A JP 2020013244A JP 2018134006 A JP2018134006 A JP 2018134006A JP 2018134006 A JP2018134006 A JP 2018134006A JP 2020013244 A JP2020013244 A JP 2020013244A
Authority
JP
Japan
Prior art keywords
activation
update
software
unit
verification data
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.)
Pending
Application number
JP2018134006A
Other languages
English (en)
Inventor
卓実 道下
Takumi Michishita
卓実 道下
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 JP2018134006A priority Critical patent/JP2020013244A/ja
Publication of JP2020013244A publication Critical patent/JP2020013244A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Facsimiles In General (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Control Or Security For Electrophotography (AREA)

Abstract

【課題】ファームウェアの更新が行われる場合においても適切に検証データを更新できるようにする。【解決手段】メインシステム210と、アップデート用システム220と、を含むコントローラ110であって、アップデート用システム220において、メインシステム210のファームウェアを更新するファームウェア更新処理部221と、メインシステム210のファームウェアが更新された後、再起動されると、メインシステム210を検証データ更新モードで起動する起動制御部211と、起動制御部211によって検証データ更新モードで起動された際に、メインシステム210において、メインシステム210のファームウェアの検証データを更新するホワイトリスト更新部219と、ホワイトリスト更新部219によって検証データが更新された後、再起動されると、メインシステム210を通常モードで起動する起動制御部211と、を有する。【選択図】図2

Description

本発明は、情報処理装置、情報処理装置の制御方法、及び、プログラムに関する。
画像形成装置等の情報処理装置にインストールされたアプリケーション及びファームウェア等のプログラムの不具合修正及び機能追加等のために、市場リリース後のユーザ先でもしばしば情報処理装置のプログラムが更新される。更新のためのコンテンツを配信する際には、改ざんされて不正な更新が行われないよう、配信するコンテンツの署名暗号化を行うことが一般的となっている。
コンテンツの配信の際には、通信の負荷及び処理時間を軽減するために、データの転送サイズを削減する必要がある。そのため、コンテンツを機能ごとに分割してバージョン管理し、更新対象の複数のコンテンツから、バージョン差分のあるものを事前に特定して必要なコンテンツのみダウンロード及び更新対象とする制御を行うケースがある。また、分割されたコンテンツを圧縮し署名暗号化して配信することで、データの転送サイズを減らすとともに、実際のインストールをする前に、ダウンロードされたコンテンツの改ざんを防止するケースもある。
配信時にファイルを圧縮して配信するケースにおいては、インストール時に情報処理装置の記憶装置に対して、配信されたコンテンツの圧縮ファイルを展開して配置する。したがって、展開後のファイルの改ざんに対しては、コンテンツ配信時に署名暗号化する方法では防止できない。そこで、使用可能なプログラムの個々のファイルの検証データを予め保管し、プログラムの使用時に検証データを用いて当該プログラムを改ざん検証し、正しいプログラムだけを使用可能とするホワイトリスト方式が使用されている。ここでいう検証データには、プログラムの一意性を確認するために、プログラムが格納された個々のファイルのバイナリデータから、ハッシュ関数を用いて作成されたハッシュ値を用いるのが一般的である。ハッシュ関数は、ある値からハッシュ値を作成した際に、ハッシュ値を変更せずに元の値を改変することが不可能であるという特徴があり、正しいプログラムであるかどうかの改ざん検証に使用することが可能である。改ざん検証とは、ホワイトリストに保管された検証データに基づいて、プログラムが格納されたファイルが改ざんされたか否かを判定し、改ざんされたと判定した場合、警告等を使用者に通告することである。改ざん確認では、プログラムを実行する際やプログラムが格納されたファイルをオープンする際に、プログラムが格納されたファイル全体のハッシュ値が算出される。そして、算出されたハッシュ値が、ホワイトリストに保管された当該ファイルに対する検証データと一致しているか否かを確認し、一致しなければ改ざんされたとみなす。ホワイトリストを使用したチェック方式においては、更新時に展開されたファイルが後に改ざんされたとしても、ホワイトリストで管理されたファイルが実行される際に改ざんを検知することが可能となる。ここで、ホワイトリストは書き込み処理を禁止した上で管理されるものであり、通常は書き換えが不可能なデータである。しかし、ファームウェアの更新が行われる場合には更新後のファームウェアに対応するホワイトリストを正しく更新する必要がある。
特許文献1には、無効有効化処理部と登録部と備える電子黒板が開示されている。無効有効化処理部は、インストールモードにおいてホワイトリストを無効化する。登録部は、ホワイトリストが無効化された状態においてインストールされたプログラムをホワイトリストに登録する。無効有効化処理部は、インストールされたプログラムがホワイトリストに登録された後にホワイトリストを有効化する。
特開2016−139322号公報
画像形成装置等の情報処理装置には、複数の起動システムを保持するものがある。情報処理装置は、何れかの起動システムを動作させる。それぞれ起動システムは、オペレーティングシステムを有し、このオペレーティングシステムの制御下で各種の処理を行う。それぞれ起動システムを実現するためのプログラム等のファイルは、起動システムごとに記憶装置の異なるパーティションに格納される。情報処理装置が複数の起動システムを有することで、何れかの起動システムに異常が生じた場合、異常が生じた起動システムを別の起動システムから復旧できる。また、画像形成装置では、画像処理装置としてのスキャンやプリントの機能を実現するシステムと、メンテナンスのための特殊起動システムとを適切に切り替えることで、安全なファームウェアアップデートやサービス性を確保できる。
しかしながら、検証データを含むホワイトリストを使用したチェック方式では、別パーティションにある起動システムに対しては、ホワイトリストを無効化するだけでは正しく更新処理を行えないケースがある。ホワイトリストは、起動しているオペレーティングシステムで管理される。このため、情報処理装置が通常動作用の起動システムとメンテナンス用の起動システムを有し、それぞれの起動システムが有するオペレーティングシステムの種類やバージョンが異なると、ホワイトリストの更新処理は別の起動システムからはできない場合がある。このような場合、メンテナンス用の起動システムから通常動作用の起動システムを更新する際に、通常のプログラムの更新と同様の更新処理では、ホワイトリストの更新ができない。したがって、ホワイトリストに含まれる検証データを更新できない。
特許文献1記載の方法は、プログラムの更新中にホワイトリストを無効化してホワイトリスト更新を行う。この方法では、同一のオペレーティングシステム上で更新されたプログラムに対するホワイトリストの更新は可能である。しかし、起動システムを複数持つような構成において、別の起動システムからプログラムを更新した場合、検証データを含むホワイトリストの適切な更新処理を行うことができない。
本発明の情報処理装置は、第1の起動システムと、第2の起動システムと、を含む複数の起動システムのうち一の起動システムを動作させる情報処理装置であって、前記第2の起動システムにおいて、前記第1の起動システムのソフトウェアを更新する第1のソフトウェア更新手段と、前記第1のソフトウェア更新手段によって前記第1の起動システムのソフトウェアが更新された後、再起動されると、前記第1の起動システムにおいて、前記第1の起動システムを検証データ更新モードで起動する第1の起動手段と、前記第1の起動手段によって前記検証データ更新モードで起動された際に、前記第1の起動システムにおいて、前記第1の起動システムのソフトウェアの検証データを更新する第1の更新手段と、前記第1の更新手段によって検証データが更新された後、再起動されると、前記第1の起動システムにおいて、前記第1の起動システムを通常モードで起動する第2の起動手段と、を有する。
本発明によれば、適切に検証データを更新できる。
画像形成装置の構成等の一例を示す図である。 画像形成装置のソフトウェア構成の一例を示す図である。 画像形成装置の起動モードごとの動作の一例を示す図である。 ファームウェア更新処理の一例を示すフローチャートである。 画像形成装置のソフトウェア構成の一例を示す図である。 ファームウェア更新処理の一例を示すフローチャートである。
(第1の実施形態)
図1を参照して、画像形成装置100の構成について説明する。図1は、画像形成装置100の構成等の一例を示す図である。画像形成装置100は、メインコントローラ110と操作部ユニット120とプリンタユニット130とスキャナユニット140とを有する。メインコントローラ110は、CPU111と不揮発性メモリ112とRAM113とHDD114と操作部I/F115とプリンタI/F116とスキャナI/F117とUSB−HostI/F118とネットワークI/F119とを有する。画像形成装置100は、情報処理装置の一例である。
CPU111は、画像形成装置100の全体を制御する。CPU111は、不揮発性メモリ112に記憶されたメインコントローラ110用のファームウェア等のプログラムをRAM113に読み出して実行する。不揮発性メモリ112には、プログラムの他にライセンス、機器構成情報及びファームウェアバージョン等の機器情報等も記憶されている。
不揮発性メモリ112は、ファームウェア等のプログラム、各種設定情報等を記憶し、記憶したデータを更新可能である。不揮発性メモリ112として、例えばSSD(ソリッドステートドライブ)が使われる。不揮発性メモリ112は、記憶媒体の一例である。
HDD(ハードディスクドライブ)114は、ネットワークI/F119を介してPC180から受信した印刷データを記憶する。不揮発性メモリ112から読み出されCPU111により実行されるプログラムには、プリント用アプリケーションプログラムが含まれる。プリント用アプリケーションプログラムが実行されることにより、HDD114に記憶された印刷データが、プリンタユニット130によるプリントが可能な画像データに変換される。HDD114には、プリンタユニット130によるプリントが可能な画像データも記憶される。また、不揮発性メモリ112から読み出されCPU111により実行されるプログラムには、スキャン用アプリケーションプログラムが含まれる。スキャン用アプリケーションプログラムが実行されることにより、スキャナユニット140により画像データが読み取られるとともに、読み取られた画像データがHDD114に転送される。そして、HDD114には、読み取られた画像データが記憶される。
操作部I/F115は、操作部ユニット120を介して画像形成装置100の使用者により入力される指示をCPU111に伝達するためのインタフェース(I/F)である。操作部I/F115は、操作部ユニット120に表示する内容を切り替えるための処理内容をCPU111から受信して操作部ユニット120に伝達する。操作部ユニット120は、タッチパネル機能を有する液晶表示部やキーボード等が備えられ、使用者の指示を受け付ける。操作部ユニット120は、液晶表示部等により、各種の情報等を表示できる。
プリンタI/F116は、プリンタユニット130をメインコントローラ110に接続するためのインタフェースである。プリンタユニット130は、プリンタI/F116を介してHDD114から転送される画像データに基づいて、印刷用紙等の記録媒体上にプリントを行う。
スキャナI/F117は、スキャナユニット140をメインコントローラ110に接続するためのインタフェースである。スキャナユニット140は、画像データを入力する入力手段であり、原稿上の画像をCCD(ChargeCoupledDevice)等により構成されるラインセンサを用いて画像データとして読み取るものである。そして、スキャナユニット140は、読み取った画像データをスキャナI/F117を介してHDD114へ転送する。HDD114へ転送されて記憶された画像データは、前述したプリンタユニット130によりプリントすることが可能である。また、スキャナユニット140により読み取った画像データをプリンタユニット130によりプリントすることにより、複写(コピー)処理が可能となる。
USB−HostI/F118は、外部USBデバイス160をメインコントローラ110に接続するためのインタフェースである。外部USBデバイス160の例としてはFAXユニットが挙げられる。FAXユニットは、USB−HostI/F118を介してHDD114から転送される画像データに基づいてFAX送信を行う。また、FAXユニットは、受信するデータに基づいて画像データを生成し、USB−HostI/F118を介してHDD114に画像データを転送する。HDD114に記憶された画像データは、前述したようにプリンタユニット130により記録媒体へプリントされる。外部USBデバイス160の他の例として、USBメモリ及びUSBキーボード等が挙げられる。USBメモリからは、USB−HostI/F118を介して、ファームウェアの更新に必要な更新ファイル及び更新情報の転送も可能である。
ネットワークI/F119は、メインコントローラ110をLAN(Local Area Network)150に接続し、LAN150上のPC180との通信を行う。PC180は、画像形成装置100とLAN150で接続され、画像形成装置100に対して、印刷データの送信、ファームウェアの更新に必要な更新ファイル及び更新情報の送信等が可能である。また、PC180は、PC180で起動するWEBブラウザ経由で、画像形成装置100を操作できる。画像形成装置100は、LAN150を介して、更にサーバ装置170と接続され、ファームウェアの更新に必要な更新ファイル及び更新情報をダウンロードできる。更新ファイル等のダウンロードには、HTTP(Hypertext Transfer Protocol)、FTP(File Transfer Protocol)等のプロトコルが使用される。ただし、更新ファイル等のダウンロードに使用されるプロトコルはこれらに限定されない。
サーバ装置170には、出荷された製品に対して更新が必要な最新のファームウェアの更新ファイルが常にアップロードされている。画像形成装置100は、サーバ装置170に問い合わせることで、必要なファームウェアの更新ファイルを取得することができる。ただし、画像形成装置100の設置環境によっては、画像形成装置100がサーバ装置170に接続しないケースもある。
次に、図2を参照して、画像形成装置100のソフトウェア構成について説明する。図2は、画像形成装置100のソフトウェア構成の一例を示す図である。ここで説明するソフトウェア(プログラム)は、図2に示すように、不揮発性メモリ112に記憶されている。
画像形成装置100は、起動システムとして、メインシステム210及びアップデート用システム220を有する。画像形成装置100は、メインシステム210及びアップデート用システム220のうち一の起動システムを動作させる。メインシステム210及びアップデート用システム220は、それぞれOS(オペレーティングシステム)を有する。画像形成装置100がメインシステム210を動作させる場合、画像形成装置100は、メインシステム210のOSの制御下で動作する。画像形成装置100がアップデート用システム220を動作させる場合、画像形成装置100は、アップデート用システム220のOSの制御下で動作する。メインシステム210は、第1の起動システムの一例である。アップデート用システム220は、第2の起動システムの一例である。
メインシステム210は、起動制御部211と起動モード保持部212とプリンタ制御部213とスキャナ制御部214とUSB制御部215と通信処理部216とホワイトリスト管理部217とファイル検証部218とを有する。また、メインシステム210は、ホワイトリスト更新部219と更新制御部250とを有する。
起動制御部211は、メインシステム210の起動時の処理を制御する。起動制御部211は、各種プログラムを動作させるためのメインシステム210のOSを起動させる。起動制御部211は、メインシステム210を起動させる際に、起動モード保持部212を参照し、起動モードに応じてメインシステム210の起動制御を切り替える。
起動モード保持部212は、起動モードの設定を保持する不揮発性メモリ112の記憶領域である。画像形成装置100には、起動モードとして、通常モードと後述のホワイトリスト更新モードとアップデートモードとがある。このうち、通常モードとホワイトリスト更新モードとが、メインシステム210の起動モードである。起動モード保持部212は、メインシステム210が通常モードで起動するかホワイトリスト更新モードで起動するかの設定情報を保持する。改ざん検知設定がオンになっており、ファームウェア更新後の起動以外の場合、メインシステム210が通常モードで起動するように、起動モードが設定される。ホワイトリスト更新モードは、検証データ更新モードの一例である。起動モード保持部212が保持する起動モードの設定がホワイトリスト更新モードの場合は、検証データ更新モード設定が有効である場合の一例である。
プリンタ制御部213は、プリンタI/F116を介したプリンタユニット130の制御を行う。
スキャナ制御部214は、スキャナI/F117を介したスキャナユニット140の制御を行う。
USB制御部215は、USB−HostI/F118を介して、USB−HostI/F118に接続した外部USBデバイス160の制御を行う。外部USBデバイス160がUSBメモリである場合、USBメモリから、ファームウェアの更新に必要な更新ファイル及び更新情報の受信処理に関する制御を行う。USB制御部215で受信されたファイルはHDD114に保存される。
通信処理部216は、ネットワークI/F119を介して、PC180やサーバ装置170との通信を行い、LAN150を介して、ファームウェアの更新に必要な更新ファイル及び更新情報の受信処理を行う。通信処理部216で受信されたファイルはHDD114に保存される。
ホワイトリスト管理部217は、メインシステム210のファームウェアに関するホワイトリストの管理を行う。ホワイトリスト管理部217で管理されるホワイトリストは、メインシステム210のホワイトリストであり、メインシステム210のファームウェアに対する検証データを含む。メインシステム210のホワイトリストは、通常は書き換えを禁止した状態で管理され、不揮発性メモリ112のメインシステム210の管理下にある領域に記憶される。
ホワイトリストは、画像形成装置100での実行を許可するファームウェアの情報の一覧である。より具体的には、ホワイトリストは、ファームウェアの識別情報とこのファームウェアの検証データとが関連付けられたデータを1つ以上備える。ファームウェアの識別情報には、例えば、ファームウェアのファイル名等の文字列が使われる。ファームウェアの検証データは、ファームウェアの改ざんの検知に使われる。ファームウェアの検証データには、ファームウェアのファイルのハッシュ値が使われる。メインシステム210のホワイトリストは、画像形成装置100での実行を許可するメインシステム210のファームウェアの情報の一覧である。
ファイル検証部218は、メインシステム210のファームウェアを実行する際やファームウェアが格納されたファイルをオープンする際に改ざんの検証を行う。より具体的には、ファイル検証部218は、ファームウェアのファイル全体のハッシュ値を算出する。そして、ファイル検証部218は、算出したハッシュ値が、ホワイトリスト管理部217で管理されているホワイトリストに含まれた当該ファームウェアに対応する検証データと一致しているか否かを確認する。そして、ファイル検証部218は、一致しなければ改ざんされたと判定する。ファイル検証部218の処理は、改ざん検知処理の一例である。
ホワイトリスト更新部219は、メインシステム210のファームウェアの更新後にホワイトリスト管理部217で管理されたホワイトリストの更新処理を行う。ホワイトリストの更新は一時的にホワイトリストを書き込み可能にすることにより実施され、ホワイトリスト更新部219は特殊な権限を持つ。また、本実施形態でのホワイトリストの更新の際には、ファイルのパス情報やOSに依存するプログラムを用いる。そのため、メインシステム210のファームウェアに対するホワイトリストを更新するためには、ホワイトリスト更新部219は、起動制御部211により起動されたメインシステム210上で動作する必要がある。
更新制御部250は、ファームウェアの更新に関連する処理を行う。
アップデート用システム220は、ファームウェア更新処理部221とセキュリティ設定取得部222とメインシステム起動モード設定部223とUSB制御部224と通信処理部225とを有する。
ファームウェア更新処理部221は、操作部ユニット120を介してユーザからファームウェア更新の実行の指示があった場合や、予め設定された時刻に到達した場合に、メインシステム210を構成するファームウェアの更新処理を行う。
セキュリティ設定取得部222は、使用者により設定されたセキュリティ設定の情報を取得する。セキュリティ設定には、改ざん検知設定が含まれる。改ざん検知設定は、ファイル検証部218が改ざんの検証を行うか否かの設定である。ホワイトリストの更新を行うことによりファームウェアの更新にかかる処理時間は増加する。そこで、オフ(無効)の場合はホワイトリストの更新処理を行わず、改ざん検知設定がオン(有効)になっている場合は、ファームウェアの更新処理後にホワイトリストの更新のための制御を行う。
メインシステム起動モード設定部223は、セキュリティ設定取得部222によって取得されたセキュリティ設定の情報に応じて、起動モード保持部212に対して、次回再起動時のメインシステム起動モードの設定を行う。より具体的には、メインシステム起動モード設定部223は、改ざん検知設定が有効の場合、起動モードをホワイトリスト更新起動モードにする設定を行い、改ざん検知設定が無効の場合、起動モードを通常モードにする設定を行う。
USB制御部224及び通信処理部225は、メインシステム210のUSB制御部215及び通信処理部216と同様の機能を有する。
メインシステム210、及び、アップデート用システム220の上記のプログラムは、更新可能なファームウェアである。メインシステム210、及び、アップデート用システム220は、上記以外のファームウェアを有していてもよい。
次に、図3を参照して、画像形成装置100の起動モードごとの動作について説明する。図3は、画像形成装置100の起動モードごとの動作の一例を示す図である。画像形成装置100は、図3に示すように、起動モードとして、通常モードとホワイトリスト更新モードとアップデートモードとを有する。
<通常モード>
通常モードは、画像形成装置100の基本機能を制御するための起動モードである。通常モードは、メインシステム210のモードであり、メインシステム210のOSで起動する。通常モードでは、画像形成装置100は、プリンタI/F116を介したプリンタユニット130との通信及びスキャナI/F117を介したスキャナユニット140との通信を行うことでスキャン、プリント、コピーといった動作を実現する。また、通常モードでは、CPU111は、ホワイトリスト管理部217で管理されているホワイトリストの参照が可能である。ファイル検証部218は、改ざん検知設定がオンになっている場合、改ざんの検知を行う。ただし、通常モードでのホワイトリストの更新処理は禁止されている。また、通常モードでは、画像形成装置100は、USB制御部215や通信処理部216を介して、外部USBデバイス160やサーバ装置170等の外部装置へのアクセスが可能であり、印刷データ等の入出力を行う。また、通常モードでは、CPU111は、操作部I/F115を介して操作部ユニット120と通信し、画像形成装置100の状態を表示したり、使用者の指示を受け付けることで、画像形成装置100の機能の詳細な動作設定を行ったりする。
<ホワイトリスト更新モード>
ホワイトリスト更新モードは、ファームウェア更新後の新しいファームウェアに対応するようにホワイトリストを更新するための起動モードである。ホワイトリスト更新モードは、メインシステム210のモードであり、メインシステム210のOSで起動する。ホワイトリスト更新モードは、ホワイトリストの更新のためだけの動作モードである。したがって、ホワイトリスト更新モードでは、ホワイトリストが正しく更新されるまでは、画像形成装置100の基本機能は動作できないように制御する必要がある。そのため、ホワイトリスト更新モードでは、画像形成装置100は、プリンタユニット130やスキャナユニット140との通信は不可とする。画像形成装置100がホワイトリスト更新モードで起動した場合のみ、CPU111は、ホワイトリスト管理部217で管理されたホワイトリストへの参照と更新の両方が可能である。また、ホワイトリスト更新モードでは、画像形成装置100は、外部USBデバイス160やサーバ装置170等の外部装置へのアクセスを行わない。また、ホワイトリスト更新モードでは、CPU111は、操作部ユニット120へは、ファームウェアの更新処理中である旨の状況表示のみを行い、使用者による指示の受け付け等は行わない。
<アップデートモード>
アップデートモードはメインシステム210を構成するプログラム群を更新するための起動モードである。アップデートモードは、アップデート用システム220のモードであり、アップデート用システム220のOSで起動する。アップデートモードを通常モードとは異なるOSで起動するようにすることには次のような利点がある。すなわち、メインシステム210のプログラムが何らかの理由で動作できなくなった場合も、アップデート用システム220がアップデートモードで起動することでメインシステム210のリカバリを行うことができる利点がある。
アップデートモードは、ファームウェア更新処理部221によるプログラムの更新のためのみの起動モードである。したがって、アップデートモードでは、画像形成装置100は、プリンタユニット130やスキャナユニット140との通信は行わない。また、アップデートモードでは、CPU111は、メインシステム210で管理されているホワイトリストの参照及び更新ができないようになっている。ただし、アップデートモードでは、画像形成装置100は、更新対象のファームウェアの取得を行うケースがあるため、外部USBデバイス160やサーバ装置170等の外部装置との通信は可能となっている。また、アップデートモードでは、CPU111は、操作部ユニット120へは、ファームウェアの更新処理中である旨の状況表示のみを行い、使用者による指示の受け付け等は行わない。
次に、図4を参照して、ファームウェア更新処理について説明する。図4は、ファームウェア更新処理の一例を示すフローチャートである。図4の処理を実現するプログラムは、不揮発性メモリ112に記憶され、CPU111により実行される。図4の処理の開始時は、画像形成装置100は、メインシステム210を通常モードで動作させているものとする。
S401において、更新制御部250は、操作部ユニット120を介したユーザからの入力、又は、PC180やサーバ装置170から受信した情報等に基づいて、ファームウェアの更新の指示を受け付ける。
S402において、更新制御部250は、外部装置から、ファームウェアの更新に使用する更新ファイル及び更新情報を受信して、HDD114に保存する。ここで、ファームウェアの更新ファイル等の送信元である外部装置は、USB−HostI/F118を介した外部USBデバイス160であってもよいし、ネットワークI/F119を介したPC180又はサーバ装置170でもよい。そして、更新制御部250は、画像形成装置100がアップデート用システム220の制御によってアップデートモードで動作するよう制御する。より具体的には、更新制御部250は、画像形成装置100がシステムリブート(再起動)後に、アップデートモードで起動するよう設定し、画像形成装置100をシステムリブートさせる。これにより、画像形成装置100は、システムリブートする。そして、画像形成装置100では、アップデート用システム220がアップデートモードで起動し、動作を開始する。
S403において、ファームウェア更新処理部221は、S402で取得された更新ファイル及び更新情報に基づいて、メインシステム210のファームウェアの更新処理を行う。S403の処理は、第1のソフトウェア更新処理の一例である。
S404において、セキュリティ設定取得部222は、使用者により設定されたセキュリティ設定情報を取得し、改ざん検知設定がオンか否かを判定する。セキュリティ設定取得部222は、改ざん検知設定がオンと判定した場合、処理をS405に進め、改ざん検知設定がオフと判定した場合、処理をS406に進める。
S405において、メインシステム起動モード設定部223は、画像形成装置100が次回起動したときにホワイトリスト更新起動をするように、起動モード保持部212に対してホワイトリスト更新モードを設定する。
S406において、メインシステム起動モード設定部223は、画像形成装置100をシステムリブートさせる。これにより、画像形成装置100は、システムリブートする。
S407において、起動制御部211は、起動モード保持部212に保持された起動モードを参照し、ホワイトリスト更新モードで起動するか否かを判定する。起動制御部211は、ホワイトリスト更新モードで起動すると判定した場合、処理をS408に進め、ホワイトリスト更新モードでは起動しないと判定した場合、処理をS411に進める。
S408において、起動制御部211は、メインシステム210をホワイトリスト更新モードで起動するよう制御する。ホワイトリスト更新モードは、図3を参照して説明した通りである。S408の処理は、第1の起動処理の一例である。
S409において、ホワイトリスト更新部219は、S403で更新されたファームウェアのファイルに基づいて、メインシステム210の更新後のファームウェアに適合するように、メインシステム210のホワイトリストを更新する。より具体的には、ホワイトリスト更新部219は、S403で更新されたファームウェアのファイルに基づいて、更新後のファームウェアの検証データを生成する。ここでの更新後のファームウェアは、メインシステム210のファームウェアである。そして、ホワイトリスト更新部219は、生成した検証データを使用して、メインシステム210のホワイトリストに含まれる更新後のファームウェアに対応する検証データを更新する。S409の処理は、第1の更新処理の一例である。
S410において、更新制御部250は、起動モード保持部212に対して、通常モードを設定する。そして、更新制御部250は、システムリブートするよう制御する。これにより、画像形成装置100は、システムリブートする。
S411において、起動制御部211は、メインシステム210を通常モードで起動するよう制御する。その後、メインシステム210は、画像形成装置100の基本機能の動作制御を開始する。S411の処理は、第2の起動処理の一例である。
S407においてホワイトリスト更新モードでは起動しないと判定された場合、S411に進み、画像形成装置100は通常モードで起動する。したがって、S407においてホワイトリスト更新モードで起動すると判定された場合と比べて、システムリブートの回数が1回少なく、図4のファームウェア更新処理が早く終了する。
以上説明したように、第1の実施形態によれば、複数の起動システムを有する画像形成装置100が、メインシステム210のファームウェアを更新した場合であっても、メインシステム210の検証データを含むホワイトリストを適切に更新できる。また、画像形成装置100は、外部装置にアクセスできないホワイトリスト更新モードでホワイトリストを更新する。したがって、ホワイトリストが改ざんされるおそれを抑制でき、安全にホワイトリストを更新できる。
(第2の実施形態)
次に、第2の実施形態について説明する。以下に記載する第2の実施形態の説明では、第1の実施形態と共通する事項について説明を省略し、第1の実施形態と異なる事項についての説明を行う。また、第1の実施形態と同じ要素については同じ符号を付しており、その詳細な説明は省略する。
図5を参照して、第2の実施形態の画像形成装置100のソフトウェア構成について説明する。図5は、画像形成装置100のソフトウェア構成の一例を示す図である。ここで説明するプログラムは、図5に示すように、不揮発性メモリ112に記憶されている。
第2の実施形態のメインシステム210のソフトウェア構成は、図2に示す第1の実施形態のメインシステム210と同様である。
第2の実施形態のアップデート用システム220は、図2に示す第1の実施形態のアップデート用システム220の各部に加えて、更に、次の各部を有する。すなわち、第2の実施形態のアップデート用システム220は、起動制御部526と起動モード保持部527とホワイトリスト管理部528とファイル検証部529とホワイトリスト更新部530とを有する。
起動制御部526は、メインシステム210の起動制御部211と同様に、アップデート用システム220の起動時の処理を制御する。起動制御部526は、起動制御部211は、各種プログラムを動作させるためのアップデート用システム220のOSを起動させる。起動制御部526は、アップデート用システム220を起動させる際に、起動モード保持部527を参照し、起動モードに応じてアップデート用システム220の起動制御を切り替える。
ホワイトリスト管理部528は、メインシステム210のホワイトリスト管理部217と同様に、アップデート用システム220のファームウェアに関するホワイトリストの管理を行う。ホワイトリスト管理部528で管理されるホワイトリストは、アップデート用システム220のホワイトリストであり、アップデート用システム220のファームウェアに対する検証データを含む。アップデート用システム220のホワイトリストは、通常は書き換えを禁止した状態で管理され、不揮発性メモリ112のアップデート用システム220の管理下にある領域に記憶される。
ファイル検証部529は、メインシステム210のファイル検証部218と同様に、アップデート用システム220のファームウェアを実行する際やファームウェアが格納されたファイルをオープンする際に改ざんの検証を行う。ファイル検証部529の検証の方法は、メインシステム210とファイル検証部218と同等である。ファイル検証部529は、ファームウェアのファイル全体のハッシュ値を算出する。そして、ファイル検証部529は、算出したハッシュ値が、ホワイトリスト管理部528で管理されているホワイトリストに含まれた当該ファームウェアに対応する検証データと一致しているか否かを確認する。そして、ファイル検証部529は、一致しなければ改ざんされたと判定する。
ホワイトリスト更新部530は、メインシステム210のホワイトリスト更新部219と同様に、アップデート用システム220のファームウェアの更新後にホワイトリスト管理部528で管理されたホワイトリストの更新処理を行う。
このように第2の実施形態において、アップデート用システム220がメインシステム210と同様のプログラム群を持つことで、次のように、システム全体のセキュリティが向上する。すなわち、アップデート用システム220の更新されたファームウェアが改ざんされる場合を考慮して、アップデート用システム220のファームウェアもホワイトリストにより検証を行う。これにより、システム全体のセキュリティが向上する。
次に、図6を参照して、第2の実施形態におけるファームウェア更新処理について説明する。図6は、更新処理の一例を示すフローチャートである。図6の処理を実現するプログラムは、不揮発性メモリ112に記憶され、CPU111により実行される。図6の処理の開始時は、画像形成装置100は、メインシステム210を通常モードで動作させているものとする。
図6のS601からS609の処理は、図4のS401からS409の処理と同様である。
S610において、メインシステム210は、S602で受信された更新ファイル及び更新情報に基づいて、アップデート用システム220のファームウェアの更新処理を行う。S610の処理は、第2のソフトウェア更新処理の一例である。
S611において、起動制御部211は、S607と同様に、起動モード保持部212に保持された起動モードを参照し、ホワイトリスト更新モードで起動するか否かを判定する。起動制御部211は、ホワイトリスト更新モードで起動すると判定した場合、処理をS612に進め、ホワイトリスト更新モードでは起動しないと判定した場合、処理をS616に進める。
S612において、起動制御部211は、画像形成装置100をシステムリブートさせる。これにより、画像形成装置100は、システムリブートする。
S613において、起動制御部526は、アップデート用システム220を更新ホワイトリスト更新モードで起動するよう制御する。第2の実施形態では、アップデート用システム220も、メインシステム210と同様に、ホワイトリスト更新モードを持つ。S613の処理は、第3の起動処理の一例である。
S614において、ホワイトリスト更新部530は、S610で更新されたファームウェアのファイルに基づいて、アップデート用システム220の更新後のファームウェアに適合するように、アップデート用システム220のホワイトリストを更新する。より具体的には、ホワイトリスト更新部530は、S610で更新されたファームウェアのファイルに基づいて、更新後のファームウェアの検証データを生成する。ここでの更新後のファームウェアは、アップデート用システム220のファームウェアである。そして、ホワイトリスト更新部530は、生成した更新後のファームウェアの検証データを使用して、アップデート用システム220のホワイトリストに含まれる更新後のファームウェアに対応する検証データを更新する。S614の処理は、第2の更新処理の一例である。
S615において、起動制御部526は、画像形成装置100をシステムリブートさせる。これにより、画像形成装置100は、システムリブートする。
S616において、起動制御部211は、メインシステム210を通常モードで起動するよう制御する。その後、メインシステム210は、画像形成装置100の基本機能の動作制御を開始する。
以上説明したように、第2の実施形態によれば、メインシステム210のホワイトリスト、及び、アップデート用システム220のホワイトリストの更新が可能である。したがって、画像形成装置100の更なるセキュリティの向上を図ることが可能になる。また、第1の実施形態と同様に、適切かつ安全にホワイトリストを更新できる。
(変形例)
図4のS401、S402及び図6のS601、S602の処理がされるとき、画像形成装置100は、メインシステム210を通常モードで動作させている。しかし、図4のS401、S402及び図6のS601、S602の処理がされるとき、画像形成装置100は、アップデート用システム220をアップデートモードで動作させていてもよい。この場合、S402及びS602においてシステムリブートは行われない。
また、上記の実施形態では、画像形成装置100は、起動システムとして、メインシステム210とアップデート用システム220とを有するが、こられ以外の起動システムを有していてもよい。このため、画像形成装置100は、メインシステム210のOS及びアップデート用システム220のOS以外のOSを有していてもよい。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上、本発明を実施形態と共に説明したが、上記実施形態は本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
例えば、画像形成装置100のハードウェア構成として、CPUは複数存在してもよく、複数のCPUが各装置のHDD等に記憶されているプログラムに基づき処理を実行するようにしてもよい。また、画像形成装置100のハードウェア構成として、CPUに替えてGPU(Graphics Processing Unit)を用いることとしてもよい。ソフトウェア構成の一部は、画像形成装置100のハードウェアとして実装されてもよい。また、上記の実施形態を任意に組み合わせてもよい。
以上、上述した実施形態によれば、適切に検証データを更新できる。
100 画像形成装置
210 メインシステム
211 起動制御部
217 ホワイトリスト管理部
218 ファイル検証部
219 ホワイトリスト更新部
220 アップデート用システム

Claims (11)

  1. 第1の起動システムと、第2の起動システムと、を含む複数の起動システムのうち一の起動システムを動作させる情報処理装置であって、
    前記第2の起動システムにおいて、前記第1の起動システムのソフトウェアを更新する第1のソフトウェア更新手段と、
    前記第1のソフトウェア更新手段によって前記第1の起動システムのソフトウェアが更新された後、再起動されると、前記第1の起動システムにおいて、前記第1の起動システムを検証データ更新モードで起動する第1の起動手段と、
    前記第1の起動手段によって前記検証データ更新モードで起動された際に、前記第1の起動システムにおいて、前記第1の起動システムのソフトウェアの検証データを更新する第1の更新手段と、
    前記第1の更新手段によって検証データが更新された後、再起動されると、前記第1の起動システムにおいて、前記第1の起動システムを通常モードで起動する第2の起動手段と、
    を有する情報処理装置。
  2. 前記第1の起動システムにおいて、前記第1の更新手段によって更新された検証データに基づいて、前記第1のソフトウェア更新手段で更新されたソフトウェアの改ざん検知を行う検知手段を更に有する請求項1記載の情報処理装置。
  3. 検証データ更新モード設定が有効である場合、
    前記第1のソフトウェア更新手段によって前記第1の起動システムのソフトウェアが更新された後、再起動されると、前記第1の起動手段は、前記第1の起動システムにおいて、前記第1の起動システムを前記検証データ更新モードで起動し、
    前記第1の起動手段によって起動された際に、前記第1の更新手段は、前記第1の起動システムにおいて、前記第1の起動システムのソフトウェアの検証データを更新し、
    前記第1の更新手段によって検証データが更新された後、再起動されると、前記第2の起動手段は、前記第1の起動システムにおいて、前記第1の起動システムを通常モードで起動する請求項1又は2記載の情報処理装置。
  4. 前記検証データ更新モード設定が有効でない場合、前記第1のソフトウェア更新手段によって前記第1の起動システムのソフトウェアが更新された後、再起動されると、前記第2の起動手段は、前記第1の起動システムにおいて、前記第1の起動システムを前記通常モードで起動する請求項3記載の情報処理装置。
  5. 前記第1のソフトウェア更新手段によって前記第1の起動システムのソフトウェアが更新された後、再起動されると、前記第1の起動システムにおいて、前記第2の起動システムのソフトウェアを更新する第2のソフトウェア更新手段と、
    前記第2のソフトウェア更新手段によって前記第2の起動システムのソフトウェアが更新された後、再起動されると、前記第2の起動システムにおいて、前記第2の起動システムを前記検証データ更新モードで起動する第3の起動手段と、
    前記第3の起動手段によって前記検証データ更新モードで起動した際に、前記第2の起動システムにおいて、前記第2の起動システムのソフトウェアの検証データを更新する第2の更新手段と、
    を更に有し、
    前記第2の更新手段によって検証データが更新された後、再起動されると、前記第2の起動手段は、前記第1の起動システムにおいて、前記第1の起動システムを前記通常モードで起動する請求項1又は2記載の情報処理装置。
  6. 検証データ更新モード設定が有効である場合、
    前記第1のソフトウェア更新手段によって前記第1の起動システムのソフトウェアが更新された後、再起動されると、前記第1の起動手段は、前記第1の起動システムにおいて、前記第1の起動システムを前記検証データ更新モードで起動し、
    前記第1の起動手段によって起動された際に、前記第1の更新手段は、前記第1の起動システムにおいて、前記第1の起動システムのソフトウェアの検証データを更新し、
    前記第1の起動手段によって起動された際に、前記第2のソフトウェア更新手段は、前記第1の起動システムにおいて、前記第2の起動システムのソフトウェアを更新し、
    前記第1の更新手段によって更新され、前記第2のソフトウェア更新手段によって更新された後、再起動されると、前記第3の起動手段は、前記第2の起動システムにおいて、前記第2の起動システムを前記検証データ更新モードで起動し、
    前記第3の起動手段によって起動された際に、前記第2の更新手段は、前記第2の起動システムにおいて、前記第2の起動システムのソフトウェアの検証データを更新し、
    前記第1の更新手段によって検証データが更新された後、再起動されると、前記第2の起動手段は、前記第1の起動システムにおいて、前記第1の起動システムを前記通常モードで起動する請求項5記載の情報処理装置。
  7. 前記検証データ更新モード設定が有効でない場合、
    前記第1のソフトウェア更新手段によって前記第1の起動システムのソフトウェアが更新された後、再起動されると、前記第2のソフトウェア更新手段は、前記第1の起動システムにおいて、前記第1の起動システムのソフトウェアを更新し、
    前記第2のソフトウェア更新手段によって前記第2の起動システムのソフトウェアが更新された後、再起動されると、前記第2の起動手段は、前記第1の起動システムにおいて、前記第1の起動システムを前記通常モードで起動する請求項6記載の情報処理装置。
  8. 前記検証データ更新モードは、外部装置と通信しないモードである請求項1乃至7何れか1項記載の情報処理装置。
  9. 前記情報処理装置は、画像形成装置である請求項1乃至8何れか1項記載の情報処理装置。
  10. 第1の起動システムと、第2の起動システムと、を含む複数の起動システムのうち一の起動システムを動作させる情報処理装置の制御方法であって、
    前記第2の起動システムにおいて、前記第1の起動システムのソフトウェアを更新する第1のソフトウェア更新ステップと、
    前記第1のソフトウェア更新ステップによって前記第1の起動システムのソフトウェアが更新された後、再起動されると、前記第1の起動システムにおいて、前記第1の起動システムを検証データ更新モードで起動する第1の起動ステップと、
    前記第1の起動ステップによって前記検証データ更新モードで起動された際に、前記第1の起動システムにおいて、前記第1の起動システムのソフトウェアの検証データを更新する第1の更新ステップと、
    前記第1の更新ステップによって検証データが更新された後、再起動されると、前記第1の起動システムにおいて、前記第1の起動システムを通常モードで起動する第2の起動ステップと、
    を有する情報処理装置の制御方法。
  11. コンピュータを、請求項1乃至9何れか1項記載の情報処理装置の各手段として機能させるためのプログラム。
JP2018134006A 2018-07-17 2018-07-17 情報処理装置、情報処理装置の制御方法、及び、プログラム Pending JP2020013244A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018134006A JP2020013244A (ja) 2018-07-17 2018-07-17 情報処理装置、情報処理装置の制御方法、及び、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018134006A JP2020013244A (ja) 2018-07-17 2018-07-17 情報処理装置、情報処理装置の制御方法、及び、プログラム

Publications (1)

Publication Number Publication Date
JP2020013244A true JP2020013244A (ja) 2020-01-23

Family

ID=69169359

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018134006A Pending JP2020013244A (ja) 2018-07-17 2018-07-17 情報処理装置、情報処理装置の制御方法、及び、プログラム

Country Status (1)

Country Link
JP (1) JP2020013244A (ja)

Similar Documents

Publication Publication Date Title
JP6226709B2 (ja) 画像形成装置及びその制御方法、並びにプログラム
US9576132B2 (en) Information processing apparatus and information processing method
US10564957B2 (en) Electronic machine, version check system and recording medium
JP6305069B2 (ja) 画像形成装置及びその制御方法、並びにプログラム
JP2017021434A (ja) 情報処理装置及びその制御方法
JP4954031B2 (ja) 画像処理装置及び再インストール方法
WO2015033554A1 (en) Image forming apparatus and control method for image forming apparatus
US11669609B2 (en) Information processing apparatus, control method of the same, and storage medium
JP2015097023A (ja) 画像形成装置及びその制御方法、並びにプログラム
JP2022135443A (ja) 情報処理装置、情報処理方法及びプログラム
JP2020082441A (ja) 画像形成装置、その制御方法、及びプログラム
JP2020013244A (ja) 情報処理装置、情報処理装置の制御方法、及び、プログラム
JP7374780B2 (ja) 情報処理装置および情報処理装置の制御方法
JP7182966B2 (ja) 情報処理装置、情報処理装置の起動方法、及びプログラム
JP2015108865A (ja) 画像形成装置及びその制御方法、並びにプログラム
JP2008171041A (ja) 画像形成装置、画像形成装置の起動方法、制御装置及び拡張ユニットの起動方法
JP2020053002A (ja) 情報処理装置とその制御方法、及びプログラム
JP2020154601A (ja) 情報処理装置とその制御方法、及びプログラム
JP2020052597A (ja) 情報処理装置、情報処理装置の制御方法、及び、プログラム
JP2018097888A (ja) 画像形成装置、及び画像形成装置の制御方法
JP2020181540A (ja) 情報処理装置、データ検証方法
JP2006129362A (ja) デジタル複合機
JP7500400B2 (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
US11971991B2 (en) Information processing apparatus, control method for controlling the same and storage medium
JP2021117589A (ja) 情報処理装置、情報処理装置の処理方法およびプログラム