説明

ソフトウェア改ざん検知方法、ソフトウェア改ざん検知プログラム及び機器

【課題】搭載されているソフトウェアの改ざんとソフトウェア構成の改ざんとを容易に検知可能なソフトウェア改ざん検知方法、ソフトウェア改ざん検知プログラム及び機器を提供することを目的とする。
【解決手段】搭載されているソフトウェア11の改ざんを機器1が検知するソフトウェア改ざん検知方法であって、インストール手段が機器に固有の暗号化復号装置26を利用しインストール時における機器1のソフトウェア構成情報を暗号化して機器1の外部に保存する保存ステップと、改ざん検知手段46が機器の外部に保存したインストール時における機器のソフトウェア構成情報を機器に固有の暗号化復号装置26を利用して復号する復号ステップと、改ざん検知手段46がインストール時及び現在の機器のソフトウェア構成情報を比較し、ソフトウェア11の改ざんを検知する検知ステップとを有することにより上記課題を解決する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェア改ざん検知方法、ソフトウェア改ざん検知プログラム及び機器に係り、特に搭載されているソフトウェアの改ざんを検知するソフトウェア改ざん検知方法、ソフトウェア改ざん検知プログラム及び機器に関する。
【背景技術】
【0002】
例えば機器に搭載されているファームウェア(ソフトウェア)の改ざん検知方法としては従来からハッシュ値による改ざん検知方法が良く知られている(例えば特許文献1乃至3参照)。
【0003】
従来のハッシュ値による改ざん検知方法は、ファームウェアを機器へインストールするときに、そのファームウェアのハッシュ値を計算し、機器の二次記憶装置に予め保存しておく。そして、機器の起動時、従来のハッシュ値による改ざん検知方法はファームウェアのハッシュ値を再計算し、二次記憶装置に予め保存してあるハッシュ値と比較して不一致であれば改ざんがなされたものと判定し、異常時の処理を行っていた。
【特許文献1】特開2004−213057号公報
【特許文献2】特開2005−84989号公報
【特許文献1】特開2007−41694号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
従来のハッシュ値による改ざん検知方法は確かにファームウェア自体になされた改ざんを検知できる。しかし、従来のハッシュ値による改ざん検知方法はファームウェアとともに機器の二次記憶装置等に保存してあるハッシュ値も改ざんされると、ファームウェアの改ざんを検知できないという問題があった。
【0005】
また、従来のハッシュ値による改ざん検知方法はファームウェアとともに機器の二次記憶装置等に保存してあるハッシュ値も削除されると、ファームウェアの削除を検知できないという問題があった。上記問題は、ハッシュ値が個々のファームウェアの改ざんを検知できても機器全体のファームウェアの構成が変更されたことを検知できないことに起因するものである。
【0006】
ファームウェアとともに機器の二次記憶装置等に保存してあるハッシュ値も改ざんされるとファームウェアの改ざんを検知できないという上記問題については機器内に暗号/復号鍵を用意し、機器の二次記憶装置等に保存するハッシュ値を暗号化しておくことでハッシュ値の改ざんを防ぐことも考えられる。
【0007】
しかし、暗号/復号鍵が機器の二次記憶装置等に保存されるため、機器の二次記憶装置等に保存するハッシュ値を暗号化しておく改ざん検知方法は、悪意の第三者が、機器の二次記憶装置等から復号鍵を不正に入手し、暗号化されたハッシュ値を復号可能という問題が残されている。
【0008】
このように、従来のハッシュ値による改ざん検知方法は機器内に保存したハッシュ値の改ざんに対して無力であった。また、従来のハッシュ値による改ざん検知方法は機器全体のファームウェアの構成の改ざんに対して無力であった。さらに、従来のハッシュ値による改ざん検知方法は、改ざんを防ぐ為の暗号化によっても、上記のハッシュ値の改ざんや機器全体のファームウェアの構成の改ざんを完全に検知できるものではなかった。
【0009】
本発明は上記の点に鑑みなされたもので、搭載されているソフトウェアの改ざんとソフトウェア構成の改ざんとを容易に検知可能なソフトウェア改ざん検知方法、ソフトウェア改ざん検知プログラム及び機器を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記課題を解決するため、本発明は、機器に搭載されているソフトウェアの改ざんを前記機器が検知するソフトウェア改ざん検知方法であって、前記ソフトウェアをインストールするインストール手段が、前記機器に固有の暗号化復号装置を利用し、インストール時における前記機器のソフトウェア構成情報を暗号化して前記機器の外部に保存する保存ステップと、前記ソフトウェアの改ざんを検知する改ざん検知手段が、前記機器の外部に保存したインストール時における前記機器のソフトウェア構成情報を、前記機器に固有の暗号化復号装置を利用して復号する復号ステップと、前記改ざん検知手段が、インストール時における前記機器のソフトウェア構成情報と現在の前記機器のソフトウェア構成情報とを比較し、前記ソフトウェアの改ざんを検知する検知ステップとを有することを特徴とする。
【0011】
また、本発明は、搭載されているソフトウェアの改ざんを検知する機器に、前記ソフトウェアをインストールするインストール手段が、前記機器に固有の暗号化復号装置を利用し、インストール時における前記機器のソフトウェア構成情報を暗号化して前記機器の外部に保存する保存ステップと、前記ソフトウェアの改ざんを検知する改ざん検知手段が、前記機器の外部に保存したインストール時における前記機器のソフトウェア構成情報を、前記機器に固有の暗号化復号装置を利用して復号する復号ステップと、前記改ざん検知手段が、インストール時における前記機器のソフトウェア構成情報と現在の前記機器のソフトウェア構成情報とを比較し、前記ソフトウェアの改ざんを検知する検知ステップとを実行させるためのソフトウェア改ざん検知プログラムであることを特徴とする。
【0012】
また、本発明は、搭載されているソフトウェアの改ざんを検知する機器であって、前記機器に固有の暗号化復号装置と、前記ソフトウェアをインストールするインストール手段と、前記ソフトウェアの改ざんを検知する改ざん検知手段とを有し、前記インストール手段は、前記機器に固有の暗号化復号装置を利用し、インストール時における前記機器のソフトウェア構成情報を暗号化して前記機器の外部に保存し、前記改ざん検知手段は、前記機器の外部に保存したインストール時における前記機器のソフトウェア構成情報を前記機器に固有の暗号化復号装置を利用して復号し、前記インストール時における前記機器のソフトウェア構成情報と現在の前記機器のソフトウェア構成情報とを比較して、前記ソフトウェアの改ざんを検知することを特徴とする。
【0013】
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
【発明の効果】
【0014】
本発明によれば、搭載されているソフトウェアの改ざんとソフトウェア構成の改ざんとを容易に検知可能なソフトウェア改ざん検知方法、ソフトウェア改ざん検知プログラム及び機器を提供可能である。
【発明を実施するための最良の形態】
【0015】
次に、本発明を実施する為の最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。なお、本実施例では搭載されているソフトウェアの改ざんを検知する機器の一例として複合機を例に説明するが、ソフトウェア(ファームウェア)が搭載された組み込み機器等、如何なる機器であってもよい。
【0016】
図1は本実施例の複合機を表した一例の構成図である。図1の複合機1は種々のハードウェア10と、種々のソフトウェア11と、複合機起動部12とを含む構成である。
【0017】
ハードウェア10はプロッタ21と、スキャナ22と、その他のハードウェアリソース23と、外部二次記憶装置I/F(インターフェース)24と、ネットワークI/F25と、機器に固有の暗号化復号装置26と、機器の二次記憶装置27とを含む構成である。
【0018】
外部二次記憶装置I/F24は、例えばSDカードを外部から接続する為のSDカードスロットのように何らかの二次記憶装置を外部から接続するI/Fである。ネットワークI/F25は例えばインターネットやLAN等のネットワーク経由で外部サーバ等の二次記憶装置に接続するI/Fである。機器に固有の暗号化復号装置26は、例えばセキュリティチップであるTPM(Trusted Platform Module)により実現される。なお、機器に固有の暗号化復号装置26の詳細は後述する。
【0019】
ソフトウェア11は、種々のアプリケーション31と、プラットフォーム32と、汎用OS(オペレーティングシステム)33とを含む構成である。種々のアプリケーション31とプラットフォーム32とを構成するプログラムは、UNIX(登録商標)等の汎用OS33によりプロセス単位で並列的に実行される。
【0020】
アプリケーション31は、プリンタアプリ41と、コピーアプリ42と、ファックスアプリ43と、スキャナアプリ44と、ネットファイルアプリ45と、改ざん検知アプリ46と、RRUアプリ47と、SDKアプリ48と、サードベンダのSDKアプリ49とを含む構成である。SDKアプリ48とサードベンダのSDKアプリ49とは、専用のSDK(ソフトウェア開発キット)を使用して開発されたプログラムである。なお、改ざん検知アプリ46の詳細は後述する。
【0021】
プラットフォーム32は種々のコントロールサービス51とSRM(システムリソースマネージャ)52とを含む構成である。また、コントロールサービス51はECS(エンジンコントロールサービス)53と、MCS(メモリコントロールサービス)54と、OCS(オペレーションパネルコントロールサービス)55と、FCS(ファクシミリコントロールサービス)56と、NCS(ネットワークコントロールサービス)57と、SCS(システムコントロールサービス)58とを含む構成である。なお、プラットフォーム32を構成するプログラムの詳細は例えば特開2002−84383号公報に記載されている為、説明を省略する。
【0022】
複合機起動部12は、複合機1の電源投入時に最初に実行される。これにより、複合機1では汎用OS33が起動され、アプリケーション31やプラットフォーム32が起動される。種々のアプリケーション31とプラットフォーム32とを構成するプログラムはHDD(ハードディスクドライブ)やメモリカード等の機器の二次記憶装置27に記憶されており、HDDやメモリカードから読み出されて、メモリ上で起動されることになる。
【0023】
図2は機器に固有の暗号化復号装置の特徴について説明する為の模式図である。機器に固有の暗号化復号装置26は、ルート鍵61と、二つのI/F62,63とを含む構成である。ルート鍵61は、機器に固有の暗号化復号装置26から取り出すことのできない暗号/復号鍵である。機器に固有の暗号化復号装置26は、ルート鍵61を用いた暗号化復号処理機能を有する。
【0024】
I/F62は平文データをルート鍵61で暗号化して返すI/Fである。I/F63は暗号化された平文データをルート鍵61で復号して返すI/Fである。なお、機器に固有の暗号化復号装置26はハードウェアが基板に直付けされており、且つ、取り外して別の機器に取り付けても利用できない。
【0025】
図3は機器に固有の暗号化復号装置がある場合の暗号化データ保存方法について説明する為の模式図である。機器の二次記憶装置27にはルート鍵61で暗号化済の暗号/復号鍵と、暗号鍵で暗号化済の暗号化データとが記憶されている。機器の二次記憶装置27に記憶されている暗号化データは、図4のシーケンス図に示す処理手順に従い復号されて利用される。
【0026】
図4は、機器に固有の暗号化復号装置がある場合の暗号化データ復号方法について説明する為のシーケンス図である。なお、以下の説明では、暗号化されたデータを「データ名称+BLOB」と言う。例えば暗号化された暗号/復号鍵は、鍵BLOBと言う。
【0027】
ステップS1に進み、データを使うソフト71は、鍵BLOBを機器に固有の暗号化復号装置26に送信し、ルート鍵61で復号させる。ステップS2に進み、機器に固有の暗号化復号装置26は、鍵BLOBから復号した復号鍵を、データを使うソフト71に送信する。ステップS3に進み、データを使うソフト71は受信した復号鍵で暗号化データを復号する。
【0028】
図3に示した暗号化データ保存方法は、機器の二次記憶装置27をまるごと取り外して別の機器に移動しても機器の二次記憶装置27に記憶されている鍵BLOBを復号できないため、暗号化データの解読もできない。また、図3に示した暗号化データ保存方法は機器に固有の暗号化復号装置26からルート鍵61を取り出すことができない為、ルート鍵61を盗まれる危険もない。
【0029】
なお、機器に固有の暗号化復号装置がない場合の従来の暗号化データ保存方法では、暗号/復号鍵と暗号化データとが両方、機器の二次記憶装置27に記憶されている為、機器の二次記憶装置27をまるごと取り外して別の機器に移動すると、機器の二次記憶装置27に記憶されている復号鍵で暗号化データを解読できてしまう。
【0030】
図5は本実施例の複合機にファームウェアを書き込む処理を説明する為のブロック図である。なお、図5のブロック図は説明に不要な部分を適宜省略している。
【0031】
複合機1のインストールアプリ80は、種々のファームウェア82を複合機1に書き込む(インストールする)為のツールである。種々のファームウェア82はインストール用ファイル群81に含まれる。また、インストール用ファイル群81にはルート鍵61で暗号化した暗号/復号鍵である鍵BLOB83と、ファームウェア構成情報84とが更に含まれる。なお、ファームウェア構成情報84はインストール用ファイル群81に含まれていてもよいし、生成してもよい。
【0032】
ファームウェア構成情報84は、複合機1に書き込む種々のファームウェア82を一意に特定する為の情報である。例えばファームウェア構成情報84は機器の二次記憶装置27のファイル構成リスト(UNIX(登録商標)のlsを実施した結果など)やファームウェア82のバージョン情報等である。
【0033】
図6は本実施例の複合機にファームウェアを書き込む処理を説明する為のシーケンス図である。ステップS11に進み、インストールアプリ80はインストール用ファイル群81を機器の二次記憶装置27に書き込む。ステップS12に進み、インストールアプリ80はインストール用ファイル群81に含まれる鍵BLOB83を機器に固有の暗号化復号装置26に送信し、ルート鍵61で鍵BLOBを復号させ、暗号鍵を得る。
【0034】
ステップS13に進み、インストールアプリ80はファームウェア構成情報84を暗号鍵で暗号化し、ファームウェア構成情報BLOBを生成する。ステップS14及びS15に進み、インストールアプリ80はファームウェア構成情報BLOBを、外部二次記憶装置I/F24経由で接続されるSDカードやネットワークI/F25経由で接続される外部サーバ等の外部の二次記憶装置91に保存する。
【0035】
本実施例の複合機1では、複合機1以外の外部の二次記憶装置91に保存しておくことで悪意の第三者による改ざんを防ぐことができる。
【0036】
図7は本実施例の複合機に搭載されているファームウェアの改ざんを検知する処理を説明する為のシーケンス図である。なお、ファームウェアの改ざんを検知する処理を実行するときの複合機1の構成は図1と同様である。
【0037】
ステップS21に進み、改ざん検知アプリ46は機器の二次記憶装置27から鍵BLOB83を取り出す。ステップS22に進み、改ざん検知アプリ46は鍵BLOB83を機器に固有の暗号化復号装置26に送信し、ルート鍵61で鍵BLOBを復号させ、復号鍵を得る。ステップS23に進み、改ざん検知アプリ46は、外部の二次記憶装置91からファームウェア構成情報BLOBを取り出す。ステップS24に進み、改ざん検知アプリ46はファームウェア構成情報BLOBを復号鍵で復号して、ファームウェア構成情報84を得る。
【0038】
そして、ステップS25に進み、改ざん検知アプリ46は、現在の複合機1に搭載されている種々のアプリケーション31のファームウェア構成情報と、ファームウェア構成情報BLOBを復号鍵で復号して得たファームウェア構成情報84とを比較し、その比較結果が異なるときに、改ざんがあったことを検知する。なお、ステップS25の処理の具体的内容は後述する。
【実施例1】
【0039】
実施例1の複合機1は、搭載されているファームウェアの改ざんを検知する処理を起動時に毎回実行するものとする。また、ファームウェア構成情報は「各ファームウェア82のバージョン文字列を格納したテキストファイル」であるものとする。さらに、外部の二次記憶装置91はUSBメモリやSDカード等の「携帯可能な二次記憶装置」であるものとする。
【0040】
図8は実施例1の複合機を表した一例の構成図である。図8の複合機1はネットワークI/F25が無い点で図1の構成図と異なる。
【0041】
図9は実施例1の複合機にファームウェアを書き込む処理を説明する為のブロック図である。図9のブロック図はファームウェア構成情報84がバージョンファイル86に置き換えられている点で図5のブロック図と異なっている。バージョンファイル86は、対応するファームウェア82のバージョン文字列が記載されたテキストファイルである。
【0042】
バージョンファイル86は、ファームウェア82を複合機1にインストールする前に予め手動または自動で生成されるファイルである。インストールアプリ80は、バージョンファイル86の生成に関与しない。バージョンファイル86は、ファームウェア構成情報84の一例である。
【0043】
図10は実施例1の複合機にファームウェアを書き込む処理を説明する為のシーケンス図である。ステップS31に進み、インストールアプリ80はインストール用ファイル群85を機器の二次記憶装置27に書き込む。ステップS32に進み、インストールアプリ80は図11に示すバージョンファイル86の暗号化処理を行う。図11は、バージョンファイルの暗号化処理の手順を示すフローチャートである。
【0044】
ステップS41に進み、インストールアプリ80はインストール用ファイル群85に含まれる鍵BLOB83を機器に固有の暗号化復号装置26に送信し、ルート鍵61で鍵BLOBを復号させ、暗号鍵を得る。ステップS42に進み、インストールアプリ80は全てのバージョンファイル86を出力したか否かを判定する。
【0045】
全てのバージョンファイル86を出力していない(出力していないバージョンファイル86が残っている)と判定すると、インストールアプリ80はステップS43に進み、インストール用ファイル群85に含まれるバージョンファイル86を一つ選択する。
【0046】
ステップS44に進み、インストールアプリ80は選択したバージョンファイル86の中身を「バージョン出力ファイル」に出力し、ステップS42に戻る。インストールアプリ80は、全てのバージョンファイル86の中身を「バージョン出力ファイル」に出力するまでステップS42〜S44の処理を繰り返し行う。全てのバージョンファイル86を出力した(出力していないバージョンファイル86が残っていない)と判定すると、インストールアプリ80はステップS45に進み、バージョン出力ファイルを暗号鍵で暗号化してバージョン出力ファイルBLOBを生成する。
【0047】
図10のステップS33に進み、インストールアプリ80はバージョン出力ファイルBLOBを、外部二次記憶装置I/F24経由で接続されるSDカード等の携帯可能な二次記憶装置101に保存する。携帯可能な二次記憶装置101は、複合機1に搭載されているアプリケーション(ファームウェア)31の改ざんを検知する時に、複合機1に取り付けられるものである。
【0048】
実施例1の複合機1では、複合機1以外の携帯可能な二次記憶装置101にバージョン出力ファイルBLOBを保存しておくことで、悪意の第三者による改ざんを防ぐことができる。
【0049】
図12は実施例1の複合機におけるファームウェアの改ざんを検知する処理を説明する為のフローチャートである。なお、ファームウェアの改ざんを検知する処理を実行するときの複合機1の構成は図8と同様である。
【0050】
ステップS51に進み、改ざん検知アプリ46は機器の二次記憶装置27から鍵BLOB83を取り出す。ステップS52に進み、改ざん検知アプリ46は鍵BLOB83を機器に固有の暗号化復号装置26に送信し、ルート鍵61で鍵BLOBを復号させ、復号鍵を得る。ステップS53に進み、改ざん検知アプリ46は、外部二次記憶装置I/F24経由で接続される携帯可能な二次記憶装置101からバージョン出力ファイルBLOBを取り出す。ステップS54に進み、改ざん検知アプリ46はバージョン出力ファイルBLOBを復号鍵で復号し、バージョン出力ファイルを得る。
【0051】
ステップS55に進み、改ざん検知アプリ46は機器の二次記憶装置27に記憶されている現在の複合機1に搭載されている種々のファームウェアのバージョンファイル86を全て調査したか否かを判定する。
【0052】
全てのバージョンファイル86を調査していない(調査していないバージョンファイル86が残っている)と判定すると、改ざん検知アプリ46はステップS56に進み、機器の二次記憶装置27からバージョンファイル86を一つ取り出す。改ざん検知アプリ46はステップS57に進み、取り出したバージョンファイル86からバージョン文字列を取り出す。
【0053】
ステップS58に進み、改ざん検知アプリ46はステップS54で得たバージョン出力ファイルから、該当するファームウェアのバージョン文字列を取り出す。ステップS59に進み、改ざん検知アプリ46はステップS57で取り出したバージョン文字列とステップS58で取り出したバージョン文字列とを比較し、一致しているか否かを判定する。
【0054】
ステップS59は現在の複合機1に搭載されている種々のファームウェアのバージョン文字列と、インストール時、複合機1に搭載された種々のファームウェアのバージョン文字列とが一致しているか否かを判定するものである。
【0055】
ステップS59においてバージョン文字列が一致していれば、改ざん検知アプリ46はステップS55に戻る。なお、ステップS59においてバージョン文字列が一致していなければファームウェアが改ざんされたと判定し、改ざん検知アプリ46はステップS60に進み、図13に示すような画面をオペレーションパネル等に出力して、複合機1を停止する。
【0056】
図13は改ざんを検知したときにオペレーションパネルに表示される画面の一例を表したイメージ図である。図13の画面には、操作者に異常を検知した旨を通知する為のコメントと、異常を検知したファームウェアの情報とが含まれる。
【0057】
また、ステップS55において、全てのバージョンファイル86を調査した(調査していないバージョンファイル86が残っていない)と判定すると、改ざん検知アプリ46はステップS61に進み、バージョン出力ファイルに未調査のバージョン文字列が残っていないか否かを判定する。
【0058】
バージョン出力ファイルに未調査のバージョン文字列が残っていなければ、改ざん検知アプリ46はステップS62に進み、図14に示すような画面をオペレーションパネル等に出力して、複合機1の立ち上げ(起動)を続行する。
【0059】
図14は改ざんを検知しないときにオペレーションパネルに表示される画面の一例を表したイメージ図である。図14の画面には、操作者に異常を検知しなかった旨を通知する為のコメントが含まれる。
【0060】
一方、バージョン出力ファイルに未調査のバージョン文字列が残っていれば、改ざん検知アプリ46はステップS63に進み、図15に示すような画面をオペレーションパネル等に出力して、複合機1を停止する。なお、ステップS63において複合機1を停止する理由はバージョン出力ファイルに未調査のバージョン文字列が残っている場合、複合機1からファームウェアが削除された(ファームウェア構成が改ざんされた)可能性が高いからである。
【0061】
図15は改ざんを検知したときにオペレーションパネルに表示される画面の一例を表したイメージ図である。図15の画面には、操作者に異常(ファームウェアの削除)を検知した旨を通知する為のコメントと、削除されたファームウェアの情報とが含まれる。
【0062】
以上、実施例1の複合機1では、搭載されているファームウェアの改ざんと、ファームウェア構成の改ざんとを容易に検知可能である。
【実施例2】
【0063】
実施例2の複合機1は、搭載されているファームウェアの改ざんを検知する処理を操作者からの指示により実行するものとする。また、ファームウェア構成情報は「複合機1にファームウェアがインストールされた後の機器の二次記憶装置27のファイル構成を表すファイル構成リスト(例えばUNIX(登録商標)のlsを実施した結果など)」であるものとする。更に、外部の二次記憶装置91は「外部サーバ」であるものとする。
【0064】
図16は実施例2の複合機を表した一例の構成図である。図16の複合機1は外部二次記憶装置I/F24が無い点で図1の構成図と異なる。
【0065】
図17は実施例2の複合機にファームウェアを書き込む処理を説明する為のブロック図である。図17のブロック図は、ファームウェア構成情報84の代わりに機器の二次記憶装置27のファイル構成を表したファイル構成スナップショット89を利用する点で図5のブロック図と異なっている。
【0066】
ファイル構成スナップショット89は、ファイル構成出力アプリ87によって例えばUNIX(登録商標)のlsなどを実施することにより生成される。ファイル構成スナップショット89は、複合機1にファームウェアがインストールされた後の機器の二次記憶装置27のファイル構成を表すファイル構成リストである。
【0067】
図18は実施例2の複合機にファームウェアを書き込む処理を説明する為のシーケンス図である。ステップS71に進み、インストールアプリ80はインストール用ファイル群88を機器の二次記憶装置27に書き込む。ステップS72に進み、インストールアプリ80は図19に示すファイル構成スナップショット89の暗号化処理を行う。
【0068】
図19は、ファイル構成スナップショットの暗号化処理の手順を示すフローチャートである。ステップS81に進み、インストールアプリ80はインストール用ファイル群88に含まれる鍵BLOB83を機器に固有の暗号化復号装置26に送信し、ルート鍵61で鍵BLOBを復号させ、暗号鍵を得る。ステップS82に進み、インストールアプリ80はファイル構成スナップショット89をファイルに出力する。
【0069】
ステップS83に進み、インストールアプリ80はファイル構成スナップショット89を出力したファイルを暗号鍵で暗号化してファイル構成スナップショットBLOBを生成する。
【0070】
更に図18のステップS73に進み、インストールアプリ80はファイル構成スナップショットBLOBを、ネットワークI/F25経由で接続される外部サーバ181に送出する。ステップS74に進み、外部サーバ181はファイル構成スナップショットBLOBを例えば外部サーバ181内の二次記憶装置に保存する。
【0071】
実施例2の複合機1では、複合機1以外の外部サーバ181内の二次記憶装置にファイル構成スナップショットBLOBを保存しておくことで悪意の第三者による改ざんを防ぐことができる。
【0072】
図20は実施例2の複合機におけるファームウェアの改ざんを検知する処理を説明する為のフローチャートである。なお、ファームウェアの改ざんを検知する処理を実行するときの複合機1の構成は図16と同様である。
【0073】
ステップS91に進み、改ざん検知アプリ46は機器の二次記憶装置27から鍵BLOB83を取り出す。ステップS92に進み、改ざん検知アプリ46は鍵BLOB83を機器に固有の暗号化復号装置26に送信し、ルート鍵61で鍵BLOBを復号させ、復号鍵を得る。ステップS93に進み、改ざん検知アプリ46はネットワークI/F25経由で接続される外部サーバ181からファイル構成スナップショットBLOBを取り出す。ステップS94に進み、改ざん検知アプリ46はファイル構成スナップショットBLOBを復号鍵で復号し、ファイル構成スナップショット89を得る。
【0074】
ステップS95に進み、改ざん検知アプリ46は現在の複合機1の機器の二次記憶装置27のファイル構成を表すファイル構成リストであるファイル構成スナップショットを取得する。
【0075】
ステップS96に進み、改ざん検知アプリ46は、ステップS94で取得したファイル構成スナップショット89とステップS95で取得したファイル構成スナップショットとを比較し、一致しているか否かを判定する。ステップS96は現在の複合機1のファイル構成スナップショットと、ファームウェアをインストールした後のファイル構成スナップショット89とが一致しているか否かを判定するものである。
【0076】
ステップS96においてファイル構成スナップショット89が一致していなければ、改ざん検知アプリ46はステップS97に進み、図13又は図15に示すような画面をオペレーションパネル等に出力して、複合機1を停止する。
【0077】
ステップS96においてファイル構成スナップショット89が一致していれば、改ざん検知アプリ46はステップS98に進み、図16に示すような画面をオペレーションパネル等に出力して、複合機1の動作を続行する。
【0078】
以上、実施例2の複合機1では、搭載されているファームウェアの改ざんと、ファームウェア構成の改ざんとを容易に検知可能である。
【0079】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【0080】
なお、図1,図8及び図16では点線によって囲まれているファームウェアが改ざん検知対象となる。また、現在の複合機1のファームウェア構成情報は、インストール時に機器の二次記憶装置27へ記憶したものであっても、ファームウェアの改ざんを検知する処理を行う度に生成するようにしてもよい。
【0081】
インストール時、機器の二次記憶装置27に記憶したファームウェア構成情報を現在のファームウェア構成情報として利用する場合はファームウェアがアップデート(更新)される度、機器の二次記憶装置27へ記憶したファームウェア構成情報を更新する仕組みが必要である。また、ファームウェアがアップデート(更新)される場合も、本実施例の複合機1はファームウェアのインストール時と同様に処理すればよい。
【図面の簡単な説明】
【0082】
【図1】本実施例の複合機を表した一例の構成図である。
【図2】機器に固有の暗号化復号装置の特徴について説明する為の模式図である。
【図3】機器に固有の暗号化復号装置がある場合の暗号化データ保存方法について説明する為の模式図である。
【図4】機器に固有の暗号化復号装置がある場合の暗号化データ復号方法について説明する為のシーケンス図である。
【図5】本実施例の複合機にファームウェアを書き込む処理を説明する為のブロック図である。
【図6】本実施例の複合機にファームウェアを書き込む処理を説明する為のシーケンス図である。
【図7】本実施例の複合機に搭載されているファームウェアの改ざんを検知する処理を説明する為のシーケンス図である。
【図8】実施例1の複合機を表した一例の構成図である。
【図9】実施例1の複合機にファームウェアを書き込む処理を説明する為のブロック図である。
【図10】実施例1の複合機にファームウェアを書き込む処理を説明する為のシーケンス図である。
【図11】バージョンファイルの暗号化処理の手順を示すフローチャートである。
【図12】実施例1の複合機におけるファームウェアの改ざんを検知する処理を説明する為のフローチャートである。
【図13】改ざんを検知したときにオペレーションパネルに表示される画面の一例を表したイメージ図である。
【図14】改ざんを検知しないときにオペレーションパネルに表示される画面の一例を表したイメージ図である。
【図15】改ざんを検知したときにオペレーションパネルに表示される画面の一例を表したイメージ図である。
【図16】実施例2の複合機を表した一例の構成図である。
【図17】実施例2の複合機にファームウェアを書き込む処理を説明する為のブロック図である。
【図18】実施例2の複合機にファームウェアを書き込む処理を説明する為のシーケンス図である。
【図19】ファイル構成スナップショットの暗号化処理の手順を示すフローチャートである。
【図20】実施例2の複合機におけるファームウェアの改ざんを検知する処理を説明する為のフローチャートである。
【符号の説明】
【0083】
1 複合機
10 ハードウェア
11 種々のソフトウェア
12 複合機起動部
21 プロッタ
22 スキャナ
23 その他のハードウェアリソース
24 外部二次記憶装置I/F(インターフェース)
25 ネットワークI/F
26 機器に固有の暗号化復号装置
27 機器の二次記憶装置
31 種々のアプリケーション
32 プラットフォーム
33 汎用OS(オペレーティングシステム)
41 プリンタアプリ
42 コピーアプリ
43 ファックスアプリ
44 スキャナアプリ
45 ネットファイルアプリ
46 改ざん検知アプリ
47 RRUアプリ
48 SDKアプリ
49 サードベンダのSDKアプリ
51 コントロールサービス
52 SRM(システムリソースマネージャ)
53 ECS(エンジンコントロールサービス)
54 MCS(メモリコントロールサービス)
55 OCS(オペレーションパネルコントロールサービス)
56 FCS(ファクシミリコントロールサービス)
57 NCS(ネットワークコントロールサービス)
58 SCS(システムコントロールサービス)
61 ルート鍵
80 インストールアプリ
81,85,88 インストール用ファイル群
82 ファームウェア
83 ルート鍵で暗号化した暗号鍵/復号鍵(鍵BLOB)
84 ファームウェア構成情報
86 バージョンファイル
87 ファイル構成出力アプリ
89 ファイル構成スナップショット
91 外部の二次記憶装置
101 携帯可能な二次記憶装置
181 外部サーバ

