JP5309709B2 - ソフトウェア改ざん検知方法及び機器 - Google Patents

ソフトウェア改ざん検知方法及び機器 Download PDF

Info

Publication number
JP5309709B2
JP5309709B2 JP2008157078A JP2008157078A JP5309709B2 JP 5309709 B2 JP5309709 B2 JP 5309709B2 JP 2008157078 A JP2008157078 A JP 2008157078A JP 2008157078 A JP2008157078 A JP 2008157078A JP 5309709 B2 JP5309709 B2 JP 5309709B2
Authority
JP
Japan
Prior art keywords
software
calculated
tampering
encryption
activation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008157078A
Other languages
English (en)
Other versions
JP2009301429A (ja
Inventor
文幸 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2008157078A priority Critical patent/JP5309709B2/ja
Publication of JP2009301429A publication Critical patent/JP2009301429A/ja
Application granted granted Critical
Publication of JP5309709B2 publication Critical patent/JP5309709B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Facsimiles In General (AREA)

Description

本発明は、ソフトウェア改ざん検知方法及び器に係り、特に搭載されているソフトウェアの改ざんを検知するソフトウェア改ざん検知方法及び器に関する。
例えばファームウェア(ソフトウェア)が搭載された機器では、ファームウェアが不正に改ざんされた場合、ファームウェアの改ざんを検知できず、セキュリティの脆弱性が生じている状態で使い続けられてしまう危険性がある。
従来、ファームウェアが搭載された機器では、ファームウェアの改ざんを検知する仕組みが設けられていた(例えば特許文献1参照)。なお、ファームウェアの改ざんを検知するファームウェア改ざん検知方法としては、ハッシュ値によるファームウェア改ざん検知方法が良く知られている。
特開2007−318731号公報
従来のファームウェア改ざん検知方法を利用する機器はファームウェアの改ざんを検知する処理により起動時間が遅くなってしまう。起動時間の速さよりもセキュリティを重視する機器の利用者であれば、従来のファームウェア改ざん検知方法を利用している機器であっても問題はない。
しかしながら、セキュリティよりも起動時間の速さを重視する利用者はファームウェアの改ざんを検知する処理により起動時間が遅くなってしまうと不便であった。本来、機器において、セキュリティ及び起動時間のどちらを優先させるかは、利用者によって異なるものである。
従来、セキュリティよりも起動時間の速さを重視する利用者にとってファームウェア改ざん検知方法を利用する機器は、起動時間を速くする場合、ファームウェアの改ざんを検知する処理を省略しなければならず、セキュリティと起動時間の速さとをバランス良く調整できないため、大変に不便であった。
このように、従来のファームウェア改ざん検知方法を利用する機器は、セキュリティと起動時間の速さとを調整するという観点から見ると、利用者にとって自由度が低く、必ずしも利便性の良いものではなかった。
本発明は、上記の点に鑑みなされたもので、利用者にとって自由度が高く、利便性の良いソフトウェア改ざん検知方法及び器を提供することを目的とする。
上記の課題を解決するため、本発明は、機器の起動時に実行されるソフトウェアの改ざんを前記機器が検知するソフトウェア改ざん検知方法であって、前記機器が、前記ソフトウェアから一意に計算される算出値に基づく情報の暗号化及び復号を行う暗号化復号手段を備えたものであり、前記ソフトウェアに含まれるブートローダ及びオペレーティングシステムから一意に計算される第1の算出値を前記機器の起動時の第1のタイミングに算出する第1算出ステップと、前記ブートローダ及びオペレーティングシステム以降に実行されるソフトウェアのうち予め設定された改ざん検知対象のソフトウェアから一意に計算される第2の算出値を前記機器の起動時の前記第1のタイミング後の第2のタイミングに算出する第2算出ステップと、前記ブートローダ及びオペレーティングシステムから一意に計算される算出値及び前記改ざん検知対象のソフトウェアから一意に計算される算出値に基づき前記暗号化復号手段により暗号化されている前記情報を、前記機器の起動時に算出した前記第1及び第2の算出値に基づき前記暗号化復号手段により復号し、前記情報の復号が失敗したときに、前記ブートローダ及びオペレーティングシステム又は前記改ざん検知対象のソフトウェアの改ざんを検知する検知ステップと、前記改ざん検知対象とするソフトウェアの設定を行う設定ステップと、前記設定ステップにより前記改ざん検知対象とするソフトウェアが変更された場合、前記ブートローダ及びオペレーティングシステムから一意に計算される算出値及び前記改ざん検知対象のソフトウェアから一意に計算される算出値に基づき前記暗号化復号手段により暗号化されている前記情報を復号し、前記変更に対応させて暗号化し直す更新ステップと、を有することを特徴とする。
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
本発明によれば、利用者にとって自由度が高く、利便性の良いソフトウェア改ざん検知方法及び器を提供可能である。

次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。なお、本実施例では搭載されているファームウェア(ソフトウェア)の改ざんを検知する機器の一例として複合機を例に説明するが、ソフトウェアが搭載された組み込み機器等、如何なる機器であってもよい。
図1は本実施例の複合機を表した一例の構成図である。図1の複合機1は種々のハードウェア10と、種々のソフトウェア11と、複合機起動部12とを含む構成である。
ハードウェア10はプロッタ21と、スキャナ22と、その他のハードウェアリソース23と、外部二次記憶装置I/F(インターフェース)24と、ネットワークI/F25と、機器に固有の暗号化復号装置26と、機器の二次記憶装置27とを含む構成である。
外部二次記憶装置I/F24は、例えばSDカードを外部から接続する為のSDカードスロットのように何らかの二次記憶装置を外部から接続するI/Fである。ネットワークI/F25は例えばインターネットやLAN等のネットワーク経由で外部サーバ等の二次記憶装置に接続するI/Fである。機器に固有の暗号化復号装置26は、例えばセキュリティチップであるTPM(Trusted Platform Module)により実現される。なお、機器に固有の暗号化復号装置26の詳細は後述する。
ソフトウェア11は、種々のアプリケーション31と、プラットフォーム32とを含む構成である。プラットフォーム32は、ルートファイルシステム50と、汎用OS(オペレーティングシステム)51とを含む構成である。ルートファイルシステム50は、種々のモジュール52と、各種設定ファイル53とを含む構成である。汎用OS51は、後述のブートローダ,診断プログラムを含んでいる。種々のアプリケーション31と、種々のモジュール52とは、UNIX(登録商標)等の汎用OS51によりプロセス単位で並列的に実行される。
アプリケーション31は、プリンタアプリ41と、コピーアプリ42と、ファックスアプリ43と、スキャナアプリ44と、ネットファイルアプリ45と、改ざん検知アプリ46と、RRUアプリ47と、SDKアプリ48と、サードベンダのSDKアプリ49とを含む構成である。SDKアプリ48とサードベンダのSDKアプリ49とは、専用のSDK(ソフトウェア開発キット)を使用して開発されたプログラムである。なお、改ざん検知アプリ46はアプリケーションレベルで改ざんを検知するものである。なお、図1において線で囲まれている部分60は改ざんを検知する改ざん防止保護対象である。
複合機起動部12は、複合機1の電源投入時に最初に実行される。これにより、複合機1では汎用OS51が起動され、アプリケーション31や種々のモジュール52が起動される。種々のアプリケーション31と種々のモジュール52とを構成するプログラムはHDD(ハードディスクドライブ)やメモリカード等の機器の二次記憶装置27に記憶されており、HDDやメモリカードから読み出されて、メモリ上で起動されることになる。
図2は機器に固有の暗号化復号装置の特徴について説明する為の模式図である。機器に固有の暗号化復号装置26はルート鍵71と、PCR I/F72と、BLOB I/F73とを有するように構成されるハードウェアチップである。なお、機器に固有の暗号化復号装置26はハードウェアが基板に直付けされており、且つ、取り外して別の機器に取り付けても利用できない。
ルート鍵71は機器に固有の暗号化復号装置26から取り出すことのできない暗号/復号鍵である。ルート鍵71は後述のようにBLOB(暗号化データ)を暗号化/復号する為に利用される。PCR I/F72は指定したソフトウェアのハッシュ値(ダイジェスト値)を格納する為のI/Fである。BLOB I/F73は、機器に固有の暗号化復号装置26へBLOBを渡すためのI/Fである。このように、機器に固有の暗号化復号装置26はルート鍵71及びソフトウェアのハッシュ値を用いた暗号化復号処理機能を有しており、後述のようにBLOBを暗号化/復号するものである。
図3はBLOBの特徴について説明する為の模式図である。BLOB80は、改ざんされた複合機1(システム)からデータを保護する仕組みである。BLOB80は、複合機1を構成するソフトウェア(モジュール)のハッシュ値(PCR値)81と、改ざんされた不正な複合機1から保護したいデータであるデバイス暗号鍵82とを、機器に固有の暗号化復号装置26が有するルート鍵71で暗号化したものである。なお、デバイス暗号鍵82はHDDやメモリカード等の機器の二次記憶装置27に記憶されるデータの暗号化や復号に利用される。
BLOB80は、改ざんされていない複合機1でのみ、機器に固有の暗号化復号装置26を用いて復号することができる。つまり、デバイス暗号鍵82は改ざんされていない複合機1でのみ、BLOB80から取り出される。デバイス暗号鍵82は例えば図4に示す仕組みによりBLOB80から取り出される。
図4はBLOBからデバイス暗号鍵を取り出す仕組みを表した模式図である。図4のモジュール52は「モジュール0」から「モジュール3」の順番に起動される。機器に固有の暗号化復号装置26は、PCR I/F72として「PCR0」から「PCR2」を有している。
ステップS1に進み、「モジュール0」は「モジュール1」のハッシュ値を算出し、算出したハッシュ値を「PCR0」に設定する。ステップS2に進み、「モジュール1」は「モジュール2」のハッシュ値を算出して「PCR1」に設定する。ステップS3に進み、「モジュール2」は「モジュール3」のハッシュ値を算出して「PCR2」に設定する。
ステップS4に進み、機器に固有の暗号化復号装置26はBLOB I/F73からBLOB80を渡される。ステップS5に進み、機器に固有の暗号化復号装置26はルート鍵71でBLOB80を復号する。ステップS6に進み、機器に固有の暗号化復号装置26は復号したPCR値81「PCR0」から「PCR2」と、ステップS1〜S3で設定したPCR値とを比較する。
ステップS7に進み、機器に固有の暗号化復号装置26は復号したPCR値81「PCR0」から「PCR2」と、ステップS1〜S3で設定したPCR値とが一致した場合のみ、デバイス暗号鍵82を取り出し、出力する。
なお、図4に示した仕組みでは、アップデート等でモジュール52の構成が変わってしまうとBLOB80からデバイス暗号鍵82を取り出せなくなる。そこで、BLOB80はアップデート等でモジュール52の構成が変わってしまうとき、図5及び図6に示すように取り扱われる。
図5はアップデート等でソフトウェアの構成が変わってしまう場合のBLOBの取り扱いを表した模式図である。図6はアップデート等でソフトウェアの構成が変わってしまう場合のBLOBの取り扱いを表したフローチャートである。
ステップS10に進み、複合機1はソフトウェアを構成する種々のファイルの更新を行う。ステップS11に進み、モジュール52の一つであるシステム管理モジュールはBLOB80をBLOB80Aに更新する。ステップS11の処理はステップS11−1〜S11−3に分けることができる。
ステップS11−1に進み、システム管理モジュールは、改ざんされた不正な複合機1から保護したいデータがデバイス暗号鍵82であるBLOB(以下、デバイス暗号鍵BLOBという)80を読み出し、復号を行う。ステップS11−2に進み、システム管理モジュールは新しいソフトウェアの構成の新しいPCR値を算出する。
例えば図5は「モジュール2」がアップデート等で変わってしまった例を表しているものであり、「モジュール2」の新しいPCR値「YYY」が算出されている。ステップS11−3に進み、システム管理モジュールはステップS11−2で算出した新しいPCR値を用いてデバイス暗号鍵82の再暗号化を行い、デバイス暗号鍵BLOB80をデバイス暗号鍵BLOB80Aに更新する。
ステップS12に進み、システム管理モジュールはデバイス暗号鍵BLOB80をデバイス暗号鍵BLOB80Aに更新した処理の結果を利用者に通知した後、図6に示す処理を終了する。
図7はルートファイルシステムの詳細を示す説明図である。ルートファイルシステム50は、ファイル管理用データとファイルデータとを有している。ファイル管理用データはファイルを管理する為のデータ(各ファイルの日付、サイズ、アクセス権など)が格納されている。
ルートファイルシステムとは、起動に最低限必要なファイルが格納されたファイルシステムである。また、ルートファイルシステムそのものをファイル化したものは、ルートファイルシステムイメージと呼ばれる。例えば図7に示したルートファイルシステムは種々のモジュール52と、各種設定ファイル53とが、それぞれファイルとして存在し、それぞれのファイルを管理する為のファイル管理用データが存在している。
(問題点の提起)
次に、従来の複合機1における問題点を提起する。図8は従来の複合機を表した一例のハードウェア構成図である。図8の複合機1は、機器に固有の暗号化復号装置26,CPU90,揮発性メモリ91,ASIC92,エンジンコントローラ93,不揮発メモリ94,ネットワークデバイス(network device)95,sdカードI/F96,操作パネル97を有する構成である。このように、複合機1は一般的なコンピュータに類似の構成を含んでいる。
特徴的な部分として、図8の複合機1はローカルバス上に、機器に固有の暗号化復号装置26が搭載されており、データの暗号化やファームウェアの改ざんを検知する機能を提供できる構成となっている。しかし、図8の複合機1はリソースの制約から不揮発メモリ94のサイズが小さく、不揮発メモリ94にルートファイルシステム50をそのまま保存することができない。このため、従来の複合機1はルートファイルシステムイメージを圧縮して不揮発メモリ94に保存している。不揮発メモリ94に保存されている圧縮されたルートファイルシステムイメージは、複合機1の起動時に伸張されたあとで揮発性メモリ91に展開される。
図9は、搭載されているファームウェアの改ざんを検知する従来の複合機における第1の問題点を説明する模式図である。図9の複合機1はブートローダ110,ブートローダ111,診断プログラム112,汎用OS51の順番に起動される。機器に固有の暗号化復号装置26は、PCR I/F72として「PCR0」から「PCRn」を有する。
まず、複合機1は電源ON時にブートローダ110を実行する。ブートローダ110はサイズの小さなプログラムであり、ブートローダ111を起動する。ブートローダ111は起動された後、ステップS21に進み、ブートローダ110のPCR値を計算する。
ステップS22に進み、ブートローダ111はブートローダ110のPCR値を「PCR0」に格納する。ステップS23に進み、ブートローダ111は診断プログラム112のPCR値を計算する。ステップS24に進み、ブートローダ111は診断プログラム112のPCR値を「PCR1」に格納する。ステップS25に進み、診断プログラム112は汎用OS51のPCR値を計算する。ステップS26に進み、診断プログラム112は汎用OS51のPCR値を「PCR2」に格納する。
ステップS27に進み、汎用OS51は、圧縮されたルートファイルシステムイメージ100のPCR値を計算する。ステップS28に進み、汎用OS51は圧縮されたルートファイルシステムイメージ100のPCR値を「PCRn」に格納する。また、ステップS29では圧縮されたルートファイルシステムイメージ100を伸張する。ステップS30では、伸張したルートファイルシステムを揮発性メモリ91に展開する。ステップS31では、揮発性メモリ91に展開されたルートファイルシステム上のソフトウェア(例えば種々のモジュール52)が起動される。
ところで、圧縮されたルートファイルシステムイメージ100は、最低でも数10MBの大きさである。このため、ステップS27の処理には時間が掛かる。また、圧縮されたルートファイルシステムイメージ100の伸張を行うステップS29の処理及び伸張したルートファイルシステムを揮発性メモリ91へ展開するステップS30の処理にも、時間が掛かる。結果として、従来の複合機1は起動時間が遅くなるという問題があった。
図10は搭載されているファームウェアの改ざんを検知する従来の複合機における第2の問題点を説明する模式図である。図10は揮発性メモリ91に展開されたルートファイルシステム上のモジュール52が起動される様子を表している。
従来の複合機1は、モジュール52の起動順が常に一定である。例えば図10の場合はモジュール52が「モジュール1」,「モジュール2」,「モジュール3」,・・・,「モジュールn」の順番に起動及び改ざんチェックされる。このため、従来の複合機1では、起動の遅いモジュール52に依存した機能を急いで使いたい場合等に、不便が生じるという問題があった。
図11は搭載されているファームウェアの改ざんを検知する従来の複合機における第3の問題点を説明する模式図である。従来の複合機1は、ファームウェアの改ざんを検知したあと、改ざんの影響範囲にかかわらず、機器全体が停止される。図11は「モジュール2」に対する改ざんを検知したあと、「モジュール3」以降の全てのモジュールの起動を停止した複合機1の例である。このため、従来の複合機1では「モジュール2」と全く関連しない機能も使用できなくなる。利用者からみたとき、「モジュール2」と全く関連しない機能も使用できなくなるのは不便であり、問題があった。
図12は、搭載されているファームウェアの改ざんを検知する従来の複合機における第4の問題点を説明する模式図である。図12の複合機1はローカルバス上に、脱着可能なネットワークオプションカード98が接続されている。しかし、ネットワークオプションカード98のファームウェアの改ざんの検知は通常実施できない。これは、複合機1側からネットワークオプションカード98のファームウェア格納領域へのアクセスが認められておらず、ファームウェアの改ざんの有無を判定できないからである。このため、従来の複合機1ではネットワークオプションカード98のファームウェアが改ざんの検知の対象外という問題があった。
(問題点に対する対策)
次に、複合機1の問題点に対する対策を提案する。図13は、搭載されているファームウェアの改ざんを検知する本実施例の複合機における第1の問題点に対する対策を説明する模式図である。なお、ステップS41以前の処理は図9のステップS21〜S26の処理と同様であるため、省略している。
ステップS41に進み、汎用OS51は不揮発メモリ94に保存されたルートファイルシステム100Aから認証対象ファイルリスト102を取得する。認証対象ファイルリスト102は、ルートファイルシステム100Aに存在するファイルのうち、改ざんを検知するファイルが設定されている。汎用OS51はステップS42に進み、認証対象ファイルリスト102に書かれたファイルのPCR値を計算する。
ステップS43に進み、汎用OS51は認証対象ファイルリスト102に書かれたファイルのPCR値を「PCRn」に格納する。そして、ステップS44に進み、揮発性メモリ91に展開されているルートファイルシステム100A上のソフトウェア(例えば種々のモジュール52)が起動される。
図13では、伸張済みのルートファイルシステム100Aを、そのまま使える形で不揮発メモリ94に書き込んでいる。不揮発メモリ94に保存されているルートファイルシステム100Aにそのままアクセス可能なため、図13では圧縮されたルートファイルシステムイメージの伸張を行う処理,伸張したルートファイルシステムを揮発性メモリ91へ展開する処理が不要となる。したがって、図13の複合機1では起動時間を速めることができる。
また、図13の複合機1ではセキュリティよりも起動時間の速さを重視したい利用者が改ざんをチェックするファームウェアの範囲を設定可能である。これにより、図13の複合機1では利用者が希望しないファームウェアの改ざんチェックをしないように設定できるため、起動時間を速めることができ、起動時間の速さよりもセキュリティを重視する利用者の利便性が向上する。
次に、搭載されているファームウェアの改ざんを検知する本実施例の複合機における第2の問題点に対する対策を説明する。本実施例の複合機1はルートファイルシステム100Aに「それぞれの機能を優先的に立ち上げようとしたとき、指定の機能が最も速く使えるようにするためのモジュール52の起動順」をまとめたファイルである起動設定リストを保持する。
図14は起動設定リストの一例の構成図である。図14の起動設定リストは、コピー機能,プリンタ機能,FAX機能,スキャナ機能が、それぞれ最も速く使えるようにするためのモジュール52の起動順が設定されている。例えばコピー機能を優先的に立ち上げようとしたとき、本実施例の複合機1は図14の起動設定リストに従い、図15に示す起動順でモジュール52を起動する。図15は起動設定リストに従ったモジュールの起動順を表した模式図である。図15では起動設定リストに従って「モジュール1」,「モジュール2」,「モジュール7」,・・・,「モジュール8」の順番で起動されている。
優先して立ち上げたい機能は、利用者がユーザI/Fである操作パネル97等から設定できる。利用者により設定された優先して立ち上げた機能は、優先機能ファイルに設定される。したがって、本実施例の複合機1では、利用者が優先的に立ち上げたい機能を最も速く立ち上げることができる。
次に、搭載されているファームウェアの改ざんを検知する本実施例の複合機における第3の問題点に対する対策を説明する。本実施例の複合機1はルートファイルシステム100Aに「それぞれの機能が、どのモジュール52を必要とするか」をまとめたファイルである依存アプリリストを保持する。
図16は、依存アプリリストの一例の構成図である。図16の依存アプリリストは、コピー機能,プリンタ機能,FAX機能,スキャナ機能が、それぞれ必要とするモジュール52が設定されている。例えば「モジュール3」の改ざんを検知したとき、本実施例の複合機1は図16の依存アプリリストに従い、「モジュール3」を必要としないコピー機能及びFAX機能に限定して図17のように起動動作を継続する。
図17は依存アプリリストに従ったモジュールの起動順を表した模式図である。図15では、「モジュール3」の改ざんを検知すると、「モジュール4」以降のモジュール52のうちコピー機能及びFAX機能が必要とするモジュール52を依存アプリリストに従って立ち上げる。つまり、コピー機能及びFAX機能が必要としないモジュール52は立ち上げない。
したがって、本実施例の複合機1では、改ざんを検知したモジュール52に関連のない機能で限定的に起動できる。
図18は、搭載されているファームウェアの改ざんを検知する本実施例の複合機における第4の問題点に対する対策を説明する模式図である。図18の複合機1は図12の複合機1と同様、脱着可能なネットワークオプションカード98が接続されている。
ネットワークオプションカード98は、複合機1側からファームウェア格納領域104へのアクセスを認めていないが、複合機1側からのアクセスを認めているアクセス可能領域103を有している。そこで、本実施例の複合機1ではネットワークオプションカード98側でファームウェア格納領域104に格納されているファームウェアのPCR値を予め算出しておき、算出したPCR値をアクセス可能領域103に格納しておく。
したがって、複合機1はネットワークオプションカード98のアクセス可能領域103から、ファームウェア格納領域104に格納されているファームウェアのPCR値を取得することができ、ネットワークオプションカード98のファームウェアを改ざんの検知の対象とすることができる。
以下では、搭載されているファームウェアの改ざんを検知する本実施例の複合機1における上記した第1〜4の問題点に対する対策について、以下の実施例で具体的に説明していく。
図19は、本実施例の複合機を表した一例のハードウェア構成図である。図19の複合機1は、機器に固有の暗号化復号装置26,CPU90,揮発性メモリ91,ASIC92,エンジンコントローラ93,不揮発メモリ94A,ネットワークデバイス95,sdカードI/F96,操作パネル97を有する構成である。このように、複合機1は一般的なコンピュータに類似の構成を含んでいる。図19の複合機1の構成は、複合機1の不揮発メモリ94が大容量の不揮発メモリ94Aに置き換えられている点で、図8の構成と異なっている。大容量の不揮発メモリ94Aとしては、近年、入手が容易となったUSBフラッシュメモリなどを利用できる。
本実施例の複合機1はリソースの制約から解放され、ルートファイルシステム100Aをそのまま保存することができる大容量の不揮発メモリ94Aを利用することで、ルートファイルシステムイメージを圧縮して保存する必要がなく、ルートファイルシステム100Aを、そのまま使える形で不揮発メモリ94Aに書き込んでおける。
このため、本実施例の複合機1は圧縮されたルートファイルシステムイメージ100の伸張を行う処理,伸張したルートファイルシステム100Aを揮発性メモリ91へ展開する処理が不要となる。従って、図19の複合機1では起動時間を速めることができる。
本来、複合機1において、セキュリティ及び起動時間のどちらを優先させるかは、利用者によって異なるものである。そこで、本実施例の複合機1では利用者がユーザI/Fである操作パネル97等から改ざんチェックする範囲を設定できるようにしている。図20は利用者に改ざんチェックする範囲を設定させるユーザインタフェース(UI)の一例のイメージ図である。UI200は、改ざんチェックする範囲として、「改ざんチェックをしない」,「ソフトウェアのみ」,「ソフトウェア,設定ファイル」,「全て」の何れかを利用者に選択させる例である。
複合機1は、UI200から利用者に設定させた改ざんチェックする範囲を、図21に示す手順に従って反映させる。図21は、UIから利用者に設定させた改ざんチェックする範囲を反映させる処理手順を表したシーケンス図である。
ステップS51に進み、利用者は操作パネル97を操作し、図20のUI200から改ざんチェックする範囲(改ざんチェック範囲)を選択する。ステップS52に進み、操作パネル97は、利用者に選択された改ざんチェック範囲の設定反映要求をセキュリティモジュール52−1に対して行う。
ステップS53に進み、セキュリティモジュール52−1は、不揮発メモリ94Aに保存されている認証対象ファイルリスト102へ利用者に選択された改ざんチェック範囲を設定値として書き込む。
ステップS54に進み、セキュリティモジュール52−1は不揮発メモリ94Aからデバイス暗号鍵BLOB80を読み出す。ステップS55に進み、セキュリティモジュール52−1は機器に固有の暗号化復号装置26にBLOB I/F73からデバイス暗号鍵BLOB80を渡す。
ステップS56に進み、機器に固有の暗号化復号装置26はルート鍵71でデバイス暗号鍵BLOB80を復号する。ここでは、前述したように、復号したPCR値81と機器に固有の暗号化復号装置26に設定されているPCR値72とが一致し、デバイス暗号鍵82の取り出しに成功したものとする。ステップS57に進み、機器に固有の暗号化復号装置26は、デバイス暗号鍵BLOB80から取り出したデバイス暗号鍵82をセキュリティモジュール52−1に送信する。
ステップS58に進み、セキュリティモジュール52−1は認証対象ファイルリスト102に書かれた改ざんチェック範囲のファイルのPCR値を計算する。ステップS59に進み、セキュリティモジュール52−1は、デバイス暗号鍵82とステップS58で計算したPCR値とを、機器に固有の暗号化復号装置26に渡す。
ステップS60に進み、機器に固有の暗号化復号装置26はステップS58で計算したPCR値を用いてデバイス暗号鍵82の暗号化を行い、デバイス暗号鍵BLOB80Aを得る。ステップS61に進み、機器に固有の暗号化復号装置26はデバイス暗号鍵BLOB80Aをセキュリティモジュール52−1に送信する。
そして、ステップS62に進み、セキュリティモジュール52−1は機器に固有の暗号化復号装置26から受信したデバイス暗号鍵BLOB80Aを不揮発メモリ94Aに保存して図21に示す処理を終了する。
なお、ステップS54〜S62の処理は認証対象ファイルリスト102の変更により改ざんチェック範囲のファイルが変わってしまうため、改ざんチェック範囲のファイルの変更に対応させて、デバイス暗号鍵BLOB80のPCR値81をデバイス暗号鍵BLOB80AのPCR値81Aに更新するものである。
ステップS54〜S62の処理により、本実施例の複合機1では改ざんチェック範囲のファイルが変わっても、更新されたデバイス暗号鍵BLOB80Aからデバイス暗号鍵82を取り出せる。
本実施例の複合機1は、図22に示すように、改ざんチェック範囲のファイルに対して改ざん検知を行う。図22は、本実施例の複合機が行う改ざんを検知する処理を表した模式図である。図22の複合機1は、ブートローダ110,ブートローダ111,診断プログラム112,汎用OS51の順番に起動される。なお、機器に固有の暗号化復号装置26はPCR I/F72として「PCR0」から「PCRn」を有している。
まず、複合機1は電源ON時にブートローダ110を実行する。ブートローダ110はサイズの小さなプログラムであり、ブートローダ111を起動する。ブートローダ111は起動された後、ステップS71に進み、ブートローダ110のPCR値を計算する。
ステップS72に進み、ブートローダ111はブートローダ110のPCR値を「PCR0」に格納する。ステップS73に進み、ブートローダ111は診断プログラム112のPCR値を計算する。ステップS74に進み、ブートローダ111は診断プログラム112のPCR値を「PCR1」に格納する。ステップS75に進み、診断プログラム112は汎用OS51のPCR値を計算する。ステップS76に進み、診断プログラム112は汎用OS51のPCR値を「PCR2」に格納する。
汎用OS51は、ステップS77に進み、不揮発メモリ94Aに保存されているルートファイルシステム100Aから認証に必要な4ファイル(認証対象ファイルリスト,起動設定リスト,優先機能ファイル,依存アプリリスト)を取得する。
ステップS78に進み、汎用OS51はステップS77で取得した4ファイルのPCR値を計算し、機器に固有の暗号化復号装置26の「PCRn」に格納し、デバイス暗号鍵BLOB80を用いて上記の4ファイルの認証を行う。デバイス暗号鍵BLOB80からデバイス暗号鍵82を取り出すことができれば、汎用OS51は認証に必要な4ファイルが改ざんされていないことを確認できる。
ステップS79に進み、汎用OS51はステップS78で認証し、改ざんされていないことを確認した認証対象ファイルリスト102に書かれているファイルを対象にPCR値を計算する。ステップS80に進み、汎用OS51は認証対象ファイルリスト102に書かれたファイルのPCR値を「PCRn」に格納し、デバイス暗号鍵BLOB80を用いて認証対象ファイルリスト102に書かれたファイルの認証を行う。デバイス暗号鍵BLOB80からデバイス暗号鍵82を取り出すことができれば、汎用OS51は認証対象ファイルリスト102に書かれたファイルが改ざんされていないことを確認できる。
なお、ステップS78で利用するデバイス暗号鍵BLOB80とステップS80で利用するデバイス暗号鍵BLOB80とは、それぞれ認証するファイルに対応させた別のものである。ステップS81に進み、揮発性メモリ91に展開されているルートファイルシステム100A上のソフトウェアが起動される。
更に、ステップS77〜S81の処理について図23のシーケンス図を参照しつつ説明する。図23はステップS77〜S81の処理手順を表したシーケンス図である。
ステップS77に進み、汎用OS51は不揮発メモリ94Aに保存されたルートファイルシステム100Aから認証に必要な4ファイル(ファイルシステムチェックツール)を取得する。ステップS78Aに進み、汎用OS51はステップS77で取得した4ファイルのPCR値を計算する。ステップS78Bに進み、汎用OS51はステップS78Aで計算したPCR値を機器に固有の暗号化復号装置26の「PCRn」に格納し、デバイス暗号鍵BLOB80を用いて、上記の4ファイルの認証を行う。ここでは、デバイス暗号鍵BLOB80からデバイス暗号鍵82を取り出すことができ、上記の4ファイルが改ざんされていないことを確認できたものとする。
ステップS79Aに進み、汎用OS51はステップS78Bで認証し、改ざんされていないことを確認した認証対象ファイルリスト(改ざんチェック範囲リスト)102を不揮発メモリ94Aから読み出す。ステップS79Bに進み、汎用OS51は認証対象リスト102から一つずつファイル名を取り出す。
ステップS79Cに進み、汎用OS51はステップS79Bで取り出したファイル名のファイルを不揮発メモリ94Aから読み出し、PCR値を計算する。そして、ステップS79Eに進み、汎用OS51は認証対象リスト102の全てのファイルのPCR値を計算したか否かを判定する。認証対象リスト102のファイルのうち、PCR値を計算していないファイルが残っていれば、汎用OS51はステップS79Bに戻り処理を続ける。
認証対象リスト102のファイルのうち、PCR値を計算していないファイルが残っていなければ、汎用OS51はステップS80に進み、認証対象ファイルリスト102に書かれたファイルのPCR値を「PCRn」に格納し、デバイス暗号鍵BLOB80を用いて、認証対象ファイルリスト102に書かれたファイルの認証を行う。
図22ではルートファイルシステム100Aを、そのまま使える形で不揮発メモリ94Aに書き込んでいる。ルートファイルシステム100Aには、上記の4ファイル(認証対象ファイルリスト,起動設定リスト,優先機能ファイル,依存アプリリスト)が存在している。本実施例の複合機1は、まず、上記の4ファイルのPCR値を計算し、起動時の認証に必要な4ファイルに改ざんが無いことを確認する。そして、上記の4ファイルに改ざんが無く、正当であれば、本実施例の複合機1は認証対象リスト102に書かれたファイルを対象としてルートファイルシステム100Aの認証を行う。なお、本実施例の複合機1では利用者が操作パネル97から改ざんチェックする範囲を設定できる。
図24は利用者が優先的に立ち上げたい機能を選ぶUIの一例のイメージ図である。UI240は、優先的に立ち上げたい機能として「コピー機能」,「FAX機能」,「プリンタ機能」,「スキャナ機能」の何れかを利用者に選択させる例である。本実施例の複合機1はUI240から利用者に設定させた利用者が優先的に立ち上げたい機能を、図25に示す手順に従って反映させる。
図25は、UIから利用者に設定させた優先的に立ち上げたい機能を反映させる処理手順を表したシーケンス図である。ステップS91に進み、利用者は操作パネル97を操作して、図24のUI240から優先的に立ち上げたい機能を選択する。ステップS92に進み、操作パネル97は、利用者に選択された優先的に立ち上げる機能の設定反映要求をセキュリティモジュール52−1に対して行う。
ステップS93に進み、セキュリティモジュール52−1は、不揮発メモリ94Aに保存されている後述の優先機能ファイルへ、利用者に選択された優先的に立ち上げる機能を書き込む。ステップS94に進み、セキュリティモジュール52−1は不揮発メモリ94Aからデバイス暗号鍵BLOB80を読み出す。ステップS95に進み、セキュリティモジュール52−1は機器に固有の暗号化復号装置26にBLOB I/F73からデバイス暗号鍵BLOB80を渡す。
ステップS96に進み、機器に固有の暗号化復号装置26はルート鍵71でデバイス暗号鍵BLOB80を復号する。ここでは、前述したように、復号したPCR値81と機器に固有の暗号化復号装置26に設定されているPCR値72とが一致し、デバイス暗号鍵82の取り出しに成功したものとする。ステップS97に進み、機器に固有の暗号化復号装置26は、デバイス暗号鍵BLOB80から取り出したデバイス暗号鍵82をセキュリティモジュール52−1に送信する。
ステップS98に進み、セキュリティモジュール52−1は利用者に選択された優先的に立ち上げる機能に応じたPCR値を後述の起動設定リストを用いて算出する。ステップS99に進み、セキュリティモジュール52−1は、デバイス暗号鍵82とステップS98で計算したPCR値とを、機器に固有の暗号化復号装置26に渡す。
ステップS100に進み、機器に固有の暗号化復号装置26はステップS98で計算したPCR値を用いてデバイス暗号鍵82の暗号化を行い、デバイス暗号鍵BLOB80Aを得る。ステップS101に進み、機器に固有の暗号化復号装置26はデバイス暗号鍵BLOB80Aをセキュリティモジュール52−1に送信する。
そして、ステップS102に進み、セキュリティモジュール52−1は機器に固有の暗号化復号装置26から受信したデバイス暗号鍵BLOB80Aを不揮発メモリ94Aに保存して図25に示す処理を終了する。
なお、ステップS94〜S102の処理は利用者に選択された優先的に立ち上げる機能によりPCR値が変わってしまうため、利用者に選択された優先的に立ち上げる機能に対応させて、デバイス暗号鍵BLOB80のPCR値81をデバイス暗号鍵BLOB80AのPCR値81Aに更新するものである。
ステップS94〜S102の処理により、本実施例の複合機1では優先的に立ち上げる機能が変わっても、更新されたデバイス暗号鍵BLOB80Aからデバイス暗号鍵82を取り出せる。
認証対象ファイルリスト102に書かれたファイルによりルートファイルシステム100Aの認証を行ったあと、本実施例の複合機1は図26,図27のフローチャートに示す手順でモジュール52を立ち上げる。
図26,図27はルートファイルシステムの認証後に、モジュール52を立ち上げる処理を表したフローチャートである。ステップS110に進み、汎用OS51は図28に示す優先機能ファイルを読み出し、優先的に立ち上げる機能を判定する。図28は利用者に選択された優先的に立ち上げる機能が書かれている優先機能ファイルの一例の構成図である。
ステップS111に進み、汎用OS51は図29に示される起動設定リストのうち、優先機能ファイルに書かれている優先的に立ち上げる機能に対応したモジュール52の起動順を取得する。図29は起動設定リストの一例の構成図である。図29の起動設定リストは例えば優先機能ファイルに書かれている優先的に立ち上げる機能が「コピー機能」であるときに、モジュール52の起動順を「モジュール1,モジュール2,モジュール3,モジュール4,モジュール5」とすることを表している。
なお、図29の起動設定リストは、優先機能ファイルに書かれている優先的に立ち上げる機能が「コピー機能」であるとき、「モジュール1〜5」の全てを立ち上げるが、必ずしも「コピー機能」が「モジュール1〜5」の全てを必要とするものではない。本実施例の複合機1において優先機能ファイルに書かれている優先的に立ち上げる機能は、複数の機能のうち、どれを最初に使えるようにするのかを選択するものである。
ステップS112に進み、汎用OS51は、ステップS111で取得したモジュール52の起動順を全て消化するまで、ステップS113の起動すべき機能(起動すべきアプリケーション)の認証実行処理を繰り返し行う。ステップS113では、起動すべき機能をループ1回につき順番に1つずつ取り出して、図27に示す認証実行処理を行う。
図27のステップS120に進み、汎用OS51は図30に示した機能改ざんチェックフラグを参照し、改ざん検知されていない機能で必要なアプリケーションであるか否かを判定する。図30は機能改ざんチェックフラグの一例の構成図である。なお、機能改ざんチェックフラグは、モジュール52の改ざんによって使用できなくなった機能を記録することを目的としたフラグである。
改ざん検知されていない機能で必要なアプリケーションであれば、汎用OS51は、ステップS121に進み、該当アプリケーションのPCR値を計算する。汎用OS51はステップS122に進み、ステップS121で算出したPCR値でデバイス暗号鍵BLOB80の復号を試みる。
なお、ステップS121で利用するデバイス暗号鍵BLOB80はステップS111で取得したモジュール52の起動順に対応させた、前述のステップS78,S80で利用するデバイス暗号鍵BLOB80と別のものである。
ステップS121で算出したPCR値によりデバイス暗号鍵BLOB80の復号ができれば該当アプリケーションの改ざんを検知しなかったため、汎用OS51はステップS125に進み、モジュール52を起動し、図27の処理を終了する。該当アプリケーションの改ざんを検知すると、汎用OS52はステップS123に進み、図31に示される依存アプリリストを参照し、改ざんされたモジュール52を必要としている機能を調べる。図31は依存アプリリストの一例の構成図である。
例えば図31に示した依存アプリリストはコピー機能で必要なアプリケーションが「モジュール1,モジュール2,モジュール3」であることを表している。また、図31に示した依存アプリリストは「モジュール4」が改ざんされた場合、プリンタ機能,スキャナ機能に影響することを表している。
ステップS124に進み、汎用OS51は改ざんを検知したモジュール52によって使用できなくなった機能のフラグを「NG」にした後、図27の処理を終了する。なお、図27中、ステップS123,S124の処理は、機能改ざんチェックフラグを更新する処理である。ステップS123,S124の処理により、複合機1はモジュール52の改ざんにより使えなくなった機能を判別できるようになる。
このように、本実施例の複合機1はルートファイルシステム100Aの認証後、起動設定リスト,優先機能ファイルからモジュールの起動順を判定し、その起動順にモジュールを立ち上げることができ、利用者に選択された機能を優先的に立ち上げ可能である。
また、本実施例の複合機1は、ルートファイルシステム100Aの認証後、モジュール52の起動時に改ざんを検知した場合、依存アプリリストを参照し、改ざんを検知したモジュール52に依存しない機能を立ち上げ可能である。
図32はネットワークオプションカードのファームウェアを改ざん検知の対象とした処理手順を示すシーケンス図である。図32ではネットワークオプションカード98をPCIデバイスとした例である。
ステップS131では、ネットワークオプションカード98側でファームウェア格納領域104に格納されているオプションカードファームウェア322のPCR値を電源ON後に算出する。ステップS132では、ステップS131で算出したPCR値をPCIコンフィグレジスタ空間321に書き込んでおく。
PCIコンフィグレジスタ空間321は、複合機1側からのアクセスを認めているアクセス可能領域103の一例である。なお、PCIデバイス以外のデバイスの場合は、プロトコル上、PCR値を取得する為のコマンドを用意する方法なども考えられる。
ステップS133に進み、複合機1側のセキュリティモジュール52−1はPCIコンフィグレジスタ空間321からオプションカードファームウェア322のPCR値を取得する。そして、ステップS134に進み、セキュリティモジュール52−1は、ステップS133で取得したオプションカードファームウェア322のPCR値を、機器に固有の暗号化復号装置26に設定し、デバイス暗号鍵BLOB80を用いて、オプションカードファームウェア322を認証できる。このように、本実施例の複合機1はネットワークオプションカード98のオプションカードファームウェア322を改ざんの検知の対象とすることができる。
本実施例の複合機1は利用者が改ざんチェックする範囲を設定でき、改ざんを検知しても改ざんされたモジュール52を必要としない機能のみで縮退運転でき、複数の機能を有しているときに、モジュール52の起動順を変更することにより電源投入から所定の機能が使えるようになるまでの時間を短縮でき、改ざんチェックの対象となり得なかったオプションカードのファームウェアの改ざんを検知できる。
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
本実施例の複合機を表した一例の構成図である。 機器に固有の暗号化復号装置の特徴について説明する為の模式図である。 BLOBの特徴について説明する為の模式図である。 BLOBからデバイス暗号鍵を取り出す仕組みを表した模式図である。 アップデート等でソフトウェアの構成が変わってしまう場合のBLOBの取り扱いを表した模式図である。 アップデート等でソフトウェアの構成が変わってしまう場合のBLOBの取り扱いを表したフローチャートである。 ルートファイルシステムの詳細を示す説明図である。 従来の複合機を表した一例のハードウェア構成図である。 搭載されているファームウェアの改ざんを検知する従来の複合機における第1の問題点を説明する模式図である。 搭載されているファームウェアの改ざんを検知する従来の複合機における第2の問題点を説明する模式図である。 搭載されているファームウェアの改ざんを検知する従来の複合機における第3の問題点を説明する模式図である。 搭載されているファームウェアの改ざんを検知する従来の複合機における第4の問題点を説明する模式図である。 搭載されているファームウェアの改ざんを検知する本実施例の複合機における第1の問題点に対する対策を説明する模式図である。 起動設定リストの一例の構成図である。 起動設定リストに従ったモジュールの起動順を表した模式図である。 依存アプリリストの一例の構成図である。 依存アプリリストに従ったモジュールの起動順を表した模式図である。 搭載されているファームウェアの改ざんを検知する本実施例の複合機における第4の問題点に対する対策を説明する模式図である。 本実施例の複合機を表した一例のハードウェア構成図である。 利用者に改ざんチェックする範囲を設定させるユーザインタフェース(UI)の一例のイメージ図である。 UIから利用者に設定させた改ざんチェックする範囲を反映させる処理手順を表したシーケンス図である。 本実施例の複合機が行う改ざんを検知する処理を表した模式図である。 ステップS77〜S81の処理手順を表したシーケンス図である。 利用者が優先的に立ち上げたい機能を選ぶUIの一例のイメージ図である。 UIから利用者に設定させた優先的に立ち上げたい機能を反映させる処理手順を表したシーケンス図である。 ルートファイルシステムの認証後に、モジュールを立ち上げる処理を表したフローチャート(1/2)である。 ルートファイルシステムの認証後に、モジュールを立ち上げる処理を表したフローチャート(2/2)である。 利用者に選択された優先的に立ち上げる機能が書かれている優先機能ファイルの一例の構成図である。 起動設定リストの一例の構成図である。 機能改ざんチェックフラグの一例の構成図である。 依存アプリリストの一例の構成図である。 ネットワークオプションカードのファームウェアを改ざん検知の対象とした処理手順を示すシーケンス図である。
符号の説明
1 複合機
10 ハードウェア
11 ソフトウェア
12 複合機起動部
21 プロッタ
22 スキャナ
23 その他のハードウェアリソース
24 外部二次記憶装置I/F(インターフェース)
25 ネットワークI/F
26 機器に固有の暗号化復号装置
27 機器の二次記憶装置
31 アプリケーション
32 プラットフォーム
41 プリンタアプリ
42 コピーアプリ
43 ファックスアプリ
44 スキャナアプリ
45 ネットファイルアプリ
46 改ざん検知アプリ
47 RRUアプリ
48 SDKアプリ
49 サードベンダのSDKアプリ
50 ルートファイルシステム
51 汎用OS(オペレーティングシステム)
52 モジュール
52−1 セキュリティモジュール
53 各種設定ファイル
71 ルート鍵
72 PCR I/F
73 BLOB I/F
80,80A BLOB
81,81A ソフトウェア(モジュール)のハッシュ値(PCR値)
82 デバイス暗号鍵
90 CPU
91 揮発性メモリ
92 ASIC
93 エンジンコントローラ
94,94A 不揮発メモリ
95 ネットワークデバイス(network device)
96 sdカードI/F
97 操作パネル
98 ネットワークオプションカード
100 圧縮されたルートファイルシステムイメージ
100A ルートファイルシステム
102 認証対象ファイルリスト
103 アクセス可能領域
104 ファームウェア格納領域
110,111 ブートローダ
112 診断プログラム
200,240 UI
321 PCIコンフィグレジスタ空間
322 オプションカードファームウェア

Claims (12)

  1. 機器の起動時に実行されるソフトウェアの改ざんを前記機器が検知するソフトウェア改ざん検知方法であって、
    前記機器が、前記ソフトウェアから一意に計算される算出値に基づく情報の暗号化及び復号を行う暗号化復号手段を備えたものであり、
    記ソフトウェアに含まれるブートローダ及びオペレーティングシステムから一意に計算される第1の算出値を前記機器の起動時の第1のタイミングに算出する第1算出ステップと、
    前記ブートローダ及びオペレーティングシステム以降に実行されるソフトウェアのうち予め設定された改ざん検知対象のソフトウェアから一意に計算される第2の算出値を前記機器の起動時の前記第1のタイミング後の第2のタイミングに算出する第2算出ステップと、
    前記ブートローダ及びオペレーティングシステムから一意に計算される算出値及び前記改ざん検知対象のソフトウェアから一意に計算される算出値に基づき前記暗号化復号手段により暗号化されている前記情報を、前記機器の起動時に算出した前記第1及び第2の算出値に基づき前記暗号化復号手段により復号し、前記情報の復号が失敗したときに、前記ブートローダ及びオペレーティングシステム又は前記改ざん検知対象のソフトウェアの改ざんを検知する検知ステップと
    前記改ざん検知対象とするソフトウェアの設定を行う設定ステップと、
    前記設定ステップにより前記改ざん検知対象とするソフトウェアが変更された場合、前記ブートローダ及びオペレーティングシステムから一意に計算される算出値及び前記改ざん検知対象のソフトウェアから一意に計算される算出値に基づき前記暗号化復号手段により暗号化されている前記情報を復号し、前記変更に対応させて暗号化し直す更新ステップと、
    を有することを特徴とするソフトウェア改ざん検知方法。
  2. 前記検知ステップで前記情報の復号が成功した場合、予め設定された優先機能に対応するソフトウェアの起動順を表した起動設定リストに基づいて、前記ソフトウェアの起動及び改ざんの検知を順次行う起動ステップを更に有することを特徴とする請求項1記載のソフトウェア改ざん検知方法。
  3. 前記起動ステップで前記ソフトウェアの改ざんを検知すると、各機能が必要とする前記ソフトウェアを表した依存リストに基づいて、改ざんを検知した前記ソフトウェアを必要としない機能に限定して機能を起動する限定起動ステップを更に有することを特徴とする請求項2記載のソフトウェア改ざん検知方法。
  4. 機器の起動時に実行されるソフトウェアの改ざんを前記機器が検知するソフトウェア改ざん検知方法であって、
    前記機器が、前記ソフトウェアから一意に計算される算出値に基づく情報の暗号化及び復号を行う暗号化復号手段を備えたものであり、
    記ソフトウェアに含まれるブートローダ及びオペレーティングシステムから一意に計算される第1の算出値を前記機器の起動時の第1のタイミングに算出する第1算出ステップと、
    前記ブートローダ及びオペレーティングシステム以降に実行されるソフトウェアのうち改ざん検知対象とするソフトウェアを予め設定するための認証対象リストから一意に計算される第2の算出値を前記機器の起動時の前記第1のタイミング後の第2のタイミングに算出する第2算出ステップと、
    前記ブートローダ及びオペレーティングシステムから一意に計算される算出値及び前記認証対象リストから一意に計算される算出値に基づき前記暗号化復号手段により暗号化されている前記情報を、前記機器の起動時に算出した前記第1及び第2の算出値に基づき前記暗号化復号手段により復号し、前記情報の復号が失敗したときに、前記ブートローダ及びオペレーティングシステム又は前記認証対象リストの改ざんを検知する第1検知ステップと
    前記情報の復号が成功したあと、前記改ざん検知対象のソフトウェアから一意に計算される第3の算出値を前記機器の起動時の前記第2のタイミング後の第3のタイミングに算出する第3算出ステップと、
    前記改ざん検知対象のソフトウェアから一意に計算される算出値に基づき前記暗号化復号手段により暗号化されている前記情報を、前記機器の起動時に算出した前記第3の算出値に基づき前記暗号化復号手段により復号し、前記情報の復号が失敗したときに、前記改ざん検知対象のソフトウェアの改ざんを検知する第2検知ステップと
    前記改ざん検知対象とするソフトウェアの設定を行う設定ステップと、
    前記設定ステップにより前記認証対象リストが変更された場合、前記ブートローダ及びオペレーティングシステムから一意に計算される算出値及び前記認証対象リストから一意に計算される算出値に基づき前記暗号化復号手段により暗号化されている前記情報を復号し、前記変更に対応させて暗号化し直す更新ステップと、
    を有することを特徴とするソフトウェア改ざん検知方法。
  5. 前記第2検知ステップで前記情報の復号が成功した場合、予め設定された優先機能に対応するソフトウェアの起動順を表した起動設定リストに基づいて、前記ソフトウェアの起動及び改ざんの検知を順次行う起動ステップを更に有することを特徴とする請求項記載のソフトウェア改ざん検知方法。
  6. 前記起動ステップで前記ソフトウェアの改ざんを検知すると、各機能が必要とする前記ソフトウェアを表した依存リストに基づいて、改ざんを検知した前記ソフトウェアを必要としない機能に限定して機能を起動する限定起動ステップを更に有することを特徴とする請求項記載のソフトウェア改ざん検知方法。
  7. 当該機器の起動時に実行されるソフトウェアの改ざんを検知する機器であって、
    前記ソフトウェアから一意に計算される算出値に基づく情報の暗号化及び復号を行う暗号化復号手段と、
    記ソフトウェアに含まれるブートローダ及びオペレーティングシステムから一意に計算される第1の算出値を当該機器の起動時の第1のタイミングに算出する第1算出手段と、
    前記ブートローダ及びオペレーティングシステム以降に実行されるソフトウェアのうち予め設定された改ざん検知対象のソフトウェアから一意に計算される第2の算出値を当該機器の起動時の前記第1のタイミング後の第2のタイミングに算出する第2算出手段と、
    前記ブートローダ及びオペレーティングシステムから一意に計算される算出値及び前記改ざん検知対象のソフトウェアから一意に計算される算出値に基づき前記暗号化復号手段により暗号化されている前記情報を、当該機器の起動時に算出した前記第1及び第2の算出値に基づき前記暗号化復号手段により復号し、前記情報の復号が失敗したときに、前記ブートローダ及びオペレーティングシステム又は前記改ざん検知対象のソフトウェアの改ざんを検知する検知手段と
    前記改ざん検知対象とするソフトウェアの設定を行う設定手段と、
    前記設定手段により前記改ざん検知対象とするソフトウェアが変更された場合、前記ブートローダ及びオペレーティングシステムから一意に計算される算出値及び前記改ざん検知対象のソフトウェアから一意に計算される算出値に基づき前記暗号化復号手段により暗号化されている前記情報を復号し、前記変更に対応させて暗号化し直す更新手段と、
    を有することを特徴とする機器。
  8. 前記検知手段による前記情報の復号が成功した場合、予め設定された優先機能に対応するソフトウェアの起動順を表した起動設定リストに基づいて、前記ソフトウェアの起動及び改ざんの検知を順次行う起動手段を更に有することを特徴とする請求項記載の機器。
  9. 前記起動手段により前記ソフトウェアの改ざんを検知すると、各機能が必要とする前記ソフトウェアを表した依存リストに基づいて、改ざんを検知した前記ソフトウェアを必要としない機能に限定して機能を起動する限定起動手段を更に有することを特徴とする請求項記載の機器。
  10. 当該機器の起動時に実行されるソフトウェアの改ざんを検知する機器であって、
    前記ソフトウェアから一意に計算される算出値に基づく情報の暗号化及び復号を行う暗号化復号手段と、
    記ソフトウェアに含まれるブートローダ及びオペレーティングシステムから一意に計算される第1の算出値を当該機器の起動時の第1のタイミングに算出する第1算出手段と、
    前記ブートローダ及びオペレーティングシステム以降に実行されるソフトウェアのうち改ざん検知対象とするソフトウェアを予め設定するための認証対象リストから一意に計算される第2の算出値を当該機器の起動時の前記第1のタイミング後の第2のタイミングに算出する第2算出手段と、
    前記ブートローダ及びオペレーティングシステムから一意に計算される算出値及び前記認証対象リストから一意に計算される算出値に基づき前記暗号化復号手段により暗号化されている前記情報を、当該機器の起動時に算出した前記第1及び第2の算出値に基づき前記暗号化復号手段により復号し、前記情報の復号が失敗したときに、前記ブートローダ及びオペレーティングシステム又は前記認証対象リストの改ざんを検知する第1検知手段と
    前記情報の復号が成功したあと、前記改ざん検知対象のソフトウェアから一意に計算される第3の算出値を当該機器の起動時の前記第2のタイミング後の第3のタイミングに算出する第3算出手段と、
    前記改ざん検知対象のソフトウェアから一意に計算される算出値に基づき前記暗号化復号手段により暗号化されている前記情報を、当該機器の起動時に算出した前記第3の算出値に基づき前記暗号化復号手段により復号し、前記情報の復号が失敗したときに、前記改ざん検知対象のソフトウェアの改ざんを検知する第2検知手段と
    前記改ざん検知対象とするソフトウェアの設定を行う設定手段と、
    前記設定手段により前記認証対象リストが変更された場合、前記ブートローダ及びオペレーティングシステムから一意に計算される算出値及び前記認証対象リストから一意に計算される算出値に基づき前記暗号化復号手段により暗号化されている前記情報を復号し、前記変更に対応させて暗号化し直す更新手段と、
    を有することを特徴とする機器。
  11. 前記第2検知手段による前記情報の復号が成功した場合、予め設定された優先機能に対応するソフトウェアの起動順を表した起動設定リストに基づいて、前記ソフトウェアの起動及び改ざんの検知を順次行う起動手段を更に有することを特徴とする請求項1記載の機器。
  12. 前記起動手段により前記ソフトウェアの改ざんを検知すると、各機能が必要とする前記ソフトウェアを表した依存リストに基づいて、改ざんを検知した前記ソフトウェアを必要としない機能に限定して機能を起動する限定起動手段を更に有することを特徴とする請求項1記載の機器。
JP2008157078A 2008-06-16 2008-06-16 ソフトウェア改ざん検知方法及び機器 Expired - Fee Related JP5309709B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008157078A JP5309709B2 (ja) 2008-06-16 2008-06-16 ソフトウェア改ざん検知方法及び機器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008157078A JP5309709B2 (ja) 2008-06-16 2008-06-16 ソフトウェア改ざん検知方法及び機器

Publications (2)

Publication Number Publication Date
JP2009301429A JP2009301429A (ja) 2009-12-24
JP5309709B2 true JP5309709B2 (ja) 2013-10-09

Family

ID=41548236

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008157078A Expired - Fee Related JP5309709B2 (ja) 2008-06-16 2008-06-16 ソフトウェア改ざん検知方法及び機器

Country Status (1)

Country Link
JP (1) JP5309709B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5493946B2 (ja) * 2010-02-08 2014-05-14 株式会社リコー 複合システム、セキュリティ方法、セキュリティプログラム及び記録媒体
JP6391439B2 (ja) * 2014-11-21 2018-09-19 キヤノン株式会社 情報処理装置、サーバ装置、情報処理システム、制御方法及びコンピュータプログラム
JP7179482B2 (ja) * 2018-04-19 2022-11-29 キヤノン株式会社 情報処理装置、制御方法、およびそのプログラム
JP2019200660A (ja) 2018-05-17 2019-11-21 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム
JP7182966B2 (ja) * 2018-09-12 2022-12-05 キヤノン株式会社 情報処理装置、情報処理装置の起動方法、及びプログラム
JP2022066084A (ja) 2020-10-16 2022-04-28 キヤノン株式会社 情報処理装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3293760B2 (ja) * 1997-05-27 2002-06-17 株式会社エヌイーシー情報システムズ 改ざん検知機能付きコンピュータシステム
JP2005063207A (ja) * 2003-08-14 2005-03-10 Easy Systems Japan Kk アップデートプログラム及びアップデート方法
JP4638158B2 (ja) * 2003-10-06 2011-02-23 美恵子 露崎 著作権保護システム
JP2005293504A (ja) * 2004-04-05 2005-10-20 Sony Corp プログラム、コンピュータおよびデータ処理方法
US7725703B2 (en) * 2005-01-07 2010-05-25 Microsoft Corporation Systems and methods for securely booting a computer with a trusted processing module
EP2194476B1 (en) * 2005-03-22 2014-12-03 Hewlett-Packard Development Company, L.P. Method and apparatus for creating a record of a software-verification attestation
US7587595B2 (en) * 2005-05-13 2009-09-08 Intel Corporation Method and apparatus for providing software-based security coprocessors
JP4871598B2 (ja) * 2006-01-19 2012-02-08 キヤノン株式会社 画像処理装置および画像処理装置の起動方法およびプログラム
US7711960B2 (en) * 2006-08-29 2010-05-04 Intel Corporation Mechanisms to control access to cryptographic keys and to attest to the approved configurations of computer platforms

Also Published As

Publication number Publication date
JP2009301429A (ja) 2009-12-24

Similar Documents

Publication Publication Date Title
JP5369502B2 (ja) 機器、管理装置、機器管理システム、及びプログラム
JP6595822B2 (ja) 情報処理装置及びその制御方法
JP5116325B2 (ja) 情報処理装置、ソフトウェア更新方法及び画像処理装置
JP4991592B2 (ja) ソフトウェア改ざん検知方法、ソフトウェア改ざん検知プログラム及び機器
JP5346608B2 (ja) 情報処理装置およびファイル検証システム
JP4890309B2 (ja) 情報処理装置及び情報保護方法
JP5309709B2 (ja) ソフトウェア改ざん検知方法及び機器
JP2007257197A (ja) 起動検証機能を有する情報処理装置
JP5689429B2 (ja) 認証装置、および、認証方法
JP2009129461A (ja) 保存装置、前記保存装置を用いる端末装置とその方法
JP5617981B2 (ja) 機器、管理装置、機器管理システム、及びプログラム
JP5582231B2 (ja) 情報処理装置、真正性確認方法、及び記録媒体
JP5387724B2 (ja) ソフトウェア改ざん検知方法、ソフトウェア改ざん検知プログラム及び機器
JP2008234079A (ja) 情報処理装置、ソフトウェア正当性通知方法及び画像処理装置
US11971991B2 (en) Information processing apparatus, control method for controlling the same and storage medium
US20230103698A1 (en) Information processing apparatus and control method therefor
JP2008102678A (ja) 電子機器
JP5574007B2 (ja) 情報処理装置及び情報保護方法
JP5278520B2 (ja) 情報処理装置、情報保護方法
US20230273798A1 (en) Information processing apparatus and method for controlling information processing apparatus
JP5310897B2 (ja) 情報処理装置、ソフトウェア更新方法及び記録媒体
JP5234217B2 (ja) 情報処理装置、ソフトウェア更新方法及びプログラム
JP2022182837A (ja) 情報処理装置、及びその制御方法
JP2013191226A (ja) 情報処理装置、ソフトウェア更新方法及び画像処理装置
JP5500232B2 (ja) 情報処理装置及び情報保護方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110302

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121010

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130319

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130517

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130604

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130617

R151 Written notification of patent or utility model registration

Ref document number: 5309709

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees