以下、図面を参照して、この発明の好適な実施形態を例示的に詳しく説明する。ただし、この実施形態に記載されている構成要素はあくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
〔第1実施形態〕
図1は、本発明の第1実施形態に係る情報処理装置の概略構成を示すブロック図である。なお、本実施形態では本発明の情報処理装置の一例として画像形成装置について説明する。しかし、本発明の情報処理装置は画像形成装置に限られるものではなく、他の情報処理装置、例えば、パーソナルコンピュータやサーバーコンピュータ、情報処理機能を備えた各種家電等にも適用可能である。
図1において、101は本発明の情報処理装置としての画像形成装置である。画像形成装置101は、大きく分けて、スキャナ部102、プリンタ部103、コントローラ104からなる。なお、スキャナ部102は、画像入力デバイスである。また、プリンタ部103は、画像出力デバイスである。また、コントローラ104は、画像処理及び画像形成動作の制御などを行うものである。
スキャナ部102、及び、プリンタ部103は、周知技術に基づいて種々の構成をとることができるため、ここでは、説明を省略する。
コントローラ104において、CPU105は、画像形成装置101全体の制御を行う。メモリ106は、CPU105が動作するためのDRAMや、システムのブートプログラムやディスクアレイをコントロールするためのファームウェアが格納されているROM、装置のさまざまな設定やログなどを記憶しているSRAM等を示す。
インタフェース107は、LANなどの外部機器との通信を行う。操作部108は、ハードキーやタッチパネル式ディスプレイを備え、画像形成装置101を操作したり、画像形成装置101の状態を表示するためのユーザインタフェース(UI)である。また、操作部108は、記憶装置(ハードディスク)への不正アクセスの有無を報知する手段としても機能する(詳細は後述する)。
ディスクアレイ制御装置111は、CPU105からのディスクアクセス要求に応じて、複数のHDDに対しディスクアレイを制御する。また、ディスクアレイ制御装置111は、例えばRAID0、RAID1、RAID2、RAID3、RAID4、RAID5、又はRAID6のようなRAIDの制御を行う。
なお、RAID1の制御とは、データをストライピング単位に分割して記憶させる制御を示す。また、RAID2の制御とは、ミラーリングを使って同一のデータを複数のHDDに書き込む制御を示す。また、RAID4、RAID5、又はRAID6の制御とは、書き込み時にデータのパリティを生成してこれらデータ及びパリティを複数のHDDの同じブロックに分散して記録したり読み出す制御を示す。
109,112は記憶装置としてのハードディスク(HDD)である。HDD109,112は、画像形成装置101の機能を実現するためのプログラムや画像データ等の種々のデータを記憶している。また、HDD109,112は、CPU105からの指示に応じて、HDD109,112の制御を行う各々HDDコントローラ110,113を備えている。
また、本実施形態では、画像形成装置101は、HDD109,112のように、HDDを複数備えている。また、HDD109,112は、RAID1のディスクアレイを構成している。RAID1のディスクアレイは、ミラーリングされた2つのHDD109,112によって構成されている。
ディスクアレイ制御装置111は、CPU105からのライトデータをHDD109に格納するとともに、同一のデータをHDD112にも格納する。即ち、ディスクアレイ制御装置111は、HDD109,112に対して同一データを多重化して格納するための多重化制御を実行する。これにより、HDD109とHDD112のデータ構造は同一となる。
また、CPU105がデータをリードする場合は、ディスクアレイ制御装置111の制御により、予め決められたいずれかのHDDからのみリード行うこととなる。そして、以後、このリードを行う方のHDDをプライマリHDD(プライマリ記憶装置)、リードを行わない方のHDDをセカンダリHDD(セカンダリ記憶装置)と呼ぶことにする。
なお、冗長性のあるRAID構成では、定期的に整合性チェックを行うことが一般的である。この整合性チェックとは、ミラーリングを行っている双方のHDDのデータを比較し、データの不一致を検出した場合は、プライマリHDDからセカンダリHDDへデータを上書きすることでデータの整合性を整えることを言う。
また、HDD109,112は、画像形成装置101の装置本体に対して着脱自在となっている。さらに、HDD109,112は、S.M.A.R.T.(Self-Monitoring, Analysis and Reporting Technology)機能を備えるのである。ここで、S.M.A.R.T.(以下、SMART)とは、HDDが備えている自己診断機能を示す。その自己診断項目(検査項目)は、HDDの電源を投入した回数や、HDDの通電時間の合計や、HDDのスピンドルモータが回転/停止した回数や、温度など、HDDに関するさまざまな情報を含む。よって、CPU等の上位装置は、このHDDのSMART機能を用いて、HDDの電源を投入した回数や、HDDの通電時間の合計や、温度など、HDDに関するさまざまな情報を得ることができ、HDDの故障の可能性を予告することもできる。
次に、図1に示した画像形成装置101の動作を、図2のフローチャートを参照しつつ説明する。
図2は、図1に示した画像形成装置101の動作を示すフローチャートである。
まず、画像形成装置101に電源が投入されると(S101)、CPU105はメモリ106に格納されているブートプログラムを起動する。以下、CPU105はこのプログラムを実行することによりS102以降の処理を実現する。
ステップS102では、CPU105は、HDD109,112のSMART情報(SMART機能の検査項目に含まれる情報)をリードして、メモリ106の作業領域に記憶する。
なお、このSMART情報は、通常の読み書きコマンドなどと異なり、特殊な読み出しコマンドによってのみHDD109,112からReadする(読み出す)ことができる。さらに、SMART情報のHDD109,112への書き込みは、HDDコントローラ110,113によってのみ行われ、CPU105から直接書き込みを行うことはできないようになっている。そのため、他の装置に接続されてHDD109,112に電源が投入された場合も、HDD109,112の電源を投入した回数などのSMART情報はHDDコントローラ110,113によって自動的に更新され、HDD109,112内に記憶される。
即ち、HDD109内のHDDコントローラ110は、上位装置(CPU、ディスクアレイ制御装置等)の指示に関係なく、自らHDD109の状態を監視して、SMART情報をHDD109に記憶する。なお、SMART情報には、HDDの電源ON/OFF回数(Device Power Cycle Count)、HDDの通電時間の合計(Power-On Hours)、HDDのスピンドルモータが回転/停止した回数(Start/Stop Count)等が含まれる。同様に、HDD112内のHDDコントローラ113も、上位装置(CPU、ディスクアレイ制御装置等)の指示に関係なく、自らHDD112の状態を監視して、上記SMART情報をHDD112に記憶する。
CPU105は、このSMART情報をHDD109,112から読み出してメモリ106(ROMなどの不揮発性のメモリ、若しくは、電池でバックアップされたSRAMなどの揮発性メモリ)に記憶しておく。SMART情報を読み出してメモリ106に記憶するタイミングは、HDDの電源が投入若しくは切断される時や、省電力モードへ移行若しくは省電力モードから復帰する時や、HDD109,112の電源が入っている時に定期的に読み出して記憶しても良いし、それらのタイミングを組み合わせても良い。
なお、上記ステップS102のタイミングで、HDDが画像形成装置101に装着されていない場合には、CPU105は、操作部108にその旨を表示してユーザにHDDの装着を促す。そして、CPU105は、HDDが画像形成装置101に装着されたことを検知すると、装着されたHDDからSMART情報を読み出すものとする。
次に、ステップS103において、CPU105は、今回のHDD(現在装着されているHDD)が前回のHDD(前回の電源投入時に装着されていたHDD)と同じHDDか否かを判定する。
以下、前回のHDDと同じか否か確認するステップ(S103)について詳細に説明する。このステップは、ユーザが誤って画像形成装置101に別装置のHDDを装着してしまった場合等に、HDDの電源投入回数がずれてしまい、不正アクセスでは無いのに、不正アクセスの警告を表示しないようにするためもものである。また、信頼性の面でもSMART情報だけで不正アクセスを判断するのは、以下に示すようなケースが考えられ最適であるとは言えないためである。
1つ目のケースは、別に用意したHDDに、不正にデータを複製した後、複製したHDDの電源投入回数を故意に合わせて、元のHDDと用意したHDDを入れ替えて、元のHDDを持ち去られる危険性があるためである。2つ目のケースは、別装置のHDDの電源投入回数と偶然に同じになり、装置が誤動作してしまう可能性が無いとは言えないためである。
次に、判定方法(今回のHDDが前回のHDDと同じHDDか判定する方法)について説明する。判定方法としては、後述するIdentify Deviceコマンドを利用する方法が一番簡単な方法である。また、その他に、例えばHDDの電源投入回数以外のSMART情報を利用する方法や、後述するHDDの特定のセクタにHDD毎に異なる識別IDを書くことで判定する方法などが考えられる。また、当然これらの方法を組み合わせて判定しても良い。
まず、特定のセクタに識別ID(HDD毎に異なる識別情報)を書いて判定する方法について説明する。
画像形成装置101のSRAM等のメモリ106に、予め図3に示すような複数のHDDの識別IDを管理するための管理テーブルを記憶しておく。
図3は、複数のHDDの識別IDを管理するための管理テーブルの一例を示す図である。
図3に示す管理テーブルでは、画像形成装置毎に、プライマリHDDとセカンダリHDDの識別情報(識別ID)を記憶管理している。
そして、画像形成装置101の起動後すぐに等に、CPU105が各HDDの特定のセクタへリードを行い、HDDの識別IDを取得する。次に、CPU105が、前記取得した識別IDとメモリ106に記憶している管理テーブル(図3)から、装着されているHDDがどの装置のHDDか判定し、同一のHDDか判定する。
次に、ATA(AT Attachment)の標準的なコマンドであるIdentify Deviceコマンドを使用した方法について説明する。なお、この方法を用いる場合、HDD109,HDD112は、AT Attachment規格のハードディスクとする。
Identify Deviceコマンドは、ディスク装置に関する詳細な情報を得るためのコマンドであって、コマンドに応答してディスク装置より上位装置に返送される情報(データ)をIdentify Device Informationと呼ぶ。Identify Device Informationには、ディスク装置の型名(Model number)、シリアル番号(Serial number)を示す情報などが格納されている。これらの情報を予め図4に示すような管理テーブルで画像形成装置101のメモリ106に記憶しておく。
図4は、複数のHDDの型名及びシリアル番号を管理するための管理テーブルの一例を示す図である。
図4に示す管理テーブルでは、画像形成装置毎に、プライマリHDDとセカンダリHDDのモデルNo(型名)及びシリアルNo(シリアル番号)を記憶管理している。
そして、画像形成装置101の起動後すぐ等に、CPU105がIdentify Deviceコマンドにより各HDDからディスク装置の型名やシリアル番号等を取得する。次に、CPU105が、前記取得した型名やシリアル番号とメモリ106に記憶している管理テーブル(図4)から、装着されているHDDがどの装置のHDDか判定し、同一のHDDか判定する。
上述した方法により、現在装着されているHDDが前回と異なると判定された場合は(S103でNo)、CPU105は、ステップS104において、図5に示すように操作部108を介してHDD誤装着の警告を表示(報知)する。これにより、前回装着されていたHDDへ交換するよう促す。
図5は、HDD誤装着の警告表示の一例を示す図である。
図5のような警告表示501により、ユーザはHDDを間違って装着していたことに気付くことができる。
なお、ユーザは、「はい」ボタン502をタッチ指示することにより、HDDを交換することなくこのままの状態で起動することを指示できる。また、ユーザは、「いいえ」ボタン503をタッチ指示することにより、HDDを正しいHDDに交換することを指示できる。
以下、図2のフローチャートの説明に戻る。
次に、CPU105は、ステップS105において、正しいHDDに交換されたことを検知すると、ステップS106に処理を進める。以下、S105について詳細に説明する。CPU105は、警告表示501(図5)で「いいえ」ボタン503が指示されたことを検知すると、HDDの交換を待機する。そして、CPU105は、HDDが交換されたことを検知すると、上述したS103と同様の処理により交換されたHDDが正しいHDDであるか判定する。そして、交換されたHDDが正しいHDDであると判定した場合には、CPU105は、該HDDのSMART情報をリードしてメモリ106内の作業領域に記憶し、ステップS106に処理を進める。
なお、CPU105は、警告表示501(図5)で「いいえ」ボタン503の指示を検知した際、このまま本フローチャートの処理を終了し、画像形成装置101の電源を切断し、ユーザにHDDを交換させるように構成してもよい。この場合、ユーザは、正しいHDDへ交換する作業を行い、画像形成装置101に再度電源投入することとなる。これにより、再度、本フローチャートの処理が実行され、正しいHDDと判定される(S103でYesとなる)。
なお、本フローチャートには示していないが、正しいHDDに交換することなくこのまま装置を起動する(警告表示501(図5)で「はい」ボタン502が指示された)と判定した場合、CPU105は、他の処理を実行する。例えば、現在装着されているHDDのいずれか片方のみが前回と異なるものであって、警告表示501(図5)で「はい」ボタン502が指示された場合、CPU105は、後述する図8のS206以降の処理を実行する。なお、この処理については第2実施形態にて説明する。また、現在装着されている全てのHDDが前回と異なるものであって、警告表示501(図5)で「はい」ボタン502が指示された場合、CPU105は、認証されたユーザからの指示に応じて現在装着されているHDDでRAID1の構築を行ってもよい。以下、図2に示されるステップの説明に戻る。
次に、ステップS106では、CPU105は、HDD109,112のSMART情報の中の項目の1つであるHDDの電源を投入した回数(Device Power Cycle Count)を確認する。そして、CPU105は、HDD109,112について、HDDの電源を投入した回数が前回起動時と今回とで連続しているか判定する。詳細には、CPU105は、今回(今回の電源投入時に)確認したHDDの電源投入回数(今回電源投入回数)と、前回起動時(前回の電源投入時)にメモリ106に記憶した電源投入回数(前回電源投入回数)が、「今回電源投入回数=前回電源投入回数+1」という特定の関係か判定する。なお、CPU105は「今回電源投入回数=前回電源投入回数+1」の関係である場合、前回から今回電源が投入されるまでHDDへの電源投入が無かった(即ち、不正なアクセスは行われなかったと)と判定する。以下、上記特定の関係(前回電源投入回数に1を加算したものが今回電源投入回数と一致する関係)を以下「連続している」という。
そして、CPU105は、全てのHDDの電源投入回数が前回と今回で連続していると判定した場合には(S106でYes)、HDD109,112のいずれについても不正なアクセスは行われなかったと判断し、ステップS107に処理を進める。
ステップS107では、CPU105は、上記S102でHDD109,112から新しく取得したSMART情報をメモリ106(ROM等の不揮発性のメモリ、若しくは、電池でバックアップされたSRAM等の揮発性メモリ)に記憶(更新)する。次に、ステップS108において、CPU105は、画像形成装置101を起動し、本フローチャートの処理を終了する。これにより、画像形成装置101は待機状態となり、画像形成装置101の各種機能が利用可能となる。
一方、ステップS106にて、少なくともいずれかのHDDの電源投入回数が前回と今回で連続でないと判断した場合(S106でNo)、CPU105は、少なくともいずれかについても不正なアクセスは行われたと判断し、ステップS109に処理を進める。
以下、いずれかのHDDの電源を投入した回数が、連続でない(不連続な)場合について説明する。
まず、ステップS109では、CPU105は、ディスクアレイ制御装置111に接続されたHDDの全てについて電源を投入した回数が不連続か判断する。そして、全HDDの電源を投入した回数が不連続であると判断した場合には(S109でYes)、全HDDの信頼性を確保できないと判断し、CPU105は、ステップS115に処理を進める。
ステップS115では、CPU105は、図6に示すように操作部108を介してHDDの電源を投入した回数が不連続だった(HDDに不正なアクセスは行われた)旨を利用者に報知する。また、CPU105は、インタフェース107を介して予めSRAM等のメモリ106に登録されたメールアドレス(例えば、装置の管理者のアドレス)宛てに警告内容を送信することで、ユーザに警告を行うようにしてもよい。
図6は、HDDの電源を投入した回数が不連続だった旨の警告表示の一例を示す図である。
図6のような警告表示601により、ユーザはHDDに不正なアクセスは行われたことに気付くことができる。この警告表示601に示すように、画像形成装置101は、前回の電源投入時にメモリ106に記憶したHDDの電源投入回数と、今回の電源投入時に読取ったHDDの電源投入回数が、連続でなかったHDDを特定可能な情報をユーザに報知する。
なお、ユーザは、「はい」ボタン602をタッチ指示することにより、このままの状態で画像形成装置101を起動することを指示できる。また、ユーザは、「いいえ」ボタン603をタッチ指示することにより、画像形成装置101の起動を中止することを指示できる。
以下、図2のフローチャートの説明に戻る。
ステップS116において、CPU105は、このまま起動する旨の指示がなされたか否かを判定する。そして、起動を中止する旨の指示がなされた(「いいえ」ボタン603が指示された)と判断した場合には(S116でNo)、CPU105は、装置を起動することなく、そのまま本フローチャートの処理を終了し、画像形成装置101の電源を切断する。これは、HDDのデータが改ざんされたり、不正なプログラムが実装されたりすることで、装置に危害を及ぼす可能性があるためである。
なお、HDD109,112がRAID2以外のRAIDを構成している場合や、RAIDの構成を取らずに動作している場合は、1つでもHDDの電源を投入した回数が不連続な時点で(S106でNoと判断した時点で)、S115,S116を実行する。この場合、CPU105は、S115でメッセージ601を操作部108に表示をした後、ユーザにこのまま装置を起動するか否かの確認を行わず(ボタン602,603は非表示)、本フローチャートの処理を終了し、画像形成装置101の電源を切断してもよい。
一方、上記ステップS116において、そのまま起動する旨の指示がなされた(「はい」ボタン602が指示された)と判断した場合には、CPU105は、後述するステップS112に処理を進める。
一方、上記S109において、ディスクアレイ制御装置111に接続されたHDDに電源を投入した回数が連続なものがあると判断した場合(S109でNo)、信頼性を確保したHDDが存在すると判断し、CPU105は、ステップS110に処理を進める。
以下、プライマリHDDかセカンダリHDDのどちらか片方の電源投入回数が不連続だった場合(S109でYesの場合)について説明する。
まず、ステップS110において、CPU105は、回数が正しい(電源投入回数が連続となる)HDDをプライマリHDDとするように設定する。詳細には、CPU105は、セカンダリHDDの回数が不正(不連続)だった場合は、CPU105は、プライマリHDDとセカンダリHDDの機能を維持する。即ち、現在プライマリHDDとして設定されているHDDをそのままプライマリHDDとし、現在セカンダリHDDとして設定されているHDDをそのままセカンダリHDDとするようにディスクアレイ制御装置111に設定する。
一方、プライマリHDDの回数が不正(不連続)だった場合は、CPU105は、セカンダリHDDとプライマリHDDの機能を入れ替える。即ち、現在プライマリHDDとして設定されているHDDをセカンダリHDDとし、現在セカンダリHDDとして設定されているHDDをプライマリHDDとするようにディスクアレイ制御装置111に設定する。
このように、回数が正しいHDDをプライマリHDDに設定することで、不正なアクセスが行われた可能性のあるHDDへのリードアクセスが行われなくなる。また、この時に、2台のHDDの整合性チェックを行って、実際に不正アクセスがあったか否かを調べたり、データの整合性を整えるように構成しても良い。このデータの整合性を行う際も、回数が正しいHDDをプライマリHDDに設定することで、不正なアクセスが行われた可能性のあるHDDのデータを、回数が正しいHDDのデータで上書きすることとなるため、信頼性の向上を図ることができる。
次に、ステップS112において、CPU105は、HDD109、112の新しく取得した(上記S102で取得した)SMART情報をメモリ106に記憶(SMART情報更新)する。
また、ステップS113において、CPU105は、プライマリHDDからプログラムを読み出して、読み出されたプログラムを実行することにより画像形成装置101を起動する。
装置の起動後、ステップS114において、CPU105は、図7のように操作部108を介して、HDDの電源を投入した回数が不連続だった旨を利用者に報知することで、ユーザに警告を行う。また、CPU105は、インタフェース107を介して予めSRAM等のメモリ106に登録されたメールアドレス(例えば、装置の管理者のアドレス)宛てに警告内容を送信することで、ユーザに警告を行ってもよい。
図7は、HDDの電源を投入した回数が不連続だった旨の警告表示の一例を示す図である。
図7に示すように、画像形成装置101は、前回の電源投入時にメモリ106に記憶したHDDの電源投入回数と、今回の電源投入時に読取ったHDDの電源投入回数が、連続でなかったHDDを特定可能な情報をユーザに報知する。
なお、1つでもHDDの電源を投入した回数が不連続な時点で(S106でNoと判断した時点で)、CPU105は、メモリ106に登録されたメールアドレス(例えば、装置の管理者のアドレス)宛てに警告内容を送信するように構成してもよい。
また、日時と警告内容を装置のメモリ106に記録しておき、操作部108又はインタフェース107を介して、いつ・どのような警告があったか一覧表示できるようにしてもよい。
なお、HDDへ不正なアクセスが行われた回数は、「HDDへ不正なアクセスが行われた回数=今回電源投入回数−(前回電源投入回数+1)」としてCPU105が算出するものとする。
以上示したように、安価で(情報処理装置全体の大幅なコストアップを招くことなく)かつ消費電力の増加を招くことなくHDDへの不正アクセスを検知することができる。例えば、誤って前回起動時と別のHDDが装着された場合でも、HDDへの不正アクセスを検知することができ、HDDへの不正アクセスを効果的に抑止、発見するができる。よって、誤って前回起動時と別のHDDが装着された場合でも、ユーザは装置からの警告に基づいて正しいHDDに交換することができる。
また、万一データ漏洩が発生した場合にも、いつ、どのHDDから情報漏洩したかを特定することができる。
〔第2実施形態〕
本発明の第2実施形態について図8のフローチャートを用いて説明する。本実施形態においては、HDDの故障などにより、前回と同じHDDが使用できず、いずれか片方に別のHDDを装着して再構築を行う場合について説明する。
図8は、本発明の第2実施形態における画像形成装置101の動作を示すフローチャートである。
まず、画像形成装置101に電源が投入されると(S201)、CPU105はメモリ106に格納されているブートプログラムを起動する。以下、CPU105はこのプログラムを実行することによりS202以降の処理を実現する。
ステップS202では、CPU105は、HDD109,112のSMART情報をリードしてメモリ106の作業領域に記憶する。
なお、上記ステップS202のタイミングで、画像形成装置101にHDDが装着されていない場合には、CPU105は、操作部108にその旨を表示してユーザにHDDの装着を促す。本実施形態では、ここで、プライマリかセカンダリのどちらか片方のHDDに、前回とは異なるHDDが装着される場合について説明する。CPU105は、HDDが装着されたことを検知すると、装着されたHDDからSMART情報を読み出してメモリ106の作業領域に記憶するものとする。
次に、ステップS203において、CPU105は、図2のS103と同様の方法により、今回のHDDが前回のHDDと同じHDDか否かを判定する。上述したように、本実施形態では、プライマリかセカンダリのどちらか片方のHDDに前回とは異なるHDDを装着したため、CPU105は、片方のHDDに前回と異なるHDDが装着されたと判定し、ステップS204に処理を進める。
ステップS204では、CPU105は、図5に示したように操作部108を介してHDD誤装着(挿し間違え)の警告を表示する。ただし、メッセージ501には、例えば「HDD−Aに、前回と異なるHDDが装着されています。HDDを確認して下さい。」等のいずれか片方のHDDが誤装着である旨のメッセージが表示されるものとする。
なお、本実施形態では、HDDの故障などにより、前回と同じHDDが使用できず、いずれか片方に別のHDDを装着した場合を示す。このため、ユーザは、警告表示501(図5)で「はい」ボタン502を指示して、HDDを交換することなくこのまま起動することを指示することとなる。
CPU105は、ステップS205において、このまま起動が選択されたことを検知すると、ステップS206に処理を進める。
なお、上述したように、本実施形態においては、いずれか片方に前回と別のHDDを装着して再構築する場合について説明する。このため、本フローチャートには示していないが、正しいHDDに交換する旨の指示(警告表示501(図5)で「いいえ」ボタン503が指示)され、正しいHDDに交換されたことを検知した場合、CPU105は、図2のS106以降の処理を実行する。なお、この処理については第1実施形態にて説明済みである。また、現在装着されている全てのHDDが前回と異なるものであって、警告表示501(図5)で「はい」ボタン502が指示された場合、CPU105は、認証されたユーザからの指示に応じて現在装着されているHDDでRAID1の構築を行ってもよい。以下、図8に示されるステップの説明に戻る。
次に、ステップS206では、CPU105は、前回と同じHDDをプライマリHDDに、前回と異なるHDD(今回新しく装着したHDD)をセカンダリHDDになるようにディスクアレイ制御装置111に設定する。
次に、ステップS207において、CPU105は、プライマリHDDのSMART情報の中の項目の1つであるHDDの電源を投入した回数(Device Power Cycle Count)を確認する。そして、CPU105は、プライマリHDDの電源を投入した回数が前回起動時と今回とで連続しているか判定する。即ち、CPU105は、今回確認したプライマリHDDの電源投入回数(今回電源投入回数)と、前回起動時にメモリ106に記憶したプライマリHDDの電源投入回数(前回電源投入回数)が、「今回電源投入回数=前回電源投入回数+1」という特定の関係か判定する。
そして、CPU105は、プライマリHDDの電源投入回数が前回と今回で連続していない(不連続)と判定した場合には(S207でNo)、CPU105は、ステップS208に処理を進める。
ステップS208では、CPU105は、今回起動時のプライマリHDDへの通電時間の合計の増加(前回起動時のプライマリHDDへの通電時間の合計からの増加)が所定時間以内か否かを判定する。なお、HDDへの通電時間の合計とは、HDDに電源が投入された時間の合計を示す。以下、この判定を行う理由について説明する。
近年、HDDの容量は大容量化しており、HDDのデータをコピーするには、数十分〜数時間を要する。そこで、HDDの電源投入回数と、さらにHDDへの通電時間(電源が投入された時間)の合計を利用することにより、第1実施形態で示したようにHDDの電源投入回数のみでHDDへの不正アクセスを判断するよりも、正確に不正アクセスがあったか否かの判断を行うことを可能にする。
具体的には、「今回電源投入回数」が「前回電源投入回数+1回」より大きい値であった場合、プライマリHDDについて、SMART情報の中の項目の1つであるHDDへの通電時間の合計(Power-On Hours)を確認する。詳細には、CPU105は、今回確認したHDDへの通電時間の合計(今回通電時間)と、前回起動時にメモリ106に記憶したHDDへの通電時間(前回通電時間)とを比較する。そして、前回通電時間に比べ、今回通電時間の増加時間が、所定の時間以下であった場合(S208でYes)、CPU105は、挿し間違えや瞬間的な電源の投入などで、電源投入回数がずれた可能性が高く、不正なアクセスは無かったと判断する。そして、不正アクセスの警告表示は行わない。ただし、不正アクセスの警告表示は行わなくても、投入回数が不一致だった旨の表示を操作部108は行ってもよい。その後、CPU105は、不正アクセスは無かったと判断したので、ステップS209において、新しいSMART情報をメモリ106に記憶し、ステップS211に処理を進める。
なお、上記所定の時間として設定する値としては、10分程度が良い。10分であれば、HDD内のデータを解析してデータを盗むには時間が短すぎるが、HDDを挿し間違えた場合にHDDを交換する時間としては十分な長さであると考えられる。
しかし、ここで1つ問題が生じる。それは、通常、SMART情報の中の項目の1つであるHDDへの通電時間の合計(Power-On Hours)は1時間単位であり、現状では、時間の単位が長すぎて、不正アクセスか否か判断するのが難しい点である。
そこで、装置が起動している間、定期的にHDDの通電時間の合計をチェックすることで、細かい通電時間を算出(計時)し、警告を表示する方法について説明する。
具体的には、CPU105がHDDの通電時間の合計(Power-On Hours)を定期的に読出し、HDDの通電時間の合計が1時間アップした時点をスタートとして、その後、例えば20分毎に、HDDの通電時間の合計をチェックするように設定する。この場合、上記スタート時点から2回目(40分後)のチェックまでは通電時間の合計は変わらず、3回目(60分後)のチェックで、はじめてSMART情報内の通電時間の合計が1時間アップするはずである。なお、CPU105は、上記スタート時点からのチェック回数をメモリ106(ROM等の不揮発性のメモリ、若しくは、電池でバックアップされたSRAM等の揮発性メモリ)に格納し、HDDの通電時間の合計が1時間アップする毎にクリアする。ただし、メモリ106内のチェック回数は、電源が落された後も保持され、電源の投入/遮断を挟んでも継続して使用するようにする。
ここで、もし2回目(40分後)のチェック時に、SMART情報内の通電時間の合計が1時間アップした場合、CPU105は、このHDDが、別の装置に装着されて20分〜40分間、電源投入されたと判断する。即ち、この場合、前回の電源投入時にメモリ106(揮発性メモリ)に記憶した時間と今回の電源投入時に計時した時間の差が20分〜40分間あり、所定時間(例えば10分間)を超えると判断する。よって、この場合、その旨の警告を行う。以上のように、HDDの通電時間の合計を算出(計時)してS208の判定を行う。
ただし、この方法は、通電時間の合計を算出するまでに、最大で40分程かかってしまう。そのため、S208の処理で最大40分程停止してしまうこととなる。よって、とりあえず、プライマリHDDのみを用いるようにして画像形成装置101を起動し、起動後、通電されていた時間が判明した時点で、警告を表示したり、メールを送信するように構成する。なお、CPU105は、通電時間の合計を算出してS208の判断が終わるまで、RAID1の再構成(プライマリHDDのデータをセカンダリHDDにコピー)を禁止するように制御する。これにより、プライマリHDDのデータが新たに装着されたHDDに不正にコピーされてしまうことを防止できるとともに、画像形成装置101を早期に起動して使用することが可能となる。よって、不正アクセスの防止と、ユーザの利便性を備えた画像形成装置を提供することができる。
なお、上記ステップS208において、プライマリHDDへの通電時間の合計の増加が所定時間より長いと判定した場合には(S208でNo)、CPU105は、不正アクセスが行われた可能性が高いと判断する。そして、CPU105は、プライマリHDD、セカンダリHDDの両方のHDDの信頼性が確保できないため、再構築を禁止する。そして、CPU105は、ステップS210において、図7に示したように操作部108を介して、HDDの電源を投入した回数が不連続だった旨を利用者に報知することで、ユーザに警告を行う。また、CPU105は、インタフェース107を介して予めSRAM等のメモリ106に登録されたメールアドレス(例えば、装置の管理者のアドレス)宛てに警告内容を送信することで、ユーザに警告を行ってもよい。その後、CPU105は、画像形成装置101を起動することなく、本フローチャートの処理を終了し、画像形成装置101の電源を切断する。
一方、上記S207において、プライマリHDDの電源を投入した回数が前回起動時と今回とで連続していると判定した場合には(S207でYes)、CPU105は、プライマリHDDに不正なアクセスはなかったと判断し、ステップS211に処理を進める。
ステップS211では、CPU105は、ユーザ認証処理を行う。例えば、パスワードによるユーザ認証処理や、指紋・静脈認証等の不図示の生体認証装置を使ったユーザ認証処理を行う。
そして、ステップS212において、ステップS211のユーザ認証に成功する(認証OK)まで待機し、ユーザ認証に成功したと判断した場合には、ステップS213において、RAID1の再構築処理を行う。これにより、データの再構築を許可されている人以外が再構築を行うことを防止することができる。
なお、ステップS213の再構築処理では、CPU105は、前回と同じHDD(プライマリHDD)のデータを前回と別のHDD(セカンダリHDD)へコピーする。
その後、ステップS214において、CPU105は、HDD109,112のSMART情報を新たに取得し、メモリ106(ROMなどの不揮発性のメモリ、若しくは、電池でバックアップされたSRAMなどの揮発性メモリ)に格納する(SMART情報更新)。
そして、ステップS215において、CPU105は、画像形成装置101を起動し、本フローチャートの処理を終了する。これにより、画像形成装置101は待機状態となり、画像形成装置101の各種機能が利用可能となる。
なお、HDDの容量にもよるが、再構築には時間を要するため、再構築を行いながら同時にプライマリHDDを使って装置を起動しても良いし、再構築を省略して装置を起動しても良い。なお、再構築を省略して装置を起動した場合、装置が使用されていない間(例えば、省電力モードの時)に、RAID1の再構築を行うように構成してもよい。
ただし、これらいずれの場合も、RAIDの冗長性が無い状態で装置を使用するため、操作部108を介してその旨をユーザに警告し、ユーザに注意を促すことが望ましい。
以上説明したように、本実施形態によれば、安価でかつ消費電力の増加を招くことなくHDDへの不正アクセスを検知することができる。例えば、いずれか片方のHDDに前回起動時と別のHDDが装着された場合であっても、HDDへの不正アクセスを効果的に抑止、発見することができる。よって、HDDの故障などにより、前回と同じHDDが使用できず、このHDDの変わりに別のHDDを装着した場合でも、ユーザは装置からの警告に従って、安全にRAIDの再構築を行うことができる。
また、万一データ漏洩が発生した場合にも、いつ、どこHDDから情報漏洩したかを特定することができる。
〔第3実施形態〕
本発明の第3実施形態について、図9のフローチャートを用いて説明する。本実施形態においては、画像形成装置101が動作状態で、片方のHDDが取り外された場合の処理について説明する。
図9は、本発明の第3実施形態における画像形成装置101の動作を示すフローチャートである。
まず、画像形成装置101に電源が投入されると(S301)、CPU105はメモリ106に格納されているブートプログラムを起動する。以下、CPU105が、このプログラムを実行することにより、図2や図3に示したような処理を実行して、画像形成装置101が起動状態(動作状態)に移行する。なお、RAID1は、片方のHDDからのみリードを行うため、動作中に片方のHDDを取り外すことが可能である。
その後、画像形成装置101の動作中(起動中)に、ディスクアレイ制御装置111が、HDD109,112のどちらかのHDDが取り外されたことを検知すると、その旨をCPU105に通知する。これにより、CPU105は、片方のHDDが取り外されたことを検知し(S302)、ステップS303に処理を進める。
ステップS303では、CPU105は、残されたHDDをプライマリHDDとするようにディスクアレイ制御装置111に設定する。
その後、ディスクアレイ制御装置111は、HDDが取り外されたスロットへHDDが装着されたことを検知すると、その旨をCPU105に通知する。これにより、CPU105は、取り外されたスロットへHDDが装着されたことを検知する(S304)。そして、CPU105は、装着が検知されたHDDをセカンダリHDDとするようにディスクアレイ制御装置111に設定し、ステップS305に処理を進める。
次に、ステップS305において、CPU105は、図2のS103と同様の方法により、上記S304で装着が検知されたHDDが、前回のHDD(上記S302で取り外しが検知されたHDD)と同じHDDか否かを判定する。
ここで、前回とは別のHDDが装着されたと判断した場合(S305でNo)、CPU105は、元のHDDが故障して交換されたり、データのバックアップを取るために別のHDDを装着したと考えられるので、RAID1の再構築を行う(S306〜S308)。この再構築のステップ(S306〜S308)については、図2のS211〜S213と同じ処理であるため説明は省略する。
一方、前回と同じHDDが装着されたと判断した場合(S305でYes)、CPU105は、ステップS309に処理を進める。
ステップS309では、CPU105は、装着されたHDDのSMART情報をリードして、メモリ106の作業領域に記憶する。
次に、ステップS310において、CPU105は、装着されたHDDのSMART情報の中の項目の1つであるHDDのスピンドルモータが回転した回数(Start/Stop Count)を確認する。本実施形態では、前述の第1,2実施形態で用いたHDDの電源を投入した回数の代わりに、スピンドルモータが回転した回数(Start/Stop Count)(即ち、HDDが動作及び停止した回数)を用いるものとする。そして、HDDの電源を投入した回数と同じく、スピンドルモータが回転した回数が連続だった場合は、取り外されていた間に不正なアクセスは無かったと判定するものとする。CPU105は、装着されたHDDについて、HDDのスピンドルモータ回転回数が前回起動時と今回とで連続しているか判定する。
詳細には、CPU105は、今回確認したHDDのスピンドルモータ回転回数(今回スピンドルモータ回転回数)と、前回起動時にメモリ106に記憶したスピンドルモータ回転回数(前回スピンドルモータ回転回数)が、「今回スピンドルモータ回転回数=前回スピンドルモータ回転回数+1」という特定の関係か判定する。なお、CPU105は「今回スピンドルモータ回転回数=前回スピンドルモータ回転回数+1」の関係である場合、前回から今回電源が投入されるまでHDDへの不正なアクセスが無かったと判定する。以下、上記特定の関係(前回スピンドルモータ回転回数に1を加算したものが今回スピンドルモータ回転回数と一致する関係)を以下「連続している」という。
そして、CPU105は、装着されたHDDのスピンドルモータ回転回数が前回と今回で連続していると判定した場合には(S310でYes)、装着されたHDDに対して不正なアクセスは行われなかったと判断し、本フローチャートの処理を終了する。そして、画像形成装置101は待機状態となり、画像形成装置101の各種機能が利用可能となる。
一方、CPU105は、装着されたHDDのスピンドルモータ回転回数が前回と今回で連続していないと判定した場合には(S310でNo)、装着されたHDDに対して不正なアクセスは行われたと判断し、ステップS311に処理を進める。
ステップS311では、CPU105は、図10に示すように操作部108を介して、その旨(メッセージ1001)を利用者に報知する。この時、図2のS114と同じように、CPU105は、インタフェース107を介して予め登録されたメールアドレス宛てに警告内容を送信したり、日時と警告内容を装置のメモリ106に記録して、あとで確認できるようにしても良い。
図10は、本発明の第3実施形態における警告表示の一例を示す図である。
なお、ユーザは、「はい」ボタン1002をタッチ指示することにより、2つのHDDの整合性のチェックを行うことを指示できる。また、ユーザは、「いいえ」ボタン1003をタッチ指示することにより、2つのHDDの整合性のチェックを行わないことを指示できる。なお、上記ステップS309でNoの場合、データの不整合が発生している可能性があるため、データの整合性チェックを行う方が望ましい。
以下、図9のフローチャートの説明に戻る。
次に、ステップS312において、CPU105は、2つのHDDの整合性のチェックを行うことが指示されたか否かを判断する。CPU105は、警告表示(図5)で「いいえ」ボタン1003が指示されたと検知した場合、2つのHDDの整合性のチェックを行わないことが指示されたと判断し、そのまま本フローチャートの処理を終了する。その後、画像形成装置101は待機状態となり、画像形成装置101の各種機能が利用可能となる。
一方、上記ステップS312において、CPU105は、警告表示(図5)で「はい」ボタン1002が指示されたと検知した場合、2つのHDDの整合性のチェックを行うことが指示されたと判断し、ステップS313に処理を進める。
ステップS313では、CPU105は、2つのHDDの整合性のチェックを行い、本フローチャートの処理を終了する。なお、上記整合性チェックの結果が「整合」であった場合、画像形成装置101の使用を許可し、一方、「不整合」であった場合、画像形成装置101の使用を禁止するように構成してもよい。
以上説明したように、本実施形態によれば、安価でかつ消費電力の増加を招くことなく、HDDへの不正アクセスを検知することができる。例えば、装置動作状態で、片方のHDDが取り外された場合であっても、HDDへの不正アクセスを効果的に抑止、発見するができる。
また、万一データ漏洩が発生した場合にも、いつ、どこHDDから情報漏洩したかを特定することができる。
〔第4実施形態〕
本発明の第1実施形態の変形例である第4実施形態について、図12フローチャートを用いて説明する。
第1実施形態は、HDDの電源を投入した回数が不連続だった場合に、その旨を報知することで警告をするものであった。また、その警告をしても、そのまま起動する旨の指示がされた場合は、そのまま起動させるものであった。
ただし、HDDに画像形成装置101が実行可能なプログラムを記憶させておく構成をとる場合、HDDに記憶されたプログラムが不正に改竄されてしまうと、問題が生じる可能性がある。例えば、改竄されたプログラムを画像形成装置101が実行することにより、HDDに記憶された情報が外部装置に漏洩してしまう等の不具合が生じる可能性がある。
このような問題を鑑みて、第4実施形態は、そのまま起動する旨の指示がされた場合に、HDDに記憶されたプログラムが改竄を受けていないかを検証し、その検証結果に基づいて適切に制御するものである。
図12は、図1に示した画像形成装置101の動作を示すフローチャートである。
なお、図12は、第1実施形態における図2のフローチャートの変形例である。図12におけるステップS1201〜S1216は、図2におけるステップS101〜116と同様であるので説明を省略する。
図12では、ステップS1217〜S1219が新たに追加されているので、これらのステップにおける画像形成装置101の動作を下記に説明する。
ステップS1216で、そのまま起動する旨の指示がなされた場合(「はい」ボタン602が指示された)、CPU105は、ステップS1217へ処理を進める。一方、ステップS1216で、そのまま起動する旨の指示がなされない場合(「いいえ」ボタン603が指示された)、CPU105は、図12のフローを終了させる。
ステップS1217において、CPU105はHDDに記録されている実行可能プログラムが何らかの改竄を受けていないかどうかを検証する。ステップS1217において検証されるプログラムには、画像形成装置101の機能を実現するためのプログラムが含まれる。改竄の有無を検証するのは、HDDへの不正アクセスにより、HDDに記録されたプログラムが正規のものであると信頼できない状態になっている可能性があるからである。
ここで、ステップS117における検証方法について一例を説明する。改竄の有無の検証にはハッシュ関数を用いる。ハッシュ関数とは、与えられたデータを元にして短い数値を生成するための関数であり、ハッシュ関数に基づいて生成された値はハッシュ値と呼ばれる。一般的に、あるデータからハッシュ関数により生成されたハッシュ値は不可逆な値でありかつ、生成されるハッシュ値は与えられたデータによって異なる。ハッシュ関数に入力される2つのデータが同一ならば、それらから生成されるハッシュ値も等しい。
そこで、画像形成装置101には、コントローラ104上のSRAM等の不揮発性メモリにあらかじめ正規のプログラムをハッシュ関数に入力して生成されるハッシュ値を記憶しておく。そして、ステップS117においてCPU105はプライマリHDD及びセカンダリHDDからそれぞれプログラムをメモリ上にデータとして読み込み、ハッシュ関数を用いてハッシュ値を計算する。正規のプログラムのハッシュ値と、HDDから読み出したプログラムのハッシュ値が等しいならば、CPU105はプログラムに改竄は無いと判断する。一方、ハッシュ値が異なっているならば、なんらかの改竄を受けたものと判断する。
もちろん、上述の検証手段はあくまで一例であって、上述とは異なる検証手段を用いても良い。例えば電子署名技術を利用し、HDDに記録した実行可能プログラムに電子署名を施し、その署名を検証する方法でもよい。また、ここでは検証をソフトウェアによって実現しCPU105で実行するものとしたが、改竄の有無を検証する専用のハードウェアを用いる構成でもよい。
ステップS1218において、CPU105はHDDに記憶されたプログラムの検証結果に基づいて、プライマリHDDとセカンダリHDDの双方に改竄があるかどうかを判断する。ステップS1218での判断の結果、少なくとも1つ以上のHDDにおいて改竄が認められない場合、CPU105はステップS1219に処理を進める。一方、全てのHDDに改竄があると判断された場合、HDDに記憶されたプログラムを実行せず、そのまま本フローチャートの処理を終了し、画像形成装置101の電源を切断する。
ステップS1219で、CPU105は改竄の認められないHDDをプライマリHDDに設定し、ステップS1212に処理を進める。この場合、CPU105は、ステップS1213においてHDDから読み出されたプログラムを用いて画像形成装置101を起動する。
なお、ステップS1219において、少なくとも1つ以上のHDDにおいて改竄検出された時、CPU105はプログラムが改竄を受けた旨をユーザに報知するように構成してもよい。
以上説明したように、第4実施形態によれば、HDDに記憶されたプログラムが改竄されて再び装着されるような場合に、改竄がされたプログラムを用いて画像形成装置101が起動してしまうことによる不具合を防止することができる。
〔第5実施形態〕
本発明の第2実施形態の変形例である第5実施形態について、図13フローチャートを用いて説明する。
第2実施形態は、HDDの電源を投入した回数が不連続だった場合であっても、通電時間の増加が所定時間以内であれば警告をせずに画像形成装置101を起動させるものであった。
ただし、HDDに画像形成装置101が実行可能なプログラムを記憶させておく構成をとる場合、HDDに記憶されたプログラムが不正に改竄されてしまうと、問題が生じる可能性がある。例えば、改竄されたプログラムを画像形成装置101が実行することにより、HDDに記憶された情報が外部装置に漏洩してしまう等の不具合が生じる可能性がある。
このような問題を鑑みて、第5実施形態は、HDDの電源を投入した回数が不連続だった場合に、HDDに記憶されたプログラムが改竄を受けていないかを検証し、その検証結果に基づいて適切に制御するものである。
図13は、図1に示した画像形成装置101の動作を示すフローチャートである。
なお、図13は、第1実施形態における図8のフローチャートの変形例である。図13におけるステップS1301〜S1307は、図8におけるステップS201〜207と同様であるので説明を省略する。また、図13におけるS1310〜S1317は、図8におけるS208〜S215と同様であるので説明を省略する。
図13では、ステップS1308、S1309が新たに追加されているので、これらのステップにおける画像形成装置101の動作を下記に説明する。
ステップS1308において、CPU105はプライマリHDDに記憶されているプログラムが何らかの改竄を受けていないかどうかを検証する。この段階では通電時間の増加に基づく不正アクセスの判断が完了していないため、プライマリHDDは不正アクセスが疑われる状態である。よって、このステップにおいてCPU105は装置起動前にプログラムが改竄を受けていないかどうかを検証する。なお、改竄の有無を検証する方法については第4実施形態と同様であるので、説明を省略する。
ステップS1309において、CPU105はプライマリHDDに記憶されたプログラムの検証結果に基づいて、プライマリHDDに記憶されたプログラムが改竄されているかどうかを判断する。プライマリHDDに記憶されたプログラムに改竄有りと判断された場合、CPU105はステップS1312へ処理を進め、ユーザに警告する。一方、プライマリHDDに記憶されたプログラム改竄は無いと判断された場合、CPU105はステップS1310へ処理を進める。
以上説明したように、第5実施形態によれば、HDDに記憶されたプログラムが改竄されて再び装着されるような場合に、改竄がされたプログラムを用いて画像形成装置101が起動してしまうことによる不具合を防止することができる。
上述の第1実施形態では、誤って前回起動時と別のHDDが装着された場合の処理について説明した。また、上述の第2実施形態では、いずれか片方に別のHDDを装着した場合の処理について説明した。さらに、上述の第3実施形態では、装置が動作状態で、片方のHDDが取り外された場合の処理について説明した。
しかし、本発明は、これら第1〜3の実施形態に限定されるものではなく、第1〜3の実施形態に記載された構成を自由に組み合わせたものも、その範囲に含まれるものとする。例えば、第1,3実施形態に対して、第2実施形態に示した図8のステップS208の処理(HDDへの通電時間の増加が所定の時間以内か否かを判定するステップ)を追加した構成であってもよい。また、第1,2実施形態における、HDDの電源投入回数でHDDへの不正アクセスを判定する構成を、スピンドルモータが回転した回数でHDDへの不正アクセスを判定する構成に変更してもよい。また、これらの構成を組み合わせ、HDDの電源投入回数及びスピンドルモータが回転した回数でHDDへの不正アクセスを判定する構成としてもよい。
なお、上記各実施形態では、RAID1についてのみ説明したが、RAIDの構成を取ら無い場合や、RAID1以外のRAID構成の場合においても、本発明を応用可能な範囲で用いることができる。
また、上記各実施形態では、情報処理装置に着脱可能な記憶装置の例として、ハードディスク(磁気記憶装置)を用いて説明した。しかし、情報処理装置に着脱可能な記憶装置は、ハードディスク(磁気記憶装置)に限定されるものではなくその他の形式の記憶装置であってもよい。記憶装置の備えるコントローラが上位装置からの指示に関係なく当該記憶装置に関する特定の情報(記憶装置の電源ON/OFF回数や、記憶装置の通電時間の合計等)を、当該記憶装置に記憶させる構成であれば、どのような記憶装置でも、本発明に適用可能である。
以上の実施形態によれば、上位装置からの指示に関係なくHDDのコントローラが自らHDDに記録するHDDに関する特定の情報(電源投入回数やスピンドルモータ回転回数等)を用いることで、HDDへの不正アクセスの有無を判断することができる。この結果、HDDへの不正アクセスを効果的に抑止、発見することができる。また、万一データ漏洩が発生した場合にも、いつ、どこのHDDから情報漏洩したかを特定することができる。
そして、装置の電源投入時に、HDDに関する情報が正しい方をプライマリHDDとすることで、不正にアクセスが行われた可能性があるHDDへリードを行わなくすることができる。さらに、整合性チェックにおいても、HDDに関する情報が正しい方のHDDのデータを不正なHDDへ上書きするため、より信頼性の向上を図ることができる。
また、再構築を行う際も、プライマリHDDのHDDに関する特定の情報が不正な場合は、再構築を禁止し、さらに、プライマリHDDのHDDに関する特定の情報が正しい場合も、ユーザ認証を行うことで、不正なデータ複製を防止することができる。
また、装置動作中に片方のHDDが取り外され、同じHDDが再び装着された場合も、装着されたHDDのHDDに関する特定の情報に基づいて、装置から取り外されていた間のHDDへの不正なアクセスの有無を判定することができる。
なお、上述の各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
以下、図11に示すメモリマップを参照して、本発明に係る情報処理装置として画像形成装置101を機能させるためのプログラムを記録したコンピュータ読取り可能な記憶媒体(記録媒体)のメモリマップの構成について説明する。
図11は、本発明に係る情報処理装置として画像形成装置101を機能させるためのプログラムを記録したコンピュータ読取り可能な記憶媒体(記録媒体)のメモリマップを説明する図である。
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
本実施形態における図2,図8,図9に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD-ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
したがって、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD-ROM、CD-R、CD-RW、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のプログラムそのものをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また、該ホームページから圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバやFTPサーバ等も本発明の請求項に含まれるものである。
また、本発明のプログラムを暗号化してCD-ROM等の記憶媒体に格納してユーザに配布する。さらに、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。さらに、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、以下のような構成も含まれることは言うまでもない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードを、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込む。そして、該メモリに書き込まれたプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記憶媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
なお、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。