(57)【要約】【課題】システムを再起動、停止等することなくオペレーティングシステムの更新をより安全に行うことを目的とする。【解決手段】改竄が困難な非オープンソースオペレーティングシステムが、オープンソースオペレーティングシステムのカーネルの更新が正当なものであるか否かを判定し、オープンソースオペレーティングシステムのカーネルの更新が正当なものであると判定した場合、オープンソースオペレーティングシステムのカーネルの更新を行うことによって課題を解決する。【選択図】図６
2011034130.tif 000002
【特許請求の範囲】
【請求項１】
複数のオペレーティングシステムが動作する情報処理装置であって、
前記オペレーティングシステムのカーネルの更新が正当なものであるか否かを判定する判定手段と、
前記判定手段で前記オペレーティングシステムのカーネルの更新が正当なものであると判定された場合、前記カーネルを更新する更新手段とを備えることを特徴とする情報処理装置。
【請求項２】
前記判定手段は、前記複数のオペレーティングシステムのカーネルに更新されたものがあるかどうかを検知し、更新されたオペレーティングシステムのカーネルを検知した場合、前記オペレーティングシステムのカーネルの更新が不正な更新であると判定することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記判定手段は、一のオペレーティングシステムであり、前記一のオペレーティングシステムとは異なる他のオペレーティングシステムのカーネルを確認し、前記他のオペレーティングシステムのカーネルに改竄が無いかどうかを判定することを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記更新手段は、一のオペレーティングシステムであり、前記一のオペレーティングシステムとは異なる他のオペレーティングシステムのカーネルを更新することを特徴とする請求項１記載の情報処理装置。
【請求項５】
複数のオペレーティングシステムが動作する情報処理装置であって、
前記オペレーティングシステムのカーネルの更新が正当なものであるか否かを判定する判定手段と、
前記判定手段で前記オペレーティングシステムの更新が正当なものであると判定された場合、前記オペレーティングシステムのカーネルを更新する更新手段と、
前記オペレーティングシステムのカーネルが正当であるか否かの検出を定期的に行う実行手段と、
前記実行手段により前記オペレーティングシステムのカーネルが正当でないと検出されたときに、前記オペレーティングシステムの実行を停止する停止手段とを備えることを特徴とする情報処理装置。
【請求項６】
前記実行手段は、一のオペレーティングシステムであり、一定時間ごとに前記一のオペレーティングシステムとは異なる他のオペレーティングシステムのカーネルが正当であるか否かの検出を行うことを特徴とする請求項５記載の情報処理装置。
【請求項７】
複数のオペレーティングシステムが動作する情報処理装置における情報処理方法であって、
前記オペレーティングシステムのカーネルの更新が正当なものであるか否かを判定する判定工程と、
前記判定工程で前記オペレーティングシステムのカーネルの更新が正当なものであると判定された場合、前記カーネルを更新する更新工程とを備えることを特徴とする情報処理方法。
【請求項８】
複数のオペレーティングシステムが動作する情報処理装置のコンピュータを、
前記オペレーティングシステムのカーネルの更新が正当なものであるか否かを判定する判定手段と、
前記判定手段で前記オペレーティングシステムのカーネルの更新が正当なものであると判定された場合、前記カーネルを更新する更新手段と
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチＯＳ環境下における情報処理装置等に関する。
【背景技術】
【０００２】
従来、情報処理装置を制御するプロセッサを複数搭載することにより、或いはマルチコアプロセッサと呼ばれる複数のプロセッサコアを搭載したプロセッサにより、情報処理装置の性能向上を図る技術がある。例えば、前記複数プロセッサの一つに実時間応答に優れたリアルタイムオペレーティングシステムを搭載し、機器制御を行わせる。また、他のプロセッサに汎用オペレーティングシステムを搭載し、ユーザインターフェース、ネットワークサービス等のアプリケーションを行わせるといったいわゆるマルチオペレーティングシステムという技術がある。
オペレーティングシステム（Operating System）は、それが動作する計算機についてあらゆる操作が可能である。そのため、ＯＳにセキュリティ等に関する脆弱性が発見された場合、バグが発見された場合、機能追加によるアップデートを行う場合等、ＯＳを更新する作業が必要になる場合がある。ＯＳの更新に際し、情報処理装置は、その更新作業のために再起動が必要であった。このとき、ＯＳが悪意をもったものに改竄され実行されてしまうと、その情報処理装置（計算機）及び計算機上で動作するすべてのプログラムに影響を及ぼす。
近年、このようなデータの改竄を検出する方法としては実行オブジェクトが本来のものであり、置換されていないことを検出する仕組みを導入する技術がある（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１８２５０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の技術であっても、ＯＳが攻撃者によって改竄され、ブートローダ後にＩＣＥ等でＯＳを入れ替えることによって改竄されたＯＳで更新、実行がされてしまうおそれがあった。
【０００５】
本発明はこのような問題点に鑑みなされたもので、カーネルの更新をより安全に行うことを目的とする。
【課題を解決するための手段】
【０００６】
そこで、本発明は、複数のオペレーティングシステムが動作する情報処理装置であって、前記オペレーティングシステムのカーネルの更新が正当なものであるか否かを判定する判定手段と、前記判定手段で前記オペレーティングシステムのカーネルの更新が正当なものであると判定された場合、前記カーネルを更新する更新手段とを備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、カーネルの更新をより安全に行うことができる。
【図面の簡単な説明】
【０００８】
【図１】情報処理装置の一例を示す図である。
【図２】情報処理装置の一例を示す図である。
【図３】第２の実施形態に係る情報処理装置の一例を示す図である。
【図４】第２の実施形態に係る不揮発性メモリの内容を示す図である。
【図５】第２の実施形態に係る概略を示すフローチャートである。
【図６】第２の実施形態に係る更新処理を示すフローチャートである。
【図７】第３の実施形態に係る情報処理装置の一例を示す図である。
【図８】第３の実施形態に係る情報処理装置の一例を示す図である。
【図９】第３の実施形態に係る更新処理を示すフローチャートである。
【図１０】第４の実施形態に係る更新処理を示すフローチャートである。
【図１１】第５の実施形態に係る情報処理装置の一例を示す図である。
【図１２】第５の実施形態に係る概略を示すフローチャートである。
【図１３】第５の実施形態に係る更新処理を示すフローチャートである。
【図１４】第５の実施形態に係る改竄検出処理を示すフローチャートである。
【図１５】第６の実施形態に係る更新処理を示すフローチャートである。
【図１６】第７の実施形態に係る情報処理装置の一例を示す図である。
【図１７】第７の実施形態に係る情報処理装置の一例を示す図である。
【図１８】第７の実施形態に係る概略を示すフローチャートである。
【図１９】第７の実施形態に係る更新処理を示すフローチャートである。
【図２０】第７の実施形態に係る改竄検出処理を示すフローチャートである。
【図２１】第７の実施形態に係る更新処理を示すフローチャートである。
【図２２】第７の実施形態に係る改竄検出処理を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面に基づいて説明する。
【００１０】
（第１の実施形態）
本実施形態に係る情報処理装置１００の構成について、図１及び図２を参照して説明する。
図１において、ＣＰＵ・Ａ１０１及びＣＰＵ・Ｂ１０２は、情報処理装置１００全体を制御するCentral Processing Unit（以下、ＣＰＵと称する。）である。ＲＡＭ１０４は、プログラムやデータを一時記憶するRandom Access Memory（以下、ＲＡＭと称する。）である。ＦｌａｓｈＲＯＭ１０５は、ＯＳ（オペレーティングシステム）のイメージを保存しておく書き換え可能な記憶媒体（以下、ＦｌａｓｈＲＯＭと称する。）である。バス１０６は、各ユニットを通信可能に接続するシステムバス（以下、バスと称する。）である。情報処理装置１００は、ＲＡＭ１０４を共有して動作している。
図２を参照して、ＲＡＭ１０４及びＦｌａｓｈＲＯＭ１０５の構成について説明する。ＦｌａｓｈＲＯＭ１０５には、ブートローダ２１１、ＯＳ・Ａのカーネル２１２、ＯＳ・Ｂのカーネル２１３、及びＯＳ・Ａのカーネルのバージョン番号２１４が格納されている。なお、本実施形態では、ＯＳ・Ａのカーネル２１２は、オープンソースＯＳのカーネルイメージであり、ＯＳ・Ｂのカーネル２１３は、改竄困難な非オープンソースＯＳのカーネルイメージである。
ブートローダ２１１は、ＯＳ・Ａのカーネル２１２をＲＡＭ１０４の領域２０１に展開し、ＯＳ・Ｂのカーネル２１３を領域２０２に展開する。これによりＯＳ・ＡはＣＰＵ・Ａ１０１上で、ＯＳ・ＢはＣＰＵ・Ｂ１０２上で動作する。
【００１１】
（第２の実施形態）
第２の実施形態では、図３に示すように、情報処理装置１００は、不揮発性メモリ１１１を有する。不揮発性メモリ１１１には、図４に示すように、更新すべきＯＳ・Ａのカーネル１１２、更新すべきＯＳ・Ａのカーネルに関する暗号化されたチェックサム１１３、及びＯＳ・Ａのカーネルのバージョン番号１１４が格納されている。また、ＯＳ・Ｂは、上記暗号化されたチェックサム１１３を複合化する手段と、更新するＯＳ・Ａのカーネル１１２でＯＳ・Ａのカーネル２１２を更新する更新手段を有する。なお、暗号化、復号化の方法としては電子証明書のようなものを採用する。また、第１の実施形態に係る構成と同一の構成については、同一の符号を用い、説明を省略する。
【００１２】
本実施形態に係る主な処理を図５及び図６に示す。はじめに、ブートローダ２１１がＯＳ・Ａのカーネル２１２及びＯＳ・Ｂのカーネル２１３を夫々ＲＡＭ１０４の所定の位置に展開し（ステップＳ１０２、ステップＳ１０６）、各ＯＳの実行を開始させる（ステップＳ１０３、ステップＳ１０７）。なお、ブートローダ２１１によって実行されるＯＳ・Ａ及びＯＳ・Ｂは、夫々独立して処理を進める。
ここで、不揮発性メモリ１１１は、例えばメモリカードのような可搬メモリと、この可搬メモリを読むことができる装置とにより構成されているものとする。そして、可搬メモリには、更新を行うＯＳ・Ａのカーネル１１２とその暗号化されたＯＳ・Ａのチェックサム１１３、さらに更新を行うＯＳ・Ａのカーネルのバージョン番号１１４が予め格納され、可搬メモリが該装置に挿入されているものとする。
【００１３】
図６は、本実施形態に係る更新処理を示すフローチャートである。まず、ＯＳ・Ｂは、不揮発性メモリ１１１の中身を確認し、ＯＳ・Ａのカーネル１１２が存在するかどうかを確認する（ステップＳ１１２）。不揮発性メモリ１１１にＯＳ・Ａのカーネル１１２が格納されていない場合、ＯＳ・Ｂは、更新処理を終了する（ステップＳ１１８）。不揮発性メモリ１１１にＯＳ・Ａのカーネル１１２が格納されていた場合、ＯＳ・Ｂは、不揮発性メモリ１１１上のＯＳ・Ａのカーネルのバージョン番号１１４とＦｌａｓｈＲＯＭ１０５上のカーネルのバージョン番号２１４とを比較する（ステップＳ１１３）。すなわち、ＯＳ・Ｂは、ＯＳ・Ａのカーネル１１２が現在のものよりも新しく、更新が必要かどうか判定する。カーネルの更新が必要ない場合、ＯＳ・Ｂは、更新処理を終了する（ステップＳ１１８）。他方、ＯＳ・Ａのカーネル１１２が現在のものよりも新しく、更新が必要であると判定した場合、ＯＳ・Ｂは、ステップＳ１１４の処理を行う。
ステップＳ１１４では、ＯＳ・Ｂは、ＯＳ・Ａのカーネル１１２が不正なものであるか否かの確認を行うため、不揮発性メモリ１１１に格納されたＯＳ・Ａのカーネルのチェックサム１１３を取得する。チェックサム１１３は、正当なものであると証明するため暗号化がなされており、ＯＳ・Ｂがこの復号化鍵を有しており、ＯＳ・Ｂのみが復号可能とする。
次に、ＯＳ・Ｂは、不揮発性メモリ１１１上のＯＳ・Ａのカーネル１１２のチェックサムを算出する（ステップＳ１１５）。次に、ＯＳ・Ｂは、算出したチェックサムと復号化したＯＳ・Ａのチェックサムとの比較を行い（ステップＳ１１６）、一致しない場合、不揮発性メモリ１１１上のＯＳ・Ａのカーネル１１２が正当なものでないと判断し、更新処理を中断する（ステップＳ１１８）。他方、チェックサムが一致した場合、ＯＳ・Ｂは、ステップＳ１１７の処理を行う。
ステップＳ１１７では、ＯＳ・Ｂは、ＯＳ・Ａのカーネル２１２の更新処理を行う。例えば、ＯＳ・Ｂは、ＯＳ・Ａのカーネル１１２でＦｌａｓｈＲＯＭ１０５のＯＳ・Ａのカーネル２１２を更新する。以上により、ＯＳ・Ａの更新が終了し、次回の起動時には更新されたＯＳ・Ａが起動される。
【００１４】
一般に、メモリカード等の外部メディアやネットワーク上に新たなＯＳがあると検出された場合には、更新の処理を行うためには機器を再起動し、更新処理に入らなくてはならず、更新には概ね数分の時間を要した。その間ユーザは、機器を使用することができなかった。
しかしながら、情報処理装置１００は、改変の困難なＯＳ・Ｂによって他方のＯＳ・Ａのカーネルの更新を検知し、改竄を検知し、改竄がなされたＯＳのカーネルであると判断した場合には更新処理を停止する。他方、改竄がなされていなければ、一方のＯＳ・Ｂが他方ＯＳ・Ａの更新処理を行うことで、ＯＳを停止、又は再起動することなくＯＳの更新をすることができる。
したがって、情報処理装置１００によれば、ＯＳ更新の際に自装置を再起動することなくより安全にカーネルの更新を行うことができる。
【００１５】
（第３の実施形態）
第３の実施形態に係る情報処理装置１００は、第１の実施形態に係る構成に加え、図７に示すように、ネットワークデバイス１２１がバス１０６に接続されている。第３の実施形態では、図８に示すように、情報処理装置１００は、外部とネットワーク接続が可能である構成とする。
本実施形態では、図８に示すように、ＯＳ・Ａの更新情報が外部の更新サーバ１３１から配信され、ＯＳ・Ｂがそれを受信して更新処理を行うものとする。なお、ＯＳ・Ａ及びＯＳ・Ｂ夫々の起動動作は、図５に示す処理と同様である。
【００１６】
図９は、本実施形態に係る更新処理を示すフローチャートである。更新サーバ１３１は、情報処理装置１００のＯＳ・Ａの更新が必要になると、情報処理装置１００に対して更新するＯＳ・Ａのカーネルのバージョン番号を情報処理装置１００に送信する。情報処理装置１００のＯＳ・Ｂは、配信されたＯＳ・Ａのカーネルのバージョン番号とＦｌａｓｈＲＯＭ１０５上のＯＳ・Ａのカーネルのバージョン番号２１４と比較し（ステップＳ２１２）、配信されたものの方が新しければ更新処理を開始する。
次に、更新サーバ１３１は、暗号化されたＯＳ・Ａのカーネルのチェックサムを情報処理装置１００に対して配信する。ＯＳ・Ｂは、暗号化されたＯＳ・Ａのチェックサムを受信したことを確認し、復号化しておく（ステップＳ２１３、ステップＳ２１４）。最後に、更新サーバ１３１は、ＯＳ・Ａのカーネル本体を情報処理装置１００に対して配信する。ＯＳ・Ｂは、ＯＳ・Ａのカーネル本体を受信したことを確認し（ステップＳ２１５）、ＯＳ・Ａのカーネルのチェックサムを算出し（ステップＳ２１６）、算出したチェックサムと先に配信された更新するＯＳ・Ａのチェックサムと比較する（ステップＳ２１７）。両チェックサムが一致した場合、ＯＳ・Ｂは、ＦｌａｓｈＲＯＭ１０５上のＯＳ・Ａのカーネル２１２及びＯＳ・Ａのカーネルのバージョン番号２１４を新しいものに書き換える（ステップＳ２１８）。他方、一致しない場合、ＯＳ・Ｂは、更新処理を終了する（ステップＳ２１９）。
【００１７】
（第４の実施形態）
第４の実施形態に係る情報処理装置１００は、図８に示す構成を有し、情報処理装置１００のＯＳ・Ｂが図１０に示すフローチャートに係る更新処理を一定時間ごとに行う場合について説明する。なお、ＯＳ・Ｂは、図１０に示す更新処理を起動時毎に行うことでＯＳ・Ａのカーネルの更新の有無を確認してもよいし、ＣＰＵタイマ等を監視し、一定時間が経つたびにＯＳ・Ａのカーネルの更新の有無を確認してもよい。
本実施形態では、ＯＳ・Ｂが外部の更新サーバ１３１にあるＯＳ・Ａのカーネルのバージョン番号を参照し、更新サーバ１３１のバージョンがより新しければＯＳ・ＢがＯＳ・Ａのカーネル２１２の更新を行うものとする。ＯＳ・Ａ及びＯＳ・Ｂ夫々の起動動作は、図５に示す処理と同様である。なお、図１０に示す更新処理は、ＯＳ・Ｂにより行われる。
【００１８】
ＯＳ・Ｂは、一定時間ごとに更新サーバ１３１上のＯＳ・Ａのカーネルのバージョン番号が情報処理装置１００のＦｌａｓｈＲＯＭ１０５に書き込まれているＯＳ・Ａのカーネルのバージョン番号２１４よりも新しいかどうか確認する（ステップＳ３１２）。ＯＳ・Ｂは、更新サーバ１３１のバージョン番号が古いか同じ場合は何も行わない（ステップＳ３１９）。他方、更新サーバ１３１上のバージョン番号が新しいものである場合、ＯＳ・Ｂは、ステップＳ３１３の処理を行う。
ステップＳ３１３では、ＯＳ・Ｂは、更新サーバ１３１に用意された暗号化されたＯＳ・Ａのチェックサムを受信する。次に、ＯＳ・Ｂは、前記チェックサムを復号化する（ステップＳ３１４）。次に、ＯＳ・Ｂは、更新サーバ１３１より更新するＯＳ・Ａのカーネルを受信する（ステップＳ３１５）。受信を終えたら、ＯＳ・Ｂは、受信したＯＳ・Ａのカーネルのチェックサムを算出し（ステップＳ３１６）、ステップＳ３１４にて復号化したＯＳ・Ａのチェックサムと比較する（ステップＳ３１７）。両チェックサムが一致した場合、ＯＳ・Ｂは、更新されたＯＳ・ＡのカーネルとＯＳ・Ａのカーネルのバージョン番号とをＦｌａｓｈＲＯＭ１０５に書き込み更新する（ステップＳ３１８）。他方、チェックサムが一致しなかった場合、ＯＳ・Ｂは、更新を行わず処理を終了する（ステップＳ３１９）。
【００１９】
（第５の実施形態）
第５の実施形態に係る情報処理装置１００は、図３及び図４に示す構成を有し、図１１に示すようにＦｌａｓｈＲＯＭ１０５に暗号化されたＯＳ・Ａのチェックサム２１５を保存する。第５の実施形態では、更新時及び起動中にＯＳ・Ａのカーネルに改竄がないか検知を行う場合について説明する。
図１２、図１３、図１４は、本実施形態に係る主な処理を示すフローチャートである。なお、図１２に示すステップＳ４０１からステップＳ４０６までは、ＯＳ・Ａに関する処理である。ステップＳ４０７からステップＳ４１０まで、及び図１３、図１４に示す各ステップは、ＯＳ・Ｂに関する処理である。
【００２０】
ＯＳ・Ａ及びＯＳ・Ｂは、夫々ブートローダ２１１により起動される。ＯＳ・Ａは、起動後一定時間ごとにＲＡＭ１０４上の共有メモリ２１６上に書き込まれたＯＳ・Ａ管理情報２１７を確認し（ステップＳ４０３）、「ＳＴＡＲＴ」であればそのまま実行を続ける（ステップＳ４０４）。他方、該ＯＳ・Ａ管理情報２１７に「ＳＴＯＰ」が書き込まれていれば、ＯＳ・Ａの実行を停止する（ステップＳ４０５）。
【００２１】
ここで、図１３に示すステップＳ４１２からＳ４１６までの処理は、第２の実施形態におけるステップＳ１１２からステップＳ１１６までの処理と同様である。
復号化されたチェックサムと、算出された不揮発性メモリ１１１上のＯＳ・Ａのカーネル１１２のチェックサムとが一致した場合、ＯＳ・Ｂは、ＯＳ・Ａのカーネル１１２が正当なものであると判断し、ステップＳ４１７の処理を行う。
ステップＳ４１７では、ＯＳ・Ｂは、不揮発性メモリ１１１上のＯＳ・Ａのカーネル１１２、暗号化されたＯＳ・Ａのチェックサム１１３、及びＯＳ・Ａのカーネルのバージョン番号１１４を夫々ＦｌａｓｈＲＯＭ１０５に書き込む。換言するならば、ＯＳ・Ｂは、ＯＳ・Ａのカーネル２１２、ＯＳ・Ａのカーネルのバージョン番号２１４、及び暗号化されたＯＳ・Ａのチェックサム２１５を更新する。ＯＳ・Ｂは、更新処理を行った後、ステップＳ５１１の処理を行う。
【００２２】
図１４に示すステップＳ５１１からステップＳ５１６までの処理は、繰り返し行われる処理であり、起動時に実行されてもよいし、ＣＰＵより起動時間を取得して一定の時間ごとに実行されてもよい。また、アプリケーションの実行時に行われてもよい。
まず、ＯＳ・Ｂは、ＦｌａｓｈＲＯＭ１０５の暗号化されたＯＳ・Ａのチェックサム２１５を復号化する（ステップＳ５１２）。次に、ＯＳ・Ｂは、ＦｌａｓｈＲＯＭ１０５のＯＳ・Ａのカーネル２１２のチェックサムを算出する（ステップＳ５１３）。次に、ＯＳ・Ｂは、これら２つのチェックサムを比較する（ステップＳ５１４）。２つのチェックサムが一致する場合、ＯＳ・Ｂは、ＯＳ・Ａのカーネル２１２が正当なものであると判断して検出処理を終える（ステップＳ５１６）。他方、両チェックサムが一致しない場合、ＯＳ・Ｂは、ＯＳ・Ａのカーネル２１２が正当なものでないと判断し、共有メモリ２１６上のＯＳ・Ａ管理情報２１７に「ＳＴＯＰ」を書き込み、ＯＳ・Ａに対し停止要求を送信する（ステップＳ５１５）。なお、ＯＳ・Ａは、ステップＳ４０３にて定期的にＯＳ・Ａ管理情報２１７を確認しており、「ＳＴＯＰ」が書き込まれていたらＯＳ・Ａの実行を停止する。
【００２３】
（第６の実施形態）
第６の実施形態に係る情報処理装置１００は、図７に示す構成を有し、第５の実施形態におけるＯＳ・Ａのカーネル１１２、ＯＳ・Ａのカーネルのバージョン番号１１４、暗号化されたＯＳ・Ａのチェックサム１１３がネットワーク上にある場合について説明する。
ＯＳ・Ａ、ＯＳ・Ｂの起動に関する処理は、図１２に示すフローチャートと同様である。図１５は、本実施形態に係る更新処理を示すフローチャートである。本フローチャートに示す処理は、ＯＳ・Ｂにより行われる。
【００２４】
ステップＳ６１２では、ＯＳ・Ｂは、ネットワーク上のデータベースにＯＳ・Ａのカーネルのバージョン番号１１４があるか否かを判別する。ＯＳ・Ａのカーネルのバージョン番号１１４がある場合、ＯＳ・Ｂは、ＦｌａｓｈＲＯＭ１０５上の現在動作中のＯＳ・Ａのカーネルのバージョン番号２１４と比較する（ステップＳ６１３）。該データベース上のＯＳ・Ａのバージョンの方が新しければ、ＯＳ・Ｂは、ＯＳ・Ａの更新ありとする。ＯＳ・Ａの更新ありとした場合、ＯＳ・Ｂは、データベースより暗号化されたＯＳ・Ａのチェックサム１１３をダウンロードし、これを復号化してＯＳ・Ａのチェックサムを取得する（ステップＳ６１４）。次に、ＯＳ・Ｂは、データベース上のＯＳ・Ａのカーネル１１２をダウンロードし、ＯＳ・Ａのカーネル１１２のチェックサムを算出する（ステップＳ６１５）。
次に、ＯＳ・Ｂは、両チェックサムが一致するか否かを判別する（ステップＳ６１６）。両チェックサムが一致した場合、ＦｌａｓｈＲＯＭ１０５を、更新するＯＳ・Ａのカーネル１１２、暗号化されたＯＳ・Ａのチェックサム１１３、及びＯＳ・Ａのカーネルのバージョン番号１１４で更新する（ステップＳ６１７）。他方、両チェックサムが一致しない場合、ＯＳ・Ｂは、更新処理を終了する（ステップＳ６１８）。なお、本実施形態では、ステップＳ５１１からステップＳ５１６までの処理が同様に行われる。
【００２５】
（第７の実施形態）
第７の実施形態に係る情報処理装置１００では、図１６に示すように、図３に示す構成に加え、バス１０６にＲＯＭ１０７が接続されている。本実施形態では、図１７に示すように複数のＯＳ（本実施形態では、３つのＯＳ、ＯＳ・Ａ、ＯＳ・Ｂ、ＯＳ・Ｃとする。）が起動される場合について説明する。
情報処理装置１００は、ＦｌａｓｈＲＯＭ１０５にあるＯＳ・Ａのカーネル２１２、ＯＳ・Ｃのカーネル２２３、及びＲＯＭ１０７にあるＯＳ・Ｂのカーネル２１３を夫々ＲＡＭ１０４に展開し、各ＯＳを実行する。ＦｌａｓｈＲＯＭ１０５には暗号化されたＯＳ・Ａのカーネルのチェックサム２１５、暗号化されたＯＳ・Ｃのカーネルのチェックサム２１９を保存しておく。本実施形態では、更新時及び起動中に、ＯＳ・ＢがＯＳ・Ａのカーネル２１２及びＯＳ・Ｃのカーネル２２３が正当なものであるかどうか検知を行う場合について説明する。
【００２６】
図１８は、本実施形態に係る起動処理等を示すフローチャートである。ステップＳ７０１からステップＳ７０６までの処理は、ＯＳ・Ａに関する処理であり、ステップＳ７０７からステップＳ７１０までの処理は、ＯＳ・Ｂに関する処理であり、ステップＳ７１１からステップＳ７１６までの処理は、ＯＳ・Ｃに関する処理である。ＯＳ・Ａに関する処理とＯＳ・Ｃに関する処理とについては、処理の内容が同様であるのでＯＳ・Ａの処理に関して説明する。ＯＳ・Ａは、起動後一定時間ごとにＲＡＭ１０４上の共有メモリ２１６上に書き込まれたＯＳ・Ａ管理情報２１７を確認し、「ＳＴＡＲＴ」であればそのまま実行を続ける（ステップＳ７０４）。他方、該ＯＳ・Ａ管理情報２１７に「ＳＴＯＰ」が書き込まれていれば、ＯＳ・Ａの実行を停止する（ステップＳ７０５）。
【００２７】
ＯＳ・Ｂの起動後の処理でＯＳ・Ａに対して行う処理を図１９及び図２０に示す。ステップＳ８１１からステップＳ８１８までの処理は、第５の実施形態におけるステップＳ４１１からステップＳ４１８までの処理と同様である。ステップＳ８２１からステップＳ８２６までの処理は、第５の実施形態におけるステップＳ５１１からステップＳ５１６までの処理と同様である。
【００２８】
ＯＳ・Ｂの起動後の処理でＯＳ・Ｃに対してＯＳ・Ｂが行う主な処理を図２１及び図２２に示す。
ＯＳ・Ｂは、不揮発性メモリ１１１の中身を確認し、ＯＳ・Ｃのカーネルが存在するかどうかを確認する（ステップＳ９１２）。不揮発性メモリ１１１にＯＳ・Ｃのカーネルが格納されていない場合、ＯＳ・Ｂは、更新処理を終了する（ステップＳ９１８）。他方、不揮発性メモリ１１１にＯＳ・Ｃのカーネルが格納されていた場合、ＯＳ・Ｂは、不揮発性メモリ１１１上のＯＳ・Ｃのカーネルのバージョン番号とＦｌａｓｈＲＯＭ１０５上のＯＳ・Ｃのカーネルのバージョン番号２１８とを比較する（ステップＳ９１３）。すなわち、ＯＳ・Ｂは、不揮発性メモリ１１１上のＯＳ・Ｃのカーネルが現在のものよりも新しく、更新が必要かどうか判定する。ＯＳ・Ｃのカーネル２２３の更新が必要ない場合、ＯＳ・Ｂは、更新処理を終了する（ステップＳ９１８）。他方、不揮発性メモリ１１１上の更新するＯＳ・Ｃのカーネルが現在のものよりも新しく、更新が必要と判定した場合、ＯＳ・Ｂは、ステップＳ９１４の処理を行う。
【００２９】
ステップＳ９１４では、ＯＳ・Ｂは、不揮発性メモリ１１１上の更新するＯＳ・Ｃのカーネルが正当なものであるか確認を行うため、不揮発性メモリ１１１に格納されたＯＳ・Ｃのカーネルのチェックサムを取得する。前記チェックサムは正当なものであることを証明するため暗号化がなされており、ＯＳ・Ｂがこの復号化鍵を有しており復号可能とする。
次に、ＯＳ・Ｂは、不揮発性メモリ１１１上のＯＳ・Ｃのカーネルのチェックサムを算出する（ステップＳ９１５）。次に、ＯＳ・Ｂは、算出したチェックサムと復号化したＯＳ・Ｃのチェックサムとの比較を行う（ステップＳ９１６）。チェックサムが一致していない場合、ＯＳ・Ｂは、不揮発性メモリ１１１上のＯＳ・Ｃのカーネルが正当なものでないと判断し、更新処理を中断する（ステップＳ９１８）。他方、チェックサムが一致した場合、ＯＳ・Ｂは、ステップＳ９１７の処理を行う。ステップＳ９１７では、ＯＳ・ＢがＯＳ・Ｃのカーネル２２３の更新処理を行う。例えば、ＯＳ・Ｂは、不揮発性メモリ１１１上のＯＳ・ＣのカーネルでＦｌａｓｈＲＯＭ１０５のＯＳ・Ｃのカーネル２２３を更新する。
【００３０】
図２２に示すステップＳ９２１からステップＳ９２６までの処理は、繰り返し行われる処理であり、起動時に実行されてもよいし、ＣＰＵより起動時間を取得して一定時間ごとに実行されてもよい。また、アプリケーションの実行時に行われてもよい。
まず、ＯＳ・Ｂは、ＦｌａｓｈＲＯＭ１０５の暗号化されたＯＳ・Ｃのチェックサム２１９を復号化する（ステップＳ９２２）。次に、ＯＳ・Ｂは、ＦｌａｓｈＲＯＭ１０５のＯＳ・Ｃのカーネル２２３のチェックサムを算出する（ステップＳ９２３）。次に、ＯＳ・Ｂは、これらの２つのチェックサムを比較する（ステップＳ９２４）。２つのチェックサムが一致する場合、ＯＳ・Ｂは、ＯＳ・Ｃのカーネル２２３が正当なものであると判断して検出処理を終える（ステップＳ９２６）。他方、両チェックサムが一致しない場合、ＯＳ・Ｂは、ＯＳ・Ｃのカーネル２２３が正当なものでないと判断し、ステップＳ９２５の処理を行う。
【００３１】
ステップＳ９２５では、ＯＳ・Ｂは、共有メモリ２１６上のＯＳ・Ｃ管理情報２２０に「ＳＴＯＰ」を書き込み、ＯＳ・Ｃに対し停止要求を送信する。なお、ＯＳ・Ｃは、定期的にＯＳ・Ｃ管理情報２２０を確認しており、「ＳＴＯＰ」情報が書き込まれていたらＯＳ・Ｃの実行を停止する。
本実施形態では、ＯＳ・ＢがＯＳ・Ａ及びＯＳ・Ｃの正当な更新であるかどうか、正当なカーネルであるかどうかの検出を行ったが、お互いのＯＳが検出し合ってもよい。
なお、例えば、ＣＰＵが、記憶装置に格納されたプログラムの手順に従って処理を行うことによっても、情報処理装置１００における機能及び前述したフローチャートに係る処理が実現できる。
【００３２】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００３３】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００３４】
１００  装置、１０１  ＣＰＵ  Ａ、１０２  ＣＰＵ  Ｂ、１０４  ＲＡＭ、１０５  ＦｌａｓｈＲＯＭ、１０６  バス
【図１】
2011034130.tif 000003
【図２】
2011034130.tif 000004
【図３】
2011034130.tif 000005
【図４】
2011034130.tif 000006
【図５】
2011034130.tif 000007
【図６】
2011034130.tif 000008
【図７】
2011034130.tif 000009
【図８】
2011034130.tif 000010
【図９】
2011034130.tif 000011
【図１０】
2011034130.tif 000012
【図１１】
2011034130.tif 000013
【図１２】
2011034130.tif 000014
【図１３】
2011034130.tif 000015
【図１４】
2011034130.tif 000016
【図１５】
2011034130.tif 000017
【図１６】
2011034130.tif 000018
【図１７】
2011034130.tif 000019
【図１８】
2011034130.tif 000020
【図１９】
2011034130.tif 000021
【図２０】
2011034130.tif 000022
【図２１】
2011034130.tif 000023
【図２２】
2011034130.tif 000024