JP2023064046A - 情報処理装置、及びその起動方法 - Google Patents

情報処理装置、及びその起動方法 Download PDF

Info

Publication number
JP2023064046A
JP2023064046A JP2022122015A JP2022122015A JP2023064046A JP 2023064046 A JP2023064046 A JP 2023064046A JP 2022122015 A JP2022122015 A JP 2022122015A JP 2022122015 A JP2022122015 A JP 2022122015A JP 2023064046 A JP2023064046 A JP 2023064046A
Authority
JP
Japan
Prior art keywords
firmware
information processing
backup data
program
processing apparatus
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
JP2022122015A
Other languages
English (en)
Inventor
曜子 徳元
Yoko Tokumoto
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 US17/969,067 priority Critical patent/US20230132214A1/en
Publication of JP2023064046A publication Critical patent/JP2023064046A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】バックアップデータを保持するためのメモリ資源の使用量を削減しつつ、プログラムの異常を検知した際の自動復旧機能を実現する情報処理装置及びその起動方法を提供する。【解決手段】情報処理装置は、複数のモジュールのうち一部のモジュールのバックアップデータを記憶し、ブートプログラムに続いて複数のモジュールを順次起動する際に、次に起動するモジュールのプログラムの正当性を検証する。また、情報処理装置は、プログラムの異常が検知されると、検証対象が一部のモジュールに含まれるモジュールである場合は情報処理装置に記憶された対応するバックアップデータを取得し、一方、検証対象が一部のモジュールに含まれないモジュールである場合は外部から対応するバックアップデータを取得し、取得したバックアップデータを用いて異常が検知されたプログラムを復旧し、正当性が検証されたプログラムを用いて対応するモジュールを起動する。【選択図】図5

Description

