(57)【要約】【課題】通常動作時に、プログラムの検証を行いつつ、情報処理装置を短時間で起動することができるようにすることである。【解決手段】情報処理装置は、情報処理装置であって、前記情報処理装置の起動後、起動情報が第１のプログラムの起動を示す場合には、第１のプログラムの検証を行い、前記起動情報が第２のプログラムの起動を示す場合には、第２のプログラムの検証を行う検証手段と、前記検証手段による前記第１のプログラムの検証が成功した場合、前記第２のプログラムの起動指示がない場合には、前記第１のプログラムを起動する第１の起動手段と、前記検証手段による前記第１のプログラムの検証が成功した場合、前記第２のプログラムの起動指示がある場合には、前記第２のプログラムの起動を示す起動情報を記録し、前記情報処理装置を再起動する再起動手段とを有する。【選択図】図５
2020057250.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
前記情報処理装置の起動後、起動情報が第１のプログラムの起動を示す場合には、第１のプログラムの検証を行い、前記起動情報が第２のプログラムの起動を示す場合には、第２のプログラムの検証を行う検証手段と、
前記検証手段による前記第１のプログラムの検証が成功した場合、前記第２のプログラムの起動指示がない場合には、前記第１のプログラムを起動する第１の起動手段と、
前記検証手段による前記第１のプログラムの検証が成功した場合、前記第２のプログラムの起動指示がある場合には、前記第２のプログラムの起動を示す起動情報を記録し、前記情報処理装置を再起動する再起動手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記検証手段による前記第２のプログラムの検証が成功した場合、前記第２のプログラムを起動する第２の起動手段をさらに有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２の起動手段は、前記検証手段による前記第２のプログラムの検証が成功した場合、前記第１のプログラムの起動を示す起動情報を記録し、前記第２のプログラムを起動することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記検証手段による前記第１のプログラムの検証が失敗した場合、エラーを通知する通知手段をさらに有することを特徴とする請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記検証手段は、起動後、前記第２のプログラムの起動を示す起動情報が記録されていない場合には、第１のプログラムの検証を行い、前記第２のプログラムの起動を示す起動情報が記録されている場合には、第２のプログラムの検証を行うことを特徴とする請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記第１のプログラムは、第１のオペレーティングシステムであり、
前記第２のプログラムは、第２のオペレーティングシステムであることを特徴とする請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
前記検証手段は、ローダの検証を行い、
前記検証手段による前記第１のオペレーティングシステムと前記ローダの検証が成功した場合、又は前記検証手段による前記第２のオペレーティングシステムと前記ローダの検証が成功した場合、前記ローダを起動する第３の起動手段をさらに有することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記第１の起動手段と前記第２の起動手段は、中央演算処理装置が起動する前記ローダの処理であることを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記検証手段は、前記中央演算処理装置が起動するＢＩＯＳの処理であることを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
情報処理装置の制御方法であって、
検証手段により、前記情報処理装置の起動後、起動情報が第１のプログラムの起動を示す場合には、第１のプログラムの検証を行い、前記起動情報が第２のプログラムの起動を示す場合には、第２のプログラムの検証を行う検証ステップと、
第１の起動手段により、前記検証ステップで前記第１のプログラムの検証が成功した場合、前記第２のプログラムの起動指示がない場合には、前記第１のプログラムを起動する第１の起動ステップと、
再起動手段により、前記検証ステップで前記第１のプログラムの検証が成功した場合、前記第２のプログラムの起動指示がある場合には、前記第２のプログラムの起動を示す起動情報を記録し、前記情報処理装置を再起動する再起動ステップと
を有することを特徴とする情報処理装置の制御方法。
【請求項１１】
コンピュータを、請求項１〜９のいずれか１項に記載された情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年の情報処理装置や画像形成装置は、フラグ情報や特定の入力などに基づき、起動するＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を切り替える機能を有するものがある。このような機能は、例えば、通常動作用のＯＳが破損した場合は、リカバリ用のＯＳを起動し、通常動作用システムを復旧する。また、システムを起動する前に、電子署名などを用いて、システムを構成するファイルやデータを検証することで、改ざんされた悪意あるシステムの起動を防止する機能を有するものもある。ここで、検証対象が増えるほど、検証のための演算処理が増大するため、システム起動に要する時間も長くなる傾向がある。
【０００３】
下記の特許文献１には、フラグの有無によって検証処理が必要か否かを判断し、必要な場合のみ検証処理を行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２００９／０１３８３１号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
通常動作用ＯＳとリカバリ用ＯＳなどの複数の対象について検証処理を行うと、検証処理に要する時間が増大することにより、システム起動時間が長くなり、結果的に、ユーザの待ち時間が増大するという課題がある。
【０００６】
本発明の目的は、通常動作時に、プログラムの検証を行いつつ、情報処理装置を短時間で起動することができるようにすることである。
【課題を解決するための手段】
【０００７】
本発明の情報処理装置は、情報処理装置であって、前記情報処理装置の起動後、起動情報が第１のプログラムの起動を示す場合には、第１のプログラムの検証を行い、前記起動情報が第２のプログラムの起動を示す場合には、第２のプログラムの検証を行う検証手段と、前記検証手段による前記第１のプログラムの検証が成功した場合、前記第２のプログラムの起動指示がない場合には、前記第１のプログラムを起動する第１の起動手段と、前記検証手段による前記第１のプログラムの検証が成功した場合、前記第２のプログラムの起動指示がある場合には、前記第２のプログラムの起動を示す起動情報を記録し、前記情報処理装置を再起動する再起動手段とを有する。
【発明の効果】
【０００８】
本発明によれば、通常動作時に、プログラムの検証を行いつつ、情報処理装置を短時間で起動することができる。
【図面の簡単な説明】
【０００９】
【図１】画像形成装置の構成例を示すブロック図である。
【図２】ＨＤＤに保存されているデータの例を示す図である。
【図３】起動処理を示すフローチャートである。
【図４】起動処理のうちＢＩＯＳの検証処理を示すフローチャートである。
【図５】起動処理のうちローダの処理を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための最良の形態について図面を用いて説明する。なお、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００１１】
図１は、本発明の実施形態による画像形成装置１００のハードウェア構成例を示す図である。画像形成装置１００は、情報処理装置の一例である。中央演算処理装置（以下ＣＰＵという）１０１は、画像形成装置１００を稼働させるためのプログラムを実行する。システムバス１０２は、ＣＰＵ１０１が、他のユニットにアクセスするための通路、及び、他のユニット同士がアクセスするための通路である。
【００１２】
ハードディスクドライブユニット（以下ＨＤＤという）１０３は、画像形成装置１００が動作するために必要な各種プログラム、データベース、一時保存ファイルを格納している。ランダムアクセスメモリ（(以下ＲＡＭという）１０４は、画像形成装置１００のプログラムが展開され、プログラム動作時の変数や、各ユニットからダイレクトメモリアクセス（(以下ＤＭＡという）で転送されるデータの格納領域を有する。
【００１３】
ネットワークコントローラ１０５とネットワークコントローラＩ／Ｆ１０６は、画像形成装置１００とネットワーク上の他の機器との間の通信を制御する。ＵＳＢホストコントローラ１０７とＵＳＢホストＩ／Ｆ１０８は、画像形成装置１００とＵＳＢデバイスとの間の通信を制御する。ＵＳＢホストＩ／Ｆ１０８は、ＵＳＢケーブルを使用してＵＳＢデバイスと接続される。ＵＳＢデバイスの形態によっては、ＵＳＢケーブルは使用せず直接接続される。
【００１４】
ＣＰＬＤ１０９は、ＣＰＵ１０１を介して、基盤回路上の信号線のローレベル／ハイレベルの状況を読み取り、ＣＰＵ１０１が上記のローレベル／ハイレベルの状況の設定を変更可能にする。ＣＰＬＤ１０９は、プログラマブルなロジックデバイスであり、画像形成装置１００上で電力のオフ／オンを制御可能にする。ＣＰＬＤ１０９の内部には、Ｇｅｎｅｒａｌ Ｐｕｒｐｏｓｅ Ｉｎｐｕｔ Ｏｕｔｐｕｔ（以下ＧＰＩＯという）が存在する。ＣＰＵ１０１は、そのＧＰＩＯレジスタの設定値を変更することで、電力のオフ／オンを可能としている。
【００１５】
ディスプレイ１１１は、画像形成装置１００の動作状況をユーザ等が確認できるように表示する。ディスプレイコントローラ１１０は、ディスプレイ１１１の表示を制御する。入力部１１３は、画像形成装置１００へのユーザからの指示を受け付ける。入力部コントローラ１１２は、入力部１１３を制御する。入力部１１３は、例えば、キーボード、マウス、テンキー、カーソルキー、又はタッチパネルである。入力部１１３がタッチパネルである場合は、物理的にはディスプレイ１１１の表面に入力部１１３が装着される。
【００１６】
リアルタイムクロック（以下ＲＴＣという）１１４は、画像形成装置１００の時計機能、アラーム機能、及びタイマ機能等を有する。不揮発メモリ１１５は、書き換え可能なメモリである。不揮発メモリ１１５は、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）１２１を保存する。通電開始直後に、ＣＰＵ１０１は、ＢＩＯＳ１２１の処理を開始する。また、不揮発メモリ１１５は、データ領域を有し、後述する署名検証処理に使用する公開鍵や特殊起動フラグ１２０を保存する。
【００１７】
スキャナ１１７は、スキャナＩ／Ｆ１１６を介して、システムバス１０２に接続される。スキャナ１１７は、原稿の画像を光学的に読み取り、画像データを生成する。プリンタ１１９は、プリンタＩ／Ｆ１１８を介して、システムバス１０２に接続される。プリンタ１１９は、画像データを印刷する。
【００１８】
図２は、ＨＤＤ１０３に保存されているデータを示す図である。ＨＤＤ１０３は、２種類のオペレーティングシステム（以下ＯＳという）２０１，２０２と、ローダ（Ｌｏａｄｅｒ）２０３を保存し、２種類の保存領域２０４，２０５を有する。ＯＳ２０１は、通常動作用途に使用されるＯＳである。ＯＳ２０２は、ＯＳ２０１のアップデートや破損時のリカバリを想定したリカバリＯＳである。ローダ２０３は、入力部１１３やフラグ情報の有無により、ＯＳ２０１及び２０２のいずれを起動するかを判断する。保存領域２０４及び２０５には、それぞれ、プリント処理などを行うファームウェア、設定ファイル、ユーザデータが保存される。保存領域２０４は、ＯＳ２０１が使用する領域である。保存領域２０５は、ＯＳ２０２が使用する領域である。保存領域２０４及び２０５は、その用途によって、保存されるプログラムが異なり、保存領域のサイズが異なっている。なお、前述したいずれのデータについても、後述する検証処理で判断材料とするための、予め計算され導出された電子署名情報が付与されている。
【００１９】
図３は、画像形成装置１００の起動処理を示すフローチャートである。画像形成装置１００の起動後、画像形成装置１００は、図３のフローチャートの処理を行う。以下、画像形成装置１００の制御方法を説明する。
【００２０】
まず、ステップＳ３０１では、ＣＰＵ１０１は、不揮発メモリ１１５上に格納されているＢＩＯＳ１２１を読み出し、ＢＩＯＳ１２１の処理を実施する。ＣＰＵ１０１は、ＢＩＯＳ１２１の処理により、ローダ２０３、ＯＳ２０１およびＯＳ２０２に対して署名検証処理を行い、その結果によって、改ざんの有無を判定する。ステップＳ３０１の詳細は、後に図４を参照しながら説明する。
【００２１】
次に、ステップＳ３０２では、ＣＰＵ１０１は、ＢＩＯＳ１２１の処理により、ＨＤＤ１０３上のローダ２０３を読み出し、ローダ２０３の処理を行う。ＣＰＵ１０１は、ローダ２０３の処理により、ＯＳ２０１及び２０２のいずれを起動するかを判断し、その判断結果に基づいて、ＯＳ２０１及び２０２のいずれかとそれに対応する格納領域２０４又は２０５のファームウェア等を読み出す。ステップＳ３０２の詳細は、後に図５を参照しながら説明する。
【００２２】
次に、ステップＳ３０３では、ＣＰＵ１０１は、ステップＳ３０２で読み出したＯＳの処理により、図１に記載の各ハードウェアブロックの初期化を行い、使用可能な状態とする。
【００２３】
次に、ステップＳ３０４では、ＣＰＵ１０１は、ハードウェアブロックの初期化完了後、ＯＳの処理により、各種ファームウェアの起動処理を開始し、画像形成装置１００が備える機能を実行可能な状態とする。
【００２４】
図４は、図３のステップＳ３０１のＣＰＵ１０１が起動するＢＩＯＳ１２１の処理を示すフローチャートである。本実施形態では、ＢＩＯＳ１２１がＯＳとローダの検証処理を行う例について説明する。検証処理は、不揮発メモリ１１５上に保存された公開鍵を使用し、署名検証処理を行うが、その他の手法を用いてもよい。本実施形態では、ステップＳ４０２、Ｓ４０３、Ｓ４０４は、同じ手法で検証を行う例を示しているが、それぞれ異なる手法を用いてもよい。
【００２５】
まず、ステップＳ４０１では、ＣＰＵ１０１は、不揮発メモリ１１５に特殊起動フラグ１２０が記録されているか否かをチェックする。特殊起動フラグ１２０は、起動情報である。初期時には、特殊起動フラグ１２０が記録されていない。特殊起動フラグ１２０の記録処理は、後に図５を参照しながら説明する。ＣＰＵ１０１は、特殊起動フラグ１２０が記録されている場合（Ｓ４０１のＹｅｓ）には、特殊起動フラグ１２０がリカバリ用ＯＳ２０２の起動を示すので、リカバリ用ＯＳ２０２の起動をユーザが指示したと判断し、ステップＳ４０２に進む。一方、ＣＰＵ１０１は、特殊起動フラグ１２０が記録されていない場合（Ｓ４０１のＮｏ）には、特殊起動フラグ１２０が通常動作用ＯＳ２０１の起動を示すので、リカバリ用ＯＳ２０２の起動をユーザが指示していないと判断し、ステップＳ４０３に進む。
【００２６】
ステップＳ４０２では、ＣＰＵ１０１は、ＨＤＤ１０３上のリカバリ用ＯＳ２０２に対して署名検証処理を行い、ステップＳ４０４に進む。リカバリ用ＯＳ２０２は、ＣＰＵ１０１が実行するプログラムである。ステップＳ４０３では、ＣＰＵ１０１は、ＨＤＤ１０３上の通常動作用ＯＳ２０１に対して署名検証処理を行い、ステップＳ４０４に進む。通常動作用ＯＳ２０１は、ＣＰＵ１０１が実行するプログラムである。
【００２７】
ステップＳ４０４では、ＣＰＵ１０１は、ＨＤＤ１０３上のローダ２０３に対して署名検証処理を行う。ローダ２０３は、ＣＰＵ１０１が実行するプログラムである。次に、ステップＳ４０５では、ＣＰＵ１０１は、ＯＳ２０１及び２０２のいずれかの検証とローダ２０３の検証のうちのいずれか一方でも検証が失敗（ＮＧ）した場合（Ｓ４０５のＹｅｓ）には、ステップＳ４０６に進む。一方、ＣＰＵ１０１は、ＯＳ２０１及び２０２のいずれかの検証とローダ２０３の検証のいずれの検証も成功（ＯＫ）した場合（Ｓ４０５のＮｏ）には、ステップＳ４０７に進む。
【００２８】
ステップＳ４０６では、ＣＰＵ１０１は、改ざんがなされたと判断し、ディスプレイ１１１に対してエラー表示を行うことにより、エラーを通知し、起動処理を中止する。ステップＳ４０７では、ＣＰＵ１０１は、起動処理の継続を決定し、ローダ２０３をＨＤＤ１０３からＲＡＭ１０４にロードし、ローダ２０３を起動する。
【００２９】
図５は、図３のステップＳ３０２のＣＰＵ１０１が起動するローダ２０３の処理を示すフローチャートである。図４のステップＳ４０５で検証結果がＯＫだった場合に、図５のフローチャートの処理が実施される。
【００３０】
まず、ステップＳ５０１では、ＣＰＵ１０１は、不揮発メモリ１１５に特殊起動フラグ１２０が記録されているか否かをチェックする。ＣＰＵ１０１は、特殊起動フラグ１２０が記録されている場合（Ｓ５０１のＹｅｓ）には、ステップＳ５０２に進む。一方、ＣＰＵ１０１は、特殊起動フラグ１２０が記録されていない場合（Ｓ５０１のＮｏ）には、ステップＳ５０４に進む。
【００３１】
ステップＳ５０２では、ＣＰＵ１０１は、リカバリＯＳ２０２が図４の処理により正常であると検証されたと判断し、不揮発メモリ１１５上の特殊起動フラグ１２０を消去する。すなわち、ＣＰＵ１０１は、通常動作用ＯＳ２０１の起動を示す起動情報を記録する。これにより、ユーザの指示が無いにもかかわらず、リカバリ用ＯＳ２０２が起動されることを防止する。次に、ステップＳ５０３では、ＣＰＵ１０１は、ＨＤＤ１０３上のリカバリ用ＯＳ２０２をＲＡＭ１０４にロードし、リカバリ用ＯＳ２０２を起動する。
【００３２】
ステップＳ５０４では、ＣＰＵ１０１は、通常動作用ＯＳ２０１が図４の処理により正常であると検証されたと判断し、ユーザによるリカバリＯＳ２０２の起動指示の有無をチェックする。例えば、ＣＰＵ１０１は、入力部１１３から特殊キー押下の操作を検知した場合には、ユーザによるリカバリＯＳ２０２の起動指示があったと判断する。ＣＰＵ１０１は、ユーザによるリカバリＯＳ２０２の起動指示がある場合（Ｓ５０４のＹｅｓ）には、ステップＳ５０５に進む。一方、ＣＰＵ１０１は、ユーザによるリカバリＯＳ２０２の起動指示がない場合（Ｓ５０４のＮｏ）には、ステップＳ５０７に進む。
【００３３】
ステップＳ５０５では、ＣＰＵ１０１は、未検証のリカバリ用ＯＳ２０２を検証するため、不揮発メモリ１１５に特殊起動フラグ１２０を記録する。これにより、図４のステップＳ４０１の判定結果を変えることができ、ＣＰＵ１０１は、ＢＩＯＳ１２１に対してリカバリ用ＯＳ２０２の検証を指示することができる。次に、ステップＳ５０６では、ＣＰＵ１０１は、ＢＩＯＳ１２１から処理をやり直すため、画像形成装置１００を再起動する。これにより、ＣＰＵ１０１は、図３のステップＳ３０１から起動処理をやり直し、前述した通り、ＢＩＯＳ１２１においてリカバリ用ＯＳ２０２を検証することができ、更には、ステップＳ５０３によってリカバリ用ＯＳ２０２を起動することができる。
【００３４】
ステップＳ５０７では、ＣＰＵ１０１は、通常動作用ＯＳ２０１をＨＤＤ１０３からＲＡＭ１０４にロードし、通常動作用ＯＳ２０１を起動する。
【００３５】
以上、図４及び図５の処理により、ＣＰＵ１０１は、通常使用時はリカバリ用ＯＳ２０２の検証処理を省くことにより、検証時間の増大をＯＳ一つ分に抑制することができる。一方で、ユーザによるリカバリ用ＯＳ２０２の起動指示があった場合でも、再起動を挟むものの、リカバリ用ＯＳ２０２の検証処理はなされるため、堅牢性は維持される。
【００３６】
画像形成装置１００は、通常動作用ＯＳ２０１による通常起動の起動時間の遅延を減らすことができる。また、画像形成装置１００は、検証処理プログラムをＢＩＯＳ１２１のみに組み込み、ローダ２０３に組み込む必要がないため、ローダ２０３のＨＤＤ１０３の使用量増加を抑制することができる。
【００３７】
ＣＰＵ１０１は、特殊起動フラグ１２０がない場合には、リカバリ用ＯＳ２０２を検証せず、通常動作用ＯＳ２０１のみを検証することにより、画像形成装置１００の起動時間を短縮することができる。
【００３８】
また、ユーザが特殊キーを押下した場合には、ＣＰＵ１０１は、特殊起動フラグ１２０を記録し、画像形成装置１００を再起動する。再起動後、ＣＰＵ１０１は、特殊起動フラグ１２０が記録されているので、リカバリ用ＯＳ２０２を検証し、特殊起動フラグ１２０を消去し、リカバリ用ＯＳ２０２を起動する。
【００３９】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００４０】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００４１】
１００  画像形成装置、１０１  ＣＰＵ、１０３  ＨＤＤ、１２０  特殊起動フラグ、１２１  ＢＩＯＳ、２０１，２０２  ＯＳ、２０３  ローダ
【図１】
2020057250.tif 000003
【図２】
2020057250.tif 000004
【図３】
2020057250.tif 000005
【図４】
2020057250.tif 000006
【図５】
2020057250.tif 000007