(57)【特許請求の範囲】
【請求項１】
機器の起動時に実行されるソフトウェアの改ざんを前記機器が検知するソフトウェア改ざん検知方法であって、
前記機器が、前記ソフトウェアから一意に計算される算出値に基づく情報の暗号化及び復号を行う暗号化復号手段を備えたものであり、
前記ソフトウェアに含まれるブートローダ及びオペレーティングシステムから一意に計算される第１の算出値を前記機器の起動時の第１のタイミングに算出する第１算出ステップと、
前記ブートローダ及びオペレーティングシステム以降に実行されるソフトウェアのうち予め設定された改ざん検知対象のソフトウェアから一意に計算される第２の算出値を前記機器の起動時の前記第１のタイミング後の第２のタイミングに算出する第２算出ステップと、
前記ブートローダ及びオペレーティングシステムから一意に計算される算出値及び前記改ざん検知対象のソフトウェアから一意に計算される算出値に基づき前記暗号化復号手段により暗号化されている前記情報を、前記機器の起動時に算出した前記第１及び第２の算出値に基づき前記暗号化復号手段により復号し、前記情報の復号が失敗したときに、前記ブートローダ及びオペレーティングシステム又は前記改ざん検知対象のソフトウェアの改ざんを検知する検知ステップと、
前記改ざん検知対象とするソフトウェアの設定を行う設定ステップと、
前記設定ステップにより前記改ざん検知対象とするソフトウェアが変更された場合、前記ブートローダ及びオペレーティングシステムから一意に計算される算出値及び前記改ざん検知対象のソフトウェアから一意に計算される算出値に基づき前記暗号化復号手段により暗号化されている前記情報を復号し、前記変更に対応させて暗号化し直す更新ステップと、
を有することを特徴とするソフトウェア改ざん検知方法。
【請求項２】
前記検知ステップで前記情報の復号が成功した場合、予め設定された優先機能に対応するソフトウェアの起動順を表した起動設定リストに基づいて、前記ソフトウェアの起動及び改ざんの検知を順次行う起動ステップを更に有することを特徴とする請求項１記載のソフトウェア改ざん検知方法。
【請求項３】
前記起動ステップで前記ソフトウェアの改ざんを検知すると、各機能が必要とする前記ソフトウェアを表した依存リストに基づいて、改ざんを検知した前記ソフトウェアを必要としない機能に限定して機能を起動する限定起動ステップを更に有することを特徴とする請求項２記載のソフトウェア改ざん検知方法。
【請求項４】
機器の起動時に実行されるソフトウェアの改ざんを前記機器が検知するソフトウェア改ざん検知方法であって、
前記機器が、前記ソフトウェアから一意に計算される算出値に基づく情報の暗号化及び復号を行う暗号化復号手段を備えたものであり、
前記ソフトウェアに含まれるブートローダ及びオペレーティングシステムから一意に計算される第１の算出値を前記機器の起動時の第１のタイミングに算出する第１算出ステップと、
前記ブートローダ及びオペレーティングシステム以降に実行されるソフトウェアのうち改ざん検知対象とするソフトウェアを予め設定するための認証対象リストから一意に計算される第２の算出値を前記機器の起動時の前記第１のタイミング後の第２のタイミングに算出する第２算出ステップと、
前記ブートローダ及びオペレーティングシステムから一意に計算される算出値及び前記認証対象リストから一意に計算される算出値に基づき前記暗号化復号手段により暗号化されている前記情報を、前記機器の起動時に算出した前記第１及び第２の算出値に基づき前記暗号化復号手段により復号し、前記情報の復号が失敗したときに、前記ブートローダ及びオペレーティングシステム又は前記認証対象リストの改ざんを検知する第１検知ステップと
前記情報の復号が成功したあと、前記改ざん検知対象のソフトウェアから一意に計算される第３の算出値を前記機器の起動時の前記第２のタイミング後の第３のタイミングに算出する第３算出ステップと、
前記改ざん検知対象のソフトウェアから一意に計算される算出値に基づき前記暗号化復号手段により暗号化されている前記情報を、前記機器の起動時に算出した前記第３の算出値に基づき前記暗号化復号手段により復号し、前記情報の復号が失敗したときに、前記改ざん検知対象のソフトウェアの改ざんを検知する第２検知ステップと、
前記改ざん検知対象とするソフトウェアの設定を行う設定ステップと、
前記設定ステップにより前記認証対象リストが変更された場合、前記ブートローダ及びオペレーティングシステムから一意に計算される算出値及び前記認証対象リストから一意に計算される算出値に基づき前記暗号化復号手段により暗号化されている前記情報を復号し、前記変更に対応させて暗号化し直す更新ステップと、
を有することを特徴とするソフトウェア改ざん検知方法。
【請求項５】
前記第２検知ステップで前記情報の復号が成功した場合、予め設定された優先機能に対応するソフトウェアの起動順を表した起動設定リストに基づいて、前記ソフトウェアの起動及び改ざんの検知を順次行う起動ステップを更に有することを特徴とする請求項４記載のソフトウェア改ざん検知方法。
【請求項６】
前記起動ステップで前記ソフトウェアの改ざんを検知すると、各機能が必要とする前記ソフトウェアを表した依存リストに基づいて、改ざんを検知した前記ソフトウェアを必要としない機能に限定して機能を起動する限定起動ステップを更に有することを特徴とする請求項５記載のソフトウェア改ざん検知方法。
【請求項７】
当該機器の起動時に実行されるソフトウェアの改ざんを検知する機器であって、
前記ソフトウェアから一意に計算される算出値に基づく情報の暗号化及び復号を行う暗号化復号手段と、
前記ソフトウェアに含まれるブートローダ及びオペレーティングシステムから一意に計算される第１の算出値を当該機器の起動時の第１のタイミングに算出する第１算出手段と、
前記ブートローダ及びオペレーティングシステム以降に実行されるソフトウェアのうち予め設定された改ざん検知対象のソフトウェアから一意に計算される第２の算出値を当該機器の起動時の前記第１のタイミング後の第２のタイミングに算出する第２算出手段と、
前記ブートローダ及びオペレーティングシステムから一意に計算される算出値及び前記改ざん検知対象のソフトウェアから一意に計算される算出値に基づき前記暗号化復号手段により暗号化されている前記情報を、当該機器の起動時に算出した前記第１及び第２の算出値に基づき前記暗号化復号手段により復号し、前記情報の復号が失敗したときに、前記ブートローダ及びオペレーティングシステム又は前記改ざん検知対象のソフトウェアの改ざんを検知する検知手段と、
前記改ざん検知対象とするソフトウェアの設定を行う設定手段と、
前記設定手段により前記改ざん検知対象とするソフトウェアが変更された場合、前記ブートローダ及びオペレーティングシステムから一意に計算される算出値及び前記改ざん検知対象のソフトウェアから一意に計算される算出値に基づき前記暗号化復号手段により暗号化されている前記情報を復号し、前記変更に対応させて暗号化し直す更新手段と、
を有することを特徴とする機器。
【請求項８】
前記検知手段による前記情報の復号が成功した場合、予め設定された優先機能に対応するソフトウェアの起動順を表した起動設定リストに基づいて、前記ソフトウェアの起動及び改ざんの検知を順次行う起動手段を更に有することを特徴とする請求項７記載の機器。
【請求項９】
前記起動手段により前記ソフトウェアの改ざんを検知すると、各機能が必要とする前記ソフトウェアを表した依存リストに基づいて、改ざんを検知した前記ソフトウェアを必要としない機能に限定して機能を起動する限定起動手段を更に有することを特徴とする請求項８記載の機器。
【請求項１０】
当該機器の起動時に実行されるソフトウェアの改ざんを検知する機器であって、
前記ソフトウェアから一意に計算される算出値に基づく情報の暗号化及び復号を行う暗号化復号手段と、
前記ソフトウェアに含まれるブートローダ及びオペレーティングシステムから一意に計算される第１の算出値を当該機器の起動時の第１のタイミングに算出する第１算出手段と、
前記ブートローダ及びオペレーティングシステム以降に実行されるソフトウェアのうち改ざん検知対象とするソフトウェアを予め設定するための認証対象リストから一意に計算される第２の算出値を当該機器の起動時の前記第１のタイミング後の第２のタイミングに算出する第２算出手段と、
前記ブートローダ及びオペレーティングシステムから一意に計算される算出値及び前記認証対象リストから一意に計算される算出値に基づき前記暗号化復号手段により暗号化されている前記情報を、当該機器の起動時に算出した前記第１及び第２の算出値に基づき前記暗号化復号手段により復号し、前記情報の復号が失敗したときに、前記ブートローダ及びオペレーティングシステム又は前記認証対象リストの改ざんを検知する第１検知手段と、
前記情報の復号が成功したあと、前記改ざん検知対象のソフトウェアから一意に計算される第３の算出値を当該機器の起動時の前記第２のタイミング後の第３のタイミングに算出する第３算出手段と、
前記改ざん検知対象のソフトウェアから一意に計算される算出値に基づき前記暗号化復号手段により暗号化されている前記情報を、当該機器の起動時に算出した前記第３の算出値に基づき前記暗号化復号手段により復号し、前記情報の復号が失敗したときに、前記改ざん検知対象のソフトウェアの改ざんを検知する第２検知手段と、
前記改ざん検知対象とするソフトウェアの設定を行う設定手段と、
前記設定手段により前記認証対象リストが変更された場合、前記ブートローダ及びオペレーティングシステムから一意に計算される算出値及び前記認証対象リストから一意に計算される算出値に基づき前記暗号化復号手段により暗号化されている前記情報を復号し、前記変更に対応させて暗号化し直す更新手段と、
を有することを特徴とする機器。
【請求項１１】
前記第２検知手段による前記情報の復号が成功した場合、予め設定された優先機能に対応するソフトウェアの起動順を表した起動設定リストに基づいて、前記ソフトウェアの起動及び改ざんの検知を順次行う起動手段を更に有することを特徴とする請求項１０記載の機器。
【請求項１２】
前記起動手段により前記ソフトウェアの改ざんを検知すると、各機能が必要とする前記ソフトウェアを表した依存リストに基づいて、改ざんを検知した前記ソフトウェアを必要としない機能に限定して機能を起動する限定起動手段を更に有することを特徴とする請求項１１記載の機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア改ざん検知方法及び機器に係り、特に搭載されているソフトウェアの改ざんを検知するソフトウェア改ざん検知方法及び機器に関する。
【背景技術】
【０００２】
例えばファームウェア（ソフトウェア）が搭載された機器では、ファームウェアが不正に改ざんされた場合、ファームウェアの改ざんを検知できず、セキュリティの脆弱性が生じている状態で使い続けられてしまう危険性がある。
【０００３】
従来、ファームウェアが搭載された機器では、ファームウェアの改ざんを検知する仕組みが設けられていた（例えば特許文献１参照）。なお、ファームウェアの改ざんを検知するファームウェア改ざん検知方法としては、ハッシュ値によるファームウェア改ざん検知方法が良く知られている。
【特許文献１】特開２００７−３１８７３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来のファームウェア改ざん検知方法を利用する機器はファームウェアの改ざんを検知する処理により起動時間が遅くなってしまう。起動時間の速さよりもセキュリティを重視する機器の利用者であれば、従来のファームウェア改ざん検知方法を利用している機器であっても問題はない。
【０００５】
しかしながら、セキュリティよりも起動時間の速さを重視する利用者はファームウェアの改ざんを検知する処理により起動時間が遅くなってしまうと不便であった。本来、機器において、セキュリティ及び起動時間のどちらを優先させるかは、利用者によって異なるものである。
【０００６】
従来、セキュリティよりも起動時間の速さを重視する利用者にとってファームウェア改ざん検知方法を利用する機器は、起動時間を速くする場合、ファームウェアの改ざんを検知する処理を省略しなければならず、セキュリティと起動時間の速さとをバランス良く調整できないため、大変に不便であった。
【０００７】
このように、従来のファームウェア改ざん検知方法を利用する機器は、セキュリティと起動時間の速さとを調整するという観点から見ると、利用者にとって自由度が低く、必ずしも利便性の良いものではなかった。
【０００８】
本発明は、上記の点に鑑みなされたもので、利用者にとって自由度が高く、利便性の良いソフトウェア改ざん検知方法及び機器を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するため、本発明は、機器の起動時に実行されるソフトウェアの改ざんを前記機器が検知するソフトウェア改ざん検知方法であって、前記機器が、前記ソフトウェアから一意に計算される算出値に基づく情報の暗号化及び復号を行う暗号化復号手段を備えたものであり、前記ソフトウェアに含まれるブートローダ及びオペレーティングシステムから一意に計算される第１の算出値を前記機器の起動時の第１のタイミングに算出する第１算出ステップと、前記ブートローダ及びオペレーティングシステム以降に実行されるソフトウェアのうち予め設定された改ざん検知対象のソフトウェアから一意に計算される第２の算出値を前記機器の起動時の前記第１のタイミング後の第２のタイミングに算出する第２算出ステップと、前記ブートローダ及びオペレーティングシステムから一意に計算される算出値及び前記改ざん検知対象のソフトウェアから一意に計算される算出値に基づき前記暗号化復号手段により暗号化されている前記情報を、前記機器の起動時に算出した前記第１及び第２の算出値に基づき前記暗号化復号手段により復号し、前記情報の復号が失敗したときに、前記ブートローダ及びオペレーティングシステム又は前記改ざん検知対象のソフトウェアの改ざんを検知する検知ステップと、前記改ざん検知対象とするソフトウェアの設定を行う設定ステップと、前記設定ステップにより前記改ざん検知対象とするソフトウェアが変更された場合、前記ブートローダ及びオペレーティングシステムから一意に計算される算出値及び前記改ざん検知対象のソフトウェアから一意に計算される算出値に基づき前記暗号化復号手段により暗号化されている前記情報を復号し、前記変更に対応させて暗号化し直す更新ステップと、を有することを特徴とする。
【００１０】
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
【発明の効果】
【００１１】
本発明によれば、利用者にとって自由度が高く、利便性の良いソフトウェア改ざん検知方法及び機器を提供可能である。
【発明を実施するための最良の形態】
【００１２】
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。なお、本実施例では搭載されているファームウェア（ソフトウェア）の改ざんを検知する機器の一例として複合機を例に説明するが、ソフトウェアが搭載された組み込み機器等、如何なる機器であってもよい。
【００１３】
図１は本実施例の複合機を表した一例の構成図である。図１の複合機１は種々のハードウェア１０と、種々のソフトウェア１１と、複合機起動部１２とを含む構成である。
【００１４】
ハードウェア１０はプロッタ２１と、スキャナ２２と、その他のハードウェアリソース２３と、外部二次記憶装置Ｉ／Ｆ（インターフェース）２４と、ネットワークＩ／Ｆ２５と、機器に固有の暗号化復号装置２６と、機器の二次記憶装置２７とを含む構成である。
【００１５】
外部二次記憶装置Ｉ／Ｆ２４は、例えばＳＤカードを外部から接続する為のＳＤカードスロットのように何らかの二次記憶装置を外部から接続するＩ／Ｆである。ネットワークＩ／Ｆ２５は例えばインターネットやＬＡＮ等のネットワーク経由で外部サーバ等の二次記憶装置に接続するＩ／Ｆである。機器に固有の暗号化復号装置２６は、例えばセキュリティチップであるＴＰＭ（Trusted Platform Module）により実現される。なお、機器に固有の暗号化復号装置２６の詳細は後述する。
【００１６】
ソフトウェア１１は、種々のアプリケーション３１と、プラットフォーム３２とを含む構成である。プラットフォーム３２は、ルートファイルシステム５０と、汎用ＯＳ（オペレーティングシステム）５１とを含む構成である。ルートファイルシステム５０は、種々のモジュール５２と、各種設定ファイル５３とを含む構成である。汎用ＯＳ５１は、後述のブートローダ，診断プログラムを含んでいる。種々のアプリケーション３１と、種々のモジュール５２とは、ＵＮＩＸ（登録商標）等の汎用ＯＳ５１によりプロセス単位で並列的に実行される。
【００１７】
アプリケーション３１は、プリンタアプリ４１と、コピーアプリ４２と、ファックスアプリ４３と、スキャナアプリ４４と、ネットファイルアプリ４５と、改ざん検知アプリ４６と、ＲＲＵアプリ４７と、ＳＤＫアプリ４８と、サードベンダのＳＤＫアプリ４９とを含む構成である。ＳＤＫアプリ４８とサードベンダのＳＤＫアプリ４９とは、専用のＳＤＫ（ソフトウェア開発キット）を使用して開発されたプログラムである。なお、改ざん検知アプリ４６はアプリケーションレベルで改ざんを検知するものである。なお、図１において線で囲まれている部分６０は改ざんを検知する改ざん防止保護対象である。
【００１８】
複合機起動部１２は、複合機１の電源投入時に最初に実行される。これにより、複合機１では汎用ＯＳ５１が起動され、アプリケーション３１や種々のモジュール５２が起動される。種々のアプリケーション３１と種々のモジュール５２とを構成するプログラムはＨＤＤ（ハードディスクドライブ）やメモリカード等の機器の二次記憶装置２７に記憶されており、ＨＤＤやメモリカードから読み出されて、メモリ上で起動されることになる。
【００１９】
図２は機器に固有の暗号化復号装置の特徴について説明する為の模式図である。機器に固有の暗号化復号装置２６はルート鍵７１と、ＰＣＲ  Ｉ／Ｆ７２と、ＢＬＯＢ  Ｉ／Ｆ７３とを有するように構成されるハードウェアチップである。なお、機器に固有の暗号化復号装置２６はハードウェアが基板に直付けされており、且つ、取り外して別の機器に取り付けても利用できない。
【００２０】
ルート鍵７１は機器に固有の暗号化復号装置２６から取り出すことのできない暗号／復号鍵である。ルート鍵７１は後述のようにＢＬＯＢ（暗号化データ）を暗号化／復号する為に利用される。ＰＣＲ  Ｉ／Ｆ７２は指定したソフトウェアのハッシュ値（ダイジェスト値）を格納する為のＩ／Ｆである。ＢＬＯＢ  Ｉ／Ｆ７３は、機器に固有の暗号化復号装置２６へＢＬＯＢを渡すためのＩ／Ｆである。このように、機器に固有の暗号化復号装置２６はルート鍵７１及びソフトウェアのハッシュ値を用いた暗号化復号処理機能を有しており、後述のようにＢＬＯＢを暗号化／復号するものである。
【００２１】
図３はＢＬＯＢの特徴について説明する為の模式図である。ＢＬＯＢ８０は、改ざんされた複合機１（システム）からデータを保護する仕組みである。ＢＬＯＢ８０は、複合機１を構成するソフトウェア（モジュール）のハッシュ値（ＰＣＲ値）８１と、改ざんされた不正な複合機１から保護したいデータであるデバイス暗号鍵８２とを、機器に固有の暗号化復号装置２６が有するルート鍵７１で暗号化したものである。なお、デバイス暗号鍵８２はＨＤＤやメモリカード等の機器の二次記憶装置２７に記憶されるデータの暗号化や復号に利用される。
【００２２】
ＢＬＯＢ８０は、改ざんされていない複合機１でのみ、機器に固有の暗号化復号装置２６を用いて復号することができる。つまり、デバイス暗号鍵８２は改ざんされていない複合機１でのみ、ＢＬＯＢ８０から取り出される。デバイス暗号鍵８２は例えば図４に示す仕組みによりＢＬＯＢ８０から取り出される。
【００２３】
図４はＢＬＯＢからデバイス暗号鍵を取り出す仕組みを表した模式図である。図４のモジュール５２は「モジュール０」から「モジュール３」の順番に起動される。機器に固有の暗号化復号装置２６は、ＰＣＲ  Ｉ／Ｆ７２として「ＰＣＲ０」から「ＰＣＲ２」を有している。
【００２４】
ステップＳ１に進み、「モジュール０」は「モジュール１」のハッシュ値を算出し、算出したハッシュ値を「ＰＣＲ０」に設定する。ステップＳ２に進み、「モジュール１」は「モジュール２」のハッシュ値を算出して「ＰＣＲ１」に設定する。ステップＳ３に進み、「モジュール２」は「モジュール３」のハッシュ値を算出して「ＰＣＲ２」に設定する。
【００２５】
ステップＳ４に進み、機器に固有の暗号化復号装置２６はＢＬＯＢ  Ｉ／Ｆ７３からＢＬＯＢ８０を渡される。ステップＳ５に進み、機器に固有の暗号化復号装置２６はルート鍵７１でＢＬＯＢ８０を復号する。ステップＳ６に進み、機器に固有の暗号化復号装置２６は復号したＰＣＲ値８１「ＰＣＲ０」から「ＰＣＲ２」と、ステップＳ１〜Ｓ３で設定したＰＣＲ値とを比較する。
【００２６】
ステップＳ７に進み、機器に固有の暗号化復号装置２６は復号したＰＣＲ値８１「ＰＣＲ０」から「ＰＣＲ２」と、ステップＳ１〜Ｓ３で設定したＰＣＲ値とが一致した場合のみ、デバイス暗号鍵８２を取り出し、出力する。
【００２７】
なお、図４に示した仕組みでは、アップデート等でモジュール５２の構成が変わってしまうとＢＬＯＢ８０からデバイス暗号鍵８２を取り出せなくなる。そこで、ＢＬＯＢ８０はアップデート等でモジュール５２の構成が変わってしまうとき、図５及び図６に示すように取り扱われる。
【００２８】
図５はアップデート等でソフトウェアの構成が変わってしまう場合のＢＬＯＢの取り扱いを表した模式図である。図６はアップデート等でソフトウェアの構成が変わってしまう場合のＢＬＯＢの取り扱いを表したフローチャートである。
【００２９】
ステップＳ１０に進み、複合機１はソフトウェアを構成する種々のファイルの更新を行う。ステップＳ１１に進み、モジュール５２の一つであるシステム管理モジュールはＢＬＯＢ８０をＢＬＯＢ８０Ａに更新する。ステップＳ１１の処理はステップＳ１１−１〜Ｓ１１−３に分けることができる。
【００３０】
ステップＳ１１−１に進み、システム管理モジュールは、改ざんされた不正な複合機１から保護したいデータがデバイス暗号鍵８２であるＢＬＯＢ（以下、デバイス暗号鍵ＢＬＯＢという）８０を読み出し、復号を行う。ステップＳ１１−２に進み、システム管理モジュールは新しいソフトウェアの構成の新しいＰＣＲ値を算出する。
【００３１】
例えば図５は「モジュール２」がアップデート等で変わってしまった例を表しているものであり、「モジュール２」の新しいＰＣＲ値「ＹＹＹ」が算出されている。ステップＳ１１−３に進み、システム管理モジュールはステップＳ１１−２で算出した新しいＰＣＲ値を用いてデバイス暗号鍵８２の再暗号化を行い、デバイス暗号鍵ＢＬＯＢ８０をデバイス暗号鍵ＢＬＯＢ８０Ａに更新する。
【００３２】
ステップＳ１２に進み、システム管理モジュールはデバイス暗号鍵ＢＬＯＢ８０をデバイス暗号鍵ＢＬＯＢ８０Ａに更新した処理の結果を利用者に通知した後、図６に示す処理を終了する。
【００３３】
図７はルートファイルシステムの詳細を示す説明図である。ルートファイルシステム５０は、ファイル管理用データとファイルデータとを有している。ファイル管理用データはファイルを管理する為のデータ（各ファイルの日付、サイズ、アクセス権など）が格納されている。
【００３４】
ルートファイルシステムとは、起動に最低限必要なファイルが格納されたファイルシステムである。また、ルートファイルシステムそのものをファイル化したものは、ルートファイルシステムイメージと呼ばれる。例えば図７に示したルートファイルシステムは種々のモジュール５２と、各種設定ファイル５３とが、それぞれファイルとして存在し、それぞれのファイルを管理する為のファイル管理用データが存在している。
【００３５】
（問題点の提起）
次に、従来の複合機１における問題点を提起する。図８は従来の複合機を表した一例のハードウェア構成図である。図８の複合機１は、機器に固有の暗号化復号装置２６，ＣＰＵ９０，揮発性メモリ９１，ＡＳＩＣ９２，エンジンコントローラ９３，不揮発メモリ９４，ネットワークデバイス（network device）９５，ｓｄカードＩ／Ｆ９６，操作パネル９７を有する構成である。このように、複合機１は一般的なコンピュータに類似の構成を含んでいる。
【００３６】
特徴的な部分として、図８の複合機１はローカルバス上に、機器に固有の暗号化復号装置２６が搭載されており、データの暗号化やファームウェアの改ざんを検知する機能を提供できる構成となっている。しかし、図８の複合機１はリソースの制約から不揮発メモリ９４のサイズが小さく、不揮発メモリ９４にルートファイルシステム５０をそのまま保存することができない。このため、従来の複合機１はルートファイルシステムイメージを圧縮して不揮発メモリ９４に保存している。不揮発メモリ９４に保存されている圧縮されたルートファイルシステムイメージは、複合機１の起動時に伸張されたあとで揮発性メモリ９１に展開される。
【００３７】
図９は、搭載されているファームウェアの改ざんを検知する従来の複合機における第１の問題点を説明する模式図である。図９の複合機１はブートローダ１１０，ブートローダ１１１，診断プログラム１１２，汎用ＯＳ５１の順番に起動される。機器に固有の暗号化復号装置２６は、ＰＣＲ  Ｉ／Ｆ７２として「ＰＣＲ０」から「ＰＣＲｎ」を有する。
【００３８】
まず、複合機１は電源ＯＮ時にブートローダ１１０を実行する。ブートローダ１１０はサイズの小さなプログラムであり、ブートローダ１１１を起動する。ブートローダ１１１は起動された後、ステップＳ２１に進み、ブートローダ１１０のＰＣＲ値を計算する。
【００３９】
ステップＳ２２に進み、ブートローダ１１１はブートローダ１１０のＰＣＲ値を「ＰＣＲ０」に格納する。ステップＳ２３に進み、ブートローダ１１１は診断プログラム１１２のＰＣＲ値を計算する。ステップＳ２４に進み、ブートローダ１１１は診断プログラム１１２のＰＣＲ値を「ＰＣＲ１」に格納する。ステップＳ２５に進み、診断プログラム１１２は汎用ＯＳ５１のＰＣＲ値を計算する。ステップＳ２６に進み、診断プログラム１１２は汎用ＯＳ５１のＰＣＲ値を「ＰＣＲ２」に格納する。
【００４０】
ステップＳ２７に進み、汎用ＯＳ５１は、圧縮されたルートファイルシステムイメージ１００のＰＣＲ値を計算する。ステップＳ２８に進み、汎用ＯＳ５１は圧縮されたルートファイルシステムイメージ１００のＰＣＲ値を「ＰＣＲｎ」に格納する。また、ステップＳ２９では圧縮されたルートファイルシステムイメージ１００を伸張する。ステップＳ３０では、伸張したルートファイルシステムを揮発性メモリ９１に展開する。ステップＳ３１では、揮発性メモリ９１に展開されたルートファイルシステム上のソフトウェア（例えば種々のモジュール５２）が起動される。
【００４１】
ところで、圧縮されたルートファイルシステムイメージ１００は、最低でも数１０ＭＢの大きさである。このため、ステップＳ２７の処理には時間が掛かる。また、圧縮されたルートファイルシステムイメージ１００の伸張を行うステップＳ２９の処理及び伸張したルートファイルシステムを揮発性メモリ９１へ展開するステップＳ３０の処理にも、時間が掛かる。結果として、従来の複合機１は起動時間が遅くなるという問題があった。
【００４２】
図１０は搭載されているファームウェアの改ざんを検知する従来の複合機における第２の問題点を説明する模式図である。図１０は揮発性メモリ９１に展開されたルートファイルシステム上のモジュール５２が起動される様子を表している。
【００４３】
従来の複合機１は、モジュール５２の起動順が常に一定である。例えば図１０の場合はモジュール５２が「モジュール１」，「モジュール２」，「モジュール３」，・・・，「モジュールｎ」の順番に起動及び改ざんチェックされる。このため、従来の複合機１では、起動の遅いモジュール５２に依存した機能を急いで使いたい場合等に、不便が生じるという問題があった。
【００４４】
図１１は搭載されているファームウェアの改ざんを検知する従来の複合機における第３の問題点を説明する模式図である。従来の複合機１は、ファームウェアの改ざんを検知したあと、改ざんの影響範囲にかかわらず、機器全体が停止される。図１１は「モジュール２」に対する改ざんを検知したあと、「モジュール３」以降の全てのモジュールの起動を停止した複合機１の例である。このため、従来の複合機１では「モジュール２」と全く関連しない機能も使用できなくなる。利用者からみたとき、「モジュール２」と全く関連しない機能も使用できなくなるのは不便であり、問題があった。
【００４５】
図１２は、搭載されているファームウェアの改ざんを検知する従来の複合機における第４の問題点を説明する模式図である。図１２の複合機１はローカルバス上に、脱着可能なネットワークオプションカード９８が接続されている。しかし、ネットワークオプションカード９８のファームウェアの改ざんの検知は通常実施できない。これは、複合機１側からネットワークオプションカード９８のファームウェア格納領域へのアクセスが認められておらず、ファームウェアの改ざんの有無を判定できないからである。このため、従来の複合機１ではネットワークオプションカード９８のファームウェアが改ざんの検知の対象外という問題があった。
【００４６】
（問題点に対する対策）
次に、複合機１の問題点に対する対策を提案する。図１３は、搭載されているファームウェアの改ざんを検知する本実施例の複合機における第１の問題点に対する対策を説明する模式図である。なお、ステップＳ４１以前の処理は図９のステップＳ２１〜Ｓ２６の処理と同様であるため、省略している。
【００４７】
ステップＳ４１に進み、汎用ＯＳ５１は不揮発メモリ９４に保存されたルートファイルシステム１００Ａから認証対象ファイルリスト１０２を取得する。認証対象ファイルリスト１０２は、ルートファイルシステム１００Ａに存在するファイルのうち、改ざんを検知するファイルが設定されている。汎用ＯＳ５１はステップＳ４２に進み、認証対象ファイルリスト１０２に書かれたファイルのＰＣＲ値を計算する。
【００４８】
ステップＳ４３に進み、汎用ＯＳ５１は認証対象ファイルリスト１０２に書かれたファイルのＰＣＲ値を「ＰＣＲｎ」に格納する。そして、ステップＳ４４に進み、揮発性メモリ９１に展開されているルートファイルシステム１００Ａ上のソフトウェア（例えば種々のモジュール５２）が起動される。
【００４９】
図１３では、伸張済みのルートファイルシステム１００Ａを、そのまま使える形で不揮発メモリ９４に書き込んでいる。不揮発メモリ９４に保存されているルートファイルシステム１００Ａにそのままアクセス可能なため、図１３では圧縮されたルートファイルシステムイメージの伸張を行う処理，伸張したルートファイルシステムを揮発性メモリ９１へ展開する処理が不要となる。したがって、図１３の複合機１では起動時間を速めることができる。
【００５０】
また、図１３の複合機１ではセキュリティよりも起動時間の速さを重視したい利用者が改ざんをチェックするファームウェアの範囲を設定可能である。これにより、図１３の複合機１では利用者が希望しないファームウェアの改ざんチェックをしないように設定できるため、起動時間を速めることができ、起動時間の速さよりもセキュリティを重視する利用者の利便性が向上する。
【００５１】
次に、搭載されているファームウェアの改ざんを検知する本実施例の複合機における第２の問題点に対する対策を説明する。本実施例の複合機１はルートファイルシステム１００Ａに「それぞれの機能を優先的に立ち上げようとしたとき、指定の機能が最も速く使えるようにするためのモジュール５２の起動順」をまとめたファイルである起動設定リストを保持する。
【００５２】
図１４は起動設定リストの一例の構成図である。図１４の起動設定リストは、コピー機能，プリンタ機能，ＦＡＸ機能，スキャナ機能が、それぞれ最も速く使えるようにするためのモジュール５２の起動順が設定されている。例えばコピー機能を優先的に立ち上げようとしたとき、本実施例の複合機１は図１４の起動設定リストに従い、図１５に示す起動順でモジュール５２を起動する。図１５は起動設定リストに従ったモジュールの起動順を表した模式図である。図１５では起動設定リストに従って「モジュール１」，「モジュール２」，「モジュール７」，・・・，「モジュール８」の順番で起動されている。
【００５３】
優先して立ち上げたい機能は、利用者がユーザＩ／Ｆである操作パネル９７等から設定できる。利用者により設定された優先して立ち上げた機能は、優先機能ファイルに設定される。したがって、本実施例の複合機１では、利用者が優先的に立ち上げたい機能を最も速く立ち上げることができる。
【００５４】
次に、搭載されているファームウェアの改ざんを検知する本実施例の複合機における第３の問題点に対する対策を説明する。本実施例の複合機１はルートファイルシステム１００Ａに「それぞれの機能が、どのモジュール５２を必要とするか」をまとめたファイルである依存アプリリストを保持する。
【００５５】
図１６は、依存アプリリストの一例の構成図である。図１６の依存アプリリストは、コピー機能，プリンタ機能，ＦＡＸ機能，スキャナ機能が、それぞれ必要とするモジュール５２が設定されている。例えば「モジュール３」の改ざんを検知したとき、本実施例の複合機１は図１６の依存アプリリストに従い、「モジュール３」を必要としないコピー機能及びＦＡＸ機能に限定して図１７のように起動動作を継続する。
【００５６】
図１７は依存アプリリストに従ったモジュールの起動順を表した模式図である。図１５では、「モジュール３」の改ざんを検知すると、「モジュール４」以降のモジュール５２のうちコピー機能及びＦＡＸ機能が必要とするモジュール５２を依存アプリリストに従って立ち上げる。つまり、コピー機能及びＦＡＸ機能が必要としないモジュール５２は立ち上げない。
【００５７】
したがって、本実施例の複合機１では、改ざんを検知したモジュール５２に関連のない機能で限定的に起動できる。
【００５８】
図１８は、搭載されているファームウェアの改ざんを検知する本実施例の複合機における第４の問題点に対する対策を説明する模式図である。図１８の複合機１は図１２の複合機１と同様、脱着可能なネットワークオプションカード９８が接続されている。
【００５９】
ネットワークオプションカード９８は、複合機１側からファームウェア格納領域１０４へのアクセスを認めていないが、複合機１側からのアクセスを認めているアクセス可能領域１０３を有している。そこで、本実施例の複合機１ではネットワークオプションカード９８側でファームウェア格納領域１０４に格納されているファームウェアのＰＣＲ値を予め算出しておき、算出したＰＣＲ値をアクセス可能領域１０３に格納しておく。
【００６０】
したがって、複合機１はネットワークオプションカード９８のアクセス可能領域１０３から、ファームウェア格納領域１０４に格納されているファームウェアのＰＣＲ値を取得することができ、ネットワークオプションカード９８のファームウェアを改ざんの検知の対象とすることができる。
【００６１】
以下では、搭載されているファームウェアの改ざんを検知する本実施例の複合機１における上記した第１〜４の問題点に対する対策について、以下の実施例で具体的に説明していく。
【実施例１】
【００６２】
図１９は、本実施例の複合機を表した一例のハードウェア構成図である。図１９の複合機１は、機器に固有の暗号化復号装置２６，ＣＰＵ９０，揮発性メモリ９１，ＡＳＩＣ９２，エンジンコントローラ９３，不揮発メモリ９４Ａ，ネットワークデバイス９５，ｓｄカードＩ／Ｆ９６，操作パネル９７を有する構成である。このように、複合機１は一般的なコンピュータに類似の構成を含んでいる。図１９の複合機１の構成は、複合機１の不揮発メモリ９４が大容量の不揮発メモリ９４Ａに置き換えられている点で、図８の構成と異なっている。大容量の不揮発メモリ９４Ａとしては、近年、入手が容易となったＵＳＢフラッシュメモリなどを利用できる。
【００６３】
本実施例の複合機１はリソースの制約から解放され、ルートファイルシステム１００Ａをそのまま保存することができる大容量の不揮発メモリ９４Ａを利用することで、ルートファイルシステムイメージを圧縮して保存する必要がなく、ルートファイルシステム１００Ａを、そのまま使える形で不揮発メモリ９４Ａに書き込んでおける。
【００６４】
このため、本実施例の複合機１は圧縮されたルートファイルシステムイメージ１００の伸張を行う処理，伸張したルートファイルシステム１００Ａを揮発性メモリ９１へ展開する処理が不要となる。従って、図１９の複合機１では起動時間を速めることができる。
【００６５】
本来、複合機１において、セキュリティ及び起動時間のどちらを優先させるかは、利用者によって異なるものである。そこで、本実施例の複合機１では利用者がユーザＩ／Ｆである操作パネル９７等から改ざんチェックする範囲を設定できるようにしている。図２０は利用者に改ざんチェックする範囲を設定させるユーザインタフェース（ＵＩ）の一例のイメージ図である。ＵＩ２００は、改ざんチェックする範囲として、「改ざんチェックをしない」，「ソフトウェアのみ」，「ソフトウェア，設定ファイル」，「全て」の何れかを利用者に選択させる例である。
【００６６】
複合機１は、ＵＩ２００から利用者に設定させた改ざんチェックする範囲を、図２１に示す手順に従って反映させる。図２１は、ＵＩから利用者に設定させた改ざんチェックする範囲を反映させる処理手順を表したシーケンス図である。
【００６７】
ステップＳ５１に進み、利用者は操作パネル９７を操作し、図２０のＵＩ２００から改ざんチェックする範囲（改ざんチェック範囲）を選択する。ステップＳ５２に進み、操作パネル９７は、利用者に選択された改ざんチェック範囲の設定反映要求をセキュリティモジュール５２−１に対して行う。
【００６８】
ステップＳ５３に進み、セキュリティモジュール５２−１は、不揮発メモリ９４Ａに保存されている認証対象ファイルリスト１０２へ利用者に選択された改ざんチェック範囲を設定値として書き込む。
【００６９】
ステップＳ５４に進み、セキュリティモジュール５２−１は不揮発メモリ９４Ａからデバイス暗号鍵ＢＬＯＢ８０を読み出す。ステップＳ５５に進み、セキュリティモジュール５２−１は機器に固有の暗号化復号装置２６にＢＬＯＢ  Ｉ／Ｆ７３からデバイス暗号鍵ＢＬＯＢ８０を渡す。
【００７０】
ステップＳ５６に進み、機器に固有の暗号化復号装置２６はルート鍵７１でデバイス暗号鍵ＢＬＯＢ８０を復号する。ここでは、前述したように、復号したＰＣＲ値８１と機器に固有の暗号化復号装置２６に設定されているＰＣＲ値７２とが一致し、デバイス暗号鍵８２の取り出しに成功したものとする。ステップＳ５７に進み、機器に固有の暗号化復号装置２６は、デバイス暗号鍵ＢＬＯＢ８０から取り出したデバイス暗号鍵８２をセキュリティモジュール５２−１に送信する。
【００７１】
ステップＳ５８に進み、セキュリティモジュール５２−１は認証対象ファイルリスト１０２に書かれた改ざんチェック範囲のファイルのＰＣＲ値を計算する。ステップＳ５９に進み、セキュリティモジュール５２−１は、デバイス暗号鍵８２とステップＳ５８で計算したＰＣＲ値とを、機器に固有の暗号化復号装置２６に渡す。
【００７２】
ステップＳ６０に進み、機器に固有の暗号化復号装置２６はステップＳ５８で計算したＰＣＲ値を用いてデバイス暗号鍵８２の暗号化を行い、デバイス暗号鍵ＢＬＯＢ８０Ａを得る。ステップＳ６１に進み、機器に固有の暗号化復号装置２６はデバイス暗号鍵ＢＬＯＢ８０Ａをセキュリティモジュール５２−１に送信する。
【００７３】
そして、ステップＳ６２に進み、セキュリティモジュール５２−１は機器に固有の暗号化復号装置２６から受信したデバイス暗号鍵ＢＬＯＢ８０Ａを不揮発メモリ９４Ａに保存して図２１に示す処理を終了する。
【００７４】
なお、ステップＳ５４〜Ｓ６２の処理は認証対象ファイルリスト１０２の変更により改ざんチェック範囲のファイルが変わってしまうため、改ざんチェック範囲のファイルの変更に対応させて、デバイス暗号鍵ＢＬＯＢ８０のＰＣＲ値８１をデバイス暗号鍵ＢＬＯＢ８０ＡのＰＣＲ値８１Ａに更新するものである。
【００７５】
ステップＳ５４〜Ｓ６２の処理により、本実施例の複合機１では改ざんチェック範囲のファイルが変わっても、更新されたデバイス暗号鍵ＢＬＯＢ８０Ａからデバイス暗号鍵８２を取り出せる。
【００７６】
本実施例の複合機１は、図２２に示すように、改ざんチェック範囲のファイルに対して改ざん検知を行う。図２２は、本実施例の複合機が行う改ざんを検知する処理を表した模式図である。図２２の複合機１は、ブートローダ１１０，ブートローダ１１１，診断プログラム１１２，汎用ＯＳ５１の順番に起動される。なお、機器に固有の暗号化復号装置２６はＰＣＲ  Ｉ／Ｆ７２として「ＰＣＲ０」から「ＰＣＲｎ」を有している。
【００７７】
まず、複合機１は電源ＯＮ時にブートローダ１１０を実行する。ブートローダ１１０はサイズの小さなプログラムであり、ブートローダ１１１を起動する。ブートローダ１１１は起動された後、ステップＳ７１に進み、ブートローダ１１０のＰＣＲ値を計算する。
【００７８】
ステップＳ７２に進み、ブートローダ１１１はブートローダ１１０のＰＣＲ値を「ＰＣＲ０」に格納する。ステップＳ７３に進み、ブートローダ１１１は診断プログラム１１２のＰＣＲ値を計算する。ステップＳ７４に進み、ブートローダ１１１は診断プログラム１１２のＰＣＲ値を「ＰＣＲ１」に格納する。ステップＳ７５に進み、診断プログラム１１２は汎用ＯＳ５１のＰＣＲ値を計算する。ステップＳ７６に進み、診断プログラム１１２は汎用ＯＳ５１のＰＣＲ値を「ＰＣＲ２」に格納する。
【００７９】
汎用ＯＳ５１は、ステップＳ７７に進み、不揮発メモリ９４Ａに保存されているルートファイルシステム１００Ａから認証に必要な４ファイル（認証対象ファイルリスト，起動設定リスト，優先機能ファイル，依存アプリリスト）を取得する。
【００８０】
ステップＳ７８に進み、汎用ＯＳ５１はステップＳ７７で取得した４ファイルのＰＣＲ値を計算し、機器に固有の暗号化復号装置２６の「ＰＣＲｎ」に格納し、デバイス暗号鍵ＢＬＯＢ８０を用いて上記の４ファイルの認証を行う。デバイス暗号鍵ＢＬＯＢ８０からデバイス暗号鍵８２を取り出すことができれば、汎用ＯＳ５１は認証に必要な４ファイルが改ざんされていないことを確認できる。
【００８１】
ステップＳ７９に進み、汎用ＯＳ５１はステップＳ７８で認証し、改ざんされていないことを確認した認証対象ファイルリスト１０２に書かれているファイルを対象にＰＣＲ値を計算する。ステップＳ８０に進み、汎用ＯＳ５１は認証対象ファイルリスト１０２に書かれたファイルのＰＣＲ値を「ＰＣＲｎ」に格納し、デバイス暗号鍵ＢＬＯＢ８０を用いて認証対象ファイルリスト１０２に書かれたファイルの認証を行う。デバイス暗号鍵ＢＬＯＢ８０からデバイス暗号鍵８２を取り出すことができれば、汎用ＯＳ５１は認証対象ファイルリスト１０２に書かれたファイルが改ざんされていないことを確認できる。
【００８２】
なお、ステップＳ７８で利用するデバイス暗号鍵ＢＬＯＢ８０とステップＳ８０で利用するデバイス暗号鍵ＢＬＯＢ８０とは、それぞれ認証するファイルに対応させた別のものである。ステップＳ８１に進み、揮発性メモリ９１に展開されているルートファイルシステム１００Ａ上のソフトウェアが起動される。
【００８３】
更に、ステップＳ７７〜Ｓ８１の処理について図２３のシーケンス図を参照しつつ説明する。図２３はステップＳ７７〜Ｓ８１の処理手順を表したシーケンス図である。
【００８４】
ステップＳ７７に進み、汎用ＯＳ５１は不揮発メモリ９４Ａに保存されたルートファイルシステム１００Ａから認証に必要な４ファイル（ファイルシステムチェックツール）を取得する。ステップＳ７８Ａに進み、汎用ＯＳ５１はステップＳ７７で取得した４ファイルのＰＣＲ値を計算する。ステップＳ７８Ｂに進み、汎用ＯＳ５１はステップＳ７８Ａで計算したＰＣＲ値を機器に固有の暗号化復号装置２６の「ＰＣＲｎ」に格納し、デバイス暗号鍵ＢＬＯＢ８０を用いて、上記の４ファイルの認証を行う。ここでは、デバイス暗号鍵ＢＬＯＢ８０からデバイス暗号鍵８２を取り出すことができ、上記の４ファイルが改ざんされていないことを確認できたものとする。
【００８５】
ステップＳ７９Ａに進み、汎用ＯＳ５１はステップＳ７８Ｂで認証し、改ざんされていないことを確認した認証対象ファイルリスト（改ざんチェック範囲リスト）１０２を不揮発メモリ９４Ａから読み出す。ステップＳ７９Ｂに進み、汎用ＯＳ５１は認証対象リスト１０２から一つずつファイル名を取り出す。
【００８６】
ステップＳ７９Ｃに進み、汎用ＯＳ５１はステップＳ７９Ｂで取り出したファイル名のファイルを不揮発メモリ９４Ａから読み出し、ＰＣＲ値を計算する。そして、ステップＳ７９Ｅに進み、汎用ＯＳ５１は認証対象リスト１０２の全てのファイルのＰＣＲ値を計算したか否かを判定する。認証対象リスト１０２のファイルのうち、ＰＣＲ値を計算していないファイルが残っていれば、汎用ＯＳ５１はステップＳ７９Ｂに戻り処理を続ける。
【００８７】
認証対象リスト１０２のファイルのうち、ＰＣＲ値を計算していないファイルが残っていなければ、汎用ＯＳ５１はステップＳ８０に進み、認証対象ファイルリスト１０２に書かれたファイルのＰＣＲ値を「ＰＣＲｎ」に格納し、デバイス暗号鍵ＢＬＯＢ８０を用いて、認証対象ファイルリスト１０２に書かれたファイルの認証を行う。
【００８８】
図２２ではルートファイルシステム１００Ａを、そのまま使える形で不揮発メモリ９４Ａに書き込んでいる。ルートファイルシステム１００Ａには、上記の４ファイル（認証対象ファイルリスト，起動設定リスト，優先機能ファイル，依存アプリリスト）が存在している。本実施例の複合機１は、まず、上記の４ファイルのＰＣＲ値を計算し、起動時の認証に必要な４ファイルに改ざんが無いことを確認する。そして、上記の４ファイルに改ざんが無く、正当であれば、本実施例の複合機１は認証対象リスト１０２に書かれたファイルを対象としてルートファイルシステム１００Ａの認証を行う。なお、本実施例の複合機１では利用者が操作パネル９７から改ざんチェックする範囲を設定できる。
【００８９】
図２４は利用者が優先的に立ち上げたい機能を選ぶＵＩの一例のイメージ図である。ＵＩ２４０は、優先的に立ち上げたい機能として「コピー機能」，「ＦＡＸ機能」，「プリンタ機能」，「スキャナ機能」の何れかを利用者に選択させる例である。本実施例の複合機１はＵＩ２４０から利用者に設定させた利用者が優先的に立ち上げたい機能を、図２５に示す手順に従って反映させる。
【００９０】
図２５は、ＵＩから利用者に設定させた優先的に立ち上げたい機能を反映させる処理手順を表したシーケンス図である。ステップＳ９１に進み、利用者は操作パネル９７を操作して、図２４のＵＩ２４０から優先的に立ち上げたい機能を選択する。ステップＳ９２に進み、操作パネル９７は、利用者に選択された優先的に立ち上げる機能の設定反映要求をセキュリティモジュール５２−１に対して行う。
【００９１】
ステップＳ９３に進み、セキュリティモジュール５２−１は、不揮発メモリ９４Ａに保存されている後述の優先機能ファイルへ、利用者に選択された優先的に立ち上げる機能を書き込む。ステップＳ９４に進み、セキュリティモジュール５２−１は不揮発メモリ９４Ａからデバイス暗号鍵ＢＬＯＢ８０を読み出す。ステップＳ９５に進み、セキュリティモジュール５２−１は機器に固有の暗号化復号装置２６にＢＬＯＢ  Ｉ／Ｆ７３からデバイス暗号鍵ＢＬＯＢ８０を渡す。
【００９２】
ステップＳ９６に進み、機器に固有の暗号化復号装置２６はルート鍵７１でデバイス暗号鍵ＢＬＯＢ８０を復号する。ここでは、前述したように、復号したＰＣＲ値８１と機器に固有の暗号化復号装置２６に設定されているＰＣＲ値７２とが一致し、デバイス暗号鍵８２の取り出しに成功したものとする。ステップＳ９７に進み、機器に固有の暗号化復号装置２６は、デバイス暗号鍵ＢＬＯＢ８０から取り出したデバイス暗号鍵８２をセキュリティモジュール５２−１に送信する。
【００９３】
ステップＳ９８に進み、セキュリティモジュール５２−１は利用者に選択された優先的に立ち上げる機能に応じたＰＣＲ値を後述の起動設定リストを用いて算出する。ステップＳ９９に進み、セキュリティモジュール５２−１は、デバイス暗号鍵８２とステップＳ９８で計算したＰＣＲ値とを、機器に固有の暗号化復号装置２６に渡す。
【００９４】
ステップＳ１００に進み、機器に固有の暗号化復号装置２６はステップＳ９８で計算したＰＣＲ値を用いてデバイス暗号鍵８２の暗号化を行い、デバイス暗号鍵ＢＬＯＢ８０Ａを得る。ステップＳ１０１に進み、機器に固有の暗号化復号装置２６はデバイス暗号鍵ＢＬＯＢ８０Ａをセキュリティモジュール５２−１に送信する。
【００９５】
そして、ステップＳ１０２に進み、セキュリティモジュール５２−１は機器に固有の暗号化復号装置２６から受信したデバイス暗号鍵ＢＬＯＢ８０Ａを不揮発メモリ９４Ａに保存して図２５に示す処理を終了する。
【００９６】
なお、ステップＳ９４〜Ｓ１０２の処理は利用者に選択された優先的に立ち上げる機能によりＰＣＲ値が変わってしまうため、利用者に選択された優先的に立ち上げる機能に対応させて、デバイス暗号鍵ＢＬＯＢ８０のＰＣＲ値８１をデバイス暗号鍵ＢＬＯＢ８０ＡのＰＣＲ値８１Ａに更新するものである。
【００９７】
ステップＳ９４〜Ｓ１０２の処理により、本実施例の複合機１では優先的に立ち上げる機能が変わっても、更新されたデバイス暗号鍵ＢＬＯＢ８０Ａからデバイス暗号鍵８２を取り出せる。
【００９８】
認証対象ファイルリスト１０２に書かれたファイルによりルートファイルシステム１００Ａの認証を行ったあと、本実施例の複合機１は図２６，図２７のフローチャートに示す手順でモジュール５２を立ち上げる。
【００９９】
図２６，図２７はルートファイルシステムの認証後に、モジュール５２を立ち上げる処理を表したフローチャートである。ステップＳ１１０に進み、汎用ＯＳ５１は図２８に示す優先機能ファイルを読み出し、優先的に立ち上げる機能を判定する。図２８は利用者に選択された優先的に立ち上げる機能が書かれている優先機能ファイルの一例の構成図である。
【０１００】
ステップＳ１１１に進み、汎用ＯＳ５１は図２９に示される起動設定リストのうち、優先機能ファイルに書かれている優先的に立ち上げる機能に対応したモジュール５２の起動順を取得する。図２９は起動設定リストの一例の構成図である。図２９の起動設定リストは例えば優先機能ファイルに書かれている優先的に立ち上げる機能が「コピー機能」であるときに、モジュール５２の起動順を「モジュール１，モジュール２，モジュール３，モジュール４，モジュール５」とすることを表している。
【０１０１】
なお、図２９の起動設定リストは、優先機能ファイルに書かれている優先的に立ち上げる機能が「コピー機能」であるとき、「モジュール１〜５」の全てを立ち上げるが、必ずしも「コピー機能」が「モジュール１〜５」の全てを必要とするものではない。本実施例の複合機１において優先機能ファイルに書かれている優先的に立ち上げる機能は、複数の機能のうち、どれを最初に使えるようにするのかを選択するものである。
【０１０２】
ステップＳ１１２に進み、汎用ＯＳ５１は、ステップＳ１１１で取得したモジュール５２の起動順を全て消化するまで、ステップＳ１１３の起動すべき機能（起動すべきアプリケーション）の認証実行処理を繰り返し行う。ステップＳ１１３では、起動すべき機能をループ１回につき順番に１つずつ取り出して、図２７に示す認証実行処理を行う。
【０１０３】
図２７のステップＳ１２０に進み、汎用ＯＳ５１は図３０に示した機能改ざんチェックフラグを参照し、改ざん検知されていない機能で必要なアプリケーションであるか否かを判定する。図３０は機能改ざんチェックフラグの一例の構成図である。なお、機能改ざんチェックフラグは、モジュール５２の改ざんによって使用できなくなった機能を記録することを目的としたフラグである。
【０１０４】
改ざん検知されていない機能で必要なアプリケーションであれば、汎用ＯＳ５１は、ステップＳ１２１に進み、該当アプリケーションのＰＣＲ値を計算する。汎用ＯＳ５１はステップＳ１２２に進み、ステップＳ１２１で算出したＰＣＲ値でデバイス暗号鍵ＢＬＯＢ８０の復号を試みる。
【０１０５】
なお、ステップＳ１２１で利用するデバイス暗号鍵ＢＬＯＢ８０はステップＳ１１１で取得したモジュール５２の起動順に対応させた、前述のステップＳ７８，Ｓ８０で利用するデバイス暗号鍵ＢＬＯＢ８０と別のものである。
【０１０６】
ステップＳ１２１で算出したＰＣＲ値によりデバイス暗号鍵ＢＬＯＢ８０の復号ができれば該当アプリケーションの改ざんを検知しなかったため、汎用ＯＳ５１はステップＳ１２５に進み、モジュール５２を起動し、図２７の処理を終了する。該当アプリケーションの改ざんを検知すると、汎用ＯＳ５２はステップＳ１２３に進み、図３１に示される依存アプリリストを参照し、改ざんされたモジュール５２を必要としている機能を調べる。図３１は依存アプリリストの一例の構成図である。
【０１０７】
例えば図３１に示した依存アプリリストはコピー機能で必要なアプリケーションが「モジュール１，モジュール２，モジュール３」であることを表している。また、図３１に示した依存アプリリストは「モジュール４」が改ざんされた場合、プリンタ機能，スキャナ機能に影響することを表している。
【０１０８】
ステップＳ１２４に進み、汎用ＯＳ５１は改ざんを検知したモジュール５２によって使用できなくなった機能のフラグを「ＮＧ」にした後、図２７の処理を終了する。なお、図２７中、ステップＳ１２３，Ｓ１２４の処理は、機能改ざんチェックフラグを更新する処理である。ステップＳ１２３，Ｓ１２４の処理により、複合機１はモジュール５２の改ざんにより使えなくなった機能を判別できるようになる。
【０１０９】
このように、本実施例の複合機１はルートファイルシステム１００Ａの認証後、起動設定リスト，優先機能ファイルからモジュールの起動順を判定し、その起動順にモジュールを立ち上げることができ、利用者に選択された機能を優先的に立ち上げ可能である。
【０１１０】
また、本実施例の複合機１は、ルートファイルシステム１００Ａの認証後、モジュール５２の起動時に改ざんを検知した場合、依存アプリリストを参照し、改ざんを検知したモジュール５２に依存しない機能を立ち上げ可能である。
【０１１１】
図３２はネットワークオプションカードのファームウェアを改ざん検知の対象とした処理手順を示すシーケンス図である。図３２ではネットワークオプションカード９８をＰＣＩデバイスとした例である。
【０１１２】
ステップＳ１３１では、ネットワークオプションカード９８側でファームウェア格納領域１０４に格納されているオプションカードファームウェア３２２のＰＣＲ値を電源ＯＮ後に算出する。ステップＳ１３２では、ステップＳ１３１で算出したＰＣＲ値をＰＣＩコンフィグレジスタ空間３２１に書き込んでおく。
【０１１３】
ＰＣＩコンフィグレジスタ空間３２１は、複合機１側からのアクセスを認めているアクセス可能領域１０３の一例である。なお、ＰＣＩデバイス以外のデバイスの場合は、プロトコル上、ＰＣＲ値を取得する為のコマンドを用意する方法なども考えられる。
【０１１４】
ステップＳ１３３に進み、複合機１側のセキュリティモジュール５２−１はＰＣＩコンフィグレジスタ空間３２１からオプションカードファームウェア３２２のＰＣＲ値を取得する。そして、ステップＳ１３４に進み、セキュリティモジュール５２−１は、ステップＳ１３３で取得したオプションカードファームウェア３２２のＰＣＲ値を、機器に固有の暗号化復号装置２６に設定し、デバイス暗号鍵ＢＬＯＢ８０を用いて、オプションカードファームウェア３２２を認証できる。このように、本実施例の複合機１はネットワークオプションカード９８のオプションカードファームウェア３２２を改ざんの検知の対象とすることができる。
【０１１５】
本実施例の複合機１は利用者が改ざんチェックする範囲を設定でき、改ざんを検知しても改ざんされたモジュール５２を必要としない機能のみで縮退運転でき、複数の機能を有しているときに、モジュール５２の起動順を変更することにより電源投入から所定の機能が使えるようになるまでの時間を短縮でき、改ざんチェックの対象となり得なかったオプションカードのファームウェアの改ざんを検知できる。
【０１１６】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【図面の簡単な説明】
【０１１７】
【図１】本実施例の複合機を表した一例の構成図である。
【図２】機器に固有の暗号化復号装置の特徴について説明する為の模式図である。
【図３】ＢＬＯＢの特徴について説明する為の模式図である。
【図４】ＢＬＯＢからデバイス暗号鍵を取り出す仕組みを表した模式図である。
【図５】アップデート等でソフトウェアの構成が変わってしまう場合のＢＬＯＢの取り扱いを表した模式図である。
【図６】アップデート等でソフトウェアの構成が変わってしまう場合のＢＬＯＢの取り扱いを表したフローチャートである。
【図７】ルートファイルシステムの詳細を示す説明図である。
【図８】従来の複合機を表した一例のハードウェア構成図である。
【図９】搭載されているファームウェアの改ざんを検知する従来の複合機における第１の問題点を説明する模式図である。
【図１０】搭載されているファームウェアの改ざんを検知する従来の複合機における第２の問題点を説明する模式図である。
【図１１】搭載されているファームウェアの改ざんを検知する従来の複合機における第３の問題点を説明する模式図である。
【図１２】搭載されているファームウェアの改ざんを検知する従来の複合機における第４の問題点を説明する模式図である。
【図１３】搭載されているファームウェアの改ざんを検知する本実施例の複合機における第１の問題点に対する対策を説明する模式図である。
【図１４】起動設定リストの一例の構成図である。
【図１５】起動設定リストに従ったモジュールの起動順を表した模式図である。
【図１６】依存アプリリストの一例の構成図である。
【図１７】依存アプリリストに従ったモジュールの起動順を表した模式図である。
【図１８】搭載されているファームウェアの改ざんを検知する本実施例の複合機における第４の問題点に対する対策を説明する模式図である。
【図１９】本実施例の複合機を表した一例のハードウェア構成図である。
【図２０】利用者に改ざんチェックする範囲を設定させるユーザインタフェース（ＵＩ）の一例のイメージ図である。
【図２１】ＵＩから利用者に設定させた改ざんチェックする範囲を反映させる処理手順を表したシーケンス図である。
【図２２】本実施例の複合機が行う改ざんを検知する処理を表した模式図である。
【図２３】ステップＳ７７〜Ｓ８１の処理手順を表したシーケンス図である。
【図２４】利用者が優先的に立ち上げたい機能を選ぶＵＩの一例のイメージ図である。
【図２５】ＵＩから利用者に設定させた優先的に立ち上げたい機能を反映させる処理手順を表したシーケンス図である。
【図２６】ルートファイルシステムの認証後に、モジュールを立ち上げる処理を表したフローチャート（１／２）である。
【図２７】ルートファイルシステムの認証後に、モジュールを立ち上げる処理を表したフローチャート（２／２）である。
【図２８】利用者に選択された優先的に立ち上げる機能が書かれている優先機能ファイルの一例の構成図である。
【図２９】起動設定リストの一例の構成図である。
【図３０】機能改ざんチェックフラグの一例の構成図である。
【図３１】依存アプリリストの一例の構成図である。
【図３２】ネットワークオプションカードのファームウェアを改ざん検知の対象とした処理手順を示すシーケンス図である。
【符号の説明】
【０１１８】
１    複合機
１０    ハードウェア
１１    ソフトウェア
１２    複合機起動部
２１    プロッタ
２２    スキャナ
２３    その他のハードウェアリソース
２４    外部二次記憶装置Ｉ／Ｆ（インターフェース）
２５    ネットワークＩ／Ｆ
２６    機器に固有の暗号化復号装置
２７    機器の二次記憶装置
３１    アプリケーション
３２    プラットフォーム
４１    プリンタアプリ
４２    コピーアプリ
４３    ファックスアプリ
４４    スキャナアプリ
４５    ネットファイルアプリ
４６    改ざん検知アプリ
４７    ＲＲＵアプリ
４８    ＳＤＫアプリ
４９    サードベンダのＳＤＫアプリ
５０    ルートファイルシステム
５１    汎用ＯＳ（オペレーティングシステム）
５２    モジュール
５２−１    セキュリティモジュール
５３    各種設定ファイル
７１    ルート鍵
７２    ＰＣＲ  Ｉ／Ｆ
７３    ＢＬＯＢ  Ｉ／Ｆ
８０，８０Ａ    ＢＬＯＢ
８１，８１Ａ    ソフトウェア（モジュール）のハッシュ値（ＰＣＲ値）
８２    デバイス暗号鍵
９０    ＣＰＵ
９１    揮発性メモリ
９２    ＡＳＩＣ
９３    エンジンコントローラ
９４，９４Ａ    不揮発メモリ
９５    ネットワークデバイス（network device）
９６    ｓｄカードＩ／Ｆ
９７    操作パネル
９８    ネットワークオプションカード
１００    圧縮されたルートファイルシステムイメージ
１００Ａ    ルートファイルシステム
１０２    認証対象ファイルリスト
１０３    アクセス可能領域
１０４    ファームウェア格納領域
１１０，１１１    ブートローダ
１１２    診断プログラム
２００，２４０    ＵＩ
３２１    ＰＣＩコンフィグレジスタ空間
３２２    オプションカードファームウェア
【図１】
0005309709.tif 000002
【図２】
0005309709.tif 000003
【図３】
0005309709.tif 000004
【図４】
0005309709.tif 000005
【図５】
0005309709.tif 000006
【図６】
0005309709.tif 000007
【図７】
0005309709.tif 000008
【図８】
0005309709.tif 000009
【図９】
0005309709.tif 000010
【図１０】
0005309709.tif 000011
【図１１】
0005309709.tif 000012
【図１２】
0005309709.tif 000013
【図１３】
0005309709.tif 000014
【図１４】
0005309709.tif 000015
【図１５】
0005309709.tif 000016
【図１６】
0005309709.tif 000017
【図１７】
0005309709.tif 000018
【図１８】
0005309709.tif 000019
【図１９】
0005309709.tif 000020
【図２０】
0005309709.tif 000021
【図２１】
0005309709.tif 000022
【図２２】
0005309709.tif 000023
【図２３】
0005309709.tif 000024
【図２４】
0005309709.tif 000025
【図２５】
0005309709.tif 000026
【図２６】
0005309709.tif 000027
【図２７】
0005309709.tif 000028
【図２８】
0005309709.tif 000029
【図２９】
0005309709.tif 000030
【図３０】
0005309709.tif 000031
【図３１】
0005309709.tif 000032
【図３２】
0005309709.tif 000033