本発明は、情報処理装置、及びその起動方法に関するものである。
ソフトウェアの脆弱性をついて、ソフトウェアを改ざんし、コンピュータを悪用する攻撃が問題となっている。また、メモリ等の経年劣化により保持されているプログラムデータが変化してしまう可能性もある。これらの対策として、耐タンパーモジュールを用いてプログラムのハッシュ値を計算、保存しておき、起動するたびにプログラムのハッシュ値を再計算して検証を行うことでプログラムデータの異常検知を行う方法が考えられている。また、特別なハードウェアを必要とする耐タンパーモジュールを使用せず、起動時に順次プログラムを起動していく際に、次のプログラムの正解値を保持しておき正解値が一致することで各プログラムの異常検知を行う方法も考えられる。起動時において順次プログラムを起動していく際に各プログラムの異常を検知する方法では、基本的にはそのときに起動するプログラムのみ順次異常検知を行って起動する。以下、説明の簡略化のために、このような起動時の異常検知の仕組みをセキュアブートと称する。セキュアブートの仕組みは近年のセキュリティ機能の需要の高まりからデジタル複合機のファームウェアにも適用されつつある。
いずれにしても、起動中にプログラムの異常が検知されるとその装置は異常状態が解消されるまで使用不可能な状態になる。デジタル複合機のようなサービスマンによるメンテナンス契約を行うような装置の場合は、装置が使用不可能な状態に陥るとサービスマンの出動によって問題を解消し、ユーザが再び装置を使用可能になるように復旧させる必要がある。問題が生じるたびにサービスマンが出動していると、ユーザの利便性が損なわれ、サービスマンの出動コストも必要となる。
そこで、情報処理装置の起動中にソフトウェアの異常が検知されると、異常状態から自動復旧する仕組みを提供することが考えられている。例えば情報処理装置のプログラムのバックアップデータを保持しておき、異常が検知されたときに正常なバックアップデータに異常が検知されたプログラムを差し替えることで自動復旧を行うことが考えられる。特許文献1には、互いに修復機能を有する第1のファームウェア及び第2のファームウェアについて、両方をデバイス内部か又は外部サーバにバックアップしておいて自動復旧を行う技術が提案されている。当該提案においては、正常に起動できなかった場合に起動を切り替え、どちらかがもう片方のバックアップデータを焼き込んで自動復旧を実現している。
特願2002-211460号公報
しかしながら、上記従来技術には以下に記載する課題がある。上記従来技術では、自動復旧するソフトウェアのバックアップデータを情報処理装置内に保持しており、バックアップデータ用の大容量の記憶領域が必要となってしまう。一方、バックアップデータをクラウドなどの情報処理装置の外部から取得する場合は、異常が検知された際に情報処理装置自体を外部のバックアップデータを取得できる状態まで最低限起動することができなければならない。しかし、上記従来技術では、そのような検討は行われておらず、外部からバックアップデータを取得すること自体ができない場合は自動復旧することができない。
本発明は、上述の課題の少なくとも一つに鑑みて成されたものであり、バックアップデータを保持するためのメモリ資源の使用量を削減しつつ、プログラムの異常を検知した際の自動復旧機能を実現する仕組みを提供する。
本発明は、例えば、ブートプログラムに続いて複数のモジュールを順次起動する情報処理装置であって、前記複数のモジュールのうち一部のモジュールのバックアップデータを記憶する記憶手段と、次に起動するモジュールのプログラムの正当性を検証する検証手段と、前記検証手段によってプログラムの異常が検知されると、検証対象が前記一部のモジュールに含まれるモジュールである場合は前記記憶手段に記憶された対応するバックアップデータを取得し、検証対象が前記一部のモジュールに含まれないモジュールである場合は外部から対応するバックアップデータを取得する取得手段と、前記取得手段によって取得した前記バックアップデータを用いて異常が検知されたプログラムを復旧する自動復旧手段と、前記検証手段によって正当性が検証されたプログラムを用いて対応するモジュールを起動する起動手段とを備えることを特徴とする。
本発明によれば、バックアップデータを保持するためのメモリ資源の使用量を削減しつつ、プログラムの異常を検知した際の自動復旧機能を実現することができる。
一実施形態に係る情報処理装置100の構成を示すブロック図。 一実施形態に係る情報処理装置100のファームウェア構成図。 一実施形態に係るアップデート用起動のセキュアブートと自動復旧のフローチャート。 一実施形態に係る通常起動のセキュアアブートと自動復旧のフローチャート。 一実施形態に係る通常起動用ファームの自動復旧処理のフローチャート。 一実施形態に係るエラー表示の一例を示す図。 一実施形態に係るPC260による復旧用ファームウェアセット取得処理のフローチャート。 一実施形態に係る一般公開用ファームウェアセット取得サイト画面の一例を示す図。 一実施形態に係る外部サーバ250が有効でない場合の復旧処理のフローチャート。
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
<第1の実施形態>
<情報処理装置の構成>
まず図1を参照して、本実施形態に係る情報処理装置100のハードウェア構成例を説明する。なお、本実施形態に係る情報処理装置として複合機(デジタル複合機/MFP/Multi Function Peripheral)を例に説明する。しかしながら、本発明を複合機に限定することを意図するのではなく、情報処理装置であれば適用可能である。
情報処理装置100は、制御部200、操作部220、プリンタエンジン221、スキャナエンジン222、及び外部電源240を備える。CPU210を含む制御部200は、情報処理装置100全体の動作を制御する。CPU210は、半導体記憶装置(eMMC)219に記憶された制御プログラムを読み出して読取制御や印刷制御、ファームアップデート制御などの各種制御処理を実行する。また、eMMC219は、ワークエリアやユーザデータ領域としても用いられる。SPI-Flash291は、情報処理装置100のBIOS、固定パラメータ、後述するEmbedded Controller280で実行されるブートプログラム等を格納している。BIOSは、Basic Input/Output Systemの略記である。本実施形態の構成では、SPI-Flash291に格納されるBIOS、ブートプログラム等のバックアップデータを格納する別のSPI-Flash(BK)292を備えている。RAM212は、CPU210の主メモリ、ワークエリア等の一時記憶領域として用いられる。SRAM213は不揮発メモリであり、情報処理装置100で必要となる設定値や画像調整値などを記憶しており、電源を再投入してもデータが消えないようになっている。HDD218は、ファームアップデート用のファイル格納領域を備え、画像データやユーザデータ等も記憶する。HDD218は搭載されない場合もあり、その場合は、ファームアップデート用のファイル格納領域や画像データ、ユーザデータ等はすべてeMMC219に格納される。
操作部I/F215は、操作部220と制御部200とを接続する。操作部220には、タッチパネル機能を有する液晶表示部やキーボードなどが備えられている。プリンタI/F216は、プリンタエンジン221と制御部200とを接続する。プリンタエンジン221内に設けられる不図示のROMにはプリンタエンジンファーム231が格納されている。プリンタエンジン221で印刷すべき画像データはプリンタI/F216を介して制御部200からプリンタエンジン221に転送され、プリンタエンジン221において記録媒体上に印刷される。スキャナI/F217は、スキャナエンジン222と制御部200とを接続する。スキャナエンジン222に設けられた不図示のROMにはスキャナエンジンファーム232が格納されている。スキャナエンジン222は、原稿上の画像を読み取って画像データを生成し、スキャナI/F217を介して制御部200に入力する。
ネットワークI/Fカード(NIC)214は、制御部200(情報処理装置100)をLAN110に接続する。NIC214は、LAN110上の外部装置(例えば、外部サーバ250やPC260)に画像データや情報を送信したり、逆にアップデートファームや各種情報を受信したりする。外部サーバ250はインターネット上に存在するケースもありうる。PC260上に存在する不図示のWebブラウザから情報処理装置100の操作を行うこともある。
Chipset211はある一連の関連のある複数の集積回路を示す。RTC270はRealTimeClock(リアルタイムクロック)であり、計時専用のチップである。外部電源240はeMMC219に格納される制御プログラムからの指示により電源の供給を断つが、外部電源240が接続されていなくとも、不図示の内蔵電池から電源供給を受けるため、スリープ時も動作することができる。これにより、Chipset211に対して一部の電源供給が行われる状態では、スリープからの復帰を実現することができる。一方、Chipset211に電源供給がまったく行われないシャットダウン状態の場合には、RTC270は動作することができない。LED290は必要に応じて点灯し、ソフトウェアやハードウェアの異常を外部に伝えるために利用される。
Embedded Controller(以下、組み込みコントローラと称する。)280は、CPU281、ROM282、及びRAM283を備える。組み込みコントローラ280内のCPU281は、通電されたタイミングでROM282に格納されるソフトウェアプログラムを実行する。さらに、CPU281は、SPI-Flash291に格納されるブートプログラムをランダムアクセスメモリであるRAM283に展開し、ブートプログラムを実行する。
<ファームウェア構成>
次に、図2を参照して、本実施形態に係る情報処理装置100が有するファームウェアモジュールの構成例について説明する。
通信管理部301は、LAN(ネットワーク)110に接続されるNIC214を制御して、LAN110を介して外部とデータの送受信を行う。UI制御部302は、操作部I/F215を介して操作部220への入力を受け取り、入力に応じた処理や画面出力を行う。
ブートプログラム異常検知処理部303は組み込みコントローラ280内のROM282に格納される。ブートプログラム異常検知処理部303は、情報処理装置100の電源が投入され、通電されたタイミングでSPI-Flash291に格納されるブートプログラム304がRAM283に展開されると、ブートプログラムの異常検知処理を行う。
ブートプログラム304はSPI-Flash291に格納され、組み込みコントローラ280のCPU281で実行されるプログラムであり、起動に関わる処理を行うほかにBIOSの異常検知を行うBIOS異常検知処理部305を有する。BIOS306はSPI-Flash291に格納され、ブートプログラム304実行後にCPU210で実行されるプログラムで、起動に関わる処理を行うほかにローダーの異常検知を行うローダー異常検知処理部307を有する。
上記のブートプログラム304又はBIOS306の異常が確認された場合に自動復旧処理を行うために、SPI-Flash(BK)292には、ブートプログラムバックアップ308とBIOSバックアップ309とが保持される。また、ローダー異常検知処理部307においてローダーの異常が確認された場合に自動復旧処理を行なうためにeMMC219内にローダーバックアップ310が保持される。
ローダー311はBIOS306の処理が終わった後にCPU210で実行されるプログラムであり、eMMC219内に格納され、起動に関わる処理を行うほかにカーネルの異常検知を行うカーネル異常検知処理部312を有する。カーネル313は通常起動用のプログラムであり、ローダー311の処理が終わった後にCPU210で実行されるプログラムであり、通常起動に関わる処理を行うほかに通常起動用ファームの異常検知を行うプログラム異常検知処理部314を有する。また、カーネルB315はローダー311の処理が終わった後にCPU210で実行されるプログラムであり、アップデート起動に関わる処理を行うほかにアップデート起動用ファームの異常検知を行うプログラム異常検知処理部B316を有する。ローダー311内のカーネル異常検知処理部312によってカーネルの異常が確認された際の自動復旧処理のためにカーネル313及びカーネルB315のそれぞれについて、カーネルバックアップ317及びカーネルBバックアップ318が保持される。
通常起動用ファーム319はCPU210で実行されるプログラムであり、情報処理装置100で各機能を提供する複数のプログラムからなる。例えば通常起動用ファーム319には、スキャナI/F217やプリンタI/F216を制御するプログラムや起動プログラムなどが含まれる。カーネル313によって通常起動用ファーム319の中から起動プログラムが呼び出され、起動処理が実行される。
アップデート起動用ファーム320は、アップデート用起動時にCPU210で実行されるプログラムであり、情報処理装置100のファームウェアアップデートを実施するプログラム等、複数のプログラムからなる。アップデート起動用ファーム320は、通常起動用ファーム319と、図1で説明したプリンタエンジンファーム231とスキャナエンジンファーム232をアップデートする機能を有する。情報処理装置100として例えば不図示のフィニッシャなどの、スキャナエンジンやプリンタエンジン以外の構成が接続された場合も同様に、対応するファームウェアをアップデートとすることができる。また、アップデート起動用ファーム320は、ファームウェアをアップデートするための更新用ファームを外部から取得する機能を有する。更新用ファームはLAN110上の外部装置(例えば、外部サーバ250やPC260)から取得することができる。また、USBメモリ等のリムーバブルメディア(外部メモリ)を情報処理装置100に接続し、当該メディアから更新用ファームを取得することも可能である。前述のカーネルB315内のプログラム異常検知処理部B316によって、アップデート起動用ファーム320の異常が確認された場合に自動復旧処理を行うためにアップデート起動用ファームバックアップ321が保持されている。
起動に最低限必要なプログラムとして、情報処理装置100内に自動復旧のためにバックアップデータを保持しているのは、ブートプログラム304、BIOS306、ローダー311、カーネル313、及びカーネルB315である。カーネル又はカーネルBまで順次起動することで、情報処理装置100はOS(オペレーションシステム)まで起動した状態になる。しかし、ここまでの起動では、情報処理装置100のOS上で動作するアプリケーションソフトウェアで実現される機能はまだ起動されておらず利用できない。具体的には、これらの機能には、例えばeMMC219やHDD218の必要な領域をマウントして使用できるようにする機能、外部と通信するネットワーク機能、ファームウェアアップデート機能、及びプリント、スキャン機能等が含まれる。即ち、カーネル又はカーネルBまでのプログラムの起動では外部からデータを取得して復旧を行う処理は実施できないため、情報処理装置100内にバックアップデータを保持しておかないと自動復旧を実施することができない。
そこで、本実施形態によれば、上記の、起動に最低限必要なプロブラムに加えて、アプリケーションソフトェアとして、アップデート起動用ファーム320のバックアップデータを情報処理装置100内に保持する。アップデート起動用ファーム320は、eMMC219やHDD218のマウント機能、外部と通信するネットワーク機能、外部からファームウェアを取得してアップデートを行うファームウェアアップデート機能等を有している。情報処理装置100上のアプリケーションソフトウェアの中では、アップデート起動用ファーム320のバックアップデータを情報処理装置100内に保持しておけばよい。これにより、それ以外のアプリケーションソフトウェアのバックアップデータは外部(例えば、外部サーバ250やPC260或いはUSBメモリなどの外部メモリ)から取得することが可能になる。
このように、本実施形態に係る情報処理装置100は、起動に最低限必要なプログラムとアップデート起動用ファーム320とを情報処理装置100内にバックアップしておき、外部から取得することなく自動復旧可能にしておく。その上でその他の情報処理装置100上の機能を実現するためのアプリケーションソフトウェア(本実施形態では通常起動用ファーム319)を外部から取得して自動復旧可能としている。
また、前述のカーネル313内のプログラム異常検知処理部314によって通常起動用ファーム319の異常が確認された場合に自動復旧処理を行うために、eMMC219内には、不揮発情報として通常起動用ファーム自動復旧情報322がある。HDD218内には、ダウンロードしたファームウェアを一時的に配置するダウンロード領域323が設けられる。また、情報処理装置100を起動するための前述の各モジュールの組み合わせをファームウェアセットとして扱い、ファームウェアセットに対するバージョンを付与し、eMMC219内に、ファームウェアセットバージョン情報324として保持している。本実施形態においては、情報処理装置100の動作保証の観点で、ファームウェアセットとして各モジュールの組み合わせを含めて動作保証しているものとする。例えばユーザが一般公開用ファームウェア取得サイトからファームウェアを取得する際には、各モジュールの組み合わせも保証したファームウェアセットとして公開されたものを取得する。
情報処理装置100は起動モードを切り替えながらアップデートを実現する。起動モードには、カーネル313と通常起動用ファーム319が動作する通常起動(通常モード)と、カーネルB315とアップデート起動用ファーム320が動作するアップデート用起動(アップデートモード)とが含まれる。またそれぞれ、起動モードの切り替えを行う機能を有し、ローダー311がSRAM213に保存される起動モードの情報に応じて通常起動とアップデート用起動を行う。
<セキュアブートと自動復旧処理>
ここで、本実施形態に係るセキュアブートと自動復旧処理について説明する。本実施形態に係るセキュアブートの方法では、ブートプログラム304、BIOS306、ローダー311、及び通常起動であればカーネル313と通常起動用ファーム319が順次、異常検知を行いながら起動される。即ち、次に起動するモジュールを検証対象としながらそのプログラムの異常検知を実施し、正常と判断されたプログラムを用いて起動処理を行うものである。アップデート用起動であればローダー311以降はカーネルB315とアップデート起動用ファーム320が順次、異常検知を行いながら起動される。異常が検知されると、情報処理装置100内に用意されたバックアップデータが存在する場合は、バックアップデータによって異常が検知されたプログラムを修復し、次のプログラムの起動を継続する。情報処理装置100内の各プログラムのバックアップデータは、ブートプログラムバックアップ308、BIOSバックアップ309、ローダーバックアップ310、カーネルバックアップ317、及びカーネルBバックアップ318が保持される。さらに、バックアップデータとして、アップデート起動用ファームバックアップ321が情報処理装置100内に保持される。
通常起動用ファーム319については、情報処理装置100内にバックアップデータを保持していない。したがって、前述の情報処理装置100内のバックアップデータによって自動復旧可能なプログラムを使用して、外部から同等のプログラムを取得してアップデートによる修復を行うことで自動復旧が行われる。一方でアップデート起動用ファーム320は、上述したように、アップデート起動用ファームバックアップ321として予めバックアップされている。このアップデート起動用ファーム320で起動を行うと、外部との通信を行う機能が含まれており、通常起動用ファーム319のバックアップデータを外部から取得することができる。したがって、本実施形態によれば、通常起動用ファーム319に異常が検知されると、アップデート起動用ファーム320で再起動を行い、通常起動用ファーム319のバックアップデータを外部から取得する。
ブートプログラム304にはBIOS署名検証用の公開鍵、BIOS306にはBIOS署名とローダー検証用公開鍵、ローダー311にはローダー署名とカーネル検証用公開鍵、カーネルB検証用公開鍵が含まれているものとする。また、カーネル313にはカーネル署名と通常起動用ファーム検証用公開鍵、通常起動用ファーム319には通常起動用ファーム署名が含まれているものとする。さらにカーネルB315にはカーネルB署名とアップデート起動用ファーム検証用公開鍵が、アップデート起動用ファーム320にはアップデート起動用ファーム用署名が含まれているものとする。これらの公開鍵と署名は予め情報処理装置100の出荷前にプログラムに対して付与されたものとする。303、305、307、312、314、316の検証部が各プログラムを検証し、問題がなければ次のプログラムを起動することで異常検知を行う情報処理装置100の起動(セキュアブート)が行われる。
<アップデート起動時のセキュアブート>
次に、図3を参照して、本実施形態に係る情報処理装置100のアップデート起動時のセキュアブートの処理手順を説明する。情報処理装置100に電源を投入すると、組み込みコントローラ280内のCPU281は、通電されるとROM282に格納されるブートプログラム異常検知処理部303を実行する。
S301でCPU281は、SPI-Flash291に格納されるブートプログラム304をRAM283に展開し、ブートプログラム304の正当性を検証する。異常が検知された場合はS302に進み、そうでない場合はS305に進む。S302でCPU281は、SPI-Flash(BK)292に格納されているブートプログラムバックアップ308を、異常が検知されたSPI-Flash291のブートプログラム304に上書きコピーする。続いて、S303でCPU281は、ブートプログラム異常検知処理部303により再度バックアップからコピーされたブートプログラム304を検証する。バックアップからコピーされたブートプログラム304の検証に失敗した場合はS304に進み、CPU281は、LED290を点灯させ、本処理を終了する。一方、S303で検証に成功した場合は処理をS305に進める。
S305でCPU281は、ブートプログラム304を起動して実行する。ここで、ブートプログラム304に含まれるBIOS異常検知処理部305は、SPI-Flash291から、BIOS306、ローダー検証用公開鍵、及びBIOS署名をRAM283に読み込む。続いて、S306でBIOS異常検知処理部305は、BIOS検証用公開鍵を用いてBIOS署名の検証を行い、検証に成功したか否かを判定する。署名の検証に失敗した場合S307に進み、BIOS異常検知処理部305は、SPI-Flash(BK)292に格納されているBIOSバックアップ309をコピーし、異常が検知されたBIOS306を書き替える。その後、S308でBIOS異常検知処理部305は再度バックアップからコピーされたBIOS306を検証する。バックアップからコピーされたBIOS306の署名の検証に失敗した場合はS304に進み、BIOS異常検知処理部305はLED290を点灯させ、本処理を終了する。一方、署名の検証に成功した場合、BIOS異常検知処理部305はCPU210に通電し、ブートプログラムの処理を終了し、処理をS309に進める。ここまでの処理は組み込みコントローラ280のCPU281によって実行される。
S309で、CPU210は通電されると、SPI-Flash291からBIOS306及びローダー検証用公開鍵をRAM212に読み込み、BIOS306を起動する。以降の処理はすべてCPU210によって実行されるものとして説明する。BIOS306は起動されると、各種初期化処理を行い、BIOS306に含まれるローダー異常検知処理部307がeMMC219からローダー311、カーネル検証用公開鍵、及びローダー署名をRAM212に読み込む。続いて、S310でローダー異常検知処理部307は、ローダー検証用公開鍵を用いてローダー署名の検証を行い成功したか否かを判定する。署名の検証に失敗した場合はS311に進み、成功した場合はS314に進む。S311でローダー異常検知処理部307は、ローダーバックアップ310をコピーし、改ざんされたと検知されたローダー311を書き替える。続いて、S312でローダー異常検知処理部307は再度バックアップからコピーされたローダー311を検証する。バックアップからコピーされたローダー311の署名の検証に失敗した場合はS313に進み、ローダー異常検知処理部307は操作部220に図6(A)のエラーコードを表示して本処理を終了する。署名の検証に成功した場合、ローダー異常検知処理部307は処理を終了し、BIOS306がRAM212に読み込まれたローダー311を起動する。
S314でローダー311は起動されると、各種初期化処理を行い、SRAM213を参照して起動モード等のフラグの確認を行う。本実施形態ではアップデート用起動時の例で説明するため、ここではSRAM213ではカーネルB315とアップデート起動用ファーム320を起動するアップデート起動の起動モードが選択されるフラグが立っていることを前提とする。したがって、ローダー311はアップデート起動用のカーネルB315の起動を開始する。ローダー311に含まれるカーネル異常検知処理部312はeMMC219からカーネルB315とアップデート起動用ファーム検証用公開鍵とカーネルB署名とをRAM212に読み込む。さらに、S315でカーネル異常検知処理部312は、カーネルB検証用公開鍵を用いて、カーネルB署名の検証を行い成功したか判定する。署名の検証に失敗した場合はS316に進み、成功した場合はS318に進む。
S316でカーネル異常検知処理部312はカーネルBバックアップ318をコピーし、異常が検知されたカーネルB315を書き替える。続いて、S317でカーネル異常検知処理部312は、再度バックアップからコピーされたカーネルB315を検証する。バックアップからコピーされたカーネルB315の署名の検証に失敗した場合はS313に進み、カーネル異常検知処理部312は操作部220に図6(A)に示すエラーコードを表示して本処理を終了する。一方、署名の検証に成功した場合はカーネル異常検知処理部312は処理を終了し、S318に進んでローダー311がRAM212に読み込まれたカーネルB315を起動する。
カーネルB315は起動されると、各種初期化処理を行う。その後カーネルB315に含まれるプログラム異常検知処理部B316がeMMC219からアップデート起動用ファーム320とアップデート起動用ファーム署名とをRAM212に読み込む。カーネルB315まで起動されると、情報処理装置100としてはOSまで起動された状態になる。しかし、OS上で起動するアプリケーションソフトウェア(アップデート起動用ファーム320)はまだ起動前となる。したがって、この段階ではマウント処理、外部とのネットワーク通信処理、及びファームウェアアップデート処理等はまだ実施することができない。
次に、S319でプログラム異常検知処理部B316は、アップデート起動用ファーム検証用公開鍵を用いて、アップデート起動用ファーム署名の検証を行い成功したか判定する。署名の検証に失敗した場合はS320に進み、成功した場合はS322に進む。S320でプログラム異常検知処理部B316は、アップデート起動用ファームバックアップ321をコピーし、異常が検知されたアップデート起動用ファーム320を書き替える。続いて、S321でプログラム異常検知処理部B316は再度バックアップからコピーされたアップデート起動用ファーム320を検証する。バックアップからコピーされたアップデート起動用ファーム320の署名の検証に失敗した場合はS313に進み、プログラム異常検知処理部B316は操作部220に図6(A)に示すエラーコードを表示して処理を終了する。一方、署名の検証に成功した場合は、プログラム異常検知処理部B316は処理を終了し、S322でアップデート起動用ファーム320を起動し、本処理を終了する。
<通常起動時のセキュアブート>
次に、図4を参照して、本実施形態に係る情報処理装置100の通常起動時のセキュアブートの処理手順を説明する。バックアップデータが情報処理装置100内に予め保持されているプログラムについては、前述の図3のアップデート起動時のセキュアブートと同様に異常を検知して自動復旧することが可能である。通常起動の処理時は、S401~S413までの処理は図3のS301~S313と同様であり、S414において、SRAM213にカーネル313と通常起動用ファーム319とを起動する通常起動の起動モードが選択されるフラグが立っている。ローダー311はフラグを確認後、S315~S318のアップデート起動用のカーネルB315と同様に、S415~S418で、カーネル異常検知処理部312によって通常起動用のカーネル313の異常検知処理と、異常が検知されれば自動復旧処理とを行う。検証に成功すると、通常起動用のカーネル313の起動が開始される。
カーネル313は起動されると、各種初期化処理を行う。続いてカーネル313に含まれるプログラム異常検知処理部314がeMMC219から通常起動用ファーム319と通常起動用ファーム署名とをRAM212に読み込む。カーネル313まで起動すると、情報処理装置100としてはOSまで起動された状態になる。しかし、OS上で起動するアプリケーションソフトウェア(通常起動用ファーム319)はまだ起動前となる。したがって、この段階ではマウント処理、外部とのネットワーク通信処理、及び情報処理装置100に接続される各エンジンを制御するプリント、スキャン処理等はまだ実施することができない。
S419でプログラム異常検知処理部314は、通常起動用ファーム検証用公開鍵を用いて、通常起動用ファーム署名の検証を行い成功したか判定する。署名の検証に失敗した場合はS420に進み、プログラム異常検知処理部314は、後述する通常起動用ファームの自動復旧処理を行う。当該自動復旧処理については図5を用いて後述する。一方、署名の検証に成功した場合は、プログラム異常検知処理部314は処理を終了し、S421で通常起動用ファーム319を起動し、処理を終了する。
<通常起動用ファームの自動復旧>
次に、図5を参照して、図4のS420の通常起動用ファーム319の自動復旧処理の詳細な処理手順を説明する。なお、以下で説明する処理は図4のS419で通常起動用ファーム319の異常が検知された場合に行われる。
まずS501でプログラム異常検知処理部314は、SRAM213にアップデート用起動フラグを立て、通常起動用ファーム自動復旧情報322に自動復旧フラグを立て、リブート処理を指示する。情報処理装置100はリブートを開始し、S502でアップデート起動を開始する。ここでは図3のS301~S321のアップデート起動処理を行い、S503で、プログラム異常検知処理部B316はアップデート起動用ファーム320を起動する。S502、S503のアップデート起動処理については、前述の通り、異常があっても情報処理装置100内のバックアップデータによって自動復旧して起動が進む。アップデート起動時のカーネルB315までの起動ではまだ外部との通信ができないが、S503のアップデート起動用ファーム320の起動まで完了することで、外部とのネットワーク通信が可能となる。したがって、これ以降においては通常起動用ファーム319と同等のデータを外部から取得可能になる。S504以降の処理において、アップデート起動用ファーム320の処理にて通常起動用ファーム319と同等のデータを外部から取得してアップデートすることによって、異常が検知された通常起動用ファーム319の自動復旧を行う。
S504でアップデート起動用ファーム320は、通常起動用ファーム自動復旧情報322に自動復旧フラグが立っているかどうか確認する。自動復旧フラグが立っていなければそのまま本処理を終了する。一方、自動復旧フラグが立っていればS505に進み、アップデート起動用ファーム320は、外部サーバ250が有効であるかどうかを確認する。ここでいう外部サーバ250が有効とは、情報処理装置100がLAN110上又はインターネット上の外部サーバ250と通信でき、かつ、外部サーバ250からファームをダウンロードしアップデート可能な設定になっているかどうかである。外部サーバ250が有効でない場合はS506に進み、ファームのアップデートによって復旧可能であることを示す図6(A)とは異なる図6(B)のエラーコード表示を行い、本処理を終了する。これにより、外部サーバ250が有効でないためにアップデートによって異常状態からの復旧の見込みがあるのに実施できないことを、ユーザから出動を要請されたサービスマンへエラーコードとして表示することができる。したがって、サービスマンは復旧方法の判断材料としてエラーコードを確認することができる。この場合サービスマンは、例えば外部サーバ250との通信を有効にするように、復旧処理を手動で行い、その後、後述するS505の処理から再開させることで容易に復旧処理を行うことができる。復旧処理の詳細については後述する。
また、上記エラーコードに加えて、バックアップデータを取得するためのURLなどの接続先の情報を出力してもよい。これにより、より容易に復旧処理を行うことができる。例えば、デバイスは通常起動用ファームの異常を検知した段階でアップデート起動用ファームでリブートし、ユーザが更新用のファームをインストールできる状態で待機する。また、ユーザは表示されたURLからファームを取得し、リモートUIやUSBメモリ経由で通常起動用ファームの更新を行う。これにより外部サーバ250との通信が有効でない場合であっても、通常起動用ファームを更新することができる。
一方、S505で外部サーバ250が有効であると判断するとS507に進み、アップデート起動用ファーム320は、外部サーバ250から現状異常が検知された通常起動用ファーム319と同じバージョンのファームをダウンロードする。S508でアップデート起動用ファーム320は、外部サーバ250からファームのダウンロード中にエラーが発生したかどうかを判断する。エラーが発生した場合はS509に進み、アップデート起動用ファーム320は、操作部220に図6(A)のエラーコードを表示し処理を終了する。
ファームのダウンロードが無事完了するとS510に進み、アップデート起動用ファーム320は、異常が検知されている通常起動用ファーム319を外部サーバ250からダウンロードした同一バージョンのファームにアップデートする。続いてS511でアップデート起動用ファーム320は、アップデート中にエラーが発生したかどうかを判断する。エラーが発生した場合はS509に進み、アップデート起動用ファーム320は操作部220に図6(A)のエラーコードを表示し処理を終了する。一方、通常起動用ファーム319のアップデートに成功するとS512に進み、アップデート起動用ファーム320はリブートして通常起動する。
以上の処理により、情報処理装置100内にバックアップデータを保持していない通常起動用ファーム319に異常があった場合は、アップデート用起動に切り替え、外部サーバ250から同一バージョンの通常起動用ファームを取得する。これにより、取得した通常起動用ファームを用いてアップデートすることができ、異常状態から自動復旧することができる。
<別デバイスによりファームウェアを取得した場合の復旧方法>
次に、上記S506の外部サーバ250が有効でない場合に、ユーザの別デバイスによるファームウェア取得による復旧の処理手順について説明する。前述の通り、外部サーバ250が有効でない場合は情報処理装置100が外部サーバ250からファームウェアをダウンロードしてアップデートすることができない。このように異常状態からの復旧が実施できない場合には、図6(B)に示すエラーコード表示でバックアップデータを取得するためのURLなどの接続先の情報を出力することが可能である。その際、表示されたURL(例えば、契約を必要としない一般公開用のファームウェア取得サイト等)からバックアップデータ相当のファームウェアをユーザが別のデバイスを介して取得することできる。ここで、別のデバイスとは、ダブレット端末、スマートフォン、パーソナルコンピュータ等を含むブラウザを利用できるユーザのPC260を想定している。
図7を参照して、ユーザのPC260において、復旧用のファームウェアを取得する処理手順について説明する。以下で説明する処理は、例えばPC260の不図示のCPUがROM等のメモリに格納されているプログラムをRAMに読み出して実行することにより実現される。
まず、S701でPC260のCPUは、情報処理装置100の操作部220に表示された図6(B)の接続先情報を取得する。当該接続情報はPC260のユーザインタフェースを介してユーザ操作を受け付けることにより入力される。ここで操作部220に表示される接続先情報としては、一般公開用のファームウェア取得サイト上で適切なファームウェアセットを特定するための、情報処理装置100の機種情報、現状のファームウェアバージョン情報などを含む。表示形式としてはURLのみならず、QRコード(登録商標)形式で表示してもよい。ここでいうファームウェアセットとは、情報処理装置100内に含まれるすべてのプログラムを含むものであり、ファームウェアセット全体に対してバージョンが付与されているものとする。もちろん本発明を限定する意図はなく、他の形態でバージョンが付与されてもよい。
次にS702でPC260のCPUは、ユーザ操作を介して入力された接続情報に基づいて、一般公開用のファームウェア取得サイトにアクセスし、S703でファームウェアセットの情報を取得して表示する。一般公開用のファームウェア取得サイトでは、送信された機種情報及びファームウェア情報に基づいて、復旧に適切なファームウェアセットを表示する。図8は、一般公開用のファームウェアサイトにアクセスした際のPC260の画面のブラウザ上に表示される画面例を示す。図8に示すように、当該画面では、情報処理装置100と同一バージョンのファームウェアセットだけでなく、最新のファームウェアセットもダウンロード可能なファームウェアセットとして表示することもできる。当該画面では、各バージョンに対してダウンロードを指示するボタンが選択可能に表示される。
外部サーバ250が有効になっていない情報処理装置100は、サービスメンテナンス契約として、定期的な自動アップデートの契約がなされておらず、インストールされているファームウェアセットが最新でないことも考えられる。最新のファームウェアセットにはセキュリティ上の脆弱性対応が入っている可能性もあり、ユーザは最新のファームウェアセットを選択することで、よりセキュアなファームウェアセットに復旧することが可能になる。現在ユーザが使用しているファームウェアセットバージョンに明らかなセキュリティ上の脆弱性やその他のバグなどの障害がある場合も想定される。そのような場合には、一般公開用のファームウェアサイトでは、最初から、情報処理装置100に現在インストールしてあるバージョンのファームウェアセットを表示しないようにすることもできる。
次にS704でPC260のCPUは、選択されたファームウェアセットをダウンロードし、S705でPC260からネットワーク110を介して、情報処理装置100にダウンロードしたファームウェアセットを送信する。或いは、一度USBメモリ等のリムーバブルメディア(外部メモリ)にファームウェアセットを移し、情報処理装置100に当該外部メモリを接続することによってファームウェアセットを提供してもよい。
次に図9を参照して、情報処理装置100において、別デバイスであるPC260を介して取得したファームウェアセットによって復旧する処理手順について説明する。S901~S905については、上記S501~S505と同様の制御となるため説明を省略する。
S905でアップデート起動用ファーム320は、外部サーバ250が有効であると判断するとS906に進み、外部サーバ250が有効である場合の自動復旧処理を開始し、S906、S907、S908を実施する。S906、S907、S908はS507、S508、S510と同様の処理であるため説明を省略する。
一方、外部サーバ250が有効でない場合はS909に進み、アップデート起動用ファーム320はファームウェア受付可能状態で待機を開始する。続いてS910でアップデート起動用ファーム320は、操作部220に図6(B)のエラー画面を表示する。上述したように、当該エラー画面には、エラーコードとともに、復旧方法を示すメッセージ、一般公開用のファームサイト、機種、及びファームウェアセットバージョンなどの情報が表示される。
次にS911でアップデート起動用ファーム320は、PC260等の別デバイスにおいてダウンロードした(S701~S705)ファームセットを取得する。続いてS912でアップデート起動用ファーム320は、現状のファームウェアセットバージョンと、復旧するために取得したファームウェアセットバージョンとを比較する。具体的には、ファームウェアセットバージョン情報324と取得したファームウェアセットが保持しているバージョン情報との比較を行う。ファームウェアセットバージョンが一致していた場合はS913に進み、アップデート起動用ファーム320は、取得したファームセットのうち、異常が検知されたプログラムのみアップデートを行う。本実施形態では、情報処理装置100にバックアップデータとして保持していない通常起動用ファーム319に相当する。
一方、ファームウェアセットバージョンが不一致の場合はS914に進み、アップデート起動用ファーム320は、情報処理装置100内のすべてのプログラムを、取得したファームウェアセットにアップデートする。これは、ファームウェアセットバージョンが現状と異なる場合、ユーザが一般公開用のウェブサイトにおいて最新のファームウェアセットを選択してダウンロードしたと考えられるためである。したがって、プログラムの異常の有無に関わらず、すべてのプログラムを、取得したファームウェアセットに含まれるプログラムにアップデートする。これにより、最新ファームウェアセットに情報処理装置100のすべてのプログラムがアップデートされるため、情報処理装置100をよりセキュアな状態に復旧することが可能になる。S915、S916、S917については、それぞれS511、S509、S512と同様の処理であるため説明を省略する。
以上説明したように、本実施形態に係る情報処理装置は、ブートプログラムに続いて複数のモジュールを順次起動するセキュアブートを行うものである。また、本情報処理装置は、複数のモジュールのうち一部のモジュールのバックアップデータを記憶し、次に起動するモジュールのプログラムの正当性を検証する。また、本情報処理装置は、プログラムの異常が検知されると、検証対象が一部のモジュールに含まれるモジュールである場合は情報処理装置に記憶された対応するバックアップデータを取得する。一方、検証対象が一部のモジュールに含まれないモジュールである場合は外部から対応するバックアップデータを取得する。さらに、本情報処理装置は、取得したバックアップデータを用いて異常が検知されたプログラムを復旧し、正当性が検証されたプログラムを用いて対応するモジュールを起動する。このように、本実施形態によれば、情報処理装置100の起動の初期に関わるプログラム(ブートプログラム304、BIOS306、ローダー311、カーネル313、カーネルB315)のバックアップデータのみを情報処理装置100に保持する。さらに、外部から必要なプログラムを取得しアップデートできるアップデート起動用ファーム320は、情報処理装置100内にバックアップデータを保持する。これにより、情報処理装置100内にバックアップデータを保持していない通常起動用ファーム319に異常があった場合は、アップデート用起動に切り替えて外部サーバ250から同一バージョンの通常起動用ファームを取得し、自動復旧することができる。このように本発明では、通信機能を実現する必要最低限のバックアップデータを装置に予め保持し、その他のバックアップデータは外部から取得することにより、バックアップデータによるメモリ資源の使用量を削減している。よって、本発明によれば、バックアップデータを保持するためのメモリ資源の使用量を削減しつつ、プログラムの異常を検知した際の自動復旧機能を実現することができる。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
100:情報処理装置、110:LAN、200:制御部、210:CPU、211:チップセット、212:RAM、213:SRAM、214:NIC、215:操作部I/F、216:プリンタI/F、217:スキャナI/F、218:HDD、219:eMMC、220:操作部、221:プリンタエンジン、222:スキャナエンジン、231:プリンタエンジンファーム、232:スキャナエンジンファーム、240:外部電源、250:外部サーバ、260:PC、280:組み込みコントローラ、281:CPU、282:ROM、283:RAM、290:LED、291:SPI-Flash、292:SPI-Flash(BK)

