(57)【要約】      （修正有）【課題】装置の起動時に行われる検証の対象となるプログラムが格納されている記憶装置へのアクセスを適切に制御する技術を提供する。【解決手段】画像形成装置の起動時に、コントローラ１１のマイコン３２１が、起動用ＲＯＭ３０３（記憶装置）にアクセスして、起動用ＲＯＭ３０３に格納されているプログラムが改竄されているか否かの検証を行う。マイコン３２１は、検証により、プログラムが改竄されていないと判定すると、起動用ＲＯＭ３０３に格納されているプログラムが改竄されていないことを示す検証結果を接続制御部３２２へ通知する。接続制御部３２２は、当該検証結果がマイコン３２１から通知されたことに従って、ＣＰＵ３０１から起動用ＲＯＭ３０３へのアクセスが可能になるよう、起動用ＲＯＭ３０３へのアクセス用の信号線の接続先をマイコン３２１からＣＰＵ３０１に切り替える。【選択図】図２
2020067904.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
第１制御手段と、
前記第１制御手段によって実行されるプログラムが格納された記憶手段と、
前記情報処理装置の起動時に、前記記憶手段にアクセスして前記プログラムが改竄されているか否かの検証を行う第２制御手段と、
前記第１制御手段及び前記第２制御手段のそれぞれから前記記憶手段へのアクセス用の信号線の接続を制御する接続制御手段であって、前記記憶手段に格納されている前記プログラムが改竄されていないことを示す検証結果が前記第２制御手段から通知されたことに従って、前記第１制御手段から前記記憶手段へのアクセスが可能になるよう、前記信号線の接続先を前記第２制御手段から前記第１制御手段に切り替える、前記接続制御手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記第１制御手段は、前記信号線の接続先が前記第２制御手段から前記第１制御手段に切り替わると、前記記憶手段に格納されている前記プログラムを実行することによって起動し、
前記接続制御手段は、前記第１制御手段の起動が完了すると、前記信号線を、前記第１制御手段と前記第２制御手段とのいずれとも接続されていない未接続状態にする
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記接続制御手段は、前記情報処理装置の起動時に、前記信号線を前記第２制御手段に接続し、前記第２制御手段からの前記検証結果を示す通知に従って、前記信号線の接続先を前記第２制御手段から前記第１制御手段に切り替える
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記第２制御手段は、前記検証により前記記憶手段に格納されている前記プログラムが改竄されていないと判定すると、当該判定の結果を示す通知信号を、前記接続制御手段及び前記第１制御手段へ出力し、
前記接続制御手段は、前記第２制御手段からの前記通知信号に従って、前記信号線の接続先を前記第２制御手段から前記第１制御手段に切り替え、
前記第１制御手段は、前記第２制御手段からの前記通知信号が入力されることによってリセット状態が解除される
ことを特徴とする請求項１から３のいずれか１項に記載の情報処理装置。
【請求項５】
前記第１制御手段は、前記リセット状態が解除されると、前記信号線を介して前記記憶手段にアクセスして前記プログラムを実行する
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記接続制御手段は、前記信号線の接続先を前記第２制御手段から前記第１制御手段に切り替えた後に所定時間が経過すると、前記信号線を、前記第１制御手段と前記第２制御手段とのいずれとも接続されていない未接続状態にする
ことを特徴とする請求項２に記載の情報処理装置。
【請求項７】
前記接続制御手段は、前記記憶手段と前記接続制御手段との間の第３信号線を、前記第１制御手段に対応する第１信号線に接続した状態と、前記第２制御手段に対応する第２信号線に接続した状態と、前記第１信号線と前記第２信号線とのいずれとも接続されていない未接続状態との間で切り替える
ことを特徴とする請求項１から６のいずれか１項に記載の情報処理装置。
【請求項８】
前記接続制御手段は、前記未接続状態において、前記第１制御手段から前記第１信号線へ出力された信号を検知すると、前記記憶手段に対するアクセス異常の発生を前記第１制御手段へ通知する
ことを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記第１制御手段と前記接続制御手段との間には、前記第１制御手段と前記接続制御手段との通信のための制御バスが設けられており、
前記接続制御手段は、前記未接続状態において、前記制御バスを介して前記第１制御手段から前記信号線の接続指示を受信すると、前記記憶手段に格納された前記プログラムの前記第１制御手段による更新が可能になるよう、前記第１信号線と前記第３信号線とを接続する
ことを特徴とする請求項７又は８に記載の情報処理装置。
【請求項１０】
前記接続制御手段は、前記第１制御手段及び前記第２制御手段から前記記憶手段へ出力される、ＳＰＩに準拠したチップセレクト信号を伝送するための信号線の接続を制御する
ことを特徴とする請求項１から９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記第１制御手段及び前記第２制御手段のそれぞれと前記記憶手段との間には、前記記憶手段へのアクセス用の信号線と、前記記憶手段へのクロックの供給用の信号線と、前記記憶手段へのデータの入力用の信号線と、前記記憶手段からのデータの出力用の信号線とが設けられており、
前記接続制御手段は、前記記憶手段へのアクセス用の信号線の接続を制御する
ことを特徴とする請求項１から１０のいずれか１項に記載の情報処理装置。
【請求項１２】
第１制御手段及び第２制御手段と、前記第１制御手段によって実行されるプログラムが格納された記憶手段と、を備える情報処理装置の制御方法であって、
前記第２制御手段が、前記情報処理装置の起動時に、前記記憶手段にアクセスして前記プログラムが改竄されているか否かの検証を行う検証工程と、
接続制御手段が、前記第１制御手段及び前記第２制御手段のそれぞれから前記記憶手段へのアクセス用の信号線の接続を制御する制御工程であって、前記記憶手段に格納されている前記プログラムが改竄されていないことを示す検証結果が前記第２制御手段から通知されたことに従って、前記第１制御手段から前記記憶手段へのアクセスが可能になるよう、前記信号線の接続先を前記第２制御手段から前記第１制御手段に切り替える、前記制御工程と、
を含むことを特徴とする情報処理装置の制御方法。
【請求項１３】
請求項１２に記載の情報処理装置の制御方法の各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びその制御方法、並びにプログラムに関するものである。
【背景技術】
【０００２】
近年、印刷装置や複合機（ＭＦＰ）等の画像形成装置は、ネットワークを介してファイルサーバ機能やメール送受信機能をユーザに対して提供している。画像形成装置がネットワークに接続されることにより、ＰＣ及びサーバ装置と同様に、不正なハッキングによる装置の不正使用が行われることがありうる。
【０００３】
特許文献１には、画像形成装置において不正なハッキングによる装置の不正使用を防ぐために、装置の起動時にソフトウェアが改竄されていないかを検証する技術が開示されている。ソフトウェアの改竄の検証は、ソフトウェアのハッシュ値を計算し、マスターとなるハッシュ値と比較し、その比較結果に基づいて行われている。また、ソフトウェアの改竄が検知された場合、改竄されたソフトウェア及びそのソフトウェアを使用する他のソフトウェアを使用できなくしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−３０１４２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述のように、画像形成装置等の情報処理装置の起動時にＲＯＭ等の記憶装置に格納されているソフトウェア（プログラム）の改竄の有無を検証するために、メインＣＰＵとは異なるＣＰＵを含むマイコンが用いられることがある。このような場合、記憶装置に格納されているプログラムの検証の完了前にメインＣＰＵが当該プログラムを実行することがないように、記憶装置へのアクセスを適切に制御できる必要がある。
【０００６】
本発明は、上述の課題に鑑みてなされたものである。本発明は、装置の起動時に行われる検証の対象となるプログラムが格納されている記憶装置へのアクセスを適切に制御する技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様に係る情報処理装置は、第１制御手段と、前記第１制御手段によって実行されるプログラムが格納された記憶手段と、前記情報処理装置の起動時に、前記記憶手段にアクセスして前記プログラムが改竄されているか否かの検証を行う第２制御手段と、前記第１制御手段及び前記第２制御手段のそれぞれから前記記憶手段へのアクセス用の信号線の接続を制御する接続制御手段であって、前記記憶手段に格納されている前記プログラムが改竄されていないことを示す検証結果が前記第２制御手段から通知されたことに従って、前記第１制御手段から前記記憶手段へのアクセスが可能になるよう、前記信号線の接続先を前記第２制御手段から前記第１制御手段に切り替える、前記接続制御手段と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、装置の起動時に行われる検証の対象となるプログラムが格納されている記憶装置へのアクセスを適切に制御することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】システム構成例を示すブロック図。
【図２】画像形成装置のコントローラの構成例を示すブロック図。
【図３】起動用ＲＯＭに対する接続の構成例を示すブロック図。
【図４】マイコンによる処理の手順を示すフローチャート。
【図５】第１実施形態に係る接続制御部による処理の手順を示すフローチャート。
【図６】第２実施形態に係る接続制御部による処理の手順を示すフローチャート。
【図７】第３実施形態に係る接続制御部による処理の手順を示すフローチャート。
【図８】第４実施形態に係る接続制御部による処理の手順を示すフローチャート。
【図９】第５実施形態に係る接続制御部による処理の手順を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでなく、また実施形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００１１】
［第１実施形態］
＜画像形成装置＞
図１は、本実施形態に係る画像形成装置を含むシステムの構成例を示すブロック図である。本実施形態は、情報処理装置の一例として、画像形成を行う画像形成装置に本発明を適用した例について説明する。なお、本発明は、情報処理装置であれば適用可能であり、例えば、印刷装置、読取装置、複写機、及びファクシミリ装置等の情報処理装置にも適用可能である。
【００１２】
図１のシステムでは、画像形成装置１０，２０，３０及びホストコンピュータ（ＰＣ）４０，５０が、ＬＡＮ６０を介して互いに通信可能に接続されている。なお、任意の数のＰＣ及び任意の数の画像形成装置を、ＬＡＮ６０に接続可能である。また、画像形成装置１０，２０，３０及びＰＣ４０，５０は、ＬＡＮ以外のネットワーク（例えば、ＷＡＮやインターネット等）を介して互いに通信可能に接続されてもよい。
【００１３】
ＰＣ４０，５０は、ＬＡＮ６０を介して画像形成装置１０，２０，３０と通信可能である。例えば、ＰＣ４０，５０は、各画像形成装置に対して印刷ジョブ（印刷データ）を送信可能である。また、ＰＣ４０，５０は、各画像形成装置の状態を示す情報を取得可能である。
【００１４】
画像形成装置１０，２０，３０は、画像形成（プリント）機能を有する装置であり、同じ構成を有していても異なる構成を有していてもよい。また、画像形成装置１０，２０，３０は、スキャン機能やファクシミリ（ＦＡＸ）送信機能等の、更なる機能を有していてもよい。本実施形態では、プリント機能及びスキャン機能を有する画像形成装置１０について説明する。
【００１５】
画像形成装置１０は、制御部（コントローラ）１１、操作部１２、スキャナ部１３及びプリンタ部１４を備えている。コントローラ１１は、画像形成装置１０全体の動作を制御する。スキャナ部１３は、画像入力デバイスであり、プリンタ部１４は、画像出力デバイスである。操作部１２は、ユーザインタフェース（ＵＩ）として機能する。
【００１６】
スキャナ部１３は、原稿の画像を光学的に読み取って当該画像に対応する画像データを生成し、生成した画像データをコントローラ１１へ出力する。プリンタ部１４は、コントローラ１１から入力された画像データに基づいて、シートに画像を形成する。なお、スキャナ部１３は、原稿トレイから読み取り位置へ原稿を１枚ずつ搬送する自動原稿送り装置（ＡＤＦ）を備えていてもよい。
【００１７】
プリンタ部１４は、コントローラ１１から受信した画像データに基づいて、シート等の記録媒体に画像を形成（印刷）する。プリンタ部１４の画像形成方式は、例えば、電子写真方式であってもよいしインクジェット方式であってもよい。
【００１８】
＜コントローラ＞
図２は、画像形成装置１０のコントローラ１１の構成例を示すブロック図である。コントローラ１１は、操作部１２、スキャナ部１３及びプリンタ部１４と電気的に接続されている。また、コントローラ１１は、ＬＡＮ６０等のネットワークを介してＰＣ４０，５０等の外部装置と通信可能に接続されている。このような接続により、画像形成装置１０は、画像データ及びデバイス情報の入出力が可能に構成されている。
【００１９】
コントローラ１１は、ＣＰＵ３０１、ＲＡＭ３０２、起動用ＲＯＭ（ブートＲＯＭ）３０３、ＨＤＤ（ハードディスクドライブ）３０４、操作部Ｉ／Ｆ（インタフェース）３０５、及びＬＡＮコントローラ３０６を備える。コントローラ１１は、画像バス３０８に接続されたデバイスとして、画像処理部３０９、スキャナ画像処理部３１０、及びプリンタ画像処理部３１２を備える。スキャナ画像処理部３１０は、スキャナＩ／Ｆ３１１を介してスキャナ部１３と接続され、プリンタ画像処理部３１２は、スキャナＩ／Ｆ３１３を介してプリンタ部１４と接続される。画像バス３０８は、画像データをやりとりするための伝送路であり、例えばＰＣＩバス又はＩＥＥＥ１３９４バスで構成される。
【００２０】
ＣＰＵ３０１は、起動用ＲＯＭ３０３又はＨＤＤ３０４に格納されたプログラムを読み出して実行することにより、各種デバイスへのアクセスを制御するとともに、コントローラ１１内部で行われる各種処理を制御する。ＲＡＭ３０２は、ＣＰＵ３０１が動作するためのシステムワークメモリ、及び画像データを一時記憶するためのメモリとして機能する。ＲＡＭ３０２は、電源オフ後も記憶内容が保持されるＳＲＡＭ、及び電源オフにより記憶内容が消去されるＤＲＡＭにより構成されている。
【００２１】
起動用ＲＯＭ３０３には、画像形成装置１０のブートプログラム（起動プログラム）等の、ＣＰＵ３０１によって実行されるプログラムが格納されている。起動用ＲＯＭ３０３は、画像形成装置１０の起動時にのみ使用される。ＣＰＵ３０１は、画像形成装置１０の起動時に、起動用ＲＯＭ３０３に格納されたプログラムを使用した処理を行い、画像形成装置１０の起動後には、ＨＤＤ３０４に格納されたプログラムを使用した処理に移行する。ＨＤＤ３０４には、システムソフトウェア等の各種プログラム、及び、画像データの各種データを格納できる。
【００２２】
コントローラ１１は、更に、マイコン３２１及び接続制御部３２２を備える。本実施形態では、起動用ＲＯＭ３０３は、ＳＰＩ（Serial Peripheral Interface）に対応したインタフェースを介してＣＰＵ３０１及びマイコン３２１と接続される。接続制御部３２２は、ＣＰＵ３０１及びマイコン３２１のそれぞれから起動用ＲＯＭ３０３へのアクセス用の信号線（図３の信号線４０１，４１１，４１２）の接続を制御する。
【００２３】
操作部Ｉ／Ｆ３０５は、システムバス３０７と操作部１２とを接続するためのインタフェース部である。操作部Ｉ／Ｆ３０５は、操作部１２に操作画面を表示するための画像データを、システムバス３０７を介して受信し、受信した画像データを操作部１２へ出力する。また、操作部Ｉ／Ｆ３０５は、操作部１２から出力された情報を、システムバス３０７を介してＣＰＵ３０１へ送信する。ＬＡＮコントローラ３０６は、ＬＡＮ６０に接続され、ＬＡＮ６０を介して外部装置と通信するための通信Ｉ／Ｆである。
【００２４】
画像処理部３０９は、ＲＡＭ３０２に格納された画像データを読み出し、読み出した画像データに対して圧縮、拡大、縮小、又は色調整等の画像処理を行う。スキャナ画像処理部３１０は、スキャナ部１３からスキャナＩ／Ｆ３１１を介して受信した画像データに対して、補正、加工、及び編集を行う。スキャナ画像処理部３１０は、受信した画像データに基づいて、スキャンされた原稿のタイプ（例えば、カラー原稿又は白黒原稿、及び文字原稿又は写真原稿）を判定し、判定結果を画像データに属性データとして付加する。プリンタ画像処理部３１２は、プリンタＩ／Ｆ３１３を介してプリンタ部１４へ出力する画像データに対して、当該画像データに付加されている属性データを参照して画像処理を行う。プリンタ画像処理部３１２は、画像処理後の画像データを、プリンタＩ／Ｆ３１３を介してプリンタ部１４へ出力する。
【００２５】
マイコン３２１は、画像形成装置１０の起動時に、起動用ＲＯＭ３０３にアクセスして当該起動用ＲＯＭに格納されているソフトウェア（プログラム）が改竄されているか否かの検証を行う、改竄検証用のマイコンである。マイコン３２１は、検証により、起動用ＲＯＭ３０３に格納されているプログラムが改竄されていないと判定すると、当該判定の結果を接続制御部３２２へ通知するとともに、ＣＰＵ３０１のリセット状態を解除することによりＣＰＵ３０１の動作を開始させる。本実施形態では、後述するように、マイコン３２１は、プログラムが改竄されていないとの判定の結果を示す通知信号を接続制御部３３２へ出力するとともに、当該通知信号をリセット解除信号としてＣＰＵ３０１にも出力する。
【００２６】
なお、本実施形態の画像形成装置１０において、ＣＰＵ３０１は第１制御手段の一例であり、マイコン３２１は第２制御手段の一例であり、起動用ＲＯＭ３０３は記憶手段の一例である。
【００２７】
図３は、起動用ＲＯＭ３０３に対する接続の構成例を示すブロック図である。本実施形態では、ＣＰＵ３０１、起動用ＲＯＭ３０３、マイコン３２１、及び接続制御部３２２は、ＳＰＩに準拠した信号をやりとりするための信号線４０１〜４０４，４１１，４１２，４２１を介して互いに接続される。
【００２８】
起動用ＲＯＭ３０３は、信号線４０１を介して接続制御部３２２と接続される。信号線４０１は、ＳＰＩに準拠したチップセレクト信号（ＣＳ信号）の伝送に用いられるＣＳ信号線である。ＣＳ信号は、起動用ＲＯＭ３０３に対してリード／ライト等の処理を実行するために使用される信号である。ＣＳ信号をアサートすることにより、起動用ＲＯＭ３０３を使用できる状態（アクティブ状態）にすることが可能となる。
【００２９】
接続制御部３２２とＣＰＵ３０１との間には信号線４１１が設けられ、接続制御部３２２とマイコン３２１との間には信号線４１２が設けられている。信号線４１１は、ＣＰＵ３０１から起動用ＲＯＭ３０３へのＣＳ信号の伝送に用いられるＣＳ信号線である。信号線４１２は、マイコン３２１から起動用ＲＯＭ３０３へのＣＳ信号の伝送に用いられるＣＳ信号線である。
【００３０】
接続制御部３２２は、信号線４０１と信号線４１１，４１２との接続状態を制御する。具体的には、接続制御部３２２は、信号線４０１の接続先を、信号線４１１と信号線４１２とで切り替え可能である。また、接続制御部３２２は、信号線４０１を、信号線４１１，４１２のいずれとも接続されていない未接続状態にすることも可能である。このように、接続制御部３２２は、信号線４０１（第３信号線）を、ＣＰＵ３０１に対応する信号線４１１（第１信号線）に接続した状態と、マイコン３２１に対応する信号線４１２（第２信号線）に接続した状態と、未接続状態との間で切り替える。
【００３１】
信号線４１１と信号線４０１とが接続された場合、ＣＰＵ３０１から起動用ＲＯＭ３０３へのＣＳ信号の供給が可能になる。信号線４１２と信号線４０１とが接続された場合、マイコン３２１から起動用ＲＯＭ３０３へのＣＳ信号の供給が可能になる。ＣＳ信号は、ＣＰＵ３０１及びマイコン３２１が起動用ＲＯＭ３０３に対してアクセスを実行する際に使用する信号である。このように、信号線４０１，４１１，４１２は、起動用ＲＯＭ３０３へのアクセス用の信号線として機能する。
【００３２】
図３に示されるように、ＣＰＵ３０１及びマイコン３２１のそれぞれと起動用ＲＯＭ３０３との間には、信号線４０２〜４０４が設けられている。信号線４０２〜４０４は、ＳＰＩに準拠した信号として、クロック信号、データイン信号、及びデータアウト信号をそれぞれ伝送するための信号線である。
【００３３】
クロック信号は、起動用ＲＯＭ３０３に対するクロックの供給用の信号である。クロック信号を用いて、ＣＰＵ３０１又はマイコン３２１から起動用ＲＯＭ３０３へクロックが供給される。データイン信号は、起動用ＲＯＭ３０３に対するデータの入力用の信号である。データイン信号を用いて、ＣＰＵ３０１又はマイコン３２１から起動用ＲＯＭ３０３へデータが入力される。データアウト信号は、起動用ＲＯＭ３０３からのデータの出力用の信号である。データアウト信号を用いて、起動用ＲＯＭ３０３からＣＰＵ３０１又はマイコン３２１へデータが出力される。
【００３４】
このように、信号線４０２は、起動用ＲＯＭ３０３へのクロックの供給用の信号線として機能する。信号線４０３は、起動用ＲＯＭ３０３へのデータの入力用の信号線として機能する。信号線４０４は、起動用ＲＯＭ３０３からのデータの出力用の信号線として機能する。
【００３５】
ＣＰＵ３０１及びマイコン３２１のそれぞれと接続制御部３２２との間には、信号線４２１が設けられている。信号線４２１は、起動用ＲＯＭ３０３に格納されているプログラムの、マイコン３２１による検証結果を、マイコン３２１から接続制御部３２２へ通知するための通知信号の伝送に用いられる。接続制御部３２２は、マイコン３２１からの通知信号に従ってＣＳ信号線（即ち、信号線４０１，４１１，４１２）の上述の接続状態を切り替える。
【００３６】
本実施形態の画像形成装置１０は、電源の投入時に、接続制御部３２２が、マイコン３２１用の信号線４１２と信号線４０１とをデフォルトで接続する構成を有している。接続制御部３２２は、起動用ＲＯＭ３０３に格納されているプログラムが改竄されていないことを示す通知信号に従って、ＣＳ信号用の信号線の接続状態を切り替える。具体的には、接続制御部３２２は、信号線の接続状態を、マイコン３２１用の信号線４１２と信号線４０１とを接続した状態から、ＣＰＵ３０１用の信号線４１１と信号線４０１とを接続した状態に切り替える。
【００３７】
信号線４２１は、マイコン３２１と、接続制御部３２２及びＣＰＵ３０１とを接続している。このため、マイコン３２１から出力された通知信号は、信号線４２１を介して、接続制御部３２２だけでなくＣＰＵ３０１にも供給される。本実施形態では、信号線４２１を介してＣＰＵ３０１に供給された通知信号は、ＣＰＵ３０１に対するリセット解除信号として機能する。
【００３８】
マイコン３２１は、起動用ＲＯＭ３０３に格納されているプログラムが改竄されているか否かを検証する。マイコン３２１は、プログラムが改竄されていないと判定した場合に限り、上述の通知信号を用いて、ＣＰＵ３０１用の信号線４１１と信号線４０１とを接続制御部３２２によって接続させるとともに、ＣＰＵ３０１のリセット状態を解除する。その結果、ＣＰＵ３０１は、ＣＳ信号を用いて起動用ＲＯＭ３０３へのアクセスを実行することが可能になり、起動用ＲＯＭ３０３に格納されている、改竄されていないプログラムを使用して、ＣＰＵ３０１が起動することが可能になる。
【００３９】
ＣＰＵ３０１と接続制御部３２２との間には、制御バス４２２が更に設けられている。制御バス４２２は、ＣＰＵ３０１と接続制御部３２２との通信に使用される。接続制御部３２２は、制御バス４２２を介してＣＰＵ３０１から受信した指示に従って、ＣＳ信号用の信号線４０１，４１１，４１２の接続状態を切り替えることも可能である。
【００４０】
＜マイコンの処理＞
図４は、本実施形態に係る、マイコン３２１による処理の手順を示すフローチャートである。まずＳ４０１で、マイコン３２１は、画像形成装置１０が電源オフ状態から起動し、マイコン３２１に電源が投入されると、処理をＳ４０２へ進める。
【００４１】
Ｓ４０２で、マイコン３２１は、内部に保持しているＲＯＭ又は外部に設けられた専用のＲＯＭを用いて起動処理を行う。マイコン３２１は、起動処理を完了すると、Ｓ４０３へ処理を進める。
【００４２】
Ｓ４０３で、マイコン３２１は、起動用ＲＯＭ３０３に格納されているプログラムが改竄されているか否かを検証する検証処理を開始し、Ｓ４０４へ処理を進める。ここで、マイコン３２１は、接続制御部３２２によって接続される信号線４１２及び４０１を介してＣＳ信号を用いて起動用ＲＯＭ３０３にアクセスする。これにより、マイコン３２１は、起動用ＲＯＭ３０３からプログラムを読み出し、読み出したプログラムが改竄されているか否かの検証処理を行う。Ｓ４０４で、マイコン３２１は、検証処理が終了したか否かを判定し、検証処理が終了するとＳ４０５へ処理を進める。
【００４３】
Ｓ４０５で、マイコン３２１は、起動用ＲＯＭ３０３に格納されているプログラムの検証結果に従って、当該プログラムが改竄されているか否かを判定する。マイコン３２１は、起動用ＲＯＭ３０３に格納されているプログラムが改竄されていると判定した（プログラムの改竄を検知した）場合には処理を終了する。一方、マイコン３２１は、起動用ＲＯＭ３０３に格納されているプログラムが改竄されていないと判定した（プログラムの改竄を検知しなかった）場合にはＳ４０６へ処理を進める。
【００４４】
Ｓ４０６で、マイコン３２１は、信号線４２１上の通知信号を用いて、プログラムの検証結果を接続制御部３２２へ通知し、処理を終了する。上述のように、接続制御部３２２は、この通知信号に従ってＣＳ信号用の信号線の接続状態の切り替えを行う。また、この通知信号は、ＣＰＵ３０１に対するリセット解除信号としても使用される。
【００４５】
＜接続制御部の処理＞
図５は、本実施形態に係る、接続制御部３２２によって実行される処理の手順を示すフローチャートである。まずＳ５０１で、接続制御部３２２は、画像形成装置１０が電源オフ状態から起動し、接続制御部３２２に電源が投入されると、処理をＳ５０２へ進める。
【００４６】
Ｓ５０２で、接続制御部３２２は、信号線４０１と信号線４１２とを接続（ＣＳ信号線を接続）することで、マイコン３２１と起動用ＲＯＭ３０３とを、ＣＳ信号線を介して電気的に接続する。これにより、マイコン３２１が、信号線４１２及び４０１を介してＣＳ信号を用いて起動用ＲＯＭ３０３へアクセスすることが可能になり、起動用ＲＯＭ３０３からプログラムを読み出し、読み出したプログラムの検証処理を行うことが可能になる。
【００４７】
画像形成装置１０の電源が投入された際、Ｓ５０２の処理により、ＣＰＵ３０１用のＣＳ信号線は起動用ＲＯＭ３０３と電気的に未接続の状態（即ち、信号線４１１と信号線４０１とが未接続の状態）とされる。これにより、例えば悪意のあるユーザによってＣＰＵ３０１のリセット状態が強制的に解除されたとしても、ＣＰＵ３０１が、マイコン３２１による検証が完了していないブートプログラムを起動用ＲＯＭ３０３から読み出して実行することを防止できる。
【００４８】
その後Ｓ５０３で、接続制御部３２２は、マイコン３２１から信号線４２１を介して入力される通知信号がＨ（ハイ）レベルであるか否かを判定し、当該通知信号がＬ（ロー）レベルからＨレベルに切り替わると、Ｓ５０４へ処理を進める。
【００４９】
例えば、マイコン３２１は、デフォルトでＬレベルの通知信号を出力し、起動用ＲＯＭ３０３に格納されているプログラムが改竄されていないと判定すると、出力する通知信号のレベルをＬレベルからＨレベルに切り替える。これにより、接続制御部３２２は信号線４２１を介して入力される通知信号がＬレベルである限り、信号線４０１と信号線４１２との接続（マイコン３２１と起動用ＲＯＭ３０３との間のＣＳ信号線の接続）を維持する。なお、通知信号の論理は、上述の論理と反転してもよく、即ち、プログラムの改竄が検知されなかった場合を、ＨレベルではなくＬレベルと対応付けてもよい。
【００５０】
このようにして、接続制御部３２２は、起動用ＲＯＭ３０３に格納されているプログラムが改竄されていないことを示す通知信号を、信号線４２１を介してマイコン３２１から受信すると、Ｓ５０４へ処理を進める。Ｓ５０４で、接続制御部３２２は、起動用ＲＯＭ３０３に対するＣＳ信号線の接続を、マイコン３２１からＣＰＵ３０１に切り替える。即ち、接続制御部３２２は、起動用ＲＯＭ３０３用の信号線４０１の接続先を、信号線４１２から信号線４１１に切り替える。ＣＳ信号線の接続の切り替えが完了すると、接続制御部３２２は処理を終了する。
【００５１】
本例では、Ｈレベルの通知信号は、ＣＰＵ３０１に対するリセット解除信号としても機能する。Ｈレベルの通知信号が信号線４２１を介してＣＰＵ３０１に入力されることで、ＣＰＵ３０１のリセット状態が解除される。更に、Ｓ５０４におけるＣＳ信号線の接続の切り替えにより、ＣＰＵ３０１が、ＣＳ信号線（信号線４１１及び４１１）を介してＣＳ信号を用いて起動用ＲＯＭ３０３へアクセスできるようになる。ＣＰＵ３０１は、起動用ＲＯＭ３０３へのアクセスが可能になると、起動用ＲＯＭ３０３に格納されている、改竄されていないプログラムを使用して起動する。
【００５２】
以上説明したように、本実施形態では、画像形成装置１０の起動時に、マイコン３２１が、起動用ＲＯＭ３０３にアクセスして、当該起動用ＲＯＭに格納されているプログラムが改竄されているか否かの検証を行う。マイコン３２１は、検証により、プログラムが改竄されていないと判定すると、起動用ＲＯＭ３０３に格納されているプログラムが改竄されていないことを示す検証結果を接続制御部３２２へ通知する。接続制御部３２２は、当該検証結果がマイコン３２１から通知されたことに従って、ＣＰＵ３０１から起動用ＲＯＭ３０３へのアクセスが可能になるよう、起動用ＲＯＭ３０３へのアクセス用のＣＳ信号線の接続先をマイコン３２１からＣＰＵ３０１に切り替える。起動用ＲＯＭ３０３へのアクセスが可能になると、ＣＰＵ３０１は、信号線４１１，４０１を介して起動用ＲＯＭ３０３にアクセスして、起動用ＲＯＭ３０３に格納されているプログラムを実行することによって起動する。
【００５３】
本実施形態によれば、画像形成装置１０の電源の投入直後には、マイコン３２１と起動用ＲＯＭ３０３との間のＣＳ信号線が接続される一方、ＣＰＵ３０１と起動用ＲＯＭ３０３との間のＣＳ信号線が未接続にされる。これにより、起動用ＲＯＭ３０３に格納されたブートプログラムが改竄されているか否かの検証が完了する前に、ＣＰＵ３０１が当該ブートプログラムを実行することで動作を開始してしまうことを防止できる。
【００５４】
また、接続制御部３２２は、起動用ＲＯＭ３０３に格納されているプログラムの検証処理をマイコン３２１が完了した後に、ＣＰＵ３０１と起動用ＲＯＭ３０３との間のＣＳ信号線を接続するよう、ＣＳ信号線の接続を切り替える。これにより、ＣＰＵ３０１が、起動用ＲＯＭ３０３に格納されている、改竄されていないブートプログラムを用いて起動することが可能になる。
【００５５】
［第２実施形態］
第２実施形態では、ＣＰＵ３０１の起動が完了した後に、接続制御部３２２が、ＣＰＵ３０１と起動用ＲＯＭ３０３との間のＣＳ信号線の接続状態を制御する例について説明する。なお、第１実施形態と共通する部分については説明を省略する。
【００５６】
図６は、本実施形態に係る、接続制御部３２２によって実行される処理の手順を示すフローチャートである。Ｓ６０１〜Ｓ６０４の処理は、第１実施形態におけるＳ５０１〜Ｓ５０４の処理と同様である。本実施形態では、接続制御部３２２は、Ｓ６０４において起動用ＲＯＭ３０３に対するＣＳ信号線の接続を、マイコン３２１からＣＰＵ３０１に切り替えると、Ｓ６０５へ処理を進める。
【００５７】
Ｓ６０５で、接続制御部３２２は、ＣＰＵ３０１の起動が完了したか否かを判定する。接続制御部３２２は、制御バス４２２を介してＣＰＵ３０１から起動完了通知を受信可能に構成されている。ＣＰＵ３０１は、起動用ＲＯＭ３０３に格納されているブートプログラムを用いた起動処理が完了すると、制御バス４２２を介して接続制御部３２２へ起動完了通知を送信する。接続制御部３２２は、起動完了通知をＣＰＵ３０１から受信すると、ＣＰＵ３０１の起動が完了したと判定し、Ｓ６０６へ処理を進める。
【００５８】
Ｓ６０６で、接続制御部３２２は、起動用ＲＯＭ３０３へのＣＳ信号線の接続を切断することにより、ＣＰＵ３０１と起動用ＲＯＭ３０３との間のＣＳ信号線の接続状態を未接続状態にする。これにより、ＣＰＵ３０１から起動用ＲＯＭ３０３へアクセスできないようにすることが可能である。
【００５９】
以上説明したように、本実施形態では、接続制御部３２２は、ＣＰＵ３０１の起動が完了すると、信号線４０１を、ＣＰＵ３０１とマイコン３２１とのいずれとも接続されていない未接続状態にする。これにより、ＣＰＵ３０１が通常動作している状態において、悪意のあるユーザによるＣＰＵ３０１から起動用ＲＯＭ３０３への不正なアクセスに起因して起動用ＲＯＭ３０３内のプログラムが不正に書き換えられることを防止することが可能になる。
【００６０】
［第３実施形態］
第３実施形態では、接続制御部３２２が、ＣＰＵ３０１の起動が完了した後に、ＣＰＵ３０１からの通知を必要とせずに、ＣＰＵ３０１と起動用ＲＯＭ３０３との間のＣＳ信号線の接続状態を制御する例について説明する。なお、第１及び第２実施形態と共通する部分については説明を省略する。
【００６１】
図７は、本実施形態に係る、接続制御部３２２によって実行される処理の手順を示すフローチャートである。Ｓ７０１〜Ｓ７０４の処理は、第１実施形態におけるＳ５０１〜Ｓ５０４の処理と同様である。本実施形態では、接続制御部３２２は、Ｓ７０４において起動用ＲＯＭ３０３に対するＣＳ信号線の接続を、マイコン３２１からＣＰＵ３０１に切り替えると、Ｓ７０５へ処理を進める。
【００６２】
Ｓ７０５で、接続制御部３２２は、ＣＰＵ３０１の起動が完了したか否かの判定に使用するタイマーを初期化する。本実施形態の接続制御部３２２は、ＣＰＵ３０１の起動処理に要する時間よりも長い時間を計測可能なタイマーを内部に保持している。
【００６３】
次にＳ７０６で、接続制御部３２２は、タイマーによる計時を開始する。計時の開始後、Ｓ７０７で、接続制御部３２２は、タイマーによる計時を開始してから所定時間が経過したか否かを判定し、所定時間が経過するとＳ７０８へ処理を進める。この所定時間は、ＣＰＵ３０１の起動が完了するまでに要する時間よりも長い時間に設定される。
【００６４】
Ｓ７０８で、接続制御部３２２は、Ｓ６０６と同様、起動用ＲＯＭ３０３へのＣＳ信号線の接続を切断することにより、ＣＰＵ３０１と起動用ＲＯＭ３０３との間のＣＳ信号線の接続状態を未接続状態にする。これにより、ＣＰＵ３０１から起動用ＲＯＭ３０３へアクセスできないようにすることが可能である。
【００６５】
本実施形態によれば、ＣＰＵ３０１からの通知を必要とせずに、接続制御部３２２が、ＣＰＵ３０１の起動完了後にＣＰＵ３０１と起動用ＲＯＭ３０３との間のＣＳ信号線の接続を切断することが可能である。これにより、ＣＰＵ３０１が通常動作している状態において、悪意のあるユーザによるＣＰＵ３０１から起動用ＲＯＭ３０３への不正なアクセスに起因して起動用ＲＯＭ３０３内のプログラムが不正に書き換えられることを防止することが可能になる。
【００６６】
［第４実施形態］
第４実施形態では、ＣＰＵ３０１が起動後に動作している状態において、接続制御部３２２が、ＣＰＵ３０１からのＣＳ信号を監視することでＣＰＵ３０１から起動用ＲＯＭ３０３への不正なアクセスを検知する例について説明する。なお、第１乃至第３実施形態と共通する部分については説明を省略する。
【００６７】
図８は、本実施形態に係る、接続制御部３２２によって実行される処理の手順を示すフローチャートである。Ｓ８０１〜Ｓ８０６の処理は、第２実施形態におけるＳ６０１〜Ｓ６０６の処理と同様である。本実施形態では、接続制御部３２２は、Ｓ８０６において起動用ＲＯＭ３０３へのＣＳ信号線の接続を切断すると、Ｓ８０７へ処理を進める。
【００６８】
Ｓ８０７で、接続制御部３２２は、ＣＰＵ３０１から信号線４１１へ出力されるＣＳ信号を監視することで、ＣＰＵ３０１から起動用ＲＯＭ３０３へのＣＳ信号を用いたアクセスの有無を監視する。接続制御部３２２は、ＣＳ信号の監視により、ＣＰＵ３０１からのＣＳ信号を用いたアクセスを検知すると、Ｓ８０８へ処理を進める。
【００６９】
Ｓ８０８で、接続制御部３２２は、起動用ＲＯＭ３０３に対するアクセス異常の検知をＣＰＵ３０１へ通知し、処理を終了する。ここで、ＣＰＵ３０１から起動用ＲＯＭ３０３へのアクセスは、通常、画像形成装置１０の起動時にのみ行われる。それにもかかわらず、起動用ＲＯＭ３０３に格納されているブートプログラムを用いた起動後にＣＰＵ３０１が起動用ＲＯＭ３０３へのアクセスを行った場合、悪意のあるユーザによるアクセスが行われた可能性がある。このため、本実施形態では、そのようなアクセス異常の発生をＣＰＵ３０１へ通知する。なお、ＣＰＵ３０１は、通知された情報に基づいて、起動用ＲＯＭ３０３へのアクセス異常の発生に関して操作部１２に表示してもよい。
【００７０】
以上説明したように、本実施形態によれば、ＣＰＵ３０１が通常動作している状態において、悪意のあるユーザによるＣＰＵ３０１から起動用ＲＯＭ３０３への不正なアクセスが生じた場合に、そのようなアクセス異常の発生を通知できる。それにより、起動用ＲＯＭ３０３内のプログラムが不正に書き換えられることを防止することが可能になり、装置に対する攻撃があったことを通知することも可能になる。
【００７１】
［第５実施形態］
第５実施形態では、ＣＰＵ３０１が起動後に動作している状態において、起動用ＲＯＭ３０３内のプログラム（ソフトウェア）の更新のために、ＣＰＵ３０１による起動用ＲＯＭ３０３へのアクセスを可能にする例について説明する。なお、第１乃至第４実施形態と共通する部分については説明を省略する。
【００７２】
図９は、本実施形態に係る、接続制御部３２２によって実行される処理の手順を示すフローチャートである。Ｓ９０１〜Ｓ９０６の処理は、第２実施形態におけるＳ６０１〜Ｓ６０６の処理と同様である。本実施形態では、接続制御部３２２は、Ｓ９０６において起動用ＲＯＭ３０３へのＣＳ信号線の接続を切断すると、Ｓ８０９へ処理を進める。
【００７３】
Ｓ９０７で、接続制御部３２２は、ＣＳ信号線の接続指示を、制御バス４２２を介してＣＰＵ３０１から受信したか否かを判定する。接続制御部３２２は接続指示をＣＰＵ３０１から受信すると、Ｓ９０８へ処理を進める。Ｓ９０８で、接続制御部３２２は、未接続状態のＣＳ信号線を、起動用ＲＯＭ３０３とＣＰＵ３０１との間で接続し、処理を終了する。具体的には、接続制御部３２２は、信号線４０１と信号線４１１とを接続する。これにより、ＣＰＵ３０１が、信号線４１２及び４０１を介してＣＳ信号を用いて起動用ＲＯＭ３０３にアクセスすることが可能になり、起動用ＲＯＭ３０３内のプログラムを更新することが可能になる。
【００７４】
本実施形態によれば、上述の実施形態と同様、ＣＰＵ３０１が通常動作している状態において、ＣＰＵ３０１から起動用ＲＯＭ３０３への不正なアクセスに起因して起動用ＲＯＭ３０３内のプログラムが不正に書き換えられることを防止することが可能になる。更に、ＣＰＵ３０１から必要に応じて信号線の接続状態を変更して、起動用ＲＯＭ３０３内のプログラムを更新することが可能になる。
【００７５】
［その他の実施形態］
上述の第１乃至第５実施形態は、適宜組み合わせることも可能である。なお、本発明は、複数の機器（例えば、コンピュータ、インタフェース機器、リーダ、プリンタ等）から構成されるシステムに適用することも可能である。
【００７６】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７７】
１０，２０，３０：画像形成装置、１１：コントローラ、１２：操作部、１３：スキャナ部、１４：プリンタ部、３０１：ＣＰＵ、３０２：ＲＡＭ、３０３：起動用ＲＯＭ、３０４：ＨＤＤ、３２１：マイコン、３２２：接続制御部
【図１】
2020067904.tif 000003
【図２】
2020067904.tif 000004
【図３】
2020067904.tif 000005
【図４】
2020067904.tif 000006
【図５】
2020067904.tif 000007
【図６】
2020067904.tif 000008
【図７】
2020067904.tif 000009
【図８】
2020067904.tif 000010
【図９】
2020067904.tif 000011