(57)【特許請求の範囲】
【請求項１】
複数のシステムプログラムを予め記録したモジュール記録部と、システムプログラムの正当性を確認する機能を持つセキュリティチップと、システムプログラムの起動状態を検査する検証部とを備え、
前記検証部が、起動されたシステムプログラムの起動状態を確認する起動状態確認部と、
前記起動状態の確認の結果、取得されたシステムプログラムの起動状態情報を記録した起動状態情報記録部と、起動されるべきシステムプログラムの検証情報の初期値を予め記録した初期値記録部と、
システムプログラムが起動されるごとに取得され起動状態情報記録部に記録されたシステムプログラムの起動状態情報と、前記初期値記録部に記録された検証情報の初期値とを比較してシステムプログラムの起動状態の検査を行う比較部とを含み、
前記セキュリティチップによるシステムプログラムの正当性が確認できなかった場合に、前記検証部が、システムプログラムの起動状態の検査を行い、検査が成功した場合、現在のシステムプログラムの起動状態を正当と判断することを特徴とする起動検証機能を有する情報処理装置。
【請求項２】
前記セキュリティチップが、前記システムプログラムの正当性を確認するための検証情報を予め記憶し、前記検証情報が、起動鍵ＫＥＹ１と、起動鍵を出力するためのパスワードＰＳ１と、システムプログラムの検証に用いられる特定の検証データとを含むことを特徴とする請求項１の起動検証機能を有する情報処理装置。
【請求項３】
前記セキュリティチップは、システムプログラムが起動されたときにそのシステムプログラムから与えられる検証データＡを受信し、検証データＡと、予め記録されていた検証データとを比較することにより、そのシステムプログラムの正当性を確認することを特徴とする請求項２の起動検証機能を有する情報処理装置。
【請求項４】
前記検証部は、初期値記録部に、前記起動鍵ＫＥＹ１を出力するためのパスワードＰＳ１と同じパスワードＰＳ２を予め記録し、
前記比較部による検査の結果、前記取得された起動状態情報と、予め初期値記録部に記録された検証情報の初期値とが一致した場合、前記検証部は、予め記録された前記パスワードＰＳ２をセキュリティチップに送信し、セキュリティチップは、パスワードＰＳ２を受信した場合に予め記録された起動鍵ＫＥＹ１を、検証部へ出力することを特徴とする請求項２の起動検証機能を有する情報処理装置。
【請求項５】
前記検証部は、ＢＩＯＳが記録された不揮発性メモリの中に予め記録されていることを特徴とする請求項１乃至４のいずれかに記載した起動検証機能を有する情報処理装置。
【請求項６】
前記検証部は、前記セキュリティチップが搭載された基板上に備えられることを特徴とする請求項１乃至４のいずれかに記載した起動検証機能を有する情報処理装置。
【請求項７】
複数のシステムプログラムを予め記録したモジュール記録部と、システムプログラムの正当性を確認する機能を持つセキュリティチップと、システムプログラムの起動状態を検査する検証部とを備え、
前記セキュリティチップが、システムプログラムから与えられる検証データを用いた正当性の確認処理を実行し、そのシステムプログラムの正当性を確認できなかった場合、前記検証部が、起動されたシステムプログラムからその起動情報を取得し、予め記録されていた正当なシステムプログラムの起動情報の初期値と、前記取得された起動情報とが一致する場合には、現在のシステムプログラムの起動状態は正当と判断し、その後のシステムプログラムの起動処理を継続することを特徴とする起動検証機能を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理装置に関し、特に、パソコン等の電源投入時に起動されるシステムプログラム群の正当性を確認し、不正プログラム等の検出の誤判断を防止する起動検証機能を有する情報処理装置に関する。
【背景技術】
【０００２】
今日、パソコン等のコンピュータにおいて、コンピュータウィルスやスパイウェア等の悪意のあるソフトウェアによってプログラムおよびデータの破壊や、重要データの不正流出が問題となっている。
コンピュータの起動時に、そこで、これらの悪意のあるソフトウェアに対抗して安全なコンピュータシステムを実現するために、コンピュータの起動時に、不正ソフトウェアの存在やファイルの改ざん等の検出を行うコンピュータシステムが提案されている。
【０００３】
たとえば、デジタル署名という暗号化技術を用いてプログラムの改ざんを検出する手法が提案されている。
また、ブートプログラムの起動時に、補助記憶装置に格納された特定の保存情報と被検査ファイルとを、ＯＳを介さずに読み込んで、ブートプログラム内に保存された情報を用いてファイルの改ざんの有無を検知する改ざん検知機能付きコンピュータシステムが提案されている（特許文献１参照）。
さらに、制御プロセッサ内にセキュアな状態で、起動システムモジュールの照合用ハッシュ値を含むハッシュ値テーブルを予め保存し、起動されるシステムモジュールプログラムをチェックすることにより求められたハッシュ値と照合用ハッシュ値とを比較することにより、セキュアな状態でソフトウェアの認証処理を正しく実行させる制御プロセッサが提案されている（特許文献２参照）。
【０００４】
また、コンピュータの起動時に、不正ソフトウェアの存在や正当権限の有無を認証するために、ＴＰＭチップ（Trusted Platform Moduleチップ）と呼ばれるセキュリティチップを組み込んだコンピュータシステムも提案されている。
このコンピュータシステムは、ＴＣＧ（Trusted Computing Group）によって定められた仕様に準拠したパソコン（ＴＣＧ対応パソコン）である。また、ＴＰＭチップとは、実際に順次起動されるシステムプログラム群によって与えられた情報（ハッシュ値）をチェックすることにより、正当なハードウェアやシステムプログラムのみが起動され、不正なシステムプログラムの追加や改ざんが行われていないかを検証する機能を持つハードウェアである。
【０００５】
図１３に、従来の情報処理装置の起動時の検証処理の説明図を示す。ここでは、装置の主要部のみを示している。
一般に、パソコン等のコンピュータでは、電源投入された直後、特定のシステムプログラム群が一定の順序で起動される。
まず、ＣＲＴＭ（Core Root Trust Measument）と呼ばれるプログラムが起動され、次にＢＩＯＳ（Basic Input Output System）プログラムが起動されて各種ハードウェア，オプションＲＯＭおよびＩＰＬ（Initial Program Loader）などのチェックが行われた後、ＯＳ（オペレーティングシステム）プログラムが起動される。
ＴＰＭチップの中には、システムプログラム群の正当性をチェックするための認証データ（認証ハッシュ値ＨＳ１）と、ＯＳの起動に用いられる起動鍵ＫＥＹ１とが、予め保存されている。
【０００６】
ＴＣＧ対応パソコンでは、このようなシステムプログラム群が起動されるごとに、所定の測定演算を行い、その演算結果（ハッシュ値）をＴＰＭチップに与える。
たとえば、ＣＲＴＭプログラムが起動されると、ＣＲＴＭプログラムは、自分自身の測定演算を行い、その演算結果（ハッシュ値）であるデータＡをＴＰＭチップに与える。ＴＰＭチップは、与えられた演算結果（データＡ）を一時記憶する。
次に、ＢＩＯＳプログラムが起動されると、ＣＲＴＭプログラムがＢＩＯＳプログラムに対して測定演算を実行し、その演算結果（データＢ）をＴＰＭチップに与える。ＴＰＭチップは、与えられた演算結果とＣＲＴＭのハッシュ値（以前保存していたハッシュ値）を使用して、新しいハッシュ値を生成し、それを上書き記憶する。この後、ＢＩＯＳプログラム自体が実行され、ハードウェアのチェック等が行われ、ＯＳが起動される。
【０００７】
ＯＳが起動されると、ＯＳプログラムに対する測定演算が実行され、その演算結果（データＣ）がＴＰＭチップに与えられる。ＴＰＭチップは、与えられた演算結果（ハッシュ値：データＣ）を上記と同様に上書き記憶する。
この後、ＴＰＭチップは、この演算結果であるハッシュ値（データＣ）と、予め保存されている認証ハッシュ値ＨＳ１とを比較する。この比較処理により、両者が一致しなければ、異常起動と判断し、一致すれば、正常起動と判断する。たとえば、想定外の不正プログラムが起動された場合、ハッシュ値が不一致となり、異常起動と判断される。
正常起動と判断された場合、ＴＰＭチップは、予め保存されていた起動鍵ＫＥＹ１を、ＯＳプログラムに与える。ＯＳプログラムは、起動鍵ＫＥＹ１を受けとると、この鍵を用いてＨＤＤの復号処理をし、ＯＳ上で動作するアプリケーションプログラムを起動する。この後、ユーザがパソコンを使って作業が可能な状態となる。
【０００８】
一方、上記比較処理で、ハッシュ値が一致しなかった場合、ＴＰＭチップは起動鍵をＯＳプログラムに出力しない。この場合、ＯＳプログラムは起動鍵を受け取ることができないので、その後の起動処理ができず、ユーザはパソコンを使用できない状態のままとなる。
すなわち、コンピュータウィルスなどの想定外の不正プログラムが存在する場合には、起動鍵がＴＰＭチップから出力されないことにより、不正プログラムの存在を検出することが可能となる。
【特許文献１】特開２００４−２８０２８４号公報
【特許文献２】特開平１０−３３３９０２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、上記特許文献や従来のＴＰＭチップを用いた起動制御では、不正プログラムの検出はできるが、不正プログラムはなく不正でない起動処理が実行された場合でも、上記のような異常起動と判断され、パソコンを起動できない場合があった。
たとえば、ユーザによって、ＢＩＯＳの設定が変更された場合、ＵＳＢ等のインタフェースを介して新たに外部機器が接続された場合、メモリ（ＳＲＡＭ）が増設された場合、システムプログラムの起動順序が変更された場合などでは、上記測定演算によって出力されるハッシュ値が変化する。
【００１０】
このような場合、ＴＰＭチップに予め保存されていた認証ハッシュ値と異なるハッシュ値がＴＰＭチップへ出力されることになり、ＴＰＭチップの比較処理によって、ハッシュ値は不一致となり、異常起動と判断される。
すなわち、不正プログラムが存在しないにもかかわらず、不正プログラム等があるために正常でない起動がされたと誤判断され、起動鍵がＯＳに与えられない状態となり、ユーザはパソコンを使えない状態となってしまっていた。
【００１１】
このようにパソコンが使えない状態となった場合、起動時の認証が失敗したことをユーザに知らせることはできても、使えない状態となった原因が本当に不正なプログラムが存在することに起因するのかそうでないのかを、ユーザが特定するのは困難であった。
また、ユーザは、その原因を追及するために、電源ＯＦＦによる再起動、ハードウェアの修理、以前の正常動作していた時のハードウェアへの復帰処理、あるいは起動鍵をアンロックするためのパスワード入力処理などの操作を試してみる必要があった。
すなわち、従来のＴＰＭチップを供えたＴＣＧ対応パソコンでは、不正プログラムの存在の検出ができセキュリティを高めることはできたが、不正プログラムの存在しない場合でも、パソコンの正常な起動状態への復帰処理には、必ず、ユーザの介入が必要であり、時間がかかるためユーザの利便性が損なわれていた。
【００１２】
この発明は、以上のような事情を考慮してなされたものであり、不正プログラム等の存在の検出に加えて、想定される正常な起動処理に対しては、異常とは判断せずにシステムプログラムを起動させ、ユーザの介在なしに自動復旧させてユーザの利便性を向上させることのできる起動検証機能を有する情報処理装置を提供することを課題とする。
【課題を解決するための手段】
【００１３】
この発明は、複数のシステムプログラムを予め記録したモジュール記録部と、システムプログラムの正当性を確認する機能を持つセキュリティチップと、システムプログラムの起動状態を検査する検証部とを備え、前記検証部が、起動されたシステムプログラムの起動状態を確認する起動状態確認部と、前記起動状態の確認の結果、取得されたシステムプログラムの起動状態情報を記録した起動状態情報記録部と、起動されるべきシステムプログラムの検証情報の初期値を予め記録した初期値記録部と、システムプログラムが起動されるごとに取得され起動状態情報記録部に記録されたシステムプログラムの起動状態情報と、前記初期値記録部に記録された検証情報の初期値とを比較してシステムプログラムの起動状態の検査を行う比較部とを含み、前記セキュリティチップによるシステムプログラムの正当性が確認できなかった場合に、前記検証部が、システムプログラムの起動状態の検査を行い、検査が成功した場合、現在のシステムプログラムの起動状態を正当と判断することを特徴とする起動検証機能を有する情報処理装置を提供するものである。
【００１４】
これによれば、セキュリティチップとは別に、システムプログラムの起動状態の正当性を検査する検証部を設けているので、セキュリティチップによる正当性の確認ができなくてもシステムプログラムの起動状態の検査を行い、システムプログラムの起動を許可してよい場合には、システムプログラムの起動処理を継続することができる。すなわち、セキュリティチップによる正当性が確認できなかった場合でも、システムプログラムの正当な起動が行われている場合には、利用者自ら復旧処理をしなくても復旧ができ、利用者の起動時における復旧処理の負担を軽減できる。
【００１５】
また、前記セキュリティチップが、前記システムプログラムの正当性を確認するための検証情報を予め記憶し、前記検証情報が、起動鍵ＫＥＹ１と、起動鍵を出力するためのパスワードＰＳ１と、システムプログラムの検証に用いられる特定の検証データとを含むことを特徴とする。
【００１６】
さらに、セキュリティチップは、システムプログラムが起動されたときにそのシステムプログラムから与えられる検証データＡを受信し、検証データＡと、予め記録されていた検証データとを比較することにより、そのシステムプログラムの正当性を確認することを特徴とする。
【００１７】
また、この発明において、検証部は、初期値記録部に、前記起動鍵ＫＥＹ１を出力するためのパスワードＰＳ１と同じパスワードＰＳ２を予め記録し、前記比較部による検査の結果、前記取得された起動状態情報と、予め初期値記録部に記録された検証情報の初期値とが一致した場合、前記検証部は、予め記録された前記パスワードＰＳ２をセキュリティチップに送信し、セキュリティチップは、パスワードＰＳ２を受信した場合に予め記録された起動鍵ＫＥＹ１を、検証部へ出力することを特徴とする。
これによれば、セキュリティチップによる検証が失敗しても、検証部による検査が成功した場合、システムプログラムの起動時の検証が成功したとみなされ、利用者の復旧処理を必要としないで装置の復旧ができ、利用者の負担を軽減できる。
【００１８】
この発明において、前記検証部は、ＢＩＯＳが記録された不揮発性メモリの中に予め記録してもよい。この場合、検証部はプログラムで実現され、装置に備えられたＣＰＵによってその機能が実行される。
また、検証部は、セキュリティチップが搭載された基板上に備えてもよい。
この検証部は、ハードウェアで実現され、基板は、容易に取りはずしできないように取り付けられることが好ましい。
【００１９】
また、この発明は、複数のシステムプログラムを予め記録したモジュール記録部と、システムプログラムの正当性を確認する機能を持つセキュリティチップと、システムプログラムの起動状態を検査する検証部とを備え、前記セキュリティチップが、システムプログラムから与えられる検証データを用いた正当性の確認処理を実行し、そのシステムプログラムの正当性を確認できなかった場合、前記検証部が、起動されたシステムプログラムからその起動情報を取得し、予め記録されていた正当なシステムプログラムの起動情報の初期値と、前記取得された起動情報とが一致する場合には、現在のシステムプログラムの起動状態は正当と判断し、その後のシステムプログラムの起動処理を継続することを特徴とする起動検証機能を有する情報処理装置を提供するものである。
【００２０】
この発明のモジュール記録部とは、システムプログラムそのものと、システムプログラムの起動に必要な設定値を予め記録したメモリであり、たとえば、ＢＩＯＳ  ＲＯＭがこれに相当する。
この発明でシステムプログラムとは、情報処理装置を起動させるのに利用されるモジュールプログラム群や、利用者のアプリケーションプログラムを動作させるのに不可欠なオペレーティングシステム（ＯＳ）などのプログラムを含む。たとえば、後述するＣＲＴＭ部，ＢＩＯＳ部，ＯＳ部などに含まれるプログラム群が、システムプログラムに相当する。
セキュリティチップとは、たとえばＴＰＭチップを意味し、ＣＰＵ，ＲＯＭ，ＲＡＭ，不揮発性メモリなどを備えたチップである。
また、セキュリティチップに記憶される検証データは、不揮発性メモリに記憶され、特定の制御要求により書き換えが可能である。システムプログラムの正当性を確認するために用いられる特定の検証データは、そのシステムプログラムから与えられ、たとえば、そのシステムプログラムそのものから算出したハッシュ値である。
【００２１】
システムプログラムの起動状態情報とは、後述する図４に示したような起動状態情報ＤＢ（５５）に記録された情報を意味し、情報処理装置が起動されるごとに生成される。たとえば、メモリの増設やインタフェースボードの増設などで装置のハードウェア構成の変更があれば、この起動状態情報は更新される。
初期値記録部は、後述する図３に示したような検証情報初期値テーブルＳ０に相当する。
【発明の効果】
【００２２】
この発明によれば、セキュリティチップによるシステムプログラムの正当性の確認に加えて、上記正当性の確認が失敗した場合でもシステムプログラムの起動状態の正当性の検証をするので、システムプログラムの起動を許可してもよい場合に、起動時の復旧処理を利用者の介在なしに行うことができ、起動時の復旧処理のための利用者の負担を軽減できる。
【発明を実施するための最良の形態】
【００２３】
以下、図に示す実施例に基づいて本発明を詳述する。なお、本発明はこれによって限定されるものではない。
＜この発明の情報処理装置の構成ブロック図＞
図１および図２に、この発明の情報処理装置の一実施例の構成ブロック図を示す。
この発明の情報処理装置は、たとえば、パソコン，ワークステーション，サーバ，携帯電話などのコンピュータである。
【００２４】
この発明では、このようなコンピュータに、ＴＰＭチップと、起動検証モジュール（検証部，検証エンジンＶＥとも呼ぶ）とを搭載することを特徴とする。起動検証モジュールは、ソフトウェアまたはハードウェアで実現される。図１は、起動検証モジュールを、主としてソフトウェアで実現させた構成であり、図２は主としてハードウェアで実現させた構成である。
【００２５】
図１において、この発明の情報処理装置は、主として、ＣＰＵ１，ＲＡＭ２，ハードディスクＨＤＤ３，ＴＰＭ４，ＢＩＯＳ ＲＯＭ５とから構成される。
ＣＰＵ１は、ＲＡＭやＲＯＭに格納されたプログラムに基づいてこの発明の各構成要素を有機的に動作させて、所定の機能を実現させる制御部である。ＣＰＵ１には、キャッシュレジスタ，ＲＡＭ，Ｉ／Ｏコントローラ，タイマー等の機能モジュールも含まれる。
ＲＡＭ２は、この装置の機能を実行するときのプログラムやデータを一時格納するためのメモリである。
ハードディスクＨＤＤ３は、オペレーティングシステムＯＳ，アプリケーションプログラム，文書等の各種ファイルを保存しておくための大容量記録装置である。
ＨＤＤ３には、たとえば、図１に示すように、ＯＳ自体を格納したＯＳ部３１，文書作成や画像処理等のアプリケーションプログラムを格納したアプリソフト部３２を備える。
【００２６】
ＴＰＭ４は、ＣＰＵ，ＲＯＭ，ＲＡＭ，不揮発性メモリ，タイマー等を含むハードウェアチップであり、起動検証に必要な情報を記録したものである。
起動検証に必要な情報とは、たとえば、図１に示すような起動鍵（ＫＥＹ１）４１，パスワード（ＰＳ１）４２，ハッシュ値（ＨＳ１）４３である。これらの情報は、いずれも出荷時あるいはユーザが購入後初めての起動時にＴＰＭ４内部の不揮発性メモリに格納される。
【００２７】
起動鍵（ＫＥＹ１）とは、ＯＳを起動するために必要な鍵を意味する。ＯＳ部３１には、オペレーティングシステムＯＳが格納されているが、たとえば、ＯＳが暗号化されて格納されている場合、暗号化されたＯＳを復号化して起動できる状態に戻すための復号鍵が、この起動鍵４１である。
すなわち、ＣＰＵ１の起動検証処理において、ＣＰＵ１がＴＰＭ４からこの起動鍵４１をもらうことにより、ＯＳが起動される。
【００２８】
パスワード（ＰＳ１）４２とは、ＴＰＭ４から、起動鍵（ＫＥＹ１）４１を強制的に出力させるための特定情報であり、リカバリーパスワードとも呼ぶ。
パスワード（ＰＳ１）４２は、出荷時または初回起動時にユーザから与えられるかあるいは自動的に生成され、ＴＰＭ４内部の不揮発性メモリとＢＩＯＳ ＲＯＭ５に予め格納される。
ハッシュ値（ＨＳ１）４３は、後述する起動検証処理のうち、ＴＰＭ４に与えられる検証データＡと比較される情報であり、ＴＰＭ４内部の不揮発性メモリに格納される。ハッシュ値４３は、出荷時に予め格納されるが、正常起動が行われた際にユーザからの指示入力によって、更新できる。
【００２９】
ＴＰＭ４は、前記したようにＴＣＧによって定められた仕様に基づいて作成されたチップであり、その入出力データや機能も、その規格に定められたものとする。
たとえば、ＴＰＭ４の外部モジュールプログラム（ＢＩＯＳ部，ＣＲＴＭ部あるいは検証部）から、起動鍵４１の出力を要求する入力がＴＰＭ４にあった場合、ＴＰＭ４は、その要求に含まれた検証データＡを確認し、この検証データＡと、予め格納されていたハッシュ値（ＨＳ１）４３とが一致する場合にのみ、起動鍵（ＫＥＹ１）４１をその要求元のモジュールプログラムに出力する。一致しない場合は、何も出力しないか、あるいは検証が失敗した旨を、要求元のモジュールプログラムに回答する。
【００３０】
図１において、ＢＩＯＳ ＲＯＭ５は、フラッシュメモリやＰＲＯＭなどの不揮発性メモリであり、パソコン等の電源投入時に最初に起動されるシステムプログラム群が格納されたメモリである。
システムプログラム群とは、たとえば、ＣＲＴＭ部，ハードウェア初期化部，Video BIOSなどのOption ROMなどからなる。
ＣＲＴＭ部とは、Reset後に最初に起動し、BIOSROMをメモリ上に展開したりをするプログラムである。
ＢＩＯＳ部とは、キーボード，マウス，ＨＤＤなどの外部接続機器に対する入出力を制御するシステムプログラムである。
【００３１】
また、この発明では、図１に示すように、ＢＩＯＳ ＲＯＭ５に、検証部（検証エンジン：ＶＥ）５３を備えることを特徴とする。
検証部（ＶＥ）５３とは、システムプログラム群の起動検証を行う部分であり、主として、起動状態確認部５６と、比較部５７と、検証情報初期値テーブル（Ｓ０）５４および起動状態情報ＤＢ５５を記録したメモリとから構成される。
【００３２】
また、検証部（ＶＥ）５３は、論理的には、ＣＲＴＭ部５１，ＢＩＯＳ部５２，ＯＳ部３１などのシステムプログラム群と、ＴＰＭ４との間に位置し、システムプログラム群とＴＰＭ４とのデータ送受信のコントロールと、ＴＰＭによる検証が失敗したときのシステムプログラム群の起動時の検査処理を実行する部分である。
検証情報初期値テーブル（Ｓ０）５４とは、出荷時、あるいはパソコン等の初回の起動時に予め設定される情報であり、上記したパスワード（ＰＳ１）４２も含まれる。
検証情報初期値テーブル（Ｓ０）５４には、起動されるべき正当なシステムプログラム群を特定するための情報が記録されている。
【００３３】
図３に、検証情報初期値テーブルＳ０の一実施例の説明図を示す。
たとえば、図３に示すように、起動が許可された正当なシステムプログラムのモジュール名，そのプログラムのハッシュ値ＨＳ，ＰＣＲ番号，設定値、公開鍵ＫＥＹ２，パスワードＰＳ１などである。
ここで、プログラムのハッシュ値ＨＳとは、プログラム単体のハッシュ値であり、BIOSベンダによって事前に計算された数値である。
また、ＰＣＲ番号とは、そのプログラムがTPMチップ内のどのPCR番号に保存されたかを意味する。たとえば、ＰＣＲ番号＝０の場合、CRTMなどのReset後に実行された初期化プログラムが格納される番号を意味する。またＰＣＲ番号＝１は、ハードウェアの構成状態を格納する番号を意味し、ＰＣＲ＝２は、Option ROMの状態を格納する場所を意味する。
公開鍵ＫＥＹ２とは、署名されたプログラムの検証に用いる鍵を意味する。
【００３４】
起動状態情報ＤＢ５５とは、パソコン等の電源を投入し起動させた後、システムプログラムの起動状態を確認したときに生成されるデータであり、結果ＤＢとも呼ぶ。たとえば、ＢＩＯＳ部５２が起動されたときの起動状態の情報が、この結果ＤＢに保存される。
【００３５】
図４に、この発明の起動状態情報ＤＢ（結果ＤＢ）５５の一実施例の説明図を示す。
図４において、起動状態情報ＤＢ５５は、プログラムモジュール名，起動の合否結果，ＰＣＲ番号，設定値の合否結果などの情報からなる。
たとえば、「初期化ルーチン」という名のモジュールプログラムは、ＰＣＲ＝０で正常に起動されたことを示している。
【００３６】
起動状態確認部５６は、各システムプログラムを起動する過程で、そのプログラムの状態を確認し、起動状態情報ＤＢ５５を生成する部分である。
比較部５７は、予め格納されている検証情報初期値テーブル（Ｓ０）５４と、実際に起動されたときの起動状態情報ＤＢ５５とを比較する部分である。
この比較処理により、両者の情報が一致した場合は、システムプログラム群の検査が成功したことを意味する。すなわち不正なプログラムは存在せず、正統に起動処理が行われたことを意味する。
この検査が成功した場合、ＴＰＭでの検証処理に失敗したとしても、システムプログラム群の起動自体は正当で許可されるべきものと考えて、その後の起動処理（たとえば、ＯＳの起動）を継続させる。
一方、両者が一致しなかった場合は、現在の起動処理が異常であり、不正プログラム等が存在する可能性があり起動を許可できない状態であることを意味する。この場合、その後の起動処理は、原則中止されることになる。
【００３７】
図２は、検証部（ＶＥ）５３とＴＰＭ４とを含む起動認証部６を備えた情報処理装置の構成ブロック図を示したものである。
図２の場合、検証部５３とＴＰＭ４とを１つのハードウェアモジュールとして構成した点が、図１の構成と異なる。したがって、図１のＢＩＯＳ ＲＯＭ５から、検証部５３が除かれている。検証部５３とＴＰＭ４の内部構成および機能は、図１と同じである。
【００３８】
＜この発明の検証処理の概要＞
図５，図６および図７に、この発明の検証処理の一実施例の説明図を示す。
図５は、ＴＰＭ４における検証が成功した場合の処理を示している。
図６は、ＴＰＭ４における検証が失敗したが、検証部ＶＥ５３での検査処理が成功した場合の処理を示している。
図７は、ＴＰＭ４における検証が失敗し、さらに検証部ＶＥ５３での検査処理も失敗した場合の処理を示している。
いずれの図も、３つの機能構成要素間のデータの流れを示している。
ただし、ＢＩＯＳ部とあるのは、起動時のシステムプログラム群のいずれでもよく、その他に、ＣＲＴＭ部でもＯＳ部でもよい。
【００３９】
図５において、まず、ＢＩＯＳ部５２が起動されると、ＢＩＯＳ部の本来の機能を実行する前に、ＢＩＯＳ部５２から「検証要求」が、検証部ＶＥへ送られる。このとき、検証要求とともに、ＢＩＯＳ部固有の検証データＡが検証部ＶＥへ送られる。
この検証データＡは、現在動作しているプログラム部によって生成される情報であり、たとえば、CRTM部によって計算されたハッシュ値である。
この検証要求を受理した検証部ＶＥは、「起動鍵要求」をＴＰＭ４へ送る。このとき、検証データＡも同時にＴＰＭ４へ送られる。
「起動鍵要求」を受理したＴＰＭ４は、受理した検証データＡと予めＴＰＭ４に保存されていたハッシュ値ＨＳ１とを比較し、両者が一致するか否か確認する。
【００４０】
両者が一致した場合、ＴＰＭ４は、ＴＰＭ４における検証が成功したことを示す回答（検証成功回答）を、検証部ＶＥへ送る。このとき、ＴＰＭ４は、予め保存されていた起動鍵ＫＥＹ１も、検証部ＶＥへ送る。
検証部ＶＥは、この回答により検証が成功したことを確認すると、受理した起動鍵ＫＥＹ１を、検証要求元であるＢＩＯＳ部５２へ送る。
この後、ＢＩＯＳ部は本来のＢＩＯＳ部の機能を実行し、さらに、ＯＳ等の起動処理を実行する。
【００４１】
次に、図６において、ＴＰＭ４での検証処理が失敗した場合について説明する。
ＴＰＭ４の検証処理が失敗した場合には、不正プログラムが起動された場合の他に、システムプログラムの起動順序が変更された場合、新たな外部周辺機器が接続された場合、新たなＲＡＭが増設された場合などが含まれる。
不正プログラムが起動された場合の他はすべて正常な起動と考えられるものであるので、その後の起動処理を中断せずに、ユーザがパソコンを利用できるように復旧させるべきものである。
図６において、ＴＰＭ４は、受理した検証データＡがハッシュ値ＨＳ１と一致しなかった場合、検証が失敗したことを、検証部ＶＥへ送る。
【００４２】
検証が失敗したことを確認した検証部ＶＥは、起動されたシステムプログラム群の正当性をチェックする起動検査処理を実行する。この検査処理では、起動状態情報ＤＢと、検証情報初期値テーブルＳ０との比較が行われる。
この比較の結果、両者が一致すれば検査が成功したと判断し、検証部ＶＥは、起動鍵のアンロック要求を、ＴＰＭ４へ送る。このアンロック要求の送信時は、検証部ＶＥに予め保存されていたパスワードＰＳ１も、ＴＰＭ４へ送る。
アンロック要求を受理したＴＰＭ４は、パスワードＰＳ１が正当なものであるか否かを自己に予め保存されていたパスワードと比較することにより確認する。
両パスワードが一致することが確認されれば、ＴＰＭ４は、アンロック応答として、予め保存されていた起動鍵ＫＥＹ１を、検証部ＶＥへ送る。
【００４３】
検証部ＶＥは、起動鍵ＫＥＹ１を受信すると、検証要求元であるＢＩＯＳ部へ、起動鍵ＫＥＹ１を送る。
起動鍵ＫＥＹ１を受信したＢＩＯＳ部は、ＢＩＯＳ機能を実行し、その後ＯＳ等を起動させる。この場合、ＴＰＭによる検証は失敗したが、この失敗は不正プログラムの存在によるものではなく、起動を許可してもよい正常な範囲内の原因で生じたものと判断し、その後の起動処理が実行される。
すなわち、従来のＴＰＭのみによる検証をしたものでは、不正プログラムの存在でない原因で失敗したにもかかわらず、その後の起動ができず、ユーザの手動で復旧処理を行わなければならなかったが、この発明では、ユーザによる積極的な復旧処理をしなくても、自動的に復旧処理（正常な起動処理）ができる。
【００４４】
次に、図７において、ＴＰＭでの検証も失敗し、検証部ＶＥの検査処理でも失敗した場合について説明する。
図７において、検証部ＶＥは、ＴＰＭでの検証失敗を確認した後、図６に示したのと同様に検査処理を行う。しかし、この検査処理で起動状態情報ＤＢと検証情報初期値テーブルＳ０とが一致しなかったため、検査が失敗したとする。
このとき、検証部ＶＥは、検証要求元のＢＩＯＳ部に、検証が失敗したことを通知する。
検証が失敗したことを確認したＢＩＯＳ部では、検証が失敗したことをユーザに知らせる報知処理を実行させ、検証が失敗したこととその原因をユーザに知らせる。この報知を受けて、ユーザは、手動で復旧処理を試みることになる。
【００４５】
この場合は、ＴＰＭによる検証も、検査部ＶＥによる検査も失敗したので、その原因として不正プログラムの存在が考えられる。
したがって、検証の失敗原因として、不正プログラムの存在の可能性がある旨を、報知してもよい。
【００４６】
＜検証情報の初期設定処理＞
この発明では、検証部ＶＥ５３で上記のような検証処理を行うために、この情報処理装置の出荷時、あるいは、ユーザが購入後初めて電源を入れた場合に、起動時のシステムプログラム群を検証するために必要な情報を、予め初期設定する必要がある。
ここで、初期設定されるべき情報としては、ＴＰＭ４の中の起動鍵ＫＥＹ１（４１），パスワードＰＳ１（４２），ハッシュ値ＨＳ１（４３），検証部５３の中の検証情報初期値テーブルＳ０（５４），公開鍵KEY2，パスワードＰＳ１である。
この発明の情報処理装置の出荷時においては、メーカーが所定の設計仕様に基づいて、上記の初期設定されるべき情報すべてに対して、初期値を書き込む。
【００４７】
また、購入後の初回の電源投入時に、ユーザに対して初期値の入力あるいは初期値の生成（又は更新）を指示する入力を要求して、初期設定されるべき情報の初期設定を行う。
図８と図９に、この発明の検証部ＶＥにおいて実行される起動鍵ＫＥＹ１およびパスワードＰＳ１の初期設定処理の実施例のフローチャートを示す。
図８では、検証部がパスワードＰＳ１を生成する場合を示している。
【００４８】
図８において、まず、ユーザから、初期登録要求が入力されたか否かチェックする（ステップＳ５１）。ユーザは、初期登録要求の際に、起動鍵ＫＥＹ１も入力する。
次に、ステップＳ５２において、検証部ＶＥは、起動鍵ＫＥＹ１を受信する。
【００４９】
ステップＳ５３において、パスワードの自動生成が必要か否かチェックする。
たとえば、ユーザからのパスワード生成指示入力があれば、ステップＳ５４へ進み、パスワードＰＳ１を生成する。パスワードＰＳ１の生成処理は、たとえば、TPMチップの乱数生成処理ルーチンを実行することにより実施する。
次にステップＳ５５において、ＴＰＭ４に、入力された起動鍵ＫＥＹ１と、生成されたパスワードＰＳ１を送信する。
一方、パスワードの生成が必要のない場合は、ステップＳ５８へ進み、ＴＰＭ４へ、入力された起動鍵ＫＥＹ１を送信する。
【００５０】
次に、ステップＳ５６において、検証情報初期値テーブルＳ０に、パスワードＰＳ１を記録する。
このパスワードＰＳ１は、ＴＰＭ４に対して、アンロック要求するときに用いられる。
もし、登録する起動鍵ＫＥＹが複数あるときは、それぞれの起動鍵を識別する情報（鍵名）とともに、パスワードを記録する。
ステップＳ５７において、初期登録処理の結果を出力し、ユーザに知らせる。この時、TPMチップを用いて暗号化された起動鍵ＫＥＹ１も、鍵生成要求側に出力する。
【００５１】
図９の初期設定処理は、ユーザがパスワードＰＳ１と起動鍵ＫＥＹ１とを入力する場合を示している。
図９のステップＳ６１において、まず、ユーザからの初期登録要求の指示入力がないか否かチェックし、あれば、ステップＳ６２へ進む。
ステップＳ６２において、入力されたパスワードＰＳ１を受信する。
次に、ステップＳ６３において、入力された起動鍵ＫＥＹ１を受信する。
さらに、ステップＳ６４において、ＴＰＭ４へ、入力されたパスワードＰＳ１と起動鍵ＫＥＹ１を送信する。このとき、ＴＰＭ４では、パスワードＰＳ１と起動鍵ＫＥＹ１とを受信した後、その内部メモリに保存する。
【００５２】
ステップＳ６５において、起動鍵ＫＥＹ１によるアンロック動作が正常にできるか否か、確認する。
ここでは、ＴＰＭ４に、アンロック要求情報とともに、パスワードＰＳ１を送信する。そして、アンロック要求とパスワードＰＳ１と受信したＴＰＭ４は、そのパスワードＰＳ１がアンロックを許可できる正当なものか否かを確認した後、ステップＳ６４で受信した起動鍵ＫＥＹ１を、検証部ＶＥへ出力する。
検証部ＶＥは、起動鍵ＫＥＹ１がＴＰＭから出力されてきたことを確認することで、アンロック動作が正常にできることを確認する。
【００５３】
ステップＳ６６において、アンロック動作が成功したことを確認できた場合はステップＳ６７へ進む。一方、アンロック動作が失敗した場合は、初期設定処理を中断する。あるいは、ユーザに失敗したことを報知してもよい。
ステップＳ６７において、検証情報初期値テーブルＳ０にパスワードＰＳ１を記録する。
ステップＳ６８において、ステップＳ５７と同様に、初期登録処理の結果を出力する。
【００５４】
以上のように、図８または図９に示した処理により、システムプログラム群の起動を検証するために必要な情報が初期設定される。
また、ユーザがこの初期設定処理を適当なタイミングで起動させることにより、予め設定された初期設定情報を更新できる。
【００５５】
＜検証部の検証処理＞
ここでは、検証部ＶＥ５３で行われる検証処理の具体的な処理内容について説明する。
図１０に、検証部の検証処理の一実施例のフローチャートを示す。
このフローによって、上記した図５，図６および図７の処理のいずれかが行われる。
図１０において、ユーザがこの発明の情報処理装置の電源を投入し、検証部ＶＥが起動されたとする。
まず、ステップＳ１において、検証部ＶＥの起動状態確認部５６が、ＣＰＲＭ部やＢＩＯＳ部などのシステムプログラム群の起動状態を確認する。
この確認動作により、現在の起動時における各システムプログラムの起動状態を表した起動状態情報ＤＢを生成する。たとえば、図４に示したような起動状態情報ＤＢが生成される。
【００５６】
図１１に、電源投入時の起動状態確認処理（ステップＳ１）の一実施例のフローチャートを示す。
まず、ステップＳ７１において、検証部ＶＥの起動状態確認部５６が、起動されたシステムプログラム（たとえばＢＩＯＳ部）から、そのＢＩＯＳ部そのもののプログラムコードおよび起動時に用いられる設定値を受信する。ただし、設定値がない場合は、設定値は受信されない。
ステップＳ７２において、受信したプログラムは電子署名されたものか否かチェックする。
電子署名されたものであれば、ステップＳ７５へ進み、署名の検証処理を行う。署名の検証処理は、たとえば検証情報初期値テーブルＳ０に記録された公開鍵ＫＥＹ２を用いて、署名部分を復号し，プログラムのハッシュ値との比較処理を実行することにより行う。
【００５７】
ステップＳ７８において、この検証処理によって署名の正当性が確認できた場合は、そのプログラムの起動は正当なものであることを示す情報を、起動状態情報ＤＢ５５の合否結果に記録する（ステップＳ８０）。
たとえば、図４に示すように、初期化ルーチンという名のシステムプログラムの署名が正当であれば、起動状態情報ＤＢ５５の合否結果の欄に「○」を記録する。逆に、署名の正当性が確認できなかった場合、合否結果の欄に、正当でなかったことを示す「×」を記録する。
このステップＳ８０では、合否結果は、起動されたシステムプログラム名とそのＰＣＲの値とともに記録される。
【００５８】
ステップＳ７２において、受信されたシステムプログラムそのものに署名がなければ、ステップＳ７３に進み、そのシステムプログラムのプログラムコードが受信されたか否かチェックする。
プログラムコードが受信された場合、ステップＳ７６へ進み、ハッシュ値の比較処理を行う。ここで、ハッシュ値の比較処理とは、受信されたプログラムコードから計算されたハッシュ値と、検証情報初期値テーブルＳ０（５４）の中に予め保存されているそのシステムプログラムのハッシュ値ＨＳとの比較を行うものである。
この比較により、両ハッシュ値が一致すれば、正当なシステムプログラムが起動されたと判断される。一致しなければ、そのシステムプログラムは不当なものと判断される。
【００５９】
すなわち、ステップＳ７９において、プログラムコードの正当性が確認できた場合、そのシステムプログラムの起動は正当なものであることを示す情報「○」を、合否結果に記録する（ステップＳ８０）。
一方、プログラムコードの正当性が確認できなかった場合は、そのシステムプログラムの起動は不当なものであることを示す情報「×」を、合否結果に記録する（ステップＳ８０）。ここでも合否結果は、そのシステムプログラム名とともに、起動状態情報ＤＢ５５に記録される。
【００６０】
ステップＳ７３で、受信したものがプログラムコードでない場合、設定値と考えられるので、ステップＳ７４へ進み、その受信した設定値と、予め検証情報初期値テーブルＳ０に記録されている設定値との比較処理とを行う。
ステップＳ７７において、比較の結果、両設定値が一致した場合、その設定値は正当なものと判断され、その設定値を持つプログラムは正当なものであることが確認される。
そして、正当なものであることを示す情報「○」が、合否結果に記録される（ステップＳ８０）。
一方、設定値が一致しなかった場合、その設定値は不当なものと判断され、不当なものであることを示す情報「×」が、合否結果に記録される（ステップＳ８０）。ここでも、合否結果は、その設定値名とともに、起動状態情報ＤＢ５５に記録される。
【００６１】
以上が、図１０のステップＳ１の具体的な処理内容であり、起動されたシステムプログラムすべてに対してその起動状態の正当性を確認し、現在の起動時の起動状態情報ＤＢ５５を生成する。
【００６２】
次に、図１０のステップＳ２において、起動検証要求があるか否かチェックする。
たとえば、図５のようにＢＩＯＳ部５２から、起動検証要求があればステップＳ３へ進む。検証要求には、検証データＡが含まれている。
【００６３】
ステップＳ３において、検証部ＶＥは、ＴＰＭ４へ、検証データＡを含む起動鍵要求を送信する。
検証データＡは、たとえば、ステップ１の確認処理の中で、システムプログラムそのものから求められたハッシュ値である。このハッシュ値は、ＴＰＭでの検証に使用されるデータである。
起動鍵要求を受理したＴＰＭ４は、検証処理を行い、その検証結果（成功か否か）を、検証部へ返す。
次に、ステップＳ４において、検証部ＶＥは、ＴＰＭ４からの検証の結果回答を確認し、その回答が、成功の場合、ステップＳ９へ進み、失敗の場合はステップＳ５へ進む。
成功の場合は、図５の検証処理の流れに相当する。
【００６４】
ステップＳ９において、検証部ＶＥは、ＴＰＭから送られてきた起動鍵ＫＥＹ１を受信する。
次に、ステップＳ１０において、検証要求元のシステムプログラムに、起動鍵ＫＥＹ１を送信する。
【００６５】
一方、ＴＰＭが検証に失敗した場合は、ステップＳ５において、検証部ＶＥの比較部５７が、検査処理を実行する。
検査処理は、検証情報初期値テーブルＳ０に保存されている情報と、ステップＳ１で生成された起動状態情報ＤＢとの内容を比較することによって行う。
【００６６】
図１２に、この発明の検証部ＶＥの比較部５７が行う検査処理の一実施例のフローチャートを示す。
ステップＳ２１において、検証部ＶＥに保存されている検証情報初期値テーブルＳ０のデータを読み出す。
さらに、ステップＳ２２において、ステップＳ１で生成された現在の起動時の起動状態情報ＤＢのデータを読み出す。
ステップＳ２３において、読み出された初期値テーブルＳ０のデータと、起動状態情報ＤＢのデータとの比較を行う。ここで比較とは、たとえば、両者のデータのうちプログラム名，そのプログラムのハッシュ値との比較をすることである。
両者のデータのうち対応するデータがすべて一致した場合には、ステップＳ２５へ進み、検査が成功したことを出力する。
一方、１つでも一致しないものがある場合は、ステップＳ２４へ進み、検査が失敗したことを出力する。
【００６７】
以上のように、両者の内容が一致していれば、検査は成功と判断される。
また、検査処理において、生成起動状態情報ＤＢの中に、初期値Ｓ０（５４）の中には含まれていないプログラムＰＧが含まれている場合は、そのプログラムＰＧは不正なプログラムであると判断でき、不正なプログラムの存在が認識され、検査は失敗と判断される。
【００６８】
ステップＳ６において、ステップＳ５の検査処理の結果が成功の場合は、ＴＰＭの検証では不当と判断されたが、正当な起動であると判断され、ステップＳ７へ進む。
一方、ステップＳ６において、検査処理の結果が失敗の場合は、不正なプログラムが存在すると考えられるので、正当な起動ではないと判断され、ステップＳ１１へ進む。
【００６９】
ステップＳ７に進む場合は、図６の処理の流れに相当する。
ステップＳ１１に進む場合は、図７の処理の流れに相当する。
ステップＳ７において、検査は成功したので、その後の起動処理を進めるために、ＴＰＭ４へアンロック要求を送信する。すなわち、起動鍵ＫＥＹ１をＴＰＭ４から取得するために、パスワードＰＳ１を検証情報初期値テーブルＳ０（５４）から読み出し、ＴＰＭ４へ送る。
【００７０】
アンロック要求とパスワードＰＳ１を受信したＴＰＭ４は、パスワードＰＳ１の正当性を確認して、正当な場合は、予め記録されていた起動鍵ＫＥＹ１を、検証部ＶＥへ送信する。
次に、ステップＳ８において、検証部ＶＥは、ＴＰＭ４からアンロック応答があるか否かチェックする。アンロック応答があった場合は、ステップＳ９へ進み、上記したように、起動鍵ＫＥＹ１の受信をし、ステップＳ１０において起動鍵ＫＥＹ１を検証要求元へ送る
【００７１】
ステップＳ６において、検査が失敗した場合は、ステップＳ１１へ進み、検証要求元のシステムプログラムに、検証が失敗したことを通知する。
このとき、検証が失敗したことを確認したシステムプログラムは、検証が失敗したことをユーザに報知し、ユーザに復旧処理が必要であることを示す。このとき、不正プログラムが存在することをユーザに報知してもよい。
【００７２】
以上のように、ＴＰＭによる検証とは別に検証部ＶＥが検査処理を実行することにより、ＴＰＭによる検証が失敗しても、その後の起動処理を許可してもよい場合は、ユーザの介在なしに自動的に復旧し、正常にその後の起動処理を継続させることができる。
【００７３】
すなわち、ＴＰＭの検証が失敗しても、その失敗の原因が、不正プログラムが存在しないことに起因する場合、たとえば単に新しい外部機器が接続された場合やＲＡＭが増設された場合のように正常に起動してもよい場合には、自動的に起動処理が継続されるので、その後の復旧処理にかかるユーザの負担を軽減できる。
【００７４】
＜検証失敗時の修復処理＞
図７および図１０のステップＳ１１において、不正プログラムの存在が検出された場合、そのプログラムを除去するか、あるいは正常に動作していたときの状態に戻してやる必要がある。この場合は、ユーザによる修復処理が必要である。
たとえば、ハードディスクＨＤＤ３の中に、修復用ＯＳを予め保存しておく。この修復用ＯＳは、通常起動されるＯＳ部３１に格納されたＯＳとは異なり、修復専用のＯＳである。
そして、ＢＩＯＳ部５２が、図７のように検証の失敗を確認した場合、修復用ＯＳを起動させるようにする。
【００７５】
修復用ＯＳが起動されると、修復のためのプログラムが起動されあるいは起動できるような状態となる。この状態で、ユーザは、ＢＩＯＳのアップデートや、BIOS設定の変更，機器構成のチェックなどの処理を行って、正常な起動状態に復旧させる。
また、起動に用いられる設定値が正常でないために、検証が失敗した場合も、同様に復旧処理を行い、その設定値を正常な値に戻す必要がある。この場合も、修復用ＯＳを起動させて、設定値を設定し直してもよい。あるいは、修復ＯＳの代わりに、設定値を修復する特別なプログラムを起動させて、設定値を予め許可された範囲内に戻すようにしてもよい。
【００７６】
また、メーカ側の都合でＢＩＯＳそのもののアップデートが必要な場合や、ＢＩＯＳにおける設定値等を変更する必要がある場合がある。しかし、このようなアップデート等を行った後は、起動検証に失敗する可能性があるので、検証部ＶＥやＴＰＭ４に予め保存していた検証情報を書きかえてやる必要がある。
このとき、たとえば、ユーザがアプリケーションプログラムを使えるような起動状態で、特別な設定プログラムを起動させ、メーカが用意したＦＤやＣＤ−ＲＯＭ等に格納されたＢＩＯＳのアップデートプログラムやＢＩＯＳ設定値等を読み込み、検証情報を更新するようにすればよい。あるいはインターネット等のネットワークを介してアップデートプログラムや設定値をダウンロードして、更新するようにしてもよい。
【図面の簡単な説明】
【００７７】
【図１】この発明の情報処理装置の一実施例の構成ブロック図である。
【図２】この発明の情報処理装置の一実施例の構成ブロック図である。
【図３】この発明の情報処理装置の検証初期値の説明図である。
【図４】この発明の情報処理装置の起動状態情報ＤＢの説明図である。
【図５】この発明の情報処理装置の検証処理の一実施例の説明図である。
【図６】この発明の情報処理装置の検証処理の一実施例の説明図である。
【図７】この発明の情報処理装置の検証処理の一実施例の説明図である。
【図８】この発明の検証情報の初期設定処理のフローチャートである。
【図９】この発明の検証情報の初期設定処理のフローチャートである。
【図１０】この発明の検証部の検証処理のフローチャートである。
【図１１】この発明の電源投入時の起動状態確認処理のフローチャートである。
【図１２】この発明の検証部の起動検査処理のフローチャートである。
【図１３】従来の情報処理装置の起動時の検証処理の説明図である。
【符号の説明】
【００７８】
１  ＣＰＵ
２  ＲＡＭ
３  ＨＤＤ
４  ＴＰＭ
５  ＢＩＯＳ  ＲＯＭ
６  起動認証部
３１  ＯＳ部
３２  アプリソフト部
４１  起動鍵ＫＥＹ１
４２  パスワードＰＳ１
４３  ハッシュ値ＨＳ１
５１  ＣＲＴＭ部
５２  ＢＩＯＳ部
５３  検証部
５４  検証情報初期値Ｓ０
５５  起動状態情報ＤＢ
５６  起動状態確認部
５７  比較部
【図１】
0004769608.tif 000002
【図２】
0004769608.tif 000003
【図３】
0004769608.tif 000004
【図４】
0004769608.tif 000005
【図５】
0004769608.tif 000006
【図６】
0004769608.tif 000007
【図７】
0004769608.tif 000008
【図８】
0004769608.tif 000009
【図９】
0004769608.tif 000010
【図１０】
0004769608.tif 000011
【図１１】
0004769608.tif 000012
【図１２】
0004769608.tif 000013
【図１３】
0004769608.tif 000014