Claims (12)

  1. ブートプログラムに続いて複数のモジュールを順次起動する情報処理装置であって、
    前記複数のモジュールのうち一部のモジュールのバックアップデータを記憶する記憶手段と、
    次に起動するモジュールのプログラムの正当性を検証する検証手段と、
    前記検証手段によってプログラムの異常が検知されると、検証対象が前記一部のモジュールに含まれるモジュールである場合は前記記憶手段に記憶された対応するバックアップデータを取得し、検証対象が前記一部のモジュールに含まれないモジュールである場合は外部から対応するバックアップデータを取得する取得手段と、
    前記取得手段によって取得した前記バックアップデータを用いて異常が検知されたプログラムを復旧する自動復旧手段と、
    前記検証手段によって正当性が検証されたプログラムを用いて対応するモジュールを起動する起動手段と
    を備えることを特徴とする情報処理装置。
  2. 前記一部のモジュールには前記取得手段によって前記外部から対応するバックアップデータを取得する機能を実現するモジュールが含まれることを特徴とする請求項1に記載の情報処理装置。
  3. 前記取得手段は、前記外部から前記バックアップデータを取得できない場合に、その旨を示すエラーコードを出力することを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記取得手段は、前記エラーコードとともにさらに前記バックアップデータを取得するための接続先の情報を出力することを特徴とする請求項3に記載の情報処理装置。
  5. 前記一部のモジュールには、少なくとも、BIOS(Basic Input/Output System)、ローダー、第1カーネル、及び第2カーネルが含まれ、
    前記取得手段は、前記BIOS、前記ローダー、前記第1カーネル、及び前記第2カーネルの何れかに異常が検知された場合には、前記記憶手段に記憶された前記バックアップデータを取得することを特徴とする請求項1乃至4の何れか1項に記載の情報処理装置。
  6. 前記複数のモジュールには、通常モードで起動する通常起動用ファームと、アップデートモードで起動するアップデート起動用ファームとが含まれ、
    前記取得手段は、前記アップデート起動用ファームに異常が検知された場合には、前記記憶手段に記憶されたバックアップデータを取得し、前記通常起動用ファームに異常が検知された場合には、前記通常モードによる起動からアップデートモードによる起動に切り替え、前記アップデート起動用ファームが前記外部から異常が検知された前記通常起動用ファームのバックアップデータを取得することを特徴とする請求項1乃至5の何れか1項に記載の情報処理装置。
  7. 前記ブートプログラムの正当性を検証し、異常が検知された場合には前記記憶手段に記憶された前記ブートプログラムのバックアップデータを用いて復旧し、ブートプログラムを起動する組み込みコントローラをさらに備えることを特徴とする請求項1乃至6の何れか1項に記載の情報処理装置。
  8. 前記取得手段は、前記外部から対応するバックアップデータを取得する場合に、ネットワークを介して外部装置から前記バックアップデータを取得することを特徴とする請求項1乃至7の何れか1項に記載の情報処理装置。
  9. 前記取得手段は、前記外部から対応するバックアップデータを取得する場合に、前記情報処理装置に接続される外部メモリから前記バックアップデータを取得することを特徴とする請求項1乃至7の何れか1項に記載の情報処理装置。
  10. 前記取得手段は、前記外部から対応するバックアップデータを取得する場合に、異常があったプログラムに該当するバックアップデータだけでなく、前記情報処理装置に含まれるすべてのプログラムをファームウェアセットとして取得することを特徴とする請求項1乃至9の何れか1項に記載の情報処理装置。
  11. 前記自動復旧手段は、前記取得手段によって取得されたファームウェアセットのバージョンと前記情報処理装置のファームウェアセットのバージョンとを比較し、バージョンが一致しているときは異常が検知されたプログラムを復旧し、バージョンが不一致の場合は前記情報処理装置に含まれるすべてのプログラムを取得されたファームウェアセットで更新することを特徴とする請求項1乃至10の何れか1項に記載の情報処理装置。
  12. 複数のモジュールのうち一部のモジュールのバックアップデータを記憶する記憶手段を備え、ブートプログラムに続いて前記複数のモジュールを順次起動する情報処理装置の起動方法であって、
    検証手段が、次に起動するモジュールのプログラムの正当性を検証する検証工程と、
    取得手段が、前記検証工程でプログラムの異常が検知されると、検証対象が前記一部のモジュールに含まれるモジュールである場合は前記記憶手段に記憶された対応するバックアップデータを取得し、検証対象が前記一部のモジュールに含まれないモジュールである場合は外部から対応するバックアップデータを取得する取得工程と、
    自動復旧手段が、前記取得工程で取得した前記バックアップデータを用いて異常が検知されたプログラムを復旧する自動復旧工程と、
    起動手段が、前記検証工程で正当性が検証されたプログラムを用いて対応するモジュールを起動する起動工程と
    を含むことを特徴とする情報処理装置の起動方法。
