(57)【要約】【課題】第２の電力状態の際に動作するプログラムが改竄されていた場合に、そのプログラムに基づき処理が実行されるのを防止することを目的とする。【解決手段】情報処理装置であって、第１の電力状態のときに情報処理装置を制御する第１の制御手段と、第１の電力状態より消費電力の小さい第２の電力状態のときに情報処理装置を制御する第２の制御手段と、を有し、第１の電力状態から第２の電力状態への遷移指示を受け取った場合、第１の制御手段は、第２の制御手段の処理の実行に関するプログラムを検証し、検証に失敗した場合、第１の電力状態から第２の電力状態への遷移を制限させる。【選択図】図５
2019159892.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
第１の電力状態のときに前記情報処理装置を制御する第１の制御手段と、
第１の電力状態より消費電力の小さい第２の電力状態のときに前記情報処理装置を制御する第２の制御手段と、
を有し、
前記第１の電力状態から前記第２の電力状態への遷移指示を受け取った場合、前記第１の制御手段は、前記第２の制御手段の処理の実行に関するプログラムを検証し、前記検証に失敗した場合、前記第１の電力状態から前記第２の電力状態への遷移を制限する情報処理装置。
【請求項２】
前記検証に失敗した場合、前記第１の制御手段は、エラーメッセージを表示し、前記第１の電力状態から前記第２の電力状態への遷移を制限する請求項１記載の情報処理装置。
【請求項３】
前記第１の電力状態は、通常の電力状態であり、
前記第２の電力状態は、省電力状態である請求項１又は２記載の情報処理装置。
【請求項４】
前記省電力状態では、ネットワークインターフェースと、ＦＡＸユニットと、前記第２の制御手段と、前記プログラムを記憶する記憶手段と、に電力が供給されている状態である請求項３記載の情報処理装置。
【請求項５】
画像を形成する画像形成手段を更に有し、
前記情報処理装置は、画像形成装置である請求項１乃至４何れか１項記載の情報処理装置。
【請求項６】
第１の電力状態のときに情報処理装置を制御する第１の制御手段と、
第１の電力状態より消費電力の小さい第２の電力状態のときに情報処理装置を制御する第２の制御手段と、
を有する情報処理装置における情報処理方法であって、
前記第１の電力状態から前記第２の電力状態への遷移指示を受け取った場合、前記第１の制御手段が、前記第２の制御手段の処理の実行に関するプログラムを検証する工程と、
前記第１の制御手段が、前記検証に失敗した場合、前記第１の電力状態から前記第２の電力状態への遷移を制限させる工程と、
を含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
プログラムの脆弱性をついて、プログラムを改竄し、コンピュータや複合機を攻撃する手法が問題となっている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１４８９３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
異なる電力状態のときには異なるプログラムが動作するようなシステムの場合、例えば、第２の電力状態の際に動作するプログラムが改竄されていると、その電力状態の際に改竄されたプログラムに基づき処理が実行されることになる。
【課題を解決するための手段】
【０００５】
本発明は、情報処理装置であって、第１の電力状態のときに前記情報処理装置を制御する第１の制御手段と、第１の電力状態より消費電力の小さい第２の電力状態のときに前記情報処理装置を制御する第２の制御手段と、を有し、前記第１の電力状態から前記第２の電力状態への遷移指示を受け取った場合、前記第１の制御手段は、前記第２の制御手段の処理の実行に関するプログラムを検証し、前記検証に失敗した場合、前記第１の電力状態から前記第２の電力状態への遷移を制限させる。
【発明の効果】
【０００６】
本発明によれば、第２の電力状態の際に動作するプログラムが改竄されていた場合に、そのプログラムに基づき処理が実行されるのを防止することができる。
【図面の簡単な説明】
【０００７】
【図１】画像形成装置のハードウェア構成の一例を示す図である。
【図２】画像形成装置の機能構成等の一例を示す図である。
【図３】起動順序を示す模式図である。
【図４】起動時の改竄検知を行ったときのフローチャートである。
【図５】スリープ遷移時に改竄検知を行ったときのフローチャートである。
【図６】電力状態の一例を示す図である。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面に基づいて説明する。
【０００９】
＜実施形態１＞
図１は、画像形成装置１０のハードウェア構成の一例を示す図である。画像形成装置は、情報処理装置の一例である。
操作部ユニット１５０は、画像形成装置１０の操作を行うテンキーや表示を行う液晶パネル、点灯／点滅で状態を知らせるＬＥＤを備える。
スキャナユニット１３０は、原稿から光学的に画像を読み取り、デジタル画像に変換する。
プリンタユニット１２０は、デジタル画像を紙デバイスに出力するエンジンである。
コントローラユニット１００は、各デバイスや各ユニットを制御する。コントローラユニット１００は、いわゆる汎用的なＣＰＵシステムである。
ＣＰＵ１０１は、画像形成装置１０の全体を制御する。ＣＰＵ１０１は、第１の電力状態のときに画像形成装置１０を制御する第１の制御手段の一例である。後述する図６（ａ）で示される状態は、通常の電力状態であり、第１の電力状態の一例である。
ＲＯＭ１０３は、コントローラユニット１００を起動に係る処理を有するブートロムや固定パラメータが含まれるリードオンリーメモリである。
ＥＣ（Ｅｍｂｅｄｄｅｄ  Ｃｏｎｔｒｏｌｌｅｒ）１０２は、ブートロムの正当性を検証する。
ＲＡＭ１０４は、ＣＰＵ１０１によってワークメモリとして使用される。
ｅＭＭＣ（ｅｍｂｅｄｄｅｄ  Ｍｕｌｔｉ  Ｍｅｄｉａ  Ｃａｒｄ）１０５は、ＣＰＵ１０１が実行するプログラムや各種データを格納する。
ｅＭＭＣ１０５は、ＣＰＵ１０１のメインストレージとして使用される。
ネットワークインターフェース（ネットワークＩ／Ｆ）１０６は、有線ＬＡＮ及び無線ＬＡＮで画像形成装置１０を外部ネットワークに接続する。
ＦＡＸユニット１６０は、電話回線等にデジタル画像を送受信できる。
電源ユニット１４０は、画像形成装置１０における電源を供給する。
【００１０】
装置ＯＦＦ時は、ＡＣ電源は電源スイッチ１４８により絶縁されている。
電源スイッチ１４８をＯＮにすることでＡＣ−ＤＣコンバータ１４１にＡＣ電源が供給され、ＤＣ電源が作られる。
画像形成装置１０は、ＣＰＵ１０１の指示により、装置全体を３つの独立した電源制御が可能である。
即ち、ＣＰＵ１０１の指示により、コントローラユニットＳＷ手段１４２は、コントローラユニット電力１４５の電源をＯＦＦ／ＯＮ制御可能である。
同様に、ＣＰＵ１０１の指示により、プリンタユニット電力ＳＷ手段１４３はプリンタユニット電力１４６、スキャナユニット電力ＳＷ手段１４４はスキャナユニット電力１４７をＯＦＦ／ＯＮ制御可能である。
なお、図１は簡略化して示している。
例えばＣＰＵ１０１はチップセット、バスブリッジ、クロックジェネレータ等のＣＰＵ周辺ハードウェアが含まれているが、説明の粒度的に不必要であるため簡略化して記載しており、図１の構成が本実施形態を制限するものではない。
【００１１】
コントローラユニット１００の動作について、紙デバイスによる画像印刷を例に説明する。
利用者がＰＣやＦＡＸといった外部装置、スキャナユニット１３０から、各Ｉ／Ｆやユニットを介して画像印刷を指示すると、ＣＰＵ１０１がＲＡＭ１０４にＤＭＡ転送を行いデジタル画像データの一時保存を行う。
ＣＰＵ１０１は、デジタル画像データがＲＡＭ１０４に一定量、又は全て入ったことが確認できると、プリンタユニット１２０に画像出力指示を出す。
ＣＰＵ１０１は、ＲＡＭ１０４の画像データの位置を教える。プリンタユニット１２０からの同期信号に従ってＲＡＭ１０４上の画像データはプリンタユニット１２０に送信され、プリンタユニット１２０にて紙デバイスにデジタル画像データが印刷される。
複数部印刷を行う場合、ＣＰＵ１０１がＲＡＭ１０４の画像データをｅＭＭＣ１０５に保存する。このことにより、ＣＰＵ１０１は、２部目以降は外部装置から画像を要求せずともプリンタユニット１２０に画像を送ることが可能である。
また、画像形成装置１０は、スリープ時のみ動作するＣＰＵ１０７がワークメモリとして使用するＳＲＡＭ１０８を有する。ＣＰＵ１０７は、第１の電力状態より消費電力の小さい第２の電力状態のときに画像形成装置１０を制御する第２の制御手段の一例である。後述する図６（ｂ）で示される状態は、省電力状態であり、第２の電力状態の一例である。
ＣＰＵ１０１がＲＯＭ１０３、ＥＣ１０２に記憶されたプログラムに基づき処理を実行することにより、後述する図２のブートプログラム２０６、スリープ時プログラム２１１以外の機能が実現される。また、ＣＰＵ１０１がＲＯＭ１０３、ＥＣ１０２に記憶されたプログラムに基づき処理を実行することにより、後述する図４及び図５に示すフローチャートの処理が実現される。また、ＣＰＵ１０７がＳＲＡＭ１０８に記憶されたプログラムに基づき処理を実行することにより、後述する図２のスリープ時プログラム２１１の機能が実現される。また、ＥＣ１０２がＲＯＭ１０３に記憶されたプログラムに基づき処理を実行することにより、後述する図２のブートプログラム２０６の機能が実現される。
【００１２】
図２は、画像形成装置１０の機能構成等の一例を示す図である。
ＵＩ制御部２１２は、操作部ユニット１５０への入力を受け取り、入力に応じた処理や操作部ユニット１５０に対して画面出力を行う。
ブートプログラム２０６は、画像形成装置１０の電源を入れるとＥＣ１０２で実行されるプログラムで、起動に関わる処理を行う他にブートロムの改竄検知を行うブートロム改竄検知処理部２０１を有する。
ブートロム２０７は、ブートプログラム２０６の実行後にＣＰＵ１０１で実行されるプログラムで、起動に関わる処理を行う他にカーネル２０８の改竄検知を行うカーネル改竄検知処理部２０２を有する。
カーネル２０８は、ブートロム２０７の処理が終わった後にＣＰＵ１０１で実行されるプログラムで、起動に関わる処理を行う他にＮａｔｉｖｅプログラム２０９の改竄検知を行うＮａｔｉｖｅプログラム改竄検知処理部２０３を有する。
Ｎａｔｉｖｅプログラム２０９は、ＣＰＵ１０１で実行されるプログラムで画像形成装置１０のＪａｖａ（登録商標）プログラム２１０と連携して各機能を提供する複数のプログラムからなる。例えば、Ｎａｔｉｖｅプログラム２０９は、スキャナユニット１３０を制御するプログラムや起動プログラム等である。カーネル２０８によってＮａｔｉｖｅプログラム２０９の中から起動プログラムが呼び出され起動処理が行われる。他にＮａｔｉｖｅプログラム２０９には、Ｊａｖａプログラム２１０及びスリープ時プログラム２１１の改竄検知を行うＪａｖａプログラム改竄検知処理部２０４、スリープ時プログラム改竄検知処理部２０５を有する。
Ｊａｖａプログラム２１０は、ＣＰＵ１０１で実行されるプログラムで、画像形成装置１０のＮａｔｉｖｅプログラム２０９と連携して各機能を提供するプログラム（例えば、操作部ユニット１５０に画面を表示するプログラム）である。
スリープ時プログラム２１１は、スリープ遷移時にＣＰＵ１０７で実行されるプログラムで、スリープ時の各機能を提供（ネットワークＩ／Ｆ１０６や操作部ユニット１５０からのスリープ復帰指示処理）である。
【００１３】
図３（ａ）は、起動時の改竄検知を行ったときの起動順序を示す模式図である。
ブートプログラムにはブートロム署名検証用の公開鍵３０１が含まれているものとする。ブートロムはブートロム署名３０２とカーネル検証用の公開鍵３０３とが含まれているものとする。カーネルはカーネル署名３０４とＮａｔｉｖｅプログラム署名検証用の公開鍵３０５とが含まれているものとする。またＮａｔｉｖｅプログラムはＮａｔｉｖｅプログラム署名３０６とＪａｖａプログラム署名検証用の公開鍵３０７とが含まれているものとする。ＪａｖａプログラムはＪａｖａプログラム署名３０８が含まれているものとする。
図３（ｂ）は、スリープ遷移時の改竄検知処理を行ったときの起動順序を示す模式図である。
Ｎａｔｉｖｅプログラムはスリープ時プログラム署名検証用の公開鍵３１０が含まれているものとする。スリープ時プログラムはスリープ時プログラム署名３１１が含まれているものとする。
２０１、２０２、２０３、２０４、２０５の検知処理部が各プログラムを検証し、問題がなければ次のプログラムを起動することで改竄検知を行う画像形成装置１０の起動及びスリープ遷移は行われる。
これらの署名と公開鍵とは、予め画像形成装置１０の出荷前にプログラムに付与されたものとする。
【００１４】
図４は、起動時の改竄検知を行ったときの情報処理の一例を示すフローチャートである。
画像形成装置１０の電源が入れられると、ＲＯＭ１０３よりブートプログラム２０６が読み出され、ＥＣ１０２によって実行される。ブートプログラム２０６に含まれるブートロム改竄検知処理部２０１は、ｅＭＭＣ１０５からブートロム２０７とカーネル検証用の公開鍵３０３とブートロム署名３０２とをＲＡＭ１０４に読み込む。
次にＳ４０１において、ブートロム改竄検知処理部２０１は、ブートロム検証用公開鍵３００を用いてブートロム署名３０２の検証を行い、検証に成功したかを判定する。署名の検証に失敗した場合、Ｓ４１０において、ブートロム改竄検知処理部２０１は、操作部ユニット１５０のＬＥＤを点灯させ、図４に示すフローチャートの処理を終了する。
署名の検証に成功した場合、ブートロム改竄検知処理部２０１は、ＣＰＵ１０１のリセットを解除し、ブートプログラムの処理を終了する。
リセット解除されると、Ｓ４０２において、ＣＰＵ１０１は、ｅＭＭＣ１０５からブートロム２０７とカーネル検証用の公開鍵３０３とをＲＡＭ１０４に読み込み、ブートロム２０７を起動する。
ブートロム２０７は起動されると、各種初期化処理を行う。ブートロム２０７に含まれるカーネル改竄検知処理部２０２は、ｅＭＭＣ１０５からカーネル２０８をＲＡＭ１０４に読み込む。
Ｓ４０３において、カーネル改竄検知処理部２０２は、カーネル検証用の公開鍵３０３を用いてカーネル署名３０４の検証を行い、検証に成功したかを判定する。
署名の検証に失敗した場合、Ｓ４０９において、カーネル改竄検知処理部２０２は、操作部ユニット１５０にエラーメッセージを表示し、図４に示すフローチャートの処理を終了する。
署名の検証に成功した場合、カーネル改竄検知処理部２０２は、処理を終了する。
【００１５】
カーネル改竄検知処理部２０２の処理が終了すると、Ｓ４０４において、ブートロム２０７は、ＲＡＭ１０４に読み込まれたカーネル２０８を起動する。
カーネル２０８は起動されると、各種初期化処理を行う。
次にカーネル２０８に含まれるＮａｔｉｖｅプログラム改竄検知処理部２０３がｅＭＭＣ１０５からＮａｔｉｖｅプログラム２０９とＪａｖａプログラム検証用の公開鍵３０７とＮａｔｉｖｅプログラム署名３０６とをＲＡＭ１０４に読み込む。
Ｓ４０５において、Ｎａｔｉｖｅプログラム改竄検知処理部２０３は、Ｎａｔｉｖｅプログラム検証用の公開鍵３０５を用いて、Ｎａｔｉｖｅプログラム署名３０６の検証を行い、検証に成功したか判定する。
署名の検証に失敗した場合、Ｓ４０９において、Ｎａｔｉｖｅプログラム改竄検知処理部２０３は、操作部ユニット１５０にエラーメッセージを表示し、図４に示すフローチャートの処理を終了する。
署名の検証に成功した場合、Ｎａｔｉｖｅプログラム改竄検知処理部２０３は、改竄検知の処理を終了する。
Ｓ４０６において、Ｎａｔｉｖｅプログラム改竄検知処理部２０３は、Ｎａｔｉｖｅプログラム２０９を起動する。
Ｎａｔｉｖｅプログラム２０９のうち、改竄検知の処理を行うＪａｖａプログラム改竄検知処理部２０４が起動されると、Ｊａｖａプログラム改竄検知処理部２０４は、ｅＭＭＣ１０５からＪａｖａプログラム２１０とＪａｖａプログラム署名３０８とをＲＡＭ１０４に読み込む。
Ｓ４０７において、Ｊａｖａプログラム改竄検知処理部２０４は、Ｊａｖａプログラム検証用の公開鍵３０７を用いて、Ｊａｖａプログラム署名３０８の検証を行い、検証に成功したか判定する。
署名の検証に失敗した場合、Ｓ４０９において、Ｊａｖａプログラム改竄検知処理部２０４は、操作部ユニット１５０にエラーメッセージを表示し、図４に示すフローチャートの処理を終了する。
署名の検証に成功した場合、Ｊａｖａプログラム改竄検知処理部２０４は、改竄検知の処理を終了する。
Ｓ４０８において、Ｊａｖａプログラム改竄検知処理部２０４は、Ｊａｖａプログラム２１０を起動する。
【００１６】
図５は、スリープ遷移時に改竄検知を行ったときの情報処理の一例を示すフローチャートである。
画像形成装置１０は起動状態であるため、図６（a）のようにＣＰＵ１０７以外に電力が供給された状態となっている。
Ｓ５０１において、ＣＰＵ１０１は、スリープ遷移指示を受信する。
スリープ遷移指示は、例えば操作部ユニット１５０に搭載されているスリープ移行ボタンや装置が使用されてない時間が一定時間以上経過した場合に各プログラムやデバイスから発生される。
次に、Ｎａｔｉｖｅプログラム２０９のうち、改竄検知の処理を行うスリープ時プログラム改竄検知処理部２０５が起動すると、スリープ時プログラム改竄検知処理部２０５は、ｅＭＭＣ１０５からスリープ時プログラム２１１とスリープ時プログラム署名３１１をＲＡＭ１０４に読み込む。
Ｓ５０２において、スリープ時プログラム改竄検知処理部２０５は、スリープ時プログラム署名検証用の公開鍵３１０を用いて、スリープ時プログラム署名３１１の検証を行い、検証に成功したか判定する。
署名の検証に失敗した場合、Ｓ５０５において、スリープ時プログラム改竄検知処理部２０５は、操作部ユニット１５０にエラーメッセージを表示し、図５に示すフローチャートの処理を終了する。即ち、署名の検証に失敗した場合、スリープ時プログラム改竄検知処理部２０５は、スリープ状態への移行を停止させる。ここで、署名の検証に失敗した場合、スリープ時プログラム改竄検知処理部２０５は、スリープ状態への移行を保留し、メッセージを出してもよい。その後、ユーザに指示に応じて、スリープ状態への移行を行うかどうかを決定してもよい。スリープ状態への移行の制限とは、スリープ状態への移行を停止又は保留するような制限を含む。
署名の検証に成功した場合、Ｓ５０３において、スリープ時プログラム改竄検知処理部２０５は検知処理を終了する。すると、ＣＰＵ１０１は、ＣＰＵ１０７のリセット解除を行う。
Ｓ５０４において、ＣＰＵ１０７は、ＳＲＡＭ１０８からスリープ時プログラム２１１を読み込み、スリープ時プログラム２１１を起動し、スリープに遷移する。
このとき、図６（ｂ）に示すように、ＣＰＵ１０７及びＳＲＡＭ１０８、スリープからの復帰に係るＦＡＸユニット１６０、ネットワークＩ／Ｆ１０６に電力供給された状態になる。
【００１７】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００１８】
以上、本発明の実施形態の一例について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
本実施形態ではスリープ時にのみ動作するプログラム及びＣＰＵについて説明したが、他のプログラムでもよい。
また各種プログラムの保存場所として、ＲＯＭ１０３、ｅＭＭＣ１０５があるものとして説明したが、保存場所を限定するものではなく、別の記憶媒体であってもよい。
【００１９】
以上、上述した各実施形態の処理によれば、スリープ遷移時に改竄を検知した場合でも、通常機能に影響を与えることなく、改竄を防ぐことができる。また、スリープ状態の際に動作するプログラムが改竄されていた場合に、スリープ状態においてそのプログラムに基づき処理が実行されるのを防止することができる。
【符号の説明】
【００２０】
１０    画像形成装置
１０１  ＣＰＵ
１０２  ＥＣ
１０７  ＣＰＵ
【図１】
2019159892.tif 000003
【図２】
2019159892.tif 000004
【図３】
2019159892.tif 000005
【図４】
2019159892.tif 000006
【図５】
2019159892.tif 000007
【図６】
2019159892.tif 000008