IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特開2022-187302情報処理装置とその制御方法、及びプログラム
<>
  • 特開-情報処理装置とその制御方法、及びプログラム 図1
  • 特開-情報処理装置とその制御方法、及びプログラム 図2
  • 特開-情報処理装置とその制御方法、及びプログラム 図3
  • 特開-情報処理装置とその制御方法、及びプログラム 図4
  • 特開-情報処理装置とその制御方法、及びプログラム 図5
  • 特開-情報処理装置とその制御方法、及びプログラム 図6
  • 特開-情報処理装置とその制御方法、及びプログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022187302
(43)【公開日】2022-12-19
(54)【発明の名称】情報処理装置とその制御方法、及びプログラム
(51)【国際特許分類】
   G06F 8/65 20180101AFI20221212BHJP
   G06F 21/57 20130101ALI20221212BHJP
【FI】
G06F8/65
G06F21/57 350
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2021095272
(22)【出願日】2021-06-07
(71)【出願人】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】徳元 曜子
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376CA23
5B376CA25
5B376CA31
5B376CA42
5B376EA13
(57)【要約】      (修正有)
【課題】セキュアブート機能を備える情報処理装置において、セキュアブートを無効にしている場合、ファームウェアの更新に伴うダウンタイムを最小限に抑えることができる情報処理装置とその制御方法及びプログラムを提供する。
【解決手段】複数のファームウェアを有し、改竄を検知しながらファームウェアを順次起動するセキュアブートを実行できる情報処理装置であって、セキュアブートが有効かどうかを示す情報を記憶する。そして、ファームウェアの更新が指示されると、セキュアブートが有効を示す情報が記憶されている場合、前記ファームウェアの更新と、記憶されている前記バックアップ用ファームウェアの更新とを実行し、前記セキュアブートが無効を示す情報が記憶されている場合、前記ファームウェアの更新と異なるタイミングで、記憶されている前記バックアップ用ファームウェアの更新を実行する。
【選択図】図4
【特許請求の範囲】
【請求項1】
複数のファームウェアを有し、改竄を検知しながらファームウェアを順次起動するセキュアブートを実行できる情報処理装置であって、
ファームウェアを自動復旧させるためのバックアップ用ファームウェアを記憶する第1記憶手段と、
前記セキュアブートが有効かどうかを示す情報を記憶する第2記憶手段と、
前記ファームウェアの更新が指示されると、前記第2記憶手段に前記セキュアブートが有効を示す情報が記憶されている場合、前記ファームウェアの更新と、前記第1記憶手段に記憶されている前記バックアップ用ファームウェアの更新とを実行し、
前記第2記憶手段に前記セキュアブートが無効を示す情報が記憶されている場合、前記ファームウェアの更新と異なるタイミングで、前記第1記憶手段に記憶されている前記バックアップ用ファームウェアの更新を実行する制御手段と、
とを有することを特徴とする情報処理装置。
【請求項2】
前記ファームウェアの更新が指示されると、外部装置からファームウェアをダウンロードする手段と、
前記ダウンロードしたファームウェアを展開して記憶する第3記憶手段と、を更に有し、
前記制御手段は、前記第3記憶手段に記憶された前記ファームウェアを用いて前記ファームウェアの更新、或いは前記バックアップ用ファームウェアの更新を行うことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記制御手段は、指定された日時なった場合に、前記第3記憶手段に記憶された前記ファームウェアを用いて前記ファームウェアの更新、或いは前記バックアップ用ファームウェアの更新を行うことを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記制御手段は、前記第1記憶手段の前記バックアップ用ファームウェアの更新をバックグラウンドで行うことを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
【請求項5】
前記複数のファームウェアは、アップデート起動用のファームウェアと通常起動用ファームウェアとを含み、
前記制御手段は、前記ファームウェアを更新する場合、前記アップデート起動用のファームウェアを起動して前記通常起動用ファームウェアを更新し、更新された前記通常起動用ファームウェアによって通常起動した後、前記アップデート起動用のファームウェアの更新をバックグラウンドで行うことを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
【請求項6】
前記制御手段は、前記ファームウェアを更新する際、前記第2記憶手段に前記セキュアブートが有効を示す情報が記憶されている場合でも、前記複数のファームウェアの内のローダとカーネルのバックアップデータを更新することを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
【請求項7】
前記セキュアブートにおいて前記制御手段は、前記ファームウェアの改竄が検知されると、前記第1記憶手段に記憶されている前記バックアップ用ファームウェアを用いて、改竄された前記ファームウェアを更新することを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。
【請求項8】
前記異なるタイミングは、前記情報処理装置がシャットダウンするときであることを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
【請求項9】
前記異なるタイミングは、前記情報処理装置がジョブを処理していないときであることを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
【請求項10】
前記異なるタイミングは、前記情報処理装置がスリープ状態に突入するとき、あるいはスリープ状態から復帰するときであることを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
【請求項11】
前記ファームウェアの更新の指示は、外部装置、或いはユーザの指示によるものであることを特徴とする請求項1乃至10のいずれか1項に記載の情報処理装置。
【請求項12】
前記制御手段は、前記第2記憶手段に前記セキュアブートが無効を示す情報が記憶されている場合、前記ファームウェアの更新の際に前記バックアップ用ファームウェアの更新が必要であることを示すフラグをセットし、前記シャットダウンの処理において前記フラグを参照して前記第1記憶手段に記憶されている前記バックアップ用ファームウェアの更新を実行することを特徴とする請求項8に記載の情報処理装置。
【請求項13】
複数のファームウェアと、ファームウェアを自動復旧させるためのバックアップ用ファームウェアを記憶する第1記憶手段と、セキュアブートが有効かどうかを示す情報を記憶する第2記憶手段とを有し、改竄を検知しながらファームウェアを順次起動する前記セキュアブートを実行できる情報処理装置を制御する制御方法であって、
前記ファームウェアの更新が指示されると、前記第2記憶手段に前記セキュアブートが有効を示す情報が記憶されている場合、前記ファームウェアの更新と、前記第1記憶手段に記憶されている前記バックアップ用ファームウェアの更新とを実行する工程と、
前記ファームウェアの更新が指示されると、前記第2記憶手段に前記セキュアブートが無効を示す情報が記憶されている場合、前記ファームウェアの更新と異なるタイミングで、前記第1記憶手段に記憶されている前記バックアップ用ファームウェアの更新を実行する工程と、
とを有することを特徴とする制御方法。
【請求項14】
コンピュータに、請求項13に記載の制御方法の各工程のすべてを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置とその制御方法、及びプログラムに関する。
【背景技術】
【0002】
デジタル複合機のファームウェアは、不具合の修正や機能を追加するために、市場にリリースした後のユーザ先でもしばしばアップデートされる。このようなファームウェアのアップデートは、顧客にとっては機器のダウンタイムとなるため、できる限りそれに要する時間を短縮することでダウンタイムを削減することが望まれている。そのために、通常起動中に、バックグラウンドで予めアップデートに必要なファームウェアをダウンロードして一時展開しておき、再起動時に、その一時展開した新ファームウェアを適用する方法が考えられている。これにより、最小限のダウンタイムでファームウェアをアップデートできる。またダウンタイムとなるファームウェアの適用を、ユーザがデジタル複合機を使用しない時間帯(例えば、深夜)等に実施することも行われている。
【0003】
一方、ファームウェアのアップデートの場面に限らず、ソフトウェアの脆弱性をついてソフトウェアを改竄し、コンピュータを悪用する攻撃が問題となっている。そのような攻撃に対する対策として、耐タンパ性を有するモジュールを用いてプログラムのハッシュ値を計算して保存しておき、起動する度に、そのプログラムのハッシュ値を再計算して検証することでプログラムの改竄を検知する方法が提唱されている。また、特別なハードウェアを必要とする耐タンパ性を有するモジュールを使用せず、起動時に順次プログラムを起動する際、次のプログラムの正解値を保持しておき、正解値が一致するかどうかで各プログラムの改竄を検知する方法も考えられる。このように起動時に順次プログラムを起動しながら各プログラムの改竄を検知する方法では、基本的には、そのときに起動するプログラムの改竄の有無を検証して起動する。以下、このような起動時の改竄検知の仕組みをセキュアブートと呼ぶ。このセキュアブートの仕組みは、近年のセキュリティ機能の需要の高まりにより、デジタル複合機のファームウェアにも適用されつつある。いずれにしても、起動中にプログラムの改竄が検知されると、その装置は改竄状態が解消されるまで使用不可能な状態になる。
【0004】
デジタル複合機のようなサービスマンによるメンテナンス契約を行う装置の場合は、装置が使用不可能な状態に陥ると、サービスマンの出動によって問題を解消し、ユーザがその装置を使用できるように復旧させる必要がある。このように問題が生じる度にサービスマンが出動していると、ユーザの利便性が損なわれ、サービスマンの出動コストもかかる。
【0005】
そこで、装置の起動中にソフトウェアの改竄が検知された場合に、改竄状態から自動復旧することができる仕組みを提供することが考えられている。その手法として、装置のプログラムのバックアップデータを保持しておき、改竄されたプログラムを、改竄されていないバックアップデータで差し替えることで自動復旧を行うことが考えられる。自動復旧するためのバックアップデータは、動作させているプログラムと基本的には同じものでなければならない。例えば、特許文献1には、元々、複数の起動用ファームウェアがあった場合の共通のOS部分(kernel)の改竄が検知されたときに、起動対象でない他のファームウェアの共通のOS部分を使用して自動復旧を行う方法が記載されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2020-49744号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら上記従来技術では、元々、複数あった共通のOS部分を利用しているため、複数保持しているプログラムの自動復旧のためには、そのプログラムのバックアップデータを用意する必要がある。更に、そのバックアップデータは、動作しているプログラムと同じものでなければならないので、ファームウェアのアップデートがあった場合は、そのバックアップデータもアップデートする必要がある。この場合、アップデートする対象がバックアップデータの分増加するため、自動復旧に対応したデバイスでは、ファームウェアのアップデート時間が、より長くなってしまう。特に、セキュアブートを有効にしていないユーザのデバイスで、自動復旧に対応したデバイスでは、ファームウェアのアップデート時間が従来よりも長くなる。このため、ユーザにとってはダウンタイムがより長くなり、利便性が損なわれてしまう。またサービスマンのメンテナンス作業により復旧させる場合も、ファームウェアのアップデート時間が長くなると、ユーザ先での滞在時間が長くなる。このため、サービスマンの出動コストも大きくなり、メンテナンス費用のアップにつながるという課題があった。
【0008】
本発明の目的は、上記従来技術の課題の少なくとも一つを解決することにある。
【0009】
本発明の目的は、自動復旧可能なセキュアブート機能を備える情報処理装置において、セキュアブートを無効にしている場合、ファームウェアの更新に伴うダウンタイムを最小限に抑える技術を提供することにある。
【課題を解決するための手段】
【0010】
上記目的を達成するために本発明の一態様に係る情報処理装置は以下のような構成を備える。即ち、
複数のファームウェアを有し、改竄を検知しながらファームウェアを順次起動するセキュアブートを実行できる情報処理装置であって、
ファームウェアを自動復旧させるためのバックアップ用ファームウェアを記憶する第1記憶手段と、
前記セキュアブートが有効かどうかを示す情報を記憶する第2記憶手段と、
前記ファームウェアの更新が指示されると、前記第2記憶手段に前記セキュアブートが有効を示す情報が記憶されている場合、前記ファームウェアの更新と、前記第1記憶手段に記憶されている前記バックアップ用ファームウェアの更新とを実行し、
前記第2記憶手段に前記セキュアブートが無効を示す情報が記憶されている場合、前記ファームウェアの更新と異なるタイミングで、前記第1記憶手段に記憶されている前記バックアップ用ファームウェアの更新を実行する制御手段と、とを有することを特徴とする。
【発明の効果】
【0011】
本発明によれば、セキュアブート機能を備える情報処理装置において、セキュアブートを無効にしている場合、ファームウェアの更新に伴うダウンタイムを最小限に抑えることができる。
【0012】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【図面の簡単な説明】
【0013】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
図1】本発明の実施形態に係る情報処理装置のハードウェア構成を説明するブロック図。
図2】実施形態に係る情報処理装置が有するファームウェアモジュールを説明するブロック図。
図3】実施形態に係る情報処理装置におけるセキュアブートの処理を説明するフローチャート。
図4】実施形態に係る情報処理装置によるファームウェアをアップデートする処理手順を示すフローチャート。
図5】実施形態に係る情報処理装置によるバックグラウンドでバックアップデータをアップデートする処理を説明するフローチャート。
図6】実施形態に係る情報処理装置において、シャットダウンするときのバックアップデータのアップデート処理を説明するフローチャート。
図7】実施形態に係る情報処理装置における改竄検知によるエラー表示の一例を示す図。
【発明を実施するための形態】
【0014】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これら複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一もしくは同様の構成に同一の参照番号を付し、重複した説明は省略する。尚、実施形態では、本発明に係る情報処理装置の一例として複合機(デジタル複合機:MFP(Multi Function Peripheral)を例に説明する。しかしながら本発明の適用範囲は複合機に限定されない。
【0015】
図1は、本発明の実施形態に係る情報処理装置100のハードウェア構成を説明するブロック図である。
【0016】
CPU101を含む制御部130は、情報処理装置100全体の動作を制御する。CPU101は、半導体記憶装置(eMMC)112に記憶された制御プログラムを読み出して読取制御や印刷制御、ファームウェアのアップデート(更新)制御などの各種制御処理を実行する。またeMMC112は、ワークエリア、またユーザデータ領域としても用いられる。フラッシュメモリ102は、情報処理装置100のBIOS、固定パラメータ等を格納している。RAM104は、CPU101の主メモリ、ワークエリア等の一時記憶領域として用いられる。SRAM105は不揮発メモリであり、情報処理装置100で必要となる設定値や画像調整値などを記憶しており、電源を再投入してもデータが消えないようになっている。HDD111は、ファームウェアのアップデート用のファイル格納領域を備え、画像データやユーザデータ等も記憶する。HDD111は搭載されない場合もあり、その場合は、ファームウェアのアップデート用のファイル格納領域や画像データ、ユーザデータ等はすべてeMMC112に格納される。操作部I/F108は、操作部114と制御部130とを接続する。操作部114には、タッチパネル機能を有する表示部やキーボードなどが備えられている。
【0017】
プリンタI/F109は、プリンタエンジン115と制御部130とを接続する。プリンタエンジン115内のROM(不図示)にはプリンタエンジンファームウェア116が格納されている。プリンタエンジン115で印刷すべき画像データは、プリンタI/F109を介して制御部130からプリンタエンジン115に転送され、プリンタエンジン115により記録媒体(シート)上に印刷される。尚、以下の説明では、「ファームウェア」を単に「ファーム」と呼ぶことがある。
【0018】
スキャナI/F110は、スキャナエンジン117と制御部130とを接続する。スキャナエンジン117のROM(不図示)には、スキャナエンジンファーム118が格納されている。スキャナエンジン117は、原稿上の画像を読み取って画像データを生成し、その画像データをスキャナI/F110を介して制御部130に入力する。
【0019】
ネットワークI/Fカード(NIC)107は、制御部130(情報処理装置100)をLAN131に接続する。NIC107は、LAN131上の外部装置(例えば、外部サーバ121やPC120)に画像データや情報を送信したり、逆にアップデート用のファームウェアや各種情報を受信したりする。外部サーバ121はインターネット上に存在するケースもある。PC120上に存在する図示しないWebブラウザから情報処理装置100の操作を行うこともある。
【0020】
集積回路103は、一連の関連する機能を実現する複数の集積回路を示す。RTC122はRealTimeClock(リアルタイムクロック)で、計時専用のチップ(集積回路)である。外部電源119は、eMMC112に格納される制御プログラムを実行するCPU101からの指示により電源の供給を制御する。尚、集積回路103は、外部電源119が接続されていなくとも、図示しない内蔵電池から電源供給を受けるため、スリープ時も動作することができる。これにより、集積回路103に対して一部の電源供給が行われる状態では、スリープからの復帰が実現できる。逆に、集積回路103に電源が全く供給されないシャットダウン状態の場合には、RTC122は動作することができない。
【0021】
組み込みコントローラ113のCPU123は、コントローラ113のソフトウェアプログラムを実行し、情報処理装置100の中で一部の制御を行う。RAM124は、CPU123が制御を行う場合に、プログラムや一時的なデータの格納などに使用される。LED(発光素子)106は、必要に応じて点灯され、ソフトウェアやハードウェア等の異常を外部に伝えるために利用される。
【0022】
図2は、実施形態に係る情報処理装置100が有するファームウェアモジュールを説明するブロック図である。
【0023】
通信管理部201は、ネットワーク131に接続されるNIC107を制御して、ネットワーク131を介して外部とデータの送受信を行う。UI制御部202は、操作部I/F108を介して操作部114からの入力を受け取り、また入力に応じた処理や操作部114への画面出力を行う。
【0024】
ブートプログラム203は、情報処理装置100の電源がオンされると組み込みコントローラ113のCPU123で実行されるプログラムである。このプログラム203は、情報処理装置100の起動に関わる処理を行う他に、BIOS206の改竄検知を行うBIOS改竄検知処理部204を有する。更にBIOS206の改竄が検知されたときに自動復旧処理を行うために、フラッシュメモリ102にBIOSバックアップ205を保持している。BIOS206はフラッシュメモリ102に格納され、ブートプログラム203の実行後にCPU101で実行されるプログラムである。BIOS206は、情報処理装置100の起動に関わる処理を行う他に、ローダ209の改竄検知を行うローダ改竄検知処理部207を有する。ローダ209の改竄が検知されたときに自動復旧処理を行なうために、eMMC112内にローダバックアップ208を保持している。
【0025】
ローダ209は、BIOS206の処理が終わった後にCPU101で実行されるプログラムで、eMMC112内に格納され、情報処理装置100の起動に関わる処理を行う他に、カーネルの改竄検知を行うカーネル改竄検知処理部210を有する。
【0026】
領域217と218は、eMMC112内に構成されるパーティションを示す。通常起動用ファーム(通常起動用ファームウェア)の格納領域217は、通常起動用ファーム219を含む。アップデート起動用ファーム(アップデート起動用ファームウェア)の格納領域218は、アップデート起動用ファーム220を含む。カーネルも通常起動用ファーム219、アップデート起動用ファーム220のそれぞれに対応するカーネル211、カーネル213があり、それぞれeMMC112に格納されている。ローダ209のカーネル改竄検知処理部210によってカーネルの改竄が確認されたときに自動復旧処理を行なうために、eMMC112にカーネルバックアップ215,216を保持している。
【0027】
通常起動に対応するカーネル211は、ローダ209の処理が終わった後にCPU101で実行されるプログラムで、起動に関わる処理を行う他に通常起動用ファーム219の改竄検知を行うプログラム改竄検知処理部212を有する。またアップデート起動に対応するカーネル213は、ローダ209の処理が終わった後にCPU101で実行されるプログラムで、起動に関わる処理を行う他にアップデート起動用ファーム220の改竄検知を行うプログラム改竄検知処理部214を有する。
【0028】
通常起動用ファーム219は、CPU101で実行されるプログラムで、情報処理装置100の各機能を提供する複数のプログラムを有する。例えばスキャナI/F110やプリンタI/F109を制御するジョブ制御部221や起動プログラムなどである。ジョブ制御部221は、情報処理装置100におけるコピーやプリントなどのジョブの実行を制御するソフトウェアである。またジョブ制御部221には、プリンタI/F109を制御するプリント制御部223や、スキャナI/F110を制御するスキャン制御部222等の制御アプリケーションが含まれる。ジョブ制御部221は、RAM104上に保持されるジョブ状況テーブルにジョブ状況情報を通知する。
【0029】
通常起動時には、通常起動用ファーム219の中から起動プログラムが呼び出され、通常起動中に使用するeMMC112やHDD111の各領域をマウントするなどの起動処理を行う。その後、順次前述の例で挙げたジョブ制御部221など、情報処理装置100の各機能を提供する複数のプログラムが起動される。実施形態では、ジョブ制御部221以外のそれらを、説明上アプリケーションプログラム224とする。
【0030】
情報処理装置100が、シーソースイッチ等のオフによるシャットダウン指示、PC120又は外部サーバ121からのネットワーク経由でのシャットダウン指示、或いは操作部114からのシャットダウン指示等を受ける。これによりシャットダウン用プログラム225がシャットダウン処理を開始する。そして各アプリケーションプログラム224に終了通知を行う。シャットダウン用プログラム225は、各アプリケーションの終了を確認すると、外部電源119に電源をオフするように要求し、最終的に情報処理装置100の電源の供給が断たれるとシャットダウンが完了する。
【0031】
また通常起動用ファーム219は、アップデート起動用ファームのアップデート用プログラム226を含む。このアップデート用プログラム226は、アップデート起動用ファーム用のカーネル213、そのカーネル213のバックアップ216、アップデート起動用ファーム220、アップデート起動用ファームのバックアップ233をアップデートする機能を備える。また通常起動用ファーム219は、ファームウェアのダウンロードを行うファームウェアのダウンロード用プログラム227、バックグラウンドでのファームウェアの一時展開を行うバックグラウンドのアップデート用プログラム228も含む。更に通常起動用ファーム219は、本件の前提となるバックグラウンドでバックアップデータ(バックアップ用ファームウェア)をアップデートするバックグラウンドのアップデート用プログラム229を含む。
【0032】
アップデート起動用ファーム220は、アップデート用起動時にCPU101で実行されるプログラムで、情報処理装置100のファームウェアアップデートを実施するプログラム等、複数のプログラムを含む。通常起動用ファームのアップデート用プログラム230は、ローダバックアップ208、ローダ209、カーネル211、カーネルバックアップ215、通常起動用ファーム219、通常起動用ファームバックアップ233をアップデートする機能を含む。更に、プリンタエンジンファーム116とスキャナエンジンファーム118をアップデートする機能を備える。情報処理装置100として、例えば図示しないフィニッシャなどの、スキャナエンジンやプリンタエンジン以外の構成が接続された場合も同様になる。
【0033】
バックアップ格納領域231は、通常起動用ファームの格納領域217、アップデート起動用ファームの格納領域218と同様に、eMMC112内に構成されるパーティションを示す。バックアップ格納領域231は、通常起動用ファームのバックアップ232、アップデート起動用ファームのバックアップ233を含む。前述のカーネル211、カーネル213のプログラム改竄検知処理部212,214によって、通常起動用ファーム219、アップデート起動用ファーム220の改竄が確認された場合に、それらを自動復旧するために通常起動用ファームバックアップ232、アップデート起動用ファームバックアップ233をeMMC112に保持している。更に、eMMC112内には、不揮発情報としてセキュアブート有効化情報234、バックアップデータのアップデート情報235が含まれる。
【0034】
またHDD111は、ダウンロードしたファームウェアを一時的に記憶するダウンロード領域236、ダウンロードしたファームウェアを一時的に展開する一時展開領域237を有する。
【0035】
情報処理装置100は、起動モードを切り替えながらアップデートを実現するが、起動モードとは、カーネル211と通常起動用ファーム219が動作する通常起動と、カーネル213とアップデート起動用ファーム220が動作するアップデート用起動を含む。またそれぞれ、起動モードの切り替えを行う機能を備え、ローダ209がSRAM105に保存される起動モードの情報に応じて、通常起動とアップデート用起動とを切り替えて実行する。
【0036】
図3は、実施形態に係る情報処理装置100におけるセキュアブートの処理を説明するフローチャートである。このフローチャートで示すセキュアブートでは、ブートプログラム203、BIOS206、ローダ209が順次起動され、通常起動であればカーネル211と通常起動用ファーム219が改竄検知を行いながら起動される。またアップデート用起動であれば、ローダ209以降は、カーネル213とアップデート起動用ファーム220が改竄検知を行いながら順次起動される。そして改竄が検知された場合は、用意された各プログラムのバックアップデータ(BIOSバックアップ205、ローダバックアップ208、カーネルバックアップ215、カーネルバックアップ216、通常起動用ファームのバックアップ232、アップデート起動用ファームのバックアップ233)によって、改竄されたプログラムを修復し、次のプログラムの起動を継続する。
【0037】
ブートプログラム203には、BIOS署名検証用の公開鍵、BIOS206にはBIOS署名とローダ検証用公開鍵、ローダ209にはローダ署名とカーネル検証用公開鍵、カーネル213の検証用公開鍵が含まれているものとする。またカーネル211には、カーネル署名と通常起動用ファーム219の検証用公開鍵、通常起動用ファーム219には通常起動用ファーム署名が含まれているものとする。更にカーネル213には、カーネル署名とアップデート起動用ファーム220の検証用公開鍵が、アップデート起動用ファーム220にはアップデート起動用ファーム用署名が含まれているものとする。これらの公開鍵と署名は、予め情報処理装置100の出荷前にプログラムに対して付与されているものとする。上述した検知処理部204,207,210,212,214が各プログラムを検証し、問題がなければ次のプログラムを起動する。こうして、各プログラムの改竄を検知しながら情報処理装置100の起動が行われる。
【0038】
以下、図3を参照して詳しく説明する。
【0039】
情報処理装置100の電源がオンされると、組み込みコントローラ113からRAM124へブートプログラム203が読み込まれCPU123によって実行される。ブートプログラム203に含まれるBIOS改竄検知処理部204は、フラッシュメモリ102からBIOS206とローダ検証用公開鍵、BIOS署名をRAM124に読み込む。次にBIOS改竄検知処理部204は、S301でBIOS検証用公開鍵を用いてBIOS署名の検証を行い、BIOSが改竄されているかどうか判定する。ここで署名の検証に成功した場合(BIOSが改竄されていない場合)はS305に進んで、CPU101に通電しブートプログラムの処理を終了してBIOSを起動する。
【0040】
一方、BIOS署名の検証に失敗した場合はS302に進み、BIOS改竄検知処理部204はBIOSバックアップ205をコピーし、改竄されたBIOS206を書き替える。次にS303に進みBIOS改竄検知処理部204は、そのコピーされたBIOS206を検証する。S303でバックアップからコピーされたBIOS206の署名の検証に失敗した場合は復旧できないためS304に進み、LED106を点灯させてエラーを通知し、この処理を終了する。一方、S303で署名の検証に成功した場合、BIOS改竄検知処理部204はCPU101に通電し、ブートプログラムの処理を終了する。こうしてBIOS206が改竄されて復旧できなかった場合は、CPU101に通電することなくLED106によりユーザに通知し、BIOS206が改竄されていないことが保証された状態でCPU101が起動されることになる。
【0041】
こうしてCPU101に通電されるとS305に進み、フラッシュメモリ102からBIOS206とローダ検証用公開鍵をRAM104に読み込んでBIOS206を起動する。以降の処理は全てCPU101によって処理されるものとして説明する。
【0042】
BIOS206が起動されると各種初期化処理を行い、BIOS206に含まれるローダ改竄検知処理部207がeMMC112からローダ209とカーネル検証用公開鍵とローダ署名をRAM104に読み込む。次にS306でCPU101はローダ改竄検知処理部207として機能し、ローダ検証用公開鍵を用いてローダ署名の検証を行ってローダ209が改竄されているかどうか判定する。ローダ署名の検証に成功した場合(ローダが改竄されていない場合)はS310に進む。一方、ローダ署名の検証に失敗した場合はS307に進み、ローダ改竄検知処理部207は、ローダバックアップ208をコピーし、改竄されたローダ209を書き替える。そしてS308に進み、ローダ改竄検知処理部207は、そのコピーされたローダを検証する。ここでバックアップからコピーされたローダ署名の検証に失敗した場合はS309に進み、ローダ改竄検知処理部207は操作部114に図7に示すエラーコードを表示して処理を終了する。一方、S308で署名の検証に成功した場合、ローダ改竄検知処理部207は処理を終了してS310に進み、BIOS206がRAM104に読み込まれたローダ209を起動する。
【0043】
図7は、実施形態に係る情報処理装置100における改竄検知によるエラー表示の一例を示す図である。
【0044】
このエラー表示は、操作部114の表示部に表示される。ここでは、メンテナンス担当者に連絡するエラーコードがを表示している。これにより、その担当者は、発生したエラーの種類を把握することができる。
【0045】
S310でローダ209が起動されると各種初期化処理を行い、SRAM105を参照して起動モード等のフラグを確認する。この実施形態では、通常起動時の例で説明するため、ここではSRAM105では、カーネル211と通常起動用ファーム219を起動する通常起動の起動モードが選択されるフラグがオンであることを前提とする。
【0046】
こうしてローダ209は、通常起動用のカーネル211の起動を開始する。ここでローダ209に含まれるカーネル改竄検知処理部210が、eMMC112からカーネル211と通常起動用ファームの検証用公開鍵とカーネル署名とをRAM104に読み込む。そしてS311に進みCPU101はカーネル改竄検知処理部210として機能し、カーネル検証用公開鍵を用いて、カーネル署名の検証を行ってカーネル211が改竄されているかどうか判定する。カーネル署名の検証に成功した場合(改竄されていない場合)はS314に進んで、カーネル211を起動する。
【0047】
一方、カーネル署名の検証に失敗した場合はS312に進み、カーネル改竄検知処理部210は、カーネルバックアップ215をコピーし、改竄されたカーネル211を書き替える。次にS313に進みカーネル改竄検知処理部210は、カーネルバックアップ215からコピーされたカーネル211を検証する。ここでコピーされたカーネル211の署名の検証に失敗した場合は、上述のS309に進み、カーネル改竄検知処理部311は操作部114に図7のエラーコードを表示して処理を終了する。一方、カーネル署名の検証に成功した場合はカーネル改竄検知処理部210は処理を終了してS314に進み、ローダ209がRAM104に読み込まれたカーネル211を起動する。こうしてカーネル211が起動されると各種初期化処理を行う。
【0048】
次にS315に進み、カーネル211に含まれるプログラム改竄検知処理部212がeMMC112から通常起動用ファーム219と通常起動用ファーム署名をRAM104に読み込む。そしてプログラム改竄検知処理部212は、通常起動用ファームの検証用公開鍵を用いて、通常起動用ファーム署名の検証を行って、通常起動用ファームが改竄されているかどうか判定する。通常起動用ファーム署名の検証に成功した場合(改竄されていない場合)はS318に進んで、通常起動用ファームを起動する。
【0049】
一方、通常起動用ファーム署名の検証に失敗した場合はS316に進み、プログラム改竄検知処理部212は通常起動用ファームのバックアップ232をコピーし、その改竄された通常起動用ファーム219を書き替える。次にS317に進み、プログラム改竄検知処理部212は、そのコピーされた通常起動用ファーム219を検証する。そして、その通常起動用ファーム219の署名の検証に失敗した場合はS309に進み、プログラム改竄検知処理部212は操作部114に図7のエラーコードを表示して処理を終了する。一方、通常起動用ファーム署名の検証に成功した場合、プログラム改竄検知処理部212は処理を終了してS318に進み、通常起動用ファーム219を起動して、この処理を終了する。
【0050】
尚、上述の実施形態では、情報処理装置100が通常起動を開始して各プログラムの改竄の有無を順次検知する例で説明したが、アップデート用起動を開始して改竄を検知した場合であっても同様に改竄を検知することができる。具体的には、アップデート用起動の処理の場合は、S310で、SRAM105にカーネル213とアップデート起動用ファーム220を起動するアップデート用起動の起動モードを選択するフラグがオンになっている。よってローダ209は、このフラグがオンであることを確認した後、アップデート起動用のカーネル213の起動を開始する。そしてカーネル211と通常起動用ファーム219の起動の場合と同様に、カーネル213、アップデート起動用ファーム220の起動を順次進め、改竄が検知された場合は、バックアップデータをコピーする復旧処理と、その復旧したプログラムの改竄検知を行う。そして復旧したプログラムの署名の検証に成功すると、そのプログラムを起動する。一方、復旧したプログラムの署名の検証に失敗した場合、即ち、復旧したプログラムの改竄を検知した場合はS309に進んで、操作部114に図7のエラーコードを表示し処理を終了する。
【0051】
上述のセキュアブートの際には、基本的にそのとき起動するプログラムのみの改竄検知を行うため、通常起動時は、カーネル211と通常起動用ファーム219のみの改竄検知を行う。一方、アップデート用起動の場合は、カーネル213とアップデート起動用ファーム220のみの改竄検知を行う。従って、通常起動時には、カーネル213とアップデート起動用ファーム220の改竄検知は行われず、またアップデート用起動の場合はカーネル211と通常起動用ファーム219の改竄検知は行われない。
【0052】
また情報処理装置100は、セキュアブート機能が有効になっているかを示す情報をセキュアブート有効化情報234に保持している。前述の各改竄検知処理部は、セキュアブート有効化情報234を参照してセキュアブートが有効であるかどうか判定して、改竄検知処理を実行する。即ち、セキュアブート有効化情報234でセキュアブートが無効に設定されている場合は、各改竄検知処理部による改竄検知は行われずに情報処理装置100が起動することになる。
【0053】
前述の自動復旧処理を含むセキュアブート機能を持つ情報処理装置100において、ファームウェアアップデートを行うときの処理の流れを図4のフローチャートを参照して説明する。
【0054】
図4は、実施形態に係る情報処理装置100によるファームウェアをアップデートする処理手順を示すフローチャートである。このフローチャートで示す処理は、eMMC112に格納されたプログラムをCPU101が実行することにより達成される。
【0055】
通常起動用ファームの格納領域217の通常起動用ファーム219が起動している通常起動状態で、CPU201は、S401において、外部サーバ121或いはユーザによる操作部114からの指示により、ファームウェアのアップデート指示を受信する。このときCPU101は、eMMC112内の通常起動用ファーム219に含まれるファームウェアのダウンロード用プログラム227に対してアップデート指示を通知する。このアップデート指示時にアップデート対象となる新ファームウェアのファームウェア情報を取得し、ファームウェアのダウンロード用プログラム227がeMMC112のファームウェア情報の格納領域に保存する。
【0056】
次にS402に進みCPU101は、操作部114に認証画面を表示する。次にS403に進み、ユーザの認証が確認されるとS404に進み、外部サーバ121から新しいファームウェアをHDD111のダウンロード領域236にバックグラウンドでダウンロードする。この新しいファームウェアとは、eMMC112に格納される各プログラム(ローダ209、カーネル211、カーネル213、通常起動用ファーム219、アップデート起動用ファーム220)の新しいバージョンのものである。S403でユーザの認証に失敗するとこの処理を終了する。尚、ユーザの認証が必要でないファームウェアの場合はS402,S403はスキップしてよい。
【0057】
このときダウンロードされたファームウェアは、改竄防止のために署名暗号化されている。よってダウンロードが完了した後、S405で、バックグラウンドでのアップデート用プログラム228は、ダウンロード領域236にダウンロードされた新ファームウェアを復号化し、HDD111の一時展開領域237に一時展開する。ここで行うファームウェアの一時展開とは、最終的にeMMC112に展開されるべきファームウェアの展開を、予めHDD111上で行うことである。後に実施する情報処理装置100の再起動時に、予めHDD111の一時展開領域237に展開しておいた展開データをeMMC112の領域へコピーして差し替える。これにより、アップデート起動用ファーム220の起動中に復号化、展開、適用を行うアップデートに比べてダウンタイムを短縮することができる。
【0058】
次にS406に進みCPU101は、eMMC112内の適用日時情報の格納領域を参照し、ファームウェアの適用日時が設定されているかどうか判定し、適用日時に達したかどうか判定する。この適用日時の設定は、予め定期的な実行時刻が設定されていてもよく、或いはファームウェアのアップデートを受信した際に外部サーバ121から設定したり、ユーザが操作部114から設定してもよい。
【0059】
ここで適用日時に達していた場合はS407に進みCPU101は、操作部114に認証画面を表示する。そしてS408でユーザの認証に成功するとS409に進んで、アップデート用起動による再起動を指示する。またS408でユーザの認証に失敗すると、この処理を終了する。尚、前述のS402、503と同様に、ユーザの認証が必要ないファームウェアの場合は、S407、S408はスキップしてよい。
【0060】
次にS410に進み、情報処理装置100の前述の各改竄検知処理部はセキュアブート有効化情報234を確認し、セキュアブートが有効に設定されているかどうか判定する。ここで有効に設定されているとS411に進み、アップデート起動用のセキュアブートを実施する。この処理内容は、前述のセキュアブート処理において、アップデート用起動を行う際の処理である。こうしてS411のセキュアブートで問題なくアップデート起動が成功した場合はS412の処理に進む。またS410で、セキュアブートが無効に設定されているときもS412に進む。
【0061】
S412でCPU101は、通常起動用ファームのアップデート用プログラム230によって、一時展開領域237に展開されている新ファームウェアの内、通常起動用ファームの格納領域217の新通常起動用ファームに対応するファームウェアを、eMMC112にコピーして旧ファームウェアと差し替える。そしてS413に進みCPU101は、通常起動用ファームのアップデート用プログラム230がセキュアブート有効化情報234を参照して、セキュアブートが有効かどうか判定する。ここで有効であると判定するとS414に進み、通常起動用ファームのバックアップ232を前述の新しい通常起動用ファームに対応するファームウェアでアップデートしてS416に進む。一方、S413でセキュアブートが無効であると判定した場合はS415に進み、通常起動用ファームのアップデート用プログラム230は、バックアップデータのアップデート情報235に通常起動用ファームのバックアップのアップデートフラグをオンにセットしてS416に進む。
【0062】
S416でCPU101は、通常起動用ファームのアップデート用プログラム230を実行して、ローダ209とローダバックアップ208をアップデートする。続いてS417に進みCPU101は、通常起動用ファームのアップデート用プログラム230を実行して、通常起動用のカーネル211とカーネルバックアップ215をアップデートする。こうして通常起動用の各プログラムのアップデートが終了するとS418に進みCPU101は、通常起動による再起動を指示してS419に進む。
【0063】
S419でCPU101は、情報処理装置100の前述の各改竄検知処理部として機能し、セキュアブート有効化情報234を確認し、セキュアブートが有効に設定されているかどうか判定する。ここで有効に設定されていると判定するとS420に進み、通常起動用のセキュアブートを実施する。この処理内容は前述のセキュアブート処理において、通常起動を行う際の処理である。そしてS420でのセキュアブートで問題なく通常起動が成功するとS421以降の処理に進む。一方、S419でセキュアブートが無効に設定されているとS420をスキップしてS421に進む。
【0064】
S421でCPU101は、アップデートされた新しい通常起動用ファーム219によって通常起動する。続いてS422に進みCPU101は、バックグラウンドでアップデート起動用ファームのアップデート用プログラム226を起動する。そしてS423に進みCPU101は、バックグラウンドで、アップデート起動用ファーム220を新しいバージョンの新アップデート起動用ファームにアップデートする。これは、通常起動用ファームの格納領域217の通常起動用ファーム219の起動時は、アップデート起動用ファームの格納領域218に格納されるアップデート起動用ファーム220は使用されていない。よって、情報処理装置100の動作に影響を与えずにアップデート起動用ファーム220をアップデートを実行できるためである。アップデート起動用ファーム220のアップデートは、HDD111の一時展開領域237の展開済データのコピーと差し替えで実施してもよいし、ダウンロードされた新ファームウェアの復号化、展開、適用を実施してもよい。
【0065】
次にS424に進み、アップデート起動用ファームのアップデート用プログラム226が、セキュアブート有効化情報234を参照してセキュアブートが有効かどうか判定する。ここで有効と判定するとS425に進み、アップデート起動用ファームのバックアップ233を前述の新アップデート起動用ファームにアップデートする。一方、S424でセキュアブートが無効であると判定した場合はS426に進み、アップデート起動用ファームのアップデート用プログラム226は、バックアップデータのアップデート情報235にアップデート起動用ファームのバックアップのアップデートフラグをオンにしてS427に進む。S427でアップデート起動用ファームのアップデート用プログラム226は、バックグラウンドで、アップデート起動用のカーネル213とカーネルバックアップ216のアップデートを行ってこの処理を終了する。
【0066】
尚、S401,S404において、外部サーバ121からファームウェアを取得する例を説明したが、新しいファームウェアの取得方法は他の方法であってもかまわない。例えば、USBメモリやPC120にファームウェアを格納し、そこからファームウェアを取得することにより、同様の処理を実施することができる。
【0067】
実施形態では、BIOS206はファームウェアのアップデート対象としておらず、また、ローダバックアップ208、カーネルバックアップ215、カーネルバックアップ216は、セキュアブートの設定に関わらずファームウェアのアップデート時にアップデートしている。これらはアップデートの頻度が低く、サイズも小さいプログラムであるためBIOSはアップデート対象から外し、ローダ、カーネルはファームウェアのアップデートと同時にバックアップデータもアップデーする構成で記載している。尚、これらプログラムは、ファームウェアのアップデート時間に影響が小さいプロブラムであるが、通常起動用ファーム219、アップデート起動用ファーム220と同じように、バックアップデータを同時にアップデートしない構成にしても良い。
【0068】
この処理により、セキュアブートが有効でなければ、通常起動用ファーム及びアップデート起動用ファームのバックアップデータのアップデートを、これらファームウェアの更新と異なるタイミングで実施できるように設定できる。これにより、ユーザの利便性を損なわないタイミングで、バックアップデータのアップデートを行うことができる。
【0069】
<バックグラウンドでのバックアップデータのアップデート処理>
前述の自動復旧処理を含むセキュアブート機能を持つ情報処理装置100において、バックグラウンドによりバックアップデータをアップデートするときの処理の流れを図5のフローチャートを参照して説明する。
【0070】
図5は、実施形態に係る情報処理装置100によるバックグラウンドでバックアップデータをアップデートする処理を説明するフローチャートである。このフローチャートで示す処理は、図1に示したeMMC112に格納されたプログラムをCPU101が実行することにより達成される。
【0071】
S501でCPU101は、通常起動用ファームの格納領域217の通常起動用ファーム219が起動している通常起動状態でジョブ制御部221として機能し、ジョブ状況の監視を開始する。このときジョブ制御部221は、RAM104上にジョブ状況情報を保持して、ジョブの発生、終了を管理し、ジョブの有無を確認する。次にS502に進みCPU101は、ジョブ状況の監視を開始したジョブ制御部221として機能し、バックアップデータのアップデート情報235を確認し、バックアップデータのアップデートフラグがオンかどうか判定する。このアップデートフラグは、通常はオフであるが、前述の図4のS415或いはS426でオンにセットされる。
【0072】
バックアップデータのアップデートフラグがオンであればS503に進み、ジョブ制御部221はジョブの有無を判定する。ここでジョブがなければ504に進み、バックグラウンドでのバックアップのアップデート用プログラム228を実行する。このとき通常起動用ファームのバックアップのアップデートフラグがオンであれば、通常起動用ファーム219をバックアップ格納領域231の通常起動用ファームのバックアップ232にコピーしてアップデートする。またアップデート起動用ファームのバックアップのアップデートフラグがオンであればアップデート起動用ファーム220をバックアップ格納領域231のアップデート起動用ファームのバックアップ233にコピーしてアップデートする。
【0073】
こうしてバックアップデータのアップデートが完了するとS505に進みCPU101は、バックアップデータのアップデート情報235の通常起動用ファームのバックアップのアップデートフラグ、アップデート起動用ファームのバックアップのアップデートフラグをオフにして、バックアップデータのアップデート処理を終了する。またS502でバックアップデータのアップデートフラグがオフのとき、またS503でジョブがある場合は、バックアップデータのアップデートを行わずに、この処理を終了する。
【0074】
以上説明した様に実施形態によれば、ファームウェアのアップデート時、セキュアブートが有効でなければ、通常起動用ファームのバックアップデータ、アップデート起動用のファームのバックアップデータをアップデートせずにフラグをオンしておく。そしてバックグラウンドでのバックアップデータの更新時にそのフラグがオンかどうか判定し、オンで、かつジョブが無ければ、バックグラウンドで、そのバックアップデータをアップデートすることができる。
【0075】
前述の自動復旧処理を含むセキュアブート機能を持つ情報処理装置100において、シャットダウン処理時のバックアップデータのアップデート処理の流れを図6のフローチャートを参照して説明する。
【0076】
図6は、実施形態に係る情報処理装置100において、シャットダウンするときのバックアップデータのアップデート処理を説明するフローチャートである。このフローチャートで示す処理は、eMMC112に格納されたプログラムをCPU101が実行することにより達成される。
【0077】
シャットダウン処理を開始すると、情報処理装置100はユーザの操作を受付けない状態となり、新規の印刷ジョブ、スキャンジョブ、FAXジョブ等のジョブも受付けない。通常起動用ファームの格納領域217の通常起動用ファーム219が起動している通常起動状態で、CPU101はS601で、シーソースイッチのオフによるシャットダウン指示、PC120又は外部サーバ121からのネットワーク経由でのシャットダウン指示、或いは操作部114からのシャットダウン指示を受信する。このときCPU101がeMMC112の通常起動用ファーム219に含まれるシャットダウン用プログラム225に対してシャットダウン指示を通知する。次にS602に進みCPU101は、操作部114にシャットダウン中を示す画面を表示する。このシャットダウン中を示す画面を表示することによって、ユーザが操作部114から情報処理装置100の操作ができない状態になる。
【0078】
こうしてユーザからの操作部114からの操作を遮断した状態でS603に進み、通常起動中のジョブ制御部221やその他のアプリケーションプログラム224に対してシャットダウンを指示する。このシャットダウン指示を受けた各アプリケーションプログラムは、実行中のジョブのキャンセル、使用していたリソースの適切な保存、解放等の終了処理を行う。そして終了処理ができ次第、シャットダウン用プログラム225に通知する。シャットダウン用プログラム225は、各アプリケーションの終了の通知を待ちながらS604で、シャットダウン用プログラム225はバックアップデータのアップデート情報235を確認し、バックアップデータのアップデートフラグがオンかどうか判定する。ここでバックアップデータのアップデートフラグがオンと判定するとS605に進み、バックアップデータのアップデートを実行する。このときバックグラウンドでのバックアップデータのアップデート用プログラム228が、通常起動用ファームのバックアップのアップデートフラグがオンであれば通常起動用ファーム219を、アップデート起動用ファームのバックアップのアップデートフラグがオンであればアップデート起動用ファーム220を、バックアップ格納領域231にコピーする。こうして通常起動用ファームのバックアップ232、アップデート起動用ファームのバックアップ233を差し替えてアップデートする。尚、S604でバックアップデータのアップデートフラグがオフと判定したときはS605,S606をスキップしてS607に進む。
【0079】
S605でバックアップデータのアップデートが完了するとS606に進み、バックアップデータのアップデート情報235の通常起動用ファームのバックアップデータのアップデートフラグ、アップデート起動用ファームのバックアップデータのアップデートフラグをオフにしてS607に進む。
【0080】
S607でシャットダウン用プログラム225は、全てのアプリケーションプログラムが終了しているかどうか判定する。ここで全てのアプリケーションプログラムが終了していればS608に進み、終了していなければS607でアプリケーションの終了を待つ。S608でCPU101は、外部電源119に電源をオフする要求を行い、最終的に情報処理装置100の電源の供給が断たれシャットダウンが完了する。
【0081】
この処理により、バックアップデータのアップデートフラグがオンの状態でシャットダウンが指示されると、通常起動用ファーム、アップデート起動用ファームのバックアップデータのアップデートを実行することができる。これにより、ユーザの利便性を損なわないタイミングで、バックアップデータのアップデートすることができる。
【0082】
実施形態では、セキュアブートの無効時は、バックアップデータの更新は、ファームウェアのアップデート時ではなく、通常起動中のバックグラウンドで行う。これにより、セキュアブート機能を無効にしている、ユーザのデバイスのファームウェアのアップデートに起因するダウンタイムを最小限に抑える事が可能になる。
【0083】
また実施形態では、ジョブの有無を監視し、デバイスがジョブ処理をしていない場合に、バックグラウンドでバックアップデータをアップデートしている。他にも、ユーザがデバイスの操作部を利用しているとき、スリープ状態突入時、スリープ状態からの復帰時、深夜等のユーザが使用しない時間帯にアップデートするように指定しても良い。これにより、ユーザの利便性を損なわないタイミングで、バックアップデータのアップデートすることができる。
【0084】
また、前述のバックグラウンドでのバックアップデータのアップデートが行われないままシャットダウンが要求された場合は、シャットダウン処理時にバックアップデータをアップデートする。これにより、もし次の起動時にセキュアブートが有効になった場合でも、今回、アップデートされたバックアップデータを利用することが可能になる。
【0085】
またセキュアブートを有効にしているデバイスに関しては、ファームウェアのアップデートと同時にバックアップデータのアップデートも行うことにより、バックアップデータを、使用中のプログラムと常に同じものにできる。これによりファームウェアのアップデートによるダウンタイムは大きくなるが、改竄に対して自動復旧できる可能性が上がるため、よりセキュアな状態を保つことができるという効果がある。
【0086】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0087】
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から逸脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【符号の説明】
【0088】
100…情報処理装置、101…CPU、102…フラッシュメモリ、103…集積回路、104…RAM、105…SRAM、106…LED,112…eMMC、113…組み込みコントローラ、114…操作部、119…外部電源、206…BIOS,209…ローダ、211,213…カーネル、217…通常起動用ファームの格納領域、218…アップデート起動用ファームの格納領域、219…通常起動用ファーム、220…アップデート起動用ファーム、231…バックアップ格納領域
図1
図2
図3
図4
図5
図6
図7