(57)【特許請求の範囲】
【請求項１】
ＢＩＯＳ（Basic Input/Output System）が予め格納されたＢＩＯＳ記憶部と、
正常な前記ＢＩＯＳのデータと予め任意の値に定められた付加データとを含む合成データの誤り検出符号を予め格納する符号記憶部と、
前記ＢＩＯＳ記憶部に格納されたＢＩＯＳを起動するときに、前記付加データを生成する付加データ生成部と、
前記ＢＩＯＳ記憶部に格納されたＢＩＯＳを起動するときに、当該ＢＩＯＳのデータと前記付加データ生成部によって生成された付加データとを含む合成データの誤り検出符号を生成し、生成した誤り検出符号と前記符号記憶部に格納された誤り検出符号とを比較して、それらの誤り検出符号が一致しなかった場合、前記ＢＩＯＳの起動を抑止する管理部と、
を備えた情報処理装置。
【請求項２】
前記ＢＩＯＳ記憶部は、さらに前記ＢＩＯＳの設定情報が格納され、
前記合成データは、さらに前記ＢＩＯＳの設定情報を含み、
前記情報処理装置は、前記ＢＩＯＳ記憶部に格納された設定情報を書き換えるときに、前記付加データ生成部によって生成された付加データを取得し、取得した付加データ、前記ＢＩＯＳのデータ、及び前記書き換え後のＢＩＯＳの設定情報を含む合成データの誤り検出符号を生成し、生成した誤り検出符号で前記符号記憶部に格納された誤り検出符号を更新する制御部をさらに備えた請求項１に記載の情報処理装置。
【請求項３】
前記制御部は、プロセッサであり、
前記情報処理装置は、さらに前記管理部及び前記付加データ生成部を含むＢＭＣ（Baseboard Management Controller）を備えた、
請求項２に記載の情報処理装置。
【請求項４】
前記プロセッサは、前記ＢＭＣとの間で、ＩＰＭＩ（Intelligent Platform Management Interface）コマンドによって前記情報処理装置に含まれるハードウェアに関する情報を送受信するものであって、
前記プロセッサは、前記ＩＰＭＩのＯＥＭ（Original Equipment Manufacturer）拡張コマンドによって、前記付加データを前記ＢＭＣから取得する請求項３に記載の情報処理装置。
【請求項５】
前記誤り検出符号は、前記合成データのチェックサム値である請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
ＢＩＯＳ（Basic Input/Output System）を起動するときに、予め任意の値に定められた付加データを生成するステップと、
当該ＢＩＯＳのデータと、前記生成された付加データとを含む合成データの誤り検出符号を生成するステップと、
予め生成された、正常な前記ＢＩＯＳのデータと前記付加データとを含む合成データの誤り検出符号と、前記ＢＩＯＳを起動するときに生成された誤り検出符号とを比較して、それらの誤り検出符号が一致しなかった場合、前記ＢＩＯＳの起動を抑止するステップと、
を備えた情報処理方法。
【請求項７】
ＢＩＯＳ（Basic Input/Output System）を起動するときに、予め任意の値に定められた付加データを生成する処理と、
当該ＢＩＯＳのデータと、前記生成された付加データとを含む合成データの誤り検出符号を生成する処理と、
予め生成された、正常な前記ＢＩＯＳのデータと前記付加データとを含む合成データの誤り検出符号と、前記ＢＩＯＳを起動するときに生成された誤り検出符号とを比較して、それらの誤り検出符号が一致しなかった場合、前記ＢＩＯＳの起動を抑止する処理と、
をＢＭＣ（Baseboard Management Controller）に実行させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及び情報処理プログラムに関し、特にＢＩＯＳ（Basic Input/Output System）の起動を制御する技術に関する。
【背景技術】
【０００２】
近年、情報処理装置においては、コンピュータウイルスによる犯罪が頻発している。このため、コンピュータウイルスで大切な情報を消去又は破壊されないようにすることが望まれている。
【０００３】
情報処理装置は、その起動時に不揮発性メモリに書き込まれている基本入出力システム（ＢＩＯＳ）等のプログラムによりオペレーティングシステムを立ち上げている。ＢＩＯＳは、書き換え可能な不揮発性メモリに書き込まれている。情報処理装置には、ＢＩＯＳがコンピュータウイルスによって破壊されてしまった場合、もしくは、ＢＩＯＳがコンピュータウイルスに感染してしまった場合、ＰＯＳＴ（Power On Self Test）において起動を抑止するものがある。
【０００４】
特許文献１には、コンピュータウイルス等で破壊、感染されたＢＩＯＳやＩＰＬで情報処理装置を起動させなくする技術が開示されている。特許文献１に開示の情報処理装置は、フラッシュＲＯＭ部、ジャンパー部、フラッシュＲＯＭ読み出し部、加算回路部、比較回路部を有している。フラッシュＲＯＭ部には、ＩＰＬ（Initial Program Load）やＢＩＯＳといったプログラムが書き込まれている。ジャンパー部には、フラッシュＲＯＭ部の内容が正常な時のデータの合計が設定されている。情報処理装置に電源が供給されたとき、フラッシュＲＯＭ読み出し部は、フラッシュＲＯＭ部の内容を次々読み出して加算回路部に送る。加算回路部は、その合計を計算する。比較回路部は、加算回路部の合計結果と、ジャンパー部に設定された合計とを比較する。そして、それらが一致している場合、情報処理装置は、ＩＰＬやＢＩＯＳ等の動作を開始する。他方、それらが一致していない場合、情報処理装置は、ＩＰＬやＢＩＯＳ等の動作を開始しない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−０２７０３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１では、単純に、フラッシュＲＯＭ部の合計値によって、ＢＩＯＳ等が破壊、感染されていないかを判定するようにしている。しかし、フラッシュＲＯＭ部の合計値だけでは、第３者が容易に知ることができるため、セキュリティ対策として十分でないという問題がある。
【０００７】
例えば、情報処理装置に感染したコンピュータウイルスは、単純にフラッシュＲＯＭ部のデータを読み出すだけで、その合計値を計算することができる。そのため、フラッシュＲＯＭ部のデータの合計値が、計算した合計値と一致するように、フラッシュＲＯＭ部のデータを書き換えることで、フラッシュＲＯＭ部に格納されたＢＩＯＳ等のプログラムを容易に改竄することができる。
【０００８】
本発明の目的は、上述したような課題を解決するために、よりセキュリティを向上しつつ、正常でないＢＩＯＳによる起動を抑止することができる情報処理装置、情報処理方法、及び情報処理プログラムを提供することである。
【課題を解決するための手段】
【０００９】
本発明の第１の態様にかかる情報処理装置は、ＢＩＯＳ（Basic Input/Output System）が予め格納されたＢＩＯＳ記憶部と、正常な前記ＢＩＯＳのデータと予め任意の値に定められた付加データとを含む合成データの誤り検出符号を予め格納する符号記憶部と、前記ＢＩＯＳ記憶部に格納されたＢＩＯＳを起動するときに、当該ＢＩＯＳのデータと前記付加データとを含む合成データの誤り検出符号を生成し、生成した誤り検出符号と前記符号記憶部に格納された誤り検出符号とを比較して、それらの誤り検出符号が一致しなかった場合、前記ＢＩＯＳの起動を抑止する管理部と、を備えたものである。
【００１０】
本発明の第２の態様にかかる情報処理方法は、ＢＩＯＳ（Basic Input/Output System）を起動するときに、当該ＢＩＯＳのデータと、予め任意の値に定められた付加データとを含む合成データの誤り検出符号を生成するステップと、予め生成された、正常な前記ＢＩＯＳのデータと前記付加データとを含む合成データの誤り検出符号と、前記ＢＩＯＳを起動するときに生成された誤り検出符号とを比較して、それらの誤り検出符号が一致しなかった場合、前記ＢＩＯＳの起動を抑止するステップと、を備えたものである。
【００１１】
本発明の第３の態様にかかる情報処理プログラムは、ＢＩＯＳ（Basic Input/Output System）を起動するときに、当該ＢＩＯＳのデータと、予め任意の値に定められた付加データとを含む合成データの誤り検出符号を生成する処理と、予め生成された、正常な前記ＢＩＯＳのデータと前記付加データとを含む合成データの誤り検出符号と、前記ＢＩＯＳを起動するときに生成された誤り検出符号とを比較して、それらの誤り検出符号が一致しなかった場合、前記ＢＩＯＳの起動を抑止する処理と、をＢＭＣ（Baseboard Management Controller）に実行させるものである。
【発明の効果】
【００１２】
上述した本発明の各態様によれば、よりセキュリティを向上しつつ、正常でないＢＩＯＳによる起動を抑止することができる情報処理装置、情報処理方法、及び情報処理プログラムを提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態にかかる情報処理装置の構成の概要を示すブロック図である。
【図２】本発明の実施の形態にかかる情報処理装置の構成を示すブロック図である。
【図３】本発明の実施の形態にかかる情報処理装置の起動処理を示すフローチャートである。
【図４】本発明の実施の形態にかかる情報処理装置の設定情報更新処理を示すフローチャートである。
【発明を実施するための形態】
【００１４】
まず、図１を参照して、本発明の実施の形態にかかる情報処理装置１の概要となる情報処理装置９の構成について説明する。図１は、本発明の実施の形態にかかる情報処理装置９の構成を示すブロック図を示す。
【００１５】
情報処理装置９は、ＢＩＯＳ記憶部９１、符号記憶部９２、及び管理部９３を有する。
【００１６】
ＢＩＯＳ記憶部９１は、ＢＩＯＳ９１０が予め格納されている。符号記憶部９２は、正常なＢＩＯＳ９１０のデータと、予め任意の値に定められた付加データとを含む合成データの誤り検出符号が予め格納されている。管理部９３は、ＢＩＯＳ９１に格納されたＢＩＯＳ９１０を起動するときに、ＢＩＯＳ９１０のデータと符号データとを含む合成データの誤り検出符号を生成する。管理部９３は、生成した誤り検出符号と符号記憶部９２に格納された誤り検出符号とを比較して、それらの誤り検出符号が一致しなかった場合、ＢＩＯＳ９１０の起動を抑止する。
【００１７】
続いて、本発明の実施の形態にかかる情報処理装置９の処理について説明する。
【００１８】
管理部９３は、ＢＩＯＳ９１０を起動するときに、ＢＩＯＳ９１０のデータと、予め任意の値に定められた付加データとを含む合成データの誤り検出符号を生成する。管理部９３は、正常なＢＩＯＳ９１０のデータと付加データとを含む合成データの誤り検出符号９２０と、ＢＩＯＳ９１０を起動するときに生成された誤り検出符号とを比較する。管理部９３は、誤り検出符号が一致しなかった場合、ＢＩＯＳ９１０の起動を抑止する。
【００１９】
続いて、本発明の実施の形態について図面を参照して詳細に説明する。まず、図２を参照して、本発明の実施の形態にかかる情報処理装置１の構成について説明する。図２は、本発明の実施の形態にかかる情報処理装置１の構成を示すブロック図である。情報処理装置１は、例えば、サーバ等である。
【００２０】
より具体的には、図２は、情報処理装置１に含まれるマザーボード１０のアーキテクチャを示している。このアーキテクチャは、１つの例を例示したものであり、後述する本発明の機能を実現することが可能であれば、その構成を適宜変更するようにしてもよい。
【００２１】
マザーボード１０は、ＣＰＵ（Central Processing Unit）１１、プロセッサバス１２、ノースブリッジ１３、メモリ１４、サウスブリッジ１５、ロウピンカウント（ＬＰＣ：Low Pin Count）バス１６、不揮発性メモリ１７、１９、及びＢＭＣ１８を有する。ＣＰＵ１１及びノースブリッジ１３は、プロセッサバス１２を介して相互に接続されている。サウスブリッジ１５、不揮発性メモリ１７、１９及びＢＭＣ１８は、ＬＰＣバス１６を介して相互に接続されている。
【００２２】
ＣＰＵ１１は、不揮発性メモリ１７からＢＩＯＳ１７０をロードして実行する。ＣＰＵ１１は、ＢＩＯＳ１７０を実行することによって、情報処理装置１が有するユニットの初期化等のＰＯＳＴを実行する。ＣＰＵ１１は、ＰＯＳＴの終了後、ＯＳ（Operating System）を実行する。なお、「ＣＰＵ」のことを「プロセッサ」とも言う。
【００２３】
プロセッサバス１２は、ＣＰＵ１１とノースブリッジ１３との間でデータが転送される転送経路である。ノースブリッジ１３は、メモリ１４とＣＰＵ１１との間で転送されるデータ、及びサウスブリッジ１５とＣＰＵ１１との間で転送されるデータを管理する。ノースブリッジ１３は、サウスブリッジ１５によって制御されるユニットよりも高速なユニットを制御するチップである。ここでは、そのようなユニットとしてメモリ１４が該当する。
【００２４】
メモリ１４は、メモリユニット（図示せず）及びメモリコントローラ（図示せず）を含む。メモリユニットは、例えば、ＳＲＡＭ（Static Random Access Memory）、及びＤＲＡＭ（Dynamic Random Access Memory）等のランダムアクセス可能な揮発性メモリである。メモリコントローラは、ＣＰＵ１１からの要求に応じて、メモリユニットに対するデータの読み書きを制御する。なお、メモリコントローラの機能は、ノースブリッジ１３に含まれていてもよい。
【００２５】
サウスブリッジ１５は、ノースブリッジ１３と、不揮発性メモリ１７、１９及びＢＭＣ１８との間で転送されるデータを管理する。サウスブリッジ１５は、ノースブリッジ１３によって制御されるユニットよりも低速なユニットを制御するチップである。サウスブリッジ１５は、例えば、ＬＰＣバスコントローラ、ＰＣＩ（Peripheral Component Interconnect）バスコントローラ、ＩＤＥ（Integrated Drive Electronics）コントローラ、及びＵＳＢ（Universal Serial Bus）コントローラ等の機能を有する。本実施の形態では、それらの機能のうち、ＬＰＣバスコントローラの機能によってデータ転送制御が行われるＬＰＣバスについて図示している。その他のバス及びその先に接続されたユニットについては、図示を省略している。それらのユニットには、例えば、マウス及びキーボード等の入出力装置、並びに、ハードディスクのような記憶装置が含まれる。例えば、ＣＰＵ１１によって実行されるＯＳは、このハードディスクに格納されている。ノースブリッジ１３及びサウスブリッジ１５は、マザーボード１０においてチップセットとも言われる。
【００２６】
なお、メモリコントローラ、ノースブリッジ１３及びサウスブリッジ１５による各構成要素１１、１４、１７、１８、１９間のデータの転送制御については、周知の技術であるため、詳細な説明は省略する。
【００２７】
ＬＰＣバス１６は、サウスブリッジ１５、不揮発性メモリ１７、１９、及びＢＭＣ１８間でのデータが転送される転送経路である。不揮発性メモリ１７は、ＢＩＯＳ１７０が予め格納されている。また、不揮発性メモリ１７には、ＢＩＯＳ１７０の設定情報１７１も格納される。ＢＩＯＳ１７０は、ＣＰＵ１１にＰＯＳＴを実行させるプログラムである。また、ＢＩＯＳ１７０は、不揮発性メモリ１７に格納されたデータ１７０、１７１を更新するときに、それに合わせてチェックサム値１９０も更新する。チェックサム値１９０については、後述する。設定情報１７１は、例えば、起動デバイスの優先順位、クロック、及び、装置構成等の情報が含まれる。
【００２８】
ＢＭＣ１８は、情報処理装置１の電源制御、並びに、情報処理装置１に含まれる各種ユニットの温度及び電圧等の管理を行う。ＢＭＣ１８は、ＣＰＵ１１によってＯＳ上で実行されるシステム管理ソフトウェアと、各種ユニットとの間のインターフェイスとして機能する。なお、ここでのシステム管理ソフトウェアによるＢＭＣ１８からの情報の取得は、ＩＰＭＩ(Intelligent Platform Management Interface)仕様に基づくコマンドインタフェースによって行う。つまり、システム管理ソフトウェアによるユニットの情報の取得は、システム管理ソフトウェアがユニットの情報を要求するＩＰＭＩコマンドをＢＭＣ１８に出力し、ＢＭＣ１８がそれに応じてユニットの情報をＣＰＵ１１に出力することによって実現する。なお、これらシステム管理ソフトウェアによる処理は、厳密には、ＣＰＵ１１によって実行されることになる。
【００２９】
また、ＢＭＣ１８は、ＷＤＴ（ウォッチドックタイマ）によって、ＣＰＵ１１において動作するＯＳがストールしたか否かを監視する。具体的には、ＢＭＣ１８は、所定の時間の間、ＯＳから応答がなかった場合、ＯＳがストールしたと判定する。ＢＭＣ１８は、ＯＳがストールしたと判定した場合は、ＣＰＵ１１を再起動する。例えば、ＢＭＣ１８は、ＣＰＵ１１を再起動する信号をＣＰＵ１１に出力することによって、ＣＰＵ１１を再起動する。
【００３０】
また、ＢＭＣ１８は、付加データを生成する。この付加データの値は、予め任意の値を定めることができる。付加データのデータ長も、予め任意の長さを定めることができる。ＢＭＣ１８が生成した付加データは、後述するチェックサム値の計算に使用される。ＢＭＣ１８は、ＣＰＵ１１によってＢＩＯＳ１７０を起動する前に、不揮発性メモリ１７のデータを読み出す。このデータには、ＢＩＯＳ１７０のデータと設定情報１７１が含まれる。ＢＭＣ１８は、読み出した不揮発性メモリ１７のデータに、生成した付加データを付加したデータについて、チェックサム値を計算する。そして、ＢＭＣ１８は、計算したチェックサム値と、不揮発性メモリ１９に格納されたチェックサム値１９０とを比較する。ここで、チェックサム値１９０については、後に詳述するが、計算したチェックサム値の期待値となる。そのため、ＢＭＣ１８は、比較したチェックサム値が一致した場合は、ＣＰＵ１１によるＢＩＯＳ１７０の実行を許容し、比較したチェックサム値が不一致の場合は、ＣＰＵ１１によるＢＩＯＳ１７０の実行を抑制する。
【００３１】
ここで、本実施の形態にかかるＢＭＣ１８の処理は、ＢＭＣ１８上で動作するファームウェアによって実現される。ＢＭＣ１８は、例えば、そのファームウェアを実行するＣＰＵ及びメモリ等を有する。
【００３２】
不揮発性メモリ１９には、チェックサム値１９０が予め格納されている。このチェックサム値は、不揮発性メモリ１７の正常なデータに付加データを付加したデータについて、予め計算されたチェックサム値となる。つまり、不揮発性メモリ１９に格納されているチェックサム値１９０は、不揮発性メモリ１７に格納されるデータに、ＢＭＣ１８によって生成される付加データを付加したデータのチェックサム値の期待値となる。よって、ＢＩＯＳ１７０を起動する時にＢＭＣ１８によって計算されるチェックサム値と、不揮発性メモリ１９に予め格納されたチェックサム値とが一致する場合、不揮発性メモリ１７に格納されたデータは破壊・改竄等されていないことになる。ここで、不揮発性メモリ１７、１９は、例えば、フラッシュメモリである。
【００３３】
続いて、図３を参照して、本発明の実施の形態にかかる情報処理装置１の起動処理について説明する。図３は、本発明の実施の形態にかかる情報処理装置１の起動処理を示すフローチャートである。なお、以下のＢＩＯＳ１７０によって実行される処理は、厳密には、ＣＰＵ１１によって実行されることになる。
【００３４】
ＢＭＣ１８は、電源オン指示を受ける（Ｓ１）と、情報処理装置１の起動を開始する。電源オン指示は、例えば、ユーザによる情報処理装置１の電源投入スイッチの押下に応じて情報処理装置１からＢＭＣ１８に出力される信号である。ＢＭＣ１８は、電源オン指示に応じて、ＢＩＯＳ１７０の起動を開始する前に、付加データを生成する（Ｓ２）。さらに、ＢＭＣ１８は、不揮発性メモリ１７のデータを読み出し、読み出した不揮発性メモリ１７のデータに、生成した付加データを加えたデータについて、チェックサム値を計算する（Ｓ３）。
【００３５】
ＢＭＣ１８は、計算したチェックサム値と、不揮発性メモリ１９に格納されたチェックサム値１９０とを比較する（Ｓ４）。
【００３６】
比較したチェックサム値が一致している場合、ＢＭＣ１８は、情報処理装置１を起動する（Ｓ５）。つまり、ＢＭＣ１８は、ＣＰＵ１１にＢＩＯＳ１７０の起動指示を出力する。ＣＰＵ１１は、ＢＭＣ１８からのＢＩＯＳ１７０の起動指示に応じて、不揮発性メモリ１７からＢＩＯＳ１７０を読み出して実行する。ここで、ＢＭＣ１８は、ＢＩＯＳ１７０の起動指示として割り込み信号をＣＰＵ１１に出力して、ＣＰＵ１１がその割り込み信号に応じてＢＩＯＳ１７０を起動するようにしてもよい。また、ＢＭＣ１８は、ＢＩＯＳ１７０の起動指示としてその旨を示す情報を、サウスブリッジ１５、ノースブリッジ１３を介してＣＰＵ１１に出力して、ＣＰＵ１１がその情報に応じてＢＩＯＳ１７０を起動するようにしてもよい。実行が開始されたＢＩＯＳ１７０は、ＰＯＳＴを実行する。そして、ＣＰＵ１１は、ＰＯＳＴの実行終了後、ＯＳを起動する。これによって、情報処理装置１の起動が完了する。
【００３７】
他方、比較したチェックサム値が一致しない場合、ＢＭＣ１８は、情報処理装置１の起動を抑止する（Ｓ６）。つまり、この場合は、ＢＩＯＳ１７０又は設定情報１７１がコンピュータウイルス等によって破壊されていると判定する。よって、この場合、ＢＭＣ１８は、ＣＰＵ１１にＢＩＯＳ１７０の起動指示を出力しない。これによって、ＢＩＯＳ１７０及び情報処理装置１の起動が抑止される。
【００３８】
続いて、図４を参照して、本発明の実施の形態にかかる情報処理装置１の設定情報更新処理について説明する。図４は、本発明の実施の形態にかかる情報処理装置１の設定情報更新処理を示すフローチャートである。なお、以下のＢＩＯＳ１７０によって実行される処理は、厳密には、ＣＰＵ１１によって実行されることになる。
【００３９】
ＢＩＯＳ１７０の起動後、ＢＩＯＳ１７０は、通常動作で設定情報１７１を書き換える場合（Ｓ１１）、ＢＭＣ１８から付加データを取得する（Ｓ１２）。ここでの通常動作における設定情報１７１の書き換えとは、例えば、ユーザがＢＩＯＳ１７０の起動後にＢＩＯＳの設定画面上で各種ＢＩＯＳの設定情報の設定をする場合や、ＢＩＯＳ１７０がＰＯＳＴにおいて情報処理装置１の構成変更を自動検出して装置構成の情報を設定する場合が含まれる。
【００４０】
また、ＢＭＣ１８からの付加データの取得には、ＩＰＭＩコマンドを使用する。具体的には、ＩＰＭＩのＯＥＭ（Original Equipment Manufacturer）拡張コマンドを使用する。つまり、ＢＩＯＳ１７０からＢＭＣ１８に付加データを要求するコマンドを、ＩＰＭＩのＯＥＭ拡張コマンドで実装すればよい。そして、ＢＩＯＳ１７０がこの付加データを要求するコマンドをＢＭＣ１８に出力したときに、ＢＭＣ１８がそのコマンドに応じて付加データを生成して、生成した付加データをＣＰＵ１１に出力するようにする。
【００４１】
ＣＰＵ１１は、書き換え後の新たな不揮発性メモリ１７のデータにＢＭＣ１８から取得した付加データを付加したデータについて、チェックサム値を計算する（Ｓ１３）。例えば、設定情報１７１を書き換えた後に、不揮発性メモリ１７のデータを読み出して、チェックサム値の計算を実行する。なお、ステップＳ１２における付加データの取得は、チェックサム値を計算するまでであれば、設定情報１７１の書き換え前及び書き換え後のいずれのタイミングで実行してもよい。ＣＰＵ１１は、計算したチェックサム値で、不揮発性メモリ１９のチェックサム値１９０を更新する（Ｓ１４）。
【００４２】
以上に説明したように、本実施の形態では、単純にＢＩＯＳ１７０が格納された不揮発性メモリ７のデータのみのチェックサム値ではなく、そのデータに付加データを加えてチェックサム値を計算して、そのチェックサム値によってＢＩＯＳ１７０の破壊を検出するようにしている。これによれば、第３者は、チェックサム値を得るためには付加データの存在を知った上で、さらにその付加データを取得する必要がある。そのため、第３者は、チェックサム値を容易に知ることはできない。したがって、例えば、コンピュータウイルスによってＢＩＯＳ等のプログラムを容易に改竄されないようにすることができる。つまり、セキュリティを向上しつつ、正常でないＢＩＯＳによる起動を抑止することができる。
【００４３】
また、本実施の形態では、ＢＭＣ１８が付加データを生成して、その付加データを付加したデータについてチェックサム値を計算するようにしている。これによれば、第３者は、単に、いずれかの記憶装置を参照するだけで付加データを取得できるといったように、付加データを容易に取得することはできない。そのため、よりセキュリティを向上することができる。
【００４４】
また、特許文献１では、ＢＩＯＳが格納されるフラッシュＲＯＭ部の全データの合計値によって、ＢＩＯＳ等が破壊、感染されていないかを判定するようにしている。また、ジャンパー部に、フラッシュＲＯＭ部の内容が正常な時のデータの合計値を固定的に設定するようにしている。しかしながら、一般的に、ＢＩＯＳの設定情報は、ＢＩＯＳが格納される記憶装置（フラッシュＲＯＭ部）に格納されている。そのため、ＢＩＯＳが設定情報を更新したときに、計算した合計値が、ジャンパー部に設定されている合計値と異なってしまい、ＢＩＯＳ等が正常であるのに情報処理装置が起動できなくなってしまうという問題があった。それに対して、本実施の形態では、不揮発性メモリ１７に格納された設定情報１７１を書き換えるときに、それに応じて、期待値となるチェックサム値１９０も更新するようにしている。そのため、ＢＩＯＳの設定情報を書き換えたときであっても、ＢＩＯＳに異常がある場合のみに正確に情報処理装置の起動を抑止することが可能となる。
【００４５】
なお、本実施の形態では、ＢＩＯＳ１７０の設定情報１７１が書き換えられた場合に、チェックサム値１９０を更新するようにしているが、ＢＩＯＳ１７０が書き換えられた場合にも、チェックサム値１９０を更新する。ＢＩＯＳ１７０の書き換えは、例えば、ユーザがＢＩＯＳ１７０の起動後にＢＩＯＳ１７０の設定画面上でＢＩＯＳ１７０を書き換える場合や、ＯＳの起動後にＯＳ上からＢＩＯＳ１７０を書き換えるアプリケーションプログラムを実行することによってＢＩＯＳ１７０を書き換える場合等が含まれる。この場合におけるチェックサム値１９０の更新も、設定情報１７１が書き換えられた場合と同様に実施すればよい。例えば、ＢＩＯＳ１７０を書き換えた後に、不揮発性メモリ１７のデータを読み出して、チェックサム値の計算を実行するようにすればよい。なお、付加データも同様にして取得するようにすればよい。
【００４６】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【００４７】
本実施の形態では、チェックサム値１９０がＬＰＣバス１６に接続された不揮発性メモリ１９に格納されている場合について例示したが、チェックサム値１９０の格納場所は、ＣＰＵ１１及びＢＭＣ１８が更新及び参照することができる場所であれば、どのような場所であってもよい。例えば、チェックサム値１９０は、メモリ１４に格納するようにしてもよく、ＢＭＣ１８内に揮発性メモリ又は不揮発性メモリを設けるようにして、その中に格納するようにしてもよい。また、チェックサム値１９０を格納する記憶装置は、揮発性メモリ及び不揮発性メモリに限られず、レジスタであってもよい。
【００４８】
本実施の形態では、ＢＩＯＳ１７０のデータ及び設定情報１７１を含む不揮発性メモリ１７全体のデータについて、チェックサム値を計算して破壊をチェックするようにしているが、破壊をチェックするデータは、不揮発性メモリ１７に格納されたデータの一部であってもよい。例えば、不揮発性メモリ１７に格納されるデータのうち、ＢＩＯＳ１７のデータのみについて、チェックサム値を計算して破壊をチェックするようにしてもよい。つまり、ＢＩＯＳ１７のデータに付加データを付加したデータについてチェックサム値を計算して、ＢＩＯＳ１７の破壊をチェックするようにしてもよい。なお、この場合は、正常なＢＩＯＳ１７のデータに付加データを付加したデータについてのチェックサム値を不揮発性メモリ１９に格納するようにする。そのようにしても、セキュリティを向上しつつ、ＢＩＯＳ１７０の破壊を検出することが可能であるからである。
【００４９】
本実施の形態では、チェックサム値を計算して破壊をチェックするようにしているが、他の誤り検出符号を使用するようにしてもよい。例えば、ＣＲＣ（Cyclic Redundancy Check）、パリティ、チェックサム、ハッシュ値等を使用するようにしてもよい。
【００５０】
また、本発明の実施の形態では、プログラムとして、ＢＩＯＳ１７０及びＢＭＣ１８のファームウェアを有している。これらのプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００５１】
また、コンピュータが上述の実施の形態の機能を実現するプログラムを実行することにより、上述の実施の形態の機能が実現される場合だけでなく、このプログラムが、コンピュータ上で稼動しているＯＳ（Operating System）もしくはアプリケーションソフトウェアと共同して、上述の実施の形態の機能を実現する場合も、本発明の実施の形態に含まれる。さらに、このプログラムの処理の全てもしくは一部がコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットによって行われて、上述の実施の形態の機能が実現される場合も、本発明の実施の形態に含まれる。
【符号の説明】
【００５２】
１、９    情報処理装置
１０    マザーボード
１１    ＣＰＵ
１２    プロセッサバス
１３    ノースブリッジ
１４    メモリ
１５    サウスブリッジ
１６    ＬＰＣバス
１７、１９    不揮発性メモリ
１８    ＢＭＣ
９１    ＢＩＯＳ記憶部
９２    符号記憶部
９３    管理部
１７０    ＢＩＯＳ
１７１    設定情報
１９０    チェックサム値
９１０    ＢＩＯＳ
９２０    誤り検出符号
【図１】
0005561791.tif 000002
【図２】
0005561791.tif 000003
【図３】
0005561791.tif 000004
【図４】
0005561791.tif 000005