(57)【要約】【課題】不揮発メモリのデータの意図しない変化に対する耐性を向上させることを目的とする。【解決手段】情報処理装置であって、２つ以上のブートプログラムを記憶した記憶手段と、前記ブートプログラムの正当性の有無を判定する判定手段と、揮発性の情報を生成する情報生成手段と、前記揮発性の情報を無作為に抽出し、抽出した前記揮発性の情報に基づき前記ブートプログラムのうちのいずれか１つを選択する選択手段であって、前記判定手段において選択されたブートプログラムに正当性が無いと判定された場合、かつ、別のブートプログラムについて前記判定手段において正当性があると判定された場合、前記別のブートプログラムで前記選択されたブートプログラムに対して上書き処理を行う選択手段と、を備えたことを特徴とする。【選択図】図１
2020057304.tif 000002
【特許請求の範囲】
【請求項１】
２つ以上のブートプログラムを記憶した記憶手段と、
前記ブートプログラムの正当性の有無を判定する判定手段と、
揮発性の情報を生成する情報生成手段と、
前記揮発性の情報を無作為に抽出し、抽出した前記揮発性の情報に基づき前記ブートプログラムのうちのいずれか１つを選択する選択手段であって、前記判定手段において選択されたブートプログラムに正当性が無いと判定された場合、かつ、別のブートプログラムについて前記判定手段において正当性があると判定された場合、前記別のブートプログラムで前記選択されたブートプログラムに対して上書き処理を行う選択手段と、
を備えたことを特徴とする情報処理装置。
【請求項２】
前記選択されたブートプログラムに正当性があると判定された場合、又は前記別のブートプログラムで前記選択されたブートプログラムに対して上書き処理を行った場合、前記選択したブートプログラムを用いて起動処理を行うよう装置を制御する制御手段をさらに備えたことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ブートプログラムの各々に対して正当性の有無を判定する頻度は平準化されていることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記ブートプログラムは、電子署名データを含み、
前記判定手段は、前記電子署名データに基づき正当性の有無を判定することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記揮発性の情報は乱数値であることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記揮発性の情報は計数値であることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項７】
２つ以上のブートプログラムを記憶した記憶手段を備えた情報処理装置における情報処理方法であって、
揮発性の情報を無作為に生成するステップと、
前記揮発性の情報を無作為に抽出するステップと、
抽出された前記揮発性の情報に基づき前記ブートプログラムのうちのいずれか１つを選択するステップと、
選択されたブートプログラムの正当性を判定するステップと、
前記選択されたブートプログラムに正当性が無いと判定された場合、かつ、別のブートプログラムについて正当性を判定し、正当性があると判定された場合、前記別のブートプログラムで前記選択されたブートプログラムに対して上書き処理を行うステップと、
を有することを特徴とする情報処理方法。
【請求項８】
コンピュータを請求項１乃至６のいずれか１項に記載の情報処理装置として機能させるためのプログラム。
【請求項９】
請求項１乃至６のいずれか１項に記載の情報処理装置を備えた画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、装置を起動するための情報処理装置、その起動方法、プログラム及び画像形成装置に関するものである。
【背景技術】
【０００２】
システムを起動するためのプログラムであるブートプログラムの記憶場所として不揮発メモリが広く用いられているが、この不揮発メモリの内容が意図せず変化してしまうことがある。その原因の１つとして、不揮発メモリの物理的な欠陥からくる経年劣化による電荷抜けによるビットの変化がある。またもう１つの原因としては、外部からの悪意ある電子的な攻撃によるプログラムの書き換えがある。
【０００３】
このような意図しない変化がブートプログラムにおいて発生すると、システムが起動しなくなってしまったり、攻撃者により書き換えられたプログラムがシステム起動と同時に動作して情報が漏洩してしまったりする等、不具合が生じる。
【０００４】
これら不具合の発生を回避し、本来のブートプログラムを動作させるために、通常使用する不揮発メモリとは別のバックアップ用不揮発メモリにもブートプログラムを記憶するシステムが提案されている（特許文献１参照）。このシステムでは、通常使用する不揮発メモリに記憶されたブートプログラムに意図しない変化が検出された場合には、バックアップ用不揮発メモリに記憶された別のブートプログラムを実行する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２６６５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１の技術では、第１のブートプログラムが正常である間はバックアップ用不揮発メモリの内容が意図しない変化が生じたとしてもそれを検出することができないという課題がある。そのため、バックアップ用不揮発メモリに記憶された第２のブートプログラムに意図しない変化を検出したときには第１のブートプログラムにも意図しない変化が生じているため、第２のブートプログラムの修復が困難である。
【０００７】
そこで本発明は、不揮発メモリのデータの意図しない変化に対する耐性を向上させることを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、情報処理装置であって、２つ以上のブートプログラムを記憶した記憶手段と、前記ブートプログラムの正当性の有無を判定する判定手段と、揮発性の情報を生成する情報生成手段と、前記揮発性の情報を無作為に抽出し、抽出した前記揮発性の情報に基づき前記ブートプログラムのうちのいずれか１つを選択する選択手段であって、前記判定手段において選択されたブートプログラムに正当性が無いと判定された場合、かつ、別のブートプログラムについて前記判定手段において正当性があると判定された場合、前記別のブートプログラムで前記選択されたブートプログラムに対して上書き処理を行う選択手段と、を備えたことを特徴とする。
【発明の効果】
【０００９】
本発明は、不揮発メモリのデータの意図しない変化に対する耐性を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】複合機のハードウエア構成図である。
【図２】（ａ）は本発明の一実施形態に係る複合機１００が有する機能構成を説明するブロック図であり、（ｂ）はブートプログラムの論理構成を示す図ある。
【図３】本発明の一実施形態に係る選択処理を示すフローチャートである。
【図４】本発明の一実施形態に係る異常処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１２】
尚、実施形態に係る情報処理装置を含む画像形成装置として複合機（デジタル複合機／ＭＦＰ／Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）を例に説明する。しかしながら本発明の適用範囲は、複合機に限定されず、情報処理装置やプログラムであってもよい。
【００１３】
図１は、本発明の一実施形態に係る複合機１００のハードウエア構成を説明するブロック図である。
【００１４】
ＣＰＵ１０１は、複合機１００のソフトウェアプログラムを実行し、装置全体の制御を行う。ＲＯＭ１０２はリードオンリーメモリで、複合機１００のＢＩＯＳ、固定パラメータ等を記憶している。ＲＡＭ１０３はランダムアクセスメモリで、ＣＰＵ１０１が複合機１００を制御する際に、プログラムや一時的なデータの記憶などに使用される。
【００１５】
ＨＤＤ１０４はハードディスクドライブで一部のアプリケーション、各種データを記憶する。フラッシュメモリ１１４はローダー、カーネル、アプリケーションを記憶する。
【００１６】
埋め込みコントローラ１１３は、ＣＰＵ１１５、ＲＡＭ１１６、及びＲＯＭ１１８を備えており、ＣＰＵ１１５は埋め込みコントローラ１１３のソフトウェアプログラムを実行し、複合機１００の中で一部の制御を行う。ＲＡＭ１１６はランダムアクセスメモリで、ＣＰＵ１１５が複合機１００を制御する際に、プログラムや一時的なデータの記憶などに使用される。ＲＯＭ１１８は、ＣＰＵ１１５が動作開始したときに最初に読み出されるプログラムを記憶している。
【００１７】
ネットワークＩ／Ｆ制御部１０５は、ネットワーク１１９とのデータの送受信を制御する。スキャナＩ／Ｆ制御部１０６は、スキャナ１１１による原稿の読み取りを制御する。プリンタＩ／Ｆ制御部１０７は、プリンタ１１２による印刷処理などを制御する。パネル制御部１０８は、タッチパネル式の操作パネル１１０を制御し、各種情報の表示、使用者からの指示入力を制御する。
【００１８】
バス１０９はＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、ＨＤＤ１０４、ネットワークＩ／Ｆ制御部１０５、スキャナＩ／Ｆ制御部１０６、プリンタＩ／Ｆ制御部１０７を相互に接続する。さらにバス１０９はパネル制御部１０８、埋め込みコントローラ１１３、フラッシュメモリ１１４も相互に接続する。このバス１０９を介して、ＣＰＵ１０１からの制御信号や各装置間のデータ信号が送受信される。
【００１９】
ＬＥＤ１１７は必要に応じて点灯し、ソフトウエアやハードウエアの異常を外部に伝えるために利用される。
【００２０】
図２（ａ）は、本発明の一実施形態に係る複合機１００が有する機能構成を説明するブロック図である。フラッシュメモリ１１４にはブートプログラム（１）２０１０と、ブートプログラム（２）２０２０とが記憶されている。埋め込みコントローラ１１３は、ＲＡＭ１１６及びＲＯＭ１１７に記憶されたプログラムをＣＰＵ１１５が実行することで実現される、選択部２０３０、情報生成部２４０、判定部２０５０、及びリセット制御部２０６０からなる複数の機能が含まれている。
【００２１】
図１において埋め込みコントローラ１１３とフラッシュメモリ１１４とは共通のバス１０９によって接続されているよう示しているが、これに限らない。埋め込みコントローラ１１３によるフラッシュメモリ１１４のデータの読み書きには、バス１０９を用いずに別途直接接続するバスを設け、それを用いても良い。
【００２２】
選択部２０３０は、情報生成部２０４０や判定部２０５０からの指示に基づき、フラッシュメモリ１１４内に記憶されているブートプログラム（１）２０１０と、ブートプログラム（２）２０２０とのどちらを読み出せるようにするかを選択する。
【００２３】
情報生成部２０４０は、選択部２０３０でのブートプログラム選択に用いる情報を生成する。本発明ではブートプログラムの選択のために揮発性の情報を生成する。本実施形態では情報生成部２０４０は、ＣＰＵ１１５に内蔵又は外付けされた乱数生成器（不図示）を有し、システムが起動すると乱数生成器で乱数を生成させ、所定の工程を経て乱数値を取得する。乱数値の生成から取得までの時間は記憶装置等のハードウエアからのデータ読出し・書込み速度の揺らぎに起因してランダムに変化するため、情報生成部２０４０は、起動の都度、無作為に抽出された値を取得することができる。尚、乱数生成器は単純増加の計数器などでも代用でき、揮発性の情報として計数値を用いることができる。また本実施形態では、情報生成部２０４０は、ハードウエアにより揮発性の情報を生成することを想定しているが、ソフトウエアにより揮発性の情報を生成する構成としても構わない。
【００２４】
判定部２０５０は、ブートプログラムに意図しない変化が生じていないかの確認を行う。これには、一般的に広く用いられる公開鍵暗号方式を応用した電子署名技術を使用することを想定している。そのため、詳細な説明は割愛する。
【００２５】
リセット制御部２０６０は、後述の情報処理装置制御部２０７０の動作状態を制御する。初期状態は、情報処理装置制御部２０７０を動作させないリセット状態である。
【００２６】
情報処理装置制御部２０７０は、複合機１００から埋め込みコントローラ１１３及びフラッシュメモリ１１４を除いたもの全体に相当する。前述の通りリセット制御部２０６０は初期状態がリセット状態であるため、電源が供給開始されても動作を開始しない。
【００２７】
図２（ｂ）は、フラッシュメモリ１１４に記憶されるブートプログラムの論理構成を示した図である。前述の通り公開鍵暗号方式を応用した電子署名技術を用いて意図しない変化を検出するため、プログラム本体だけでなく、付加情報も備える。実行コード２１１０は、ＣＰＵ１０１が実行するプログラム本体である。署名データ２１２０及び公開鍵データ２１３０を含む電子署名データは、実行コード２１１０の正当性を判定するために必要となる付加情報である。
【００２８】
図３、４は、実施形態１に係る複合機１００の電源が投入されたときの、埋め込みコントローラ１１３が実行する選択処理、異常処理を示すフローチャートである。本処理は、ソフトウエアとしてＲＯＭ１１８に記憶されており、ＣＰＵ１１５が実行する。尚、以下の説明では、図２（ａ）に示す機能構成に基づき、ＣＰＵ１１５が実現する機能部を各ステップの動作主体としている。
【００２９】
図３に、本発明の一実施形態に係る選択処理を示すフローチャートを示す。まずＳ３０１０で、選択部２０３０は情報生成部２０４０から情報を取得する。先に記載したとおり、本実施形態では情報生成部２０４０に乱数発生機能を持たせているため、選択部２０３０は何らかの乱数値を得る。
【００３０】
Ｓ３０２０では、選択部２０３０は得られた情報、すなわち乱数値が偶数であるか、奇数であるかを評価する。例えば、乱数値が偶数であった場合はＳ３０３０に移行し、選択部２０３０がブートプログラム（１）２０１０を選択状態にする。乱数値が奇数であった場合はＳ３０４０に移行し、ブートプログラム（２）２０２０を選択状態にする。
【００３１】
次にＳ３０５０で、選択部２０３０は選択されたブートプログラムが意図せず変化されていないか、判定部２０６０にブートプログラムの正当性の有無の確認を行わせる。先に記載したとおり、本実施形態では公開鍵暗号方式を応用した電子署名技術を用いて確認を行うため、詳細な説明は割愛する。
【００３２】
Ｓ３０６０で、選択部２０３０は、判定部２０６０から取得した正当性確認の結果、選択状態にあるブートプログラムに正当性があると判定された場合は、Ｓ３０７０に移行してリセット制御部２０６０においてリセット状態の解除を行い、選択処理を終了する。リセット制御部２０６０でリセット状態の解除が行われると、情報処理制御部２０７０が選択状態にあるブートプログラムを読み出して動作を開始する。
【００３３】
一方、Ｓ３０６０で、選択部２０３０は、判定部２０６０から取得した正当性確認の結果、選択状態にあるブートプログラムに正当性が無く、異常と判定した場合は、Ｓ３０８０に移行して異常処理を行う。
【００３４】
図４に、本発明の一実施形態に係る異常処理の詳細を説明するフローチャートを示す。Ｓ３０８０の異常処理では、まずＳ４０１０で、選択部２０３０は選択状態にないブートプログラムの正当性確認を判定部２０６０に行わせる。
【００３５】
Ｓ４０２０で、選択部２０３０は、判定部２０６０から取得した正当性確認の結果、選択状態にないブートプログラムに正当性があると判定した場合、Ｓ４０３０に移行して正当と判定されたブートプログラムで選択状態にあるブートプログラムを上書きする。
【００３６】
Ｓ４０４０で、選択部２０３０はリセット制御部２０６０においてリセット状態の解除を行い、異常処理を終了する。リセット制御部２０６０においてリセット状態の解除が行われると、情報処理制御部２０７０が選択状態にあるブートプログラムを読み出して動作を開始する。
【００３７】
Ｓ４０２０で、選択部２０３０は、判定部２０６０から取得した正当性確認の結果、選択状態にないブートプログラムに正当性が無く、異常だと判定した場合は、Ｓ４０５０に移行して起動処理を停止する。リセット制御部２０６０においてリセット状態の解除が行われないため、情報処理制御部２０７０は動作を開始しない。この処理でＬＥＤ１１７を点灯状態に変化させ、動作開始できなかった旨を報知しても良い。
【００３８】
以上の処理により、起動の都度、複数のブートプログラムからいずれか１つを揮発性の情報に基づき無作為に選択することで、複数のブートプログラムに対する正当性確認の頻度を平準化することができる。ブートプログラムを通常実行用とバックアップ用とに区別しないことで、バックアップ用ブートプログラムの意図しない変化に気づくのが遅れることを防止できる。
【００３９】
なお、上記の例では、情報処理制御部２０７０は選択部２０３０を介してブートプログラム（１）２０１０及びブートプログラム（２）２０２０のいずれか一方しか参照できない状態にする処理を説明した。しかしながら、情報処理制御部２０７０がブートプログラム（１）２０１０及びブートプログラム（２）２０２０のどちらか一方を選択的に直接読み出しても同様の効果が得られる。この場合、情報処理制御部２０７０は、情報処理制御部２０７０が動作を開始したときに選択部２０３０へブートプログラム（１）２０１０及びブートプログラム（２）２０２０のどちらが選択されているのか問い合わせを行う。そして情報処理制御部２０７０は、問い合わせの結果を元にブートプログラム（１）２０１０及びブートプログラム（２）２０２０のどちらか一方を読み出せばよい。
【００４０】
また、上記の例では電源投入時に埋め込みコントローラ１１３だけが動作を開始し、図３、４に示す選択処理を行った後に情報処理制御部２０７０が動作開始する処理を説明した。しかしながら、埋め込みコントローラ１１３を搭載せずに、情報処理制御部２０７０内のＣＰＵ１０１が図３、４に示す選択処理を行ってもよい。この場合は、図３、４に示す処理をＲＯＭ１０２に記憶し、ＣＰＵ１０１が動作開始したときにこの処理を必ず実行するように構成しておけば同様の効果が得られる。
【００４１】
また、上記の例ではブートプログラムが２つの場合についての処理を説明したが３つ以上の場合にも適用可能である。このように構成することで、さらに耐性を向上させることが可能になる。
【００４２】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００４３】
１００  複合機
１１３  埋め込みコントローラ
１１４  フラッシュメモリ
【図１】
2020057304.tif 000003
【図２】
2020057304.tif 000004
【図３】
2020057304.tif 000005
【図４】
2020057304.tif 000006