JP2022122015A 2021-10-25 2022-07-29 情報処理装置、及びその起動方法 Pending JP2023064046A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/969,067 US20230132214A1 (en) 2021-10-25 2022-10-19 Information processing apparatus and method of the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021174067 2021-10-25
JP2021174067 2021-10-25

Publications (1)

Publication Number Publication Date
JP2023064046A true JP2023064046A (ja) 2023-05-10

Family

ID=86271117

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022122015A Pending JP2023064046A (ja) 2021-10-25 2022-07-29 情報処理装置、及びその起動方法

Country Status (1)

Country Link
JP (1) JP2023064046A (ja)

Similar Documents

Publication Publication Date Title
JP4954031B2 (ja) 画像処理装置及び再インストール方法
US20160234396A1 (en) Image forming apparatus having firmware update function, method of controlling the same, program for executing the method, and storage medium
US11669609B2 (en) Information processing apparatus, control method of the same, and storage medium
JP2008200943A (ja) 画像形成装置
JP7009270B2 (ja) 情報処理装置及びプログラムの検証方法
JP2022135443A (ja) 情報処理装置、情報処理方法及びプログラム
JP2020082441A (ja) 画像形成装置、その制御方法、及びプログラム
JP7206106B2 (ja) 情報処理装置及びプログラム
JP2023064046A (ja) 情報処理装置、及びその起動方法
JP7374780B2 (ja) 情報処理装置および情報処理装置の制御方法
JP7182966B2 (ja) 情報処理装置、情報処理装置の起動方法、及びプログラム
US20230132214A1 (en) Information processing apparatus and method of the same
JP2023068538A (ja) 情報処理装置及びその制御方法、並びにプログラム
JP2022071954A (ja) 情報処理装置、情報処理方法およびプログラム
JP2020053002A (ja) 情報処理装置とその制御方法、及びプログラム
JP2022187302A (ja) 情報処理装置とその制御方法、及びプログラム
JP2017142686A (ja) 電子機器、その制御方法及びプログラム
JP2021140601A (ja) 情報処理装置、その制御方法、及びプログラム
JP2021117523A (ja) 情報処理装置、情報処理装置の処理方法およびプログラム
JP2020154601A (ja) 情報処理装置とその制御方法、及びプログラム
US10942810B2 (en) Start-up processing for information processing apparatus and method, and storage medium
JP2022080687A (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
JP2022157063A (ja) 情報処理装置、情報処理方法およびプログラム
JP2021128469A (ja) 情報処理装置と、情報処理装置における起動方法
US20230300268A1 (en) Information processing apparatus, image forming apparatus, and method of installing an application program therefor