【特許請求の範囲】
【請求項1】
機器に搭載されているソフトウェアの改ざんを前記機器が検知するソフトウェア改ざん検知方法であって、
前記ソフトウェアをインストールするインストール手段が、前記機器に固有の暗号化復号装置を利用し、インストール時における前記機器のソフトウェア構成情報を暗号化して前記機器の外部に保存する保存ステップと、
前記ソフトウェアの改ざんを検知する改ざん検知手段が、前記機器の外部に保存したインストール時における前記機器のソフトウェア構成情報を、前記機器に固有の暗号化復号装置を利用して復号する復号ステップと、
前記改ざん検知手段が、インストール時における前記機器のソフトウェア構成情報と現在の前記機器のソフトウェア構成情報とを比較し、前記ソフトウェアの改ざんを検知する検知ステップと
を有することを特徴とするソフトウェア改ざん検知方法。
【請求項2】
前記保存ステップは、前記インストール手段が、暗号化されている暗号鍵を、前記機器に固有の暗号化復号装置で復号するステップと、
前記インストール手段が、復号された暗号鍵で、インストール時における前記機器のソフトウェア構成情報を暗号化するステップと、
前記インストール手段が、暗号化された前記インストール時における前記機器のソフトウェア構成情報を前記機器の外部に保存するステップと
を有することを特徴とする請求項1記載のソフトウェア改ざん検知方法。
【請求項3】
前記復号ステップは、前記改ざん検知手段が、暗号化されている前記インストール時における前記機器のソフトウェア構成情報を前記機器の外部から取得するステップと、
前記改ざん検知手段が、暗号化されている復号鍵を、前記機器に固有の暗号化復号装置で復号するステップと、
前記改ざん検知手段が、復号された復号鍵で、前記インストール時における前記機器のソフトウェア構成情報を復号するステップと
を有することを特徴とする請求項1又は2記載のソフトウェア改ざん検知方法。
【請求項4】
前記検知ステップは、インストール時における前記機器のソフトウェア構成情報と現在の前記機器のソフトウェア構成情報とを比較し、インストール時における前記機器のソフトウェア構成情報と現在の前記機器のソフトウェア構成情報とが一致しないときに前記ソフトウェアの改ざんを検知することを特徴とする請求項1乃至3何れか一項記載のソフトウェア改ざん検知方法。
【請求項5】
前記機器に固有の暗号化復号装置は、内部から取り出しができない他の暗号/復号鍵を有しており、平文を前記他の暗号鍵で暗号化して返すインターフェースと、暗号化されたデータを前記他の復号鍵で復号して返すインターフェースとを有することを特徴とする請求項1乃至4何れか一項記載のソフトウェア改ざん検知方法。
【請求項6】
前記インストール時における前記機器のソフトウェア構成情報はインストール用ファイル群に含まれることを特徴とする請求項1乃至5何れか一項記載のソフトウェア改ざん検知方法。
【請求項7】
前記インストール時における前記機器のソフトウェア構成情報はインストール用ファイル群を用いて前記ソフトウェアをインストールしたあと、ファイル構成を取得するコマンドにより生成されることを特徴とする請求項1乃至5何れか一項記載のソフトウェア改ざん検知方法。
【請求項8】
前記インストール時における前記機器のソフトウェア構成情報は携帯可能な記録媒体に保存されることを特徴とする請求項1乃至7何れか一項記載のソフトウェア改ざん検知方法。
【請求項9】
前記インストール時における前記機器のソフトウェア構成情報はネットワーク経由で接続された外部サーバに保存されることを特徴とする請求項1乃至7何れか一項記載のソフトウェア改ざん検知方法。
【請求項10】
前記機器の起動時又は前記機器を操作する操作者からの指示により、前記機器が前記ソフトウェアの改ざんを検知することを特徴とする請求項1乃至9何れか一項記載のソフトウェア改ざん検知方法。
【請求項11】
搭載されているソフトウェアの改ざんを検知する機器に、
前記ソフトウェアをインストールするインストール手段が、前記機器に固有の暗号化復号装置を利用し、インストール時における前記機器のソフトウェア構成情報を暗号化して前記機器の外部に保存する保存ステップと、
前記ソフトウェアの改ざんを検知する改ざん検知手段が、前記機器の外部に保存したインストール時における前記機器のソフトウェア構成情報を、前記機器に固有の暗号化復号装置を利用して復号する復号ステップと、
前記改ざん検知手段が、インストール時における前記機器のソフトウェア構成情報と現在の前記機器のソフトウェア構成情報とを比較し、前記ソフトウェアの改ざんを検知する検知ステップと
を実行させるためのソフトウェア改ざん検知プログラム。
【請求項12】
前記保存ステップは、前記機器に、
前記インストール手段が、暗号化されている暗号鍵を、前記機器に固有の暗号化復号装置で復号するステップと、
前記インストール手段が、復号された暗号鍵で、インストール時における前記機器のソフトウェア構成情報を暗号化するステップと、
前記インストール手段が、暗号化された前記インストール時における前記機器のソフトウェア構成情報を前記機器の外部に保存するステップと
を実行させるための請求項11記載のソフトウェア改ざん検知プログラム。
【請求項13】
前記復号ステップは、前記機器に、
前記改ざん検知手段が、暗号化されている前記インストール時における前記機器のソフトウェア構成情報を前記機器の外部から取得するステップと、
前記改ざん検知手段が、暗号化されている復号鍵を、前記機器に固有の暗号化復号装置で復号するステップと、
前記改ざん検知手段が、復号された復号鍵で、前記インストール時における前記機器のソフトウェア構成情報を復号するステップと
を実行させるための請求項11又は12記載のソフトウェア改ざん検知プログラム。
【請求項14】
前記検知ステップは、前記機器に、インストール時における前記機器のソフトウェア構成情報と現在の前記機器のソフトウェア構成情報とを比較し、インストール時における前記機器のソフトウェア構成情報と現在の前記機器のソフトウェア構成情報とが一致しないときに前記ソフトウェアの改ざんを検知させることを特徴とする請求項11乃至13何れか一項記載のソフトウェア改ざん検知プログラム。
【請求項15】
前記機器に固有の暗号化復号装置は、内部から取り出しができない他の暗号/復号鍵を有しており、平文を前記他の暗号鍵で暗号化して返すインターフェースと、暗号化されたデータを前記他の復号鍵で復号して返すインターフェースとを有することを特徴とする請求項11乃至14何れか一項記載のソフトウェア改ざん検知プログラム。
【請求項16】
搭載されているソフトウェアの改ざんを検知する機器であって、
前記機器に固有の暗号化復号装置と、
前記ソフトウェアをインストールするインストール手段と、
前記ソフトウェアの改ざんを検知する改ざん検知手段と
を有し、
前記インストール手段は、前記機器に固有の暗号化復号装置を利用し、インストール時における前記機器のソフトウェア構成情報を暗号化して前記機器の外部に保存し、
前記改ざん検知手段は、前記機器の外部に保存したインストール時における前記機器のソフトウェア構成情報を前記機器に固有の暗号化復号装置を利用して復号し、前記インストール時における前記機器のソフトウェア構成情報と現在の前記機器のソフトウェア構成情報とを比較して、前記ソフトウェアの改ざんを検知すること
を特徴とする機器。
【請求項17】
前記インストール手段は、暗号化されている暗号鍵を、前記機器に固有の暗号化復号装置で復号し、復号された暗号鍵で、インストール時における前記機器のソフトウェア構成情報を暗号化し、暗号化された前記インストール時における前記機器のソフトウェア構成情報を前記機器の外部に保存することを特徴とする請求項16記載の機器。
【請求項18】
前記改ざん検知手段は、暗号化されている前記インストール時における前記機器のソフトウェア構成情報を前記機器の外部から取得し、暗号化されている復号鍵を前記機器に固有の暗号化復号装置で復号し、復号された復号鍵で前記インストール時における前記機器のソフトウェア構成情報を復号することを特徴とする請求項16又は17記載の機器。
【請求項19】
前記改ざん検知手段は、インストール時における前記機器のソフトウェア構成情報と現在の前記機器のソフトウェア構成情報とを比較し、インストール時における前記機器のソフトウェア構成情報と現在の前記機器のソフトウェア構成情報とが一致しないときに前記ソフトウェアの改ざんを検知することを特徴とする請求項16乃至18何れか一項記載の機器。
【請求項20】
前記機器に固有の暗号化復号装置は、内部から取り出しができない他の暗号/復号鍵を有しており、平文を前記他の暗号鍵で暗号化して返すインターフェースと、暗号化されたデータを前記他の復号鍵で復号して返すインターフェースとを有することを特徴とする請求項16乃至19何れか一項記載の機器。
【請求項21】
前記インストール時における前記機器のソフトウェア構成情報はインストール用ファイル群に含まれることを特徴とする請求項16乃至20何れか一項記載の機器。
【請求項22】
前記インストール時における前記機器のソフトウェア構成情報はインストール用ファイル群を用いて前記ソフトウェアをインストールしたあと、ファイル構成を取得するコマンドにより生成されることを特徴とする請求項16乃至20何れか一項記載の機器。
【請求項23】
前記インストール時における前記機器のソフトウェア構成情報は携帯可能な記録媒体に保存されることを特徴とする請求項16乃至22何れか一項記載の機器。
【請求項24】
前記インストール時における前記機器のソフトウェア構成情報はネットワーク経由で接続された外部サーバに保存されることを特徴とする請求項16乃至22何れか一項記載の機器。
【請求項25】
前記機器の起動時又は前記機器を操作する操作者からの指示により、前記ソフトウェアの改ざんを検知することを特徴とする請求項16乃至24何れか一項記載の機器。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2009−193528(P2009−193528A)
【公開日】平成21年8月27日(2009.8.27)
【国際特許分類】
【出願番号】特願2008−36267(P2008−36267)
【出願日】平成20年2月18日(2008.2.